From 8766b334da7ab4d2c498724e26e1741fe2f35cd5 Mon Sep 17 00:00:00 2001 From: LewisB Date: Sat, 12 Oct 2024 04:53:29 +0700 Subject: [PATCH 1/4] add: new homepage --- packages/app/src/components/Layout/Layout.tsx | 1 + packages/app/src/pages/ActivityLogPage.tsx | 2 - packages/app/src/pages/HomePage.tsx | 280 ++++++++++++------ packages/app/src/pages/theme.ts | 1 + packages/app/src/theme/theme.ts | 48 ++- 5 files changed, 233 insertions(+), 99 deletions(-) create mode 100644 packages/app/src/pages/theme.ts diff --git a/packages/app/src/components/Layout/Layout.tsx b/packages/app/src/components/Layout/Layout.tsx index 876b8633..77dbd5e3 100644 --- a/packages/app/src/components/Layout/Layout.tsx +++ b/packages/app/src/components/Layout/Layout.tsx @@ -82,6 +82,7 @@ const styles = StyleSheet.create({ native: 'scroll', default: 'auto', }), + backgroundColor: 'defaultGrey', }, }); diff --git a/packages/app/src/pages/ActivityLogPage.tsx b/packages/app/src/pages/ActivityLogPage.tsx index 9778f833..e2f120a1 100644 --- a/packages/app/src/pages/ActivityLogPage.tsx +++ b/packages/app/src/pages/ActivityLogPage.tsx @@ -4,7 +4,6 @@ import { InterSemiBold, InterSmall } from '../utils/webFonts'; import ActivityLog from '../components/ActivityLog'; import { Colors } from '../utils/colors'; import ProfileView from '../components/ProfileView'; -import { ProfileTypes } from '../models/ProfileTypes'; import { LightningIcon } from '../assets'; function ActivityLogPage() { @@ -18,7 +17,6 @@ function ActivityLogPage() { lastName={'Doe'} ensDomain={'John.CELO'} userAddress={'q827tbc1386..134c'} - profileType={ProfileTypes.domain} /> diff --git a/packages/app/src/pages/HomePage.tsx b/packages/app/src/pages/HomePage.tsx index fdb03686..a8b2d67f 100644 --- a/packages/app/src/pages/HomePage.tsx +++ b/packages/app/src/pages/HomePage.tsx @@ -1,110 +1,206 @@ -import { Image, StyleSheet, TouchableOpacity, View, Text } from 'react-native'; +import { useRef } from 'react'; +import { withTheme } from '@gooddollar/good-design'; + +import { Box, HStack, Link, Text, Pressable, useMediaQuery, VStack, ScrollView } from 'native-base'; + import CollectiveHomeCard from '../components/CollectiveHomeCard'; import Layout from '../components/Layout/Layout'; -import { Colors } from '../utils/colors'; import { InterSemiBold } from '../utils/webFonts'; -import { Link, useMediaQuery } from 'native-base'; + import { IpfsCollective } from '../models/models'; import { useCollectivesMetadata } from '../hooks'; -import { ForwardIcon } from '../assets'; -function HomePage() { +type HomePageProps = { + buttonStyles?: any; + containerStyles?: any; +}; + +export const theme = { + baseStyle: { + containerStyles: { + body: { + flex: 1, + paddingTop: 5, + paddingBottom: 5, + minHeight: 'auto', + marginLeft: 'auto', + marginRight: 'auto', + shadow: 1, + padding: 4, + width: '100%', + backgroundColor: 'white', + borderRadius: 16, + maxWidth: 1312, + }, + sectionContainer: { + marginBottom: 20, + paddingTop: 0, + paddingLeft: 15, + paddingRight: 15, + }, + sectionContainerDesktop: { + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'center', + alignItems: 'flex-start', + gap: 24, + }, + }, + buttonStyles: { + buttonContainer: { + // flex: 1, + justifyContent: 'space-evenly', + marginTop: 8, + }, + button: { + width: '100%', + height: 47, + flex: 1, + justifyContent: 'space-between', + alignItems: 'center', + paddingRight: 10, + paddingLeft: 10, + paddingTop: 1, + paddingBottom: 1, + fontSize: 'md', + fontWeight: 700, + flexDirection: 'row', + flexWrap: 'wrap', + borderRadius: 50, + }, + buttonText: { + ...InterSemiBold, + fontSize: 'md', + }, + forwardIcon: { + width: 18, + height: 18, + }, + }, + }, +}; + +const placeHolderTotalStats = { + pools: { + amount: 'G$ 230', + copy: 'GoodCollective pools', + }, + totalDonations: { + amount: 'G$ 2,300.000', + copy: 'Total donations', + }, + totalMembers: { + amount: 'G$ 230', + copy: 'Total members', + }, +}; + +const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles, buttonStyles }: HomePageProps) => { const collectives = useCollectivesMetadata(); + const { buttonContainer, button, buttonText } = buttonStyles ?? {}; + const { body, sectionContainer, sectionContainerDesktop } = containerStyles ?? {}; + const [isDesktopResolution] = useMediaQuery({ minWidth: 920, }); + const collectivesSectionRef = useRef(null); + + const scrollToCollectives = () => { + if (collectivesSectionRef.current) { + collectivesSectionRef.current.scrollIntoView({ behavior: 'smooth' }); + } + }; + return ( - - - {!collectives ? ( - Loading... - ) : ( - collectives?.map((ipfsCollective: IpfsCollective) => ( - - )) - )} - - - - Create a GoodCollective - - - - + + + + + + Empower Communities. Maximize Impact. + + {`GoodCollective is committed to empowering +individuals and communities by providing direct digital payments to those who need it most.`} + + + + Impact to Date + + + {Object.values(placeHolderTotalStats).map(({ amount, copy }) => ( + + + {amount} + + {copy} + + ))} + + + + + + + + How it works + + + + + + + + + Donate to a GoodCollective + + + + + + + Create a GoodCollective + + + + + + + + + + + + + + Explore GoodCollective Pools + + {`Check out existing GoodCollective pools and support existing members, or start your own!`} + + + + {!collectives ? ( + Loading... + ) : ( + collectives?.map((ipfsCollective: IpfsCollective) => ( + + )) + )} + + + + ); -} - -const styles = StyleSheet.create({ - body: { - flex: 1, - paddingTop: 20, - paddingBottom: 20, - minHeight: 'auto', - }, - sectionContainer: { - marginBottom: 20, - paddingTop: 0, - paddingLeft: 15, - paddingRight: 15, - }, - sectionContainerDesktop: { - flexDirection: 'row', - flexWrap: 'wrap', - justifyContent: 'center', - alignItems: 'flex-start', - gap: 24, - }, - buttonContainer: { - flex: 1, - justifyContent: 'center', - margin: 20, - }, - buttonDesktopContainer: { - flex: 0, - }, - highlight: { - fontWeight: '700', - }, - button: { - width: '100%', - height: 47, - backgroundColor: Colors.purple[100], - flex: 1, - justifyContent: 'space-between', - alignItems: 'center', - paddingRight: 20, - paddingLeft: 20, - fontSize: 18, - fontWeight: 700, - flexDirection: 'row', - flexWrap: 'wrap', - borderRadius: 50, - marginBottom: 10, - }, - buttonDesktop: { - maxWidth: 350, - }, - buttonText: { - color: Colors.purple[200], - ...InterSemiBold, - fontSize: 18, - }, - forwardIcon: { - width: 18, - height: 18, - }, }); export default HomePage; diff --git a/packages/app/src/pages/theme.ts b/packages/app/src/pages/theme.ts new file mode 100644 index 00000000..fa018377 --- /dev/null +++ b/packages/app/src/pages/theme.ts @@ -0,0 +1 @@ +export { theme as HomePage } from './HomePage'; diff --git a/packages/app/src/theme/theme.ts b/packages/app/src/theme/theme.ts index 8fda5a4b..a7993dd1 100644 --- a/packages/app/src/theme/theme.ts +++ b/packages/app/src/theme/theme.ts @@ -2,6 +2,7 @@ import { extendTheme } from 'native-base'; import { fontConfig, getPlatformFamilies } from '@gooddollar/good-design'; import * as components from '../components/theme'; +import * as pages from '../pages/theme'; export const nbTheme = extendTheme({ fontConfig: getPlatformFamilies(fontConfig), @@ -11,6 +12,7 @@ export const nbTheme = extendTheme({ primaryHoverDark: '#0075AC', white: '#FFFFFF', black: '#000000', + defaultGrey: '#F3F3F3', // text goodGrey: { 50: '#F4F4F4', @@ -66,11 +68,10 @@ export const nbTheme = extendTheme({ subheading: 'Inter', }, fontSizes: { - '4xs': 10, - '2xs': 12, - xs: 14, - sm: 16, - md: 20, + '2xs': 10, + xs: 12, + sm: 14, + md: 16, l: 24, xl: 30, '2xl': 36, @@ -79,6 +80,43 @@ export const nbTheme = extendTheme({ }, components: { ...components, + ...pages, + Text: { + baseStyle: { + color: 'goodGrey.600', + fontFamily: 'Inter', + fontstyle: 'normal', + fontWeight: 400, + lineHeight: '150%' /* 15px */, + }, + variants: { + // title/heading fontsize variants + '2xs-grey': () => ({ + fontSize: 10, + }), + 'xs-grey': () => ({ + fontSize: 12, + }), + 'sm-grey': () => ({ + fontSize: 14, + }), + 'md-grey': () => ({ + fontSize: 16, + }), + 'lg-grey': () => ({ + fontSize: 18, + }), + 'xl-grey': () => ({ + fontSize: 20, + }), + '2xl-grey': () => ({ + fontSize: 24, + }), + '3xl-grey': () => ({ + fontSize: 30, + }), + }, + }, // NavBar, }, }); From d7c8c4143db23330578b3bb163dac782a1ee2be2 Mon Sep 17 00:00:00 2001 From: LewisB Date: Sun, 20 Oct 2024 18:01:56 +0700 Subject: [PATCH 2/4] add: totalStats subgraph hook --- packages/app/src/components/ActionButton.tsx | 34 +++++++++ packages/app/src/hooks/index.ts | 1 + packages/app/src/hooks/useTotalStats.ts | 38 ++++++++++ packages/app/src/pages/HomePage.tsx | 70 ++++++++----------- packages/app/src/subgraph/index.ts | 1 + packages/app/src/subgraph/useSubgraphData.ts | 5 ++ .../app/src/subgraph/useSubgraphTotalStats.ts | 22 ++++++ packages/app/src/theme/theme.ts | 11 ++- 8 files changed, 141 insertions(+), 41 deletions(-) create mode 100644 packages/app/src/components/ActionButton.tsx create mode 100644 packages/app/src/hooks/useTotalStats.ts create mode 100644 packages/app/src/subgraph/useSubgraphTotalStats.ts diff --git a/packages/app/src/components/ActionButton.tsx b/packages/app/src/components/ActionButton.tsx new file mode 100644 index 00000000..0a83c637 --- /dev/null +++ b/packages/app/src/components/ActionButton.tsx @@ -0,0 +1,34 @@ +import { Box, Link, Pressable, Text } from 'native-base'; + +type ActionButtonProps = { + href?: string; + text: string; + bg: string; + textColor: string; + onPress?: any; + buttonStyles?: any; +}; + +const ActionButton = ({ href, text, bg, textColor, onPress, buttonStyles }: ActionButtonProps) => { + const { buttonContainer, button, buttonText } = buttonStyles ?? {}; + + const content = ( + + + {text} + + + ); + + if (href) { + return ( + + {content} + + ); + } + + return {content}; +}; + +export default ActionButton; diff --git a/packages/app/src/hooks/index.ts b/packages/app/src/hooks/index.ts index 47681548..c143fa71 100644 --- a/packages/app/src/hooks/index.ts +++ b/packages/app/src/hooks/index.ts @@ -6,3 +6,4 @@ export * from './useContractCalls'; export * from './useGetTokenPrice'; export * from './useIsStewardVerified'; export * from './useEthers'; +export * from './useTotalStats'; diff --git a/packages/app/src/hooks/useTotalStats.ts b/packages/app/src/hooks/useTotalStats.ts new file mode 100644 index 00000000..9527c06a --- /dev/null +++ b/packages/app/src/hooks/useTotalStats.ts @@ -0,0 +1,38 @@ +import { useMemo } from 'react'; + +import { useSubgraphTotalStats } from '../subgraph'; +import { formatGoodDollarAmount } from '../lib/calculateGoodDollarAmounts'; + +type StatsFormatted = { + amount: string; + copy: string; +}; +type TotalStats = { + totalDonations: StatsFormatted; + totalPools: StatsFormatted; + totalMembers: StatsFormatted; +}; + +export const useTotalStats = (): TotalStats | undefined => { + const stats = useSubgraphTotalStats(); + + return useMemo(() => { + const totalDonations = stats?.collectives?.reduce((acc, collective) => acc + Number(collective.totalDonations), 0); + const donationsFormatted = formatGoodDollarAmount(totalDonations?.toString() ?? '0'); + + return { + totalPools: { + amount: stats?.activeCollectives?.length.toString() ?? '0', + copy: 'GoodCollective pools', + }, + totalDonations: { + amount: 'G$ ' + donationsFormatted, + copy: 'Total Donations', + }, + totalMembers: { + amount: stats?.stewards?.length.toString() ?? '0', + copy: 'GoodCollective Members Paid', + }, + }; + }, [stats]); +}; diff --git a/packages/app/src/pages/HomePage.tsx b/packages/app/src/pages/HomePage.tsx index a8b2d67f..ee71e882 100644 --- a/packages/app/src/pages/HomePage.tsx +++ b/packages/app/src/pages/HomePage.tsx @@ -1,8 +1,10 @@ import { useRef } from 'react'; import { withTheme } from '@gooddollar/good-design'; +import { Box, HStack, Text, useMediaQuery, VStack, ScrollView, Spinner } from 'native-base'; -import { Box, HStack, Link, Text, Pressable, useMediaQuery, VStack, ScrollView } from 'native-base'; +import { useTotalStats } from '../hooks'; +import ActionButton from '../components/ActionButton'; import CollectiveHomeCard from '../components/CollectiveHomeCard'; import Layout from '../components/Layout/Layout'; import { InterSemiBold } from '../utils/webFonts'; @@ -80,24 +82,10 @@ export const theme = { }, }; -const placeHolderTotalStats = { - pools: { - amount: 'G$ 230', - copy: 'GoodCollective pools', - }, - totalDonations: { - amount: 'G$ 2,300.000', - copy: 'Total donations', - }, - totalMembers: { - amount: 'G$ 230', - copy: 'Total members', - }, -}; - const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles, buttonStyles }: HomePageProps) => { const collectives = useCollectivesMetadata(); - const { buttonContainer, button, buttonText } = buttonStyles ?? {}; + const totalStats = useTotalStats(); + const { body, sectionContainer, sectionContainerDesktop } = containerStyles ?? {}; const [isDesktopResolution] = useMediaQuery({ @@ -112,6 +100,8 @@ const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles, buttonStyle } }; + if (!totalStats) return ; + return ( @@ -129,8 +119,8 @@ individuals and communities by providing direct digital payments to those who ne Impact to Date - {Object.values(placeHolderTotalStats).map(({ amount, copy }) => ( - + {Object.values(totalStats).map(({ amount, copy }) => ( + {amount} @@ -141,29 +131,29 @@ individuals and communities by providing direct digital payments to those who ne - - - - How it works - - - + - - - - Donate to a GoodCollective - - - - - - - Create a GoodCollective - - - + + diff --git a/packages/app/src/subgraph/index.ts b/packages/app/src/subgraph/index.ts index 4f3c6373..6c9d8783 100644 --- a/packages/app/src/subgraph/index.ts +++ b/packages/app/src/subgraph/index.ts @@ -6,3 +6,4 @@ export * from './useSubgraphCollective'; export * from './useSubgraphIpfsCollective'; export * from './useSubgraphClaim'; export * from './useSubgraphSupportEvent'; +export * from './useSubgraphTotalStats'; diff --git a/packages/app/src/subgraph/useSubgraphData.ts b/packages/app/src/subgraph/useSubgraphData.ts index aa45007a..7f5c7f38 100644 --- a/packages/app/src/subgraph/useSubgraphData.ts +++ b/packages/app/src/subgraph/useSubgraphData.ts @@ -17,6 +17,11 @@ export type StewardsSubgraphResponse = { stewards?: SubgraphSteward[] }; export type DonorCollectiveSubgraphResponse = { donorCollectives?: SubgraphDonorCollective[] }; export type ClaimsSubgraphResponse = { claims?: SubgraphClaim[] }; export type SupportEventsSubgraphResponse = { supportEvents?: SubgraphSupportEvent[] }; +export type TotalStatsCollectivesResponse = { + activeCollectives: { id: string }[]; + collectives: { totalDonations: string }[]; + stewards: { id: string }[]; +}; export function useSubgraphData( query: DocumentNode | TypedDocumentNode, diff --git a/packages/app/src/subgraph/useSubgraphTotalStats.ts b/packages/app/src/subgraph/useSubgraphTotalStats.ts new file mode 100644 index 00000000..3297352a --- /dev/null +++ b/packages/app/src/subgraph/useSubgraphTotalStats.ts @@ -0,0 +1,22 @@ +import { gql } from '@apollo/client'; +import { TotalStatsCollectivesResponse, useSubgraphData } from './useSubgraphData'; + +const collectivesTotalStats = gql` + query COLLECTIVES_TOTAL_STATS { + stewards(where: { or: [{ totalEarned_gt: 0 }, { totalUBIEarned_gt: 0 }] }) { + id + } + collectives(where: { totalDonations_gt: 0 }) { + totalDonations + } + activeCollectives: collectives { + id + } + } +`; + +export function useSubgraphTotalStats(): TotalStatsCollectivesResponse | undefined { + const response = useSubgraphData(collectivesTotalStats); + + return response as TotalStatsCollectivesResponse; +} diff --git a/packages/app/src/theme/theme.ts b/packages/app/src/theme/theme.ts index a7993dd1..f8fc57cb 100644 --- a/packages/app/src/theme/theme.ts +++ b/packages/app/src/theme/theme.ts @@ -8,7 +8,7 @@ export const nbTheme = extendTheme({ fontConfig: getPlatformFamilies(fontConfig), colors: { /* g$ design system */ - primary: '#00AFFF', + gdPrimary: '#00AFFF', primaryHoverDark: '#0075AC', white: '#FFFFFF', black: '#000000', @@ -81,6 +81,15 @@ export const nbTheme = extendTheme({ components: { ...components, ...pages, + Spinner: { + variants: { + 'page-loader': () => ({ + borderWidth: '0', + color: 'gdPrimary', + paddingBottom: 4, + }), + }, + }, Text: { baseStyle: { color: 'goodGrey.600', From a1ee2f203fd262636b07618fb43ae014d7dbfe4b Mon Sep 17 00:00:00 2001 From: LewisB Date: Sun, 20 Oct 2024 19:18:47 +0700 Subject: [PATCH 3/4] chore: mobile/responsive styles fixes --- packages/app/package.json | 4 +- packages/app/src/components/ActionButton.tsx | 95 +- packages/app/src/components/theme.ts | 1 + packages/app/src/pages/HomePage.tsx | 148 +- packages/app/src/theme/theme.ts | 2 +- yarn.lock | 1778 +++++++++++++----- 6 files changed, 1496 insertions(+), 532 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 6a0f2bb0..6c80c207 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -19,9 +19,9 @@ "@apollo/client": "^3.10.8", "@celo-tools/celo-ethers-wrapper": "^0.4.0", "@ethersproject/shims": "^5.7.0", - "@gooddollar/good-design": "^0.1.31", + "@gooddollar/good-design": "^0.1.57", "@gooddollar/goodcollective-sdk": "^1.1.1", - "@gooddollar/web3sdk-v2": "^0.2.2", + "@gooddollar/web3sdk-v2": "^0.2.34", "@nerdwallet/apollo-cache-policies": "^3.2.0", "@react-native-aria/interactions": "0.2.3", "@react-native-async-storage/async-storage": "^1.18.2", diff --git a/packages/app/src/components/ActionButton.tsx b/packages/app/src/components/ActionButton.tsx index 0a83c637..62e40010 100644 --- a/packages/app/src/components/ActionButton.tsx +++ b/packages/app/src/components/ActionButton.tsx @@ -1,4 +1,7 @@ -import { Box, Link, Pressable, Text } from 'native-base'; +import { Box, Link, Pressable, Text, useBreakpointValue } from 'native-base'; +import { withTheme } from '@gooddollar/good-design'; + +import { InterSemiBold } from '../utils/webFonts'; type ActionButtonProps = { href?: string; @@ -9,26 +12,78 @@ type ActionButtonProps = { buttonStyles?: any; }; -const ActionButton = ({ href, text, bg, textColor, onPress, buttonStyles }: ActionButtonProps) => { - const { buttonContainer, button, buttonText } = buttonStyles ?? {}; - - const content = ( - - - {text} - - - ); - - if (href) { - return ( - - {content} - +export const theme = { + baseStyle: { + buttonStyles: { + buttonContainer: { + justifyContent: 'space-evenly', + marginTop: 2, + }, + button: { + width: '100%', + height: 47, + flex: 1, + justifyContent: 'space-between', + alignItems: 'center', + paddingRight: 10, + paddingLeft: 10, + paddingBottom: 1, + fontSize: 'md', + fontWeight: 700, + flexDirection: 'row', + flexWrap: 'wrap', + borderRadius: 50, + }, + buttonText: { + ...InterSemiBold, + fontSize: 'md', + }, + }, + }, +}; + +const ActionButton = withTheme({ name: 'ActionButton' })( + ({ href, text, bg, textColor, onPress, buttonStyles }: ActionButtonProps) => { + const responsiveStyles = useBreakpointValue({ + base: { + button: { + ...buttonStyles.button, + justifyContent: 'center', + }, + buttonText: { + ...buttonStyles.buttonText, + height: 47, + display: 'flex', + alignItems: 'center', + }, + buttonContainer: { + ...buttonStyles.buttonContainer, + width: '100%', + }, + }, + md: buttonStyles, + }); + + const { buttonContainer, button, buttonText } = responsiveStyles ?? {}; + + const content = ( + + + {text} + + ); - } - return {content}; -}; + if (href) { + return ( + + {content} + + ); + } + + return {content}; + } +); export default ActionButton; diff --git a/packages/app/src/components/theme.ts b/packages/app/src/components/theme.ts index 24e78153..f7fd1b6b 100644 --- a/packages/app/src/components/theme.ts +++ b/packages/app/src/components/theme.ts @@ -1 +1,2 @@ export { theme as AboutCard } from './AboutCard'; +export { theme as ActionButton } from './ActionButton'; diff --git a/packages/app/src/pages/HomePage.tsx b/packages/app/src/pages/HomePage.tsx index ee71e882..e561c2e5 100644 --- a/packages/app/src/pages/HomePage.tsx +++ b/packages/app/src/pages/HomePage.tsx @@ -1,13 +1,12 @@ import { useRef } from 'react'; -import { withTheme } from '@gooddollar/good-design'; -import { Box, HStack, Text, useMediaQuery, VStack, ScrollView, Spinner } from 'native-base'; +import { useScreenSize, withTheme } from '@gooddollar/good-design'; +import { Box, HStack, ScrollView, Spinner, Text, useBreakpointValue, VStack } from 'native-base'; import { useTotalStats } from '../hooks'; import ActionButton from '../components/ActionButton'; import CollectiveHomeCard from '../components/CollectiveHomeCard'; import Layout from '../components/Layout/Layout'; -import { InterSemiBold } from '../utils/webFonts'; import { IpfsCollective } from '../models/models'; import { useCollectivesMetadata } from '../hooks'; @@ -40,56 +39,29 @@ export const theme = { paddingLeft: 15, paddingRight: 15, }, - sectionContainerDesktop: { - flexDirection: 'row', - flexWrap: 'wrap', - justifyContent: 'center', - alignItems: 'flex-start', - gap: 24, - }, - }, - buttonStyles: { - buttonContainer: { - // flex: 1, - justifyContent: 'space-evenly', - marginTop: 8, - }, - button: { - width: '100%', - height: 47, - flex: 1, - justifyContent: 'space-between', - alignItems: 'center', - paddingRight: 10, - paddingLeft: 10, - paddingTop: 1, - paddingBottom: 1, - fontSize: 'md', - fontWeight: 700, - flexDirection: 'row', - flexWrap: 'wrap', - borderRadius: 50, - }, - buttonText: { - ...InterSemiBold, - fontSize: 'md', - }, - forwardIcon: { - width: 18, - height: 18, - }, }, }, }; -const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles, buttonStyles }: HomePageProps) => { +const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles }: HomePageProps) => { const collectives = useCollectivesMetadata(); const totalStats = useTotalStats(); - const { body, sectionContainer, sectionContainerDesktop } = containerStyles ?? {}; + const { body, sectionContainer } = containerStyles ?? {}; + const { isTabletView } = useScreenSize(); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, + const collectivesContainer = useBreakpointValue({ + base: { + ...sectionContainer, + }, + md: { + ...sectionContainer, + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'center', + alignItems: 'flex-start', + gap: 24, + }, }); const collectivesSectionRef = useRef(null); @@ -114,47 +86,49 @@ const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles, buttonStyle {`GoodCollective is committed to empowering individuals and communities by providing direct digital payments to those who need it most.`} - - - Impact to Date - - - {Object.values(totalStats).map(({ amount, copy }) => ( - - - {amount} - - {copy} - - ))} - - - - - - - - - - + + + + Impact to Date + + + {Object.values(totalStats).map(({ amount, copy }) => ( + + + {amount} + + {copy} + + ))} + + + + + + + + + + + @@ -171,7 +145,7 @@ individuals and communities by providing direct digital payments to those who ne textAlign="center">{`Check out existing GoodCollective pools and support existing members, or start your own!`} - + {!collectives ? ( Loading... ) : ( diff --git a/packages/app/src/theme/theme.ts b/packages/app/src/theme/theme.ts index f8fc57cb..3b5640d7 100644 --- a/packages/app/src/theme/theme.ts +++ b/packages/app/src/theme/theme.ts @@ -56,7 +56,7 @@ export const nbTheme = extendTheme({ // custom keys for breakpoints cannot be used in useBreakpoint hook so we override defaults base: 0, sm: 375, - md: 480, + md: 720, lg: 976, xl: 1280, '2xl': 1440, diff --git a/yarn.lock b/yarn.lock index 438fb750..80c4d920 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,13 @@ __metadata: languageName: node linkType: hard +"@adraffy/ens-normalize@npm:1.10.0": + version: 1.10.0 + resolution: "@adraffy/ens-normalize@npm:1.10.0" + checksum: af0540f963a2632da2bbc37e36ea6593dcfc607b937857133791781e246d47f870d5e3d21fa70d5cfe94e772c284588c81ea3f5b7f4ea8fbb824369444e4dbcb + languageName: node + linkType: hard + "@adraffy/ens-normalize@npm:1.9.4": version: 1.9.4 resolution: "@adraffy/ens-normalize@npm:1.9.4" @@ -2276,7 +2283,21 @@ __metadata: languageName: node linkType: hard -"@coinbase/wallet-sdk@npm:^3.6.6, @coinbase/wallet-sdk@npm:^3.7.2": +"@coinbase/wallet-sdk@npm:4.0.3": + version: 4.0.3 + resolution: "@coinbase/wallet-sdk@npm:4.0.3" + dependencies: + buffer: ^6.0.3 + clsx: ^1.2.1 + eventemitter3: ^5.0.1 + keccak: ^3.0.3 + preact: ^10.16.0 + sha.js: ^2.4.11 + checksum: 47c2818b57f13b1fa403a5e79fc3e039a8cfc4daf9e92910aec4fe32caa4f2326d13c7ff26bbe1921cdcae29acfe41fbf5f0d3c9d58ab39035f05b1737bc06ab + languageName: node + linkType: hard + +"@coinbase/wallet-sdk@npm:^3.6.6": version: 3.7.2 resolution: "@coinbase/wallet-sdk@npm:3.7.2" dependencies: @@ -4417,9 +4438,9 @@ __metadata: languageName: node linkType: hard -"@gooddollar/good-design@npm:^0.1.31": - version: 0.1.31 - resolution: "@gooddollar/good-design@npm:0.1.31" +"@gooddollar/good-design@npm:^0.1.57": + version: 0.1.57 + resolution: "@gooddollar/good-design@npm:0.1.57" dependencies: "@babel/core": ^7.18.10 "@babel/runtime": ^7.18.9 @@ -4428,6 +4449,7 @@ __metadata: "@lingui/react": ^3.14.0 "@magiklabs/react-sdk": ^1.0.8 "@uniswap/sdk-core": ^3.1.0 + async-await-mutex-lock: ^1.0.11 buffer: ^6.0.3 ethers: 5.7.2 metro-react-native-babel-preset: ^0.72.0 @@ -4450,8 +4472,9 @@ __metadata: react-native-webview: ^13.2.2 react-number-format: ^5.1.1 react-use-promise: ^0.5.0 + react-use-wizard: ^2.3.0 require-from-string: ^2.0.2 - checksum: 43ddd320ba5178232c098f8d9933abfa6c935da0622c7f9ccf7aa6cf5d1abc5b314aa6e53483049a0edcee4695cd06542bf9426ebc4ecefc0cf5f408e63faf3e + checksum: 4b5f1ab41f2913d0465f1bc02b19635876231c6f9a6931ef704cdf6c575632ef1742dcacd74a75dd8a863f8e9bb0f617cb926bbef88bde5580f8183a3f9ae44b languageName: node linkType: hard @@ -4465,9 +4488,9 @@ __metadata: "@babel/runtime": ^7.20.0 "@celo-tools/celo-ethers-wrapper": ^0.4.0 "@ethersproject/shims": ^5.7.0 - "@gooddollar/good-design": ^0.1.31 + "@gooddollar/good-design": ^0.1.57 "@gooddollar/goodcollective-sdk": ^1.1.1 - "@gooddollar/web3sdk-v2": ^0.2.2 + "@gooddollar/web3sdk-v2": ^0.2.34 "@nerdwallet/apollo-cache-policies": ^3.2.0 "@react-native-aria/interactions": 0.2.3 "@react-native-async-storage/async-storage": ^1.18.2 @@ -4657,7 +4680,7 @@ __metadata: languageName: node linkType: hard -"@gooddollar/goodprotocol@npm:^2.0.15, @gooddollar/goodprotocol@npm:^2.0.17": +"@gooddollar/goodprotocol@npm:^2.0.17": version: 2.0.17 resolution: "@gooddollar/goodprotocol@npm:2.0.17" dependencies: @@ -4701,9 +4724,9 @@ __metadata: languageName: node linkType: hard -"@gooddollar/web3sdk-v2@npm:^0.2.2": - version: 0.2.4 - resolution: "@gooddollar/web3sdk-v2@npm:0.2.4" +"@gooddollar/web3sdk-v2@npm:^0.2.34": + version: 0.2.34 + resolution: "@gooddollar/web3sdk-v2@npm:0.2.34" dependencies: "@amplitude/analytics-browser": ^1.6.4 "@amplitude/analytics-react-native": ^0.7.0 @@ -4711,22 +4734,21 @@ __metadata: "@ceramicnetwork/stream-tile": ^2.31.0 "@gooddollar/bridge-app": ^1.5.0 "@gooddollar/bridge-contracts": ^1.0.17 - "@gooddollar/goodprotocol": ^2.0.15 + "@gooddollar/goodprotocol": ^2.0.24 "@orbisclub/orbis-sdk": ^0.4.87 "@react-native-firebase/analytics": ^16.4.6 "@sentry/browser": 7.16.0 - "@sentry/react-native": ^4.8.0 + "@sentry/react-native": ^5.15.1 "@solana/web3.js": ^1.72.0 "@types/react": ^18.2.28 - "@usedapp/core": ^1.2.13 "@walletconnect/client": ^1.8.0 "@walletconnect/qrcode-modal": ^1.8.0 - "@web3-onboard/coinbase": ^2.2.4 - "@web3-onboard/core": ^2.20.5 - "@web3-onboard/injected-wallets": ^2.10.1 - "@web3-onboard/react": ^2.8.10 - "@web3-onboard/torus": ^2.2.5 - "@web3-onboard/walletconnect": ^2.4.7 + "@web3-onboard/coinbase": ^2.2.6 + "@web3-onboard/core": ^2.21.2 + "@web3-onboard/injected-wallets": ^2.10.11 + "@web3-onboard/react": ^2.8.13 + "@web3-onboard/torus": ^2.2.6 + "@web3-onboard/walletconnect": ^2.5.3 "@web3auth/base": ^4.0.0 "@web3auth/core": ^4.0.0 "@web3auth/openlogin-adapter": ^4.1.0 @@ -4735,12 +4757,11 @@ __metadata: "@web3modal/react": ^2.6.2 base-64: ^1.0.0 dexie: ^3.2.4 + ethers: 5.7.2 eventemitter3: ^4.0.7 - mixpanel-browser: ^2.45.0 - mixpanel-react-native: ^2.1.0 moment: 2.29.4 multiformats: 9.9.0 - posthog-react-native: ^2.4.0 + posthog-react-native: 2.8.1 react-native-indicative: ^0.2.1 react-native-restart: ^0.0.24 react-use-promise: ^0.5.0 @@ -4748,9 +4769,10 @@ __metadata: wagmi: ^1.3.8 peerDependencies: "@react-native-async-storage/async-storage": 1.17.10 + "@usedapp/core": "*" react-native: "*" react-native-web: "*" - checksum: af2d2cac61d5c53c905c4bafa515477037acf948251ef03fb408b1abac3566ee785380497aa0287ba1b128d78debd91d36ea41984ace0ca40383201c2df7b946 + checksum: 7fe5d5d9d2d8e4f270542b02bc59154684a2178854b4642b0fa0f25740e81e7987c6a862661d428439fc127b67a05d6177385ea0df78534dc320fb6032d15f41 languageName: node linkType: hard @@ -6553,6 +6575,151 @@ __metadata: languageName: node linkType: hard +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-wasm@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-wasm@npm:2.4.1" + dependencies: + is-glob: ^4.0.3 + micromatch: ^4.0.5 + napi-wasm: ^1.1.0 + checksum: 8ac9585b5aac43d7125ea326482b733fbe4564ed68846624647a93899885290a5a3e26c71d16adfc43dec98a69ee73256aa714f53b430be1ef501b6c69973b2e + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": 2.4.1 + "@parcel/watcher-darwin-arm64": 2.4.1 + "@parcel/watcher-darwin-x64": 2.4.1 + "@parcel/watcher-freebsd-x64": 2.4.1 + "@parcel/watcher-linux-arm-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-musl": 2.4.1 + "@parcel/watcher-linux-x64-glibc": 2.4.1 + "@parcel/watcher-linux-x64-musl": 2.4.1 + "@parcel/watcher-win32-arm64": 2.4.1 + "@parcel/watcher-win32-ia32": 2.4.1 + "@parcel/watcher-win32-x64": 2.4.1 + detect-libc: ^1.0.3 + is-glob: ^4.0.3 + micromatch: ^4.0.5 + node-addon-api: ^7.0.0 + node-gyp: latest + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 4da70551da27e565c726b0bbd5ba5afcb2bca36dfd8619a649f0eaa41f693ddd1d630c36e53bc083895d71a3e28bc4199013e557cd13c7af6ccccab28ceecbff + languageName: node + linkType: hard + "@peculiar/asn1-schema@npm:^2.3.6": version: 2.3.8 resolution: "@peculiar/asn1-schema@npm:2.3.8" @@ -8859,6 +9026,63 @@ __metadata: languageName: node linkType: hard +"@sentry-internal/feedback@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry-internal/feedback@npm:7.119.1" + dependencies: + "@sentry/core": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: 12e29e896f590ae437744311ff921f8cd912b4e9c7b5d13be574badc908364ee493548907473f1957ffdcdc7a399141d7b8723aa402a70bdf59bbd929258af37 + languageName: node + linkType: hard + +"@sentry-internal/replay-canvas@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry-internal/replay-canvas@npm:7.119.1" + dependencies: + "@sentry/core": 7.119.1 + "@sentry/replay": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: cb9058a67f268b7b08373744c84281ec19f2106932f604ecb14fdc1860d26a8ed0f7ef3e4db09ec30e15af5ed46d34f05babf2e39b2b42b39c3659d268c5a45f + languageName: node + linkType: hard + +"@sentry-internal/tracing@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry-internal/tracing@npm:7.119.1" + dependencies: + "@sentry/core": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: 766fcb7903d69c6289e543f971039972b7bcde790f7277cce82f244cb7da6b0f8f32f7396018e8cb43eb8976d1682aae23f40e7c110b01ca3549df56df4df831 + languageName: node + linkType: hard + +"@sentry/babel-plugin-component-annotate@npm:2.20.1": + version: 2.20.1 + resolution: "@sentry/babel-plugin-component-annotate@npm:2.20.1" + checksum: 5fecba8c7915693fec811bb06ff0441f28496f6b12e811337a08996a7aa13a13a069c9f9ed28bac95be89d03b422a68d7236ab3376c161edbe051cb0ad2a0193 + languageName: node + linkType: hard + +"@sentry/browser@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/browser@npm:7.119.1" + dependencies: + "@sentry-internal/feedback": 7.119.1 + "@sentry-internal/replay-canvas": 7.119.1 + "@sentry-internal/tracing": 7.119.1 + "@sentry/core": 7.119.1 + "@sentry/integrations": 7.119.1 + "@sentry/replay": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: c4659c6dba099bd48f452c0cc87d2d16b3a2c4cfb59300da257bde4cf0d6928cc7e79543e2c0e8fcb1c7c9d9b00bd61e6a0c2eaefa48d4be33fef1f3d6a7dd75 + languageName: node + linkType: hard + "@sentry/browser@npm:7.16.0": version: 7.16.0 resolution: "@sentry/browser@npm:7.16.0" @@ -8871,49 +9095,89 @@ __metadata: languageName: node linkType: hard -"@sentry/browser@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/browser@npm:7.37.2" - dependencies: - "@sentry/core": 7.37.2 - "@sentry/replay": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - tslib: ^1.9.3 - checksum: b43a7d6f4c1f23dc98a35142dea83e54d4c930963fa8e52b35f78998b7f43a1c6bc99bb487247213c2708f79b53c60c1efacb1390a5542b6971617069c52fa5e +"@sentry/cli-darwin@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-darwin@npm:2.37.0" + conditions: os=darwin languageName: node linkType: hard -"@sentry/cli@npm:1.74.4": - version: 1.74.4 - resolution: "@sentry/cli@npm:1.74.4" - dependencies: - https-proxy-agent: ^5.0.0 - mkdirp: ^0.5.5 - node-fetch: ^2.6.7 - npmlog: ^4.1.2 - progress: ^2.0.3 - proxy-from-env: ^1.1.0 - which: ^2.0.2 - bin: - sentry-cli: bin/sentry-cli - checksum: 6fe63095edbb0f8c250ad813e24fddd65b3266763fbf628cfd865d2f68f7248ec38e600f220d6530a54ebf1a10cc51e1b5fbf203e28fab223d80a5afd4d5dfb2 +"@sentry/cli-linux-arm64@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-linux-arm64@npm:2.37.0" + conditions: (os=linux | os=freebsd) & cpu=arm64 languageName: node linkType: hard -"@sentry/cli@npm:^1.72.0": - version: 1.76.0 - resolution: "@sentry/cli@npm:1.76.0" +"@sentry/cli-linux-arm@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-linux-arm@npm:2.37.0" + conditions: (os=linux | os=freebsd) & cpu=arm + languageName: node + linkType: hard + +"@sentry/cli-linux-i686@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-linux-i686@npm:2.37.0" + conditions: (os=linux | os=freebsd) & (cpu=x86 | cpu=ia32) + languageName: node + linkType: hard + +"@sentry/cli-linux-x64@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-linux-x64@npm:2.37.0" + conditions: (os=linux | os=freebsd) & cpu=x64 + languageName: node + linkType: hard + +"@sentry/cli-win32-i686@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-win32-i686@npm:2.37.0" + conditions: os=win32 & (cpu=x86 | cpu=ia32) + languageName: node + linkType: hard + +"@sentry/cli-win32-x64@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli-win32-x64@npm:2.37.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@sentry/cli@npm:2.37.0": + version: 2.37.0 + resolution: "@sentry/cli@npm:2.37.0" dependencies: + "@sentry/cli-darwin": 2.37.0 + "@sentry/cli-linux-arm": 2.37.0 + "@sentry/cli-linux-arm64": 2.37.0 + "@sentry/cli-linux-i686": 2.37.0 + "@sentry/cli-linux-x64": 2.37.0 + "@sentry/cli-win32-i686": 2.37.0 + "@sentry/cli-win32-x64": 2.37.0 https-proxy-agent: ^5.0.0 - mkdirp: ^0.5.5 node-fetch: ^2.6.7 progress: ^2.0.3 proxy-from-env: ^1.1.0 which: ^2.0.2 + dependenciesMeta: + "@sentry/cli-darwin": + optional: true + "@sentry/cli-linux-arm": + optional: true + "@sentry/cli-linux-arm64": + optional: true + "@sentry/cli-linux-i686": + optional: true + "@sentry/cli-linux-x64": + optional: true + "@sentry/cli-win32-i686": + optional: true + "@sentry/cli-win32-x64": + optional: true bin: sentry-cli: bin/sentry-cli - checksum: 5efa533612b1e8e2a1db8d7b051b8d18224d00f51bb7a8ef73efc431b975cde9ed7888c8da1b16876ce0ad06088818cef56765ea108ec0b22f7df7b4d79962fc + checksum: 92e88688b5148e5abed2cc253290008da89029c5816d7f1bdb5fbed035305c0bcfb5f49e4976ff8ced5fbb876d28e655eef838d32c7a388d3582654ff67d65e0 languageName: node linkType: hard @@ -8930,6 +9194,26 @@ __metadata: languageName: node linkType: hard +"@sentry/core@npm:7.119.0": + version: 7.119.0 + resolution: "@sentry/core@npm:7.119.0" + dependencies: + "@sentry/types": 7.119.0 + "@sentry/utils": 7.119.0 + checksum: 29d9282c9555c64e60d587260ebf1957e4939cc43617a38da4f5fd67723dcf68dad6d5c1d221e75576cf77c0bc0f3362c47ee856193aac120001583186f17e04 + languageName: node + linkType: hard + +"@sentry/core@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/core@npm:7.119.1" + dependencies: + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: cb2c9006bc22bd4039f7a13972b96725f18270bc3342c98c40f8f631c1c29033d93f2169305b0f8e9c695afad39a3b03f03c6caa4ac85e4bb85292f74e73c9bd + languageName: node + linkType: hard + "@sentry/core@npm:7.16.0": version: 7.16.0 resolution: "@sentry/core@npm:7.16.0" @@ -8941,17 +9225,6 @@ __metadata: languageName: node linkType: hard -"@sentry/core@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/core@npm:7.37.2" - dependencies: - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - tslib: ^1.9.3 - checksum: 7a84af7bdd95c217a592188a036cbaf15ae7243a91a7565b74fdab55a9145de88ee57d086138908471e71c644fbab335606988bd99f09f2a6062791433e4ab23 - languageName: node - linkType: hard - "@sentry/hub@npm:5.30.0": version: 5.30.0 resolution: "@sentry/hub@npm:5.30.0" @@ -8963,27 +9236,38 @@ __metadata: languageName: node linkType: hard -"@sentry/hub@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/hub@npm:7.37.2" +"@sentry/hub@npm:7.119.0": + version: 7.119.0 + resolution: "@sentry/hub@npm:7.119.0" dependencies: - "@sentry/core": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - tslib: ^1.9.3 - checksum: ba69cd391c7d17c716153706c4ac271a1668778d6fdd37d85de8d1750f99d547559353ade14aa9224ff031976467f1fdff5b9b7022bb8714f2c6322227acad6d + "@sentry/core": 7.119.0 + "@sentry/types": 7.119.0 + "@sentry/utils": 7.119.0 + checksum: f4c4fc77a7c3f8e161b86e807c999d078127cafa93407b6f7eac68fbd469902097241b5620aed1b08544767fa5f444ca2f7c70891df682fb265ac0efb50842e5 languageName: node linkType: hard -"@sentry/integrations@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/integrations@npm:7.37.2" +"@sentry/integrations@npm:7.119.0": + version: 7.119.0 + resolution: "@sentry/integrations@npm:7.119.0" dependencies: - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 + "@sentry/core": 7.119.0 + "@sentry/types": 7.119.0 + "@sentry/utils": 7.119.0 localforage: ^1.8.1 - tslib: ^1.9.3 - checksum: b5d73cfcc27cc5bb5d335be2366e1e60d06240ea8a788c39ec45cdd139dbe55a713a114583bb95571e7e0d28b31c5e8079b745e670f95c4f21ebad9db2e6b5a7 + checksum: c256f81e7c6983c5bbf6cd9bcf867e96798b285c53aad053a6d1bc4cc0491588042c7c6eca9d5a79d2661d53bc725ad26d56ee2b6631b6249f2332bd1e4a28d9 + languageName: node + linkType: hard + +"@sentry/integrations@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/integrations@npm:7.119.1" + dependencies: + "@sentry/core": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + localforage: ^1.8.1 + checksum: 68d3fa08e9f9584394ff8c15b2d49348867a289642c956649d78c06cc1e91e4d9b90c418f8f3ffd0c4554a472663f97a677e8a1897c80189ee862bcf6d1f2a61 languageName: node linkType: hard @@ -9015,50 +9299,56 @@ __metadata: languageName: node linkType: hard -"@sentry/react-native@npm:^4.8.0": - version: 4.15.2 - resolution: "@sentry/react-native@npm:4.15.2" +"@sentry/react-native@npm:^5.15.1": + version: 5.34.0 + resolution: "@sentry/react-native@npm:5.34.0" dependencies: - "@sentry/browser": 7.37.2 - "@sentry/cli": 1.74.4 - "@sentry/core": 7.37.2 - "@sentry/hub": 7.37.2 - "@sentry/integrations": 7.37.2 - "@sentry/react": 7.37.2 - "@sentry/tracing": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - "@sentry/wizard": 1.4.0 + "@sentry/babel-plugin-component-annotate": 2.20.1 + "@sentry/browser": 7.119.1 + "@sentry/cli": 2.37.0 + "@sentry/core": 7.119.1 + "@sentry/hub": 7.119.0 + "@sentry/integrations": 7.119.0 + "@sentry/react": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 peerDependencies: - react: ">=16.4.1" - react-native: ">=0.56.0" - checksum: 9c7cbeb4603513d008b1feb06ecc5feea99c6bc8f28710358bd98b8dd29dc199cf5d2078acd0604ef82f820e41ffb021a3cd04f8093fa01b8a11d69a874cd4bf + expo: ">=49.0.0" + react: ">=17.0.0" + react-native: ">=0.65.0" + peerDependenciesMeta: + expo: + optional: true + bin: + sentry-expo-upload-sourcemaps: scripts/expo-upload-sourcemaps.js + checksum: 760072a65127cdeebbca492f4821d21f4cd5a3aaf84b11f40135820584cbf529631237d0f47fc82f3b7a0158ffa214593ad475c6471268ec909a2f7e8e53d8b5 languageName: node linkType: hard -"@sentry/react@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/react@npm:7.37.2" +"@sentry/react@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/react@npm:7.119.1" dependencies: - "@sentry/browser": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 + "@sentry/browser": 7.119.1 + "@sentry/core": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 hoist-non-react-statics: ^3.3.2 - tslib: ^1.9.3 peerDependencies: react: 15.x || 16.x || 17.x || 18.x - checksum: d5ebb052cc21a827eef89f19d107c61b7938d23da98f345a7694fa7ad9a7e5eb83ddcac0edb33cf2503baa8cd96249edfc648d5cc8324fc9b408e975236b6633 + checksum: 7c70927a93d679afe854f3d92809acab5270c7377f2c6368be19ddb8f08f3272791a6ee689513b68951042f5d36c3283f803dfe6dadc0ad65970e96d2f63dd7f languageName: node linkType: hard -"@sentry/replay@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/replay@npm:7.37.2" +"@sentry/replay@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/replay@npm:7.119.1" dependencies: - "@sentry/core": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - checksum: 09484769b8aed4f8257b83e89c18f6150a0f3128f16f4d942c785fbcdf202f86b0ef11014fb275b9a5981b3dcce2035775df668ba8bf3ee888639e7fe85130a6 + "@sentry-internal/tracing": 7.119.1 + "@sentry/core": 7.119.1 + "@sentry/types": 7.119.1 + "@sentry/utils": 7.119.1 + checksum: 85fec3e01466e16c8b34c06799f8a256ad301de90d61498349f9aebedeeb6b3069d27247143abee78183c2389232a2e4ce2b60eeedcff6615d1425e1d4322f9a languageName: node linkType: hard @@ -9075,18 +9365,6 @@ __metadata: languageName: node linkType: hard -"@sentry/tracing@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/tracing@npm:7.37.2" - dependencies: - "@sentry/core": 7.37.2 - "@sentry/types": 7.37.2 - "@sentry/utils": 7.37.2 - tslib: ^1.9.3 - checksum: 2dea7e63a864717fa23fe1fcdca00653b43e55e8919136cc9d0cdda439a7ad4314a57671b0cb3d3dfb76a9a9b4e3c6ff39e17781ab459b2eaa6854ffdebaefd2 - languageName: node - linkType: hard - "@sentry/types@npm:5.30.0": version: 5.30.0 resolution: "@sentry/types@npm:5.30.0" @@ -9094,6 +9372,20 @@ __metadata: languageName: node linkType: hard +"@sentry/types@npm:7.119.0": + version: 7.119.0 + resolution: "@sentry/types@npm:7.119.0" + checksum: ffb8dcaf1d5c96defe860e663553511e602cd6bfbe63b0c3fd8cba5ec1c3ea9ad47597527f4d9ef314ba1b11bccf89c4d6f50435df7cbfb92f5a398c6c261f0b + languageName: node + linkType: hard + +"@sentry/types@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/types@npm:7.119.1" + checksum: b04d54e168d57c9d7661caac0c2763200e956b18cb2103e72ec843bc4355ccb9a18f558e0542395b93667ab63b9745f680ed623d6e6148775e85a55a024bd40d + languageName: node + linkType: hard + "@sentry/types@npm:7.16.0": version: 7.16.0 resolution: "@sentry/types@npm:7.16.0" @@ -9101,13 +9393,6 @@ __metadata: languageName: node linkType: hard -"@sentry/types@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/types@npm:7.37.2" - checksum: b6f09beba86700083e5014728c474f627063fa253360133e41ca2891b937dd0b11a878a1b4d62b24a56b985abb2aaad7cc1245642a2b75b05395101faa7bc9c3 - languageName: node - linkType: hard - "@sentry/utils@npm:5.30.0": version: 5.30.0 resolution: "@sentry/utils@npm:5.30.0" @@ -9118,44 +9403,31 @@ __metadata: languageName: node linkType: hard -"@sentry/utils@npm:7.16.0": - version: 7.16.0 - resolution: "@sentry/utils@npm:7.16.0" +"@sentry/utils@npm:7.119.0": + version: 7.119.0 + resolution: "@sentry/utils@npm:7.119.0" dependencies: - "@sentry/types": 7.16.0 - tslib: ^1.9.3 - checksum: decff9f82e7b6b431b1d226f6567762bd2189357ceacb304be20413fcb07be62fad17433979f750e717a07e92625b250bf7493591550f6e146d8adc8d06d6721 + "@sentry/types": 7.119.0 + checksum: 900d5062cc92d9dbbeadd3ac2202da99ba648a78707fdbf878ff0d5eec52fc9d5484d63c281d3a1e7a6151999a5a45a1709ffc5d602e545ddb547182483831d0 languageName: node linkType: hard -"@sentry/utils@npm:7.37.2": - version: 7.37.2 - resolution: "@sentry/utils@npm:7.37.2" +"@sentry/utils@npm:7.119.1": + version: 7.119.1 + resolution: "@sentry/utils@npm:7.119.1" dependencies: - "@sentry/types": 7.37.2 - tslib: ^1.9.3 - checksum: 1c7b38627e3d52106cc64c610c751265b9e4ff62d9e91d258e0479877fbdda76ba9daf6ed7be74e3c4723d4f0192a8ca1519bbce853520e1c94a168b48351b7c + "@sentry/types": 7.119.1 + checksum: cdde755040c3314a4ea842a753bdf676a957478083de14e68232a1fd0f64a5b1cbfe44a223eb53e3fee93fa8a431bcd3ce0f4c6ce43ad464374217716c00a6a3 languageName: node linkType: hard -"@sentry/wizard@npm:1.4.0": - version: 1.4.0 - resolution: "@sentry/wizard@npm:1.4.0" +"@sentry/utils@npm:7.16.0": + version: 7.16.0 + resolution: "@sentry/utils@npm:7.16.0" dependencies: - "@sentry/cli": ^1.72.0 - chalk: ^2.4.1 - glob: ^7.1.3 - inquirer: ^6.2.0 - lodash: ^4.17.15 - opn: ^5.4.0 - r2: ^2.0.1 - read-env: ^1.3.0 - semver: ^7.3.5 - xcode: 3.0.1 - yargs: ^16.2.0 - bin: - sentry-wizard: dist/bin.js - checksum: fa4e686f88e45eb3dd0fdc9863bd28378d3e117abc658629302275e0f464fbbb208f787cd15c635450508dec9e2d2bb5c2704f250f9eb249286e96de9376c356 + "@sentry/types": 7.16.0 + tslib: ^1.9.3 + checksum: decff9f82e7b6b431b1d226f6567762bd2189357ceacb304be20413fcb07be62fad17433979f750e717a07e92625b250bf7493591550f6e146d8adc8d06d6721 languageName: node linkType: hard @@ -9434,7 +9706,7 @@ __metadata: languageName: node linkType: hard -"@stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": +"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": version: 1.0.2 resolution: "@stablelib/random@npm:1.0.2" dependencies: @@ -9473,7 +9745,7 @@ __metadata: languageName: node linkType: hard -"@stablelib/x25519@npm:^1.0.2, @stablelib/x25519@npm:^1.0.3": +"@stablelib/x25519@npm:1.0.3, @stablelib/x25519@npm:^1.0.2, @stablelib/x25519@npm:^1.0.3": version: 1.0.3 resolution: "@stablelib/x25519@npm:1.0.3" dependencies: @@ -11570,7 +11842,7 @@ __metadata: languageName: node linkType: hard -"@usedapp/core@npm:^1.2.10, @usedapp/core@npm:^1.2.13": +"@usedapp/core@npm:^1.2.10": version: 1.2.13 resolution: "@usedapp/core@npm:1.2.13" dependencies: @@ -11988,6 +12260,31 @@ __metadata: languageName: node linkType: hard +"@walletconnect/core@npm:2.17.1": + version: 2.17.1 + resolution: "@walletconnect/core@npm:2.17.1" + dependencies: + "@walletconnect/heartbeat": 1.2.2 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/jsonrpc-ws-connection": 1.0.14 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/logger": 2.1.2 + "@walletconnect/relay-api": 1.0.11 + "@walletconnect/relay-auth": 1.0.4 + "@walletconnect/safe-json": 1.0.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.17.1 + "@walletconnect/utils": 2.17.1 + "@walletconnect/window-getters": 1.0.1 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + checksum: 41fae7cfe91e012881eae3e1214ab626ad119bfdf33866f97ee423011efca828d673bb9496dce5f5f9d71c0997ca46c4c2bc7c3c53ca1aa6580494de945743cb + languageName: node + linkType: hard + "@walletconnect/core@npm:^1.8.0": version: 1.8.0 resolution: "@walletconnect/core@npm:1.8.0" @@ -12071,29 +12368,26 @@ __metadata: languageName: node linkType: hard -"@walletconnect/ethereum-provider@npm:^2.10.2": - version: 2.10.4 - resolution: "@walletconnect/ethereum-provider@npm:2.10.4" +"@walletconnect/ethereum-provider@npm:^2.13.0": + version: 2.17.1 + resolution: "@walletconnect/ethereum-provider@npm:2.17.1" dependencies: - "@walletconnect/jsonrpc-http-connection": ^1.0.7 - "@walletconnect/jsonrpc-provider": ^1.0.13 - "@walletconnect/jsonrpc-types": ^1.0.3 - "@walletconnect/jsonrpc-utils": ^1.0.8 - "@walletconnect/sign-client": 2.10.4 - "@walletconnect/types": 2.10.4 - "@walletconnect/universal-provider": 2.10.4 - "@walletconnect/utils": 2.10.4 - events: ^3.3.0 - peerDependencies: - "@walletconnect/modal": ">=2" - peerDependenciesMeta: - "@walletconnect/modal": - optional: true - checksum: 35b623e8fadb40468d5ee32fa5b37e68ecf3e30a2314e30dd560a554c3bc152c0d8607fc269cb95717889d1032de0fdefd1b9f969081efff04772f341e6a86e8 + "@walletconnect/jsonrpc-http-connection": 1.0.8 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/modal": 2.7.0 + "@walletconnect/sign-client": 2.17.1 + "@walletconnect/types": 2.17.1 + "@walletconnect/universal-provider": 2.17.1 + "@walletconnect/utils": 2.17.1 + events: 3.3.0 + checksum: 4d03152fecc21479fd5833304bd9830b4218d4b2ba33bb16f04339758cc2b36007a9c1218edda42d6a1d62a7373cbcc8d7d729ca1ab10cb5c0541513d98e6e1e languageName: node linkType: hard -"@walletconnect/events@npm:^1.0.1": +"@walletconnect/events@npm:1.0.1, @walletconnect/events@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/events@npm:1.0.1" dependencies: @@ -12114,6 +12408,17 @@ __metadata: languageName: node linkType: hard +"@walletconnect/heartbeat@npm:1.2.2": + version: 1.2.2 + resolution: "@walletconnect/heartbeat@npm:1.2.2" + dependencies: + "@walletconnect/events": ^1.0.1 + "@walletconnect/time": ^1.0.2 + events: ^3.3.0 + checksum: 720341f24dae64acc836015d694b4337a0d1cbc628a3f6ee556771278465cae61366fb0e5af93f9823b06a6f4e23013f3986d6dad2a58c2db4b7c991a73c646d + languageName: node + linkType: hard + "@walletconnect/iso-crypto@npm:^1.8.0": version: 1.8.0 resolution: "@walletconnect/iso-crypto@npm:1.8.0" @@ -12125,6 +12430,18 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-http-connection@npm:1.0.8": + version: 1.0.8 + resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.8" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.6 + "@walletconnect/safe-json": ^1.0.1 + cross-fetch: ^3.1.4 + events: ^3.3.0 + checksum: 2b7c49aca54af2ec37f7bb493062e0bb522ec262889890aa00c133a85dd39beffcfcdb73252600446383a9e6db360cffdc6c50ef7c9b68aae7f5606c8781bdbc + languageName: node + linkType: hard + "@walletconnect/jsonrpc-http-connection@npm:^1.0.0, @walletconnect/jsonrpc-http-connection@npm:^1.0.4, @walletconnect/jsonrpc-http-connection@npm:^1.0.7": version: 1.0.7 resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.7" @@ -12148,6 +12465,17 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-provider@npm:1.0.14": + version: 1.0.14 + resolution: "@walletconnect/jsonrpc-provider@npm:1.0.14" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.8 + "@walletconnect/safe-json": ^1.0.2 + events: ^3.3.0 + checksum: db8f931f93285520c51939603108f5cfe2a90a651d12744766d14471db3a488d2964ece5bfedc6cc93832ecd008cd37e7e1b1a950d9ef3385106ee052b936573 + languageName: node + linkType: hard + "@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.1, @walletconnect/jsonrpc-types@npm:^1.0.2, @walletconnect/jsonrpc-types@npm:^1.0.3": version: 1.0.3 resolution: "@walletconnect/jsonrpc-types@npm:1.0.3" @@ -12158,6 +12486,16 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-types@npm:1.0.4": + version: 1.0.4 + resolution: "@walletconnect/jsonrpc-types@npm:1.0.4" + dependencies: + events: ^3.3.0 + keyvaluestorage-interface: ^1.0.0 + checksum: 99ea5f9f3b0c5892ff874de87dee62cf4fc345124177db1e6e5eaf48b85e2ea3833f0157beca43c51047444938e8eda6362fa8069b33e11d39e1050e7ef6e821 + languageName: node + linkType: hard + "@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.3, @walletconnect/jsonrpc-utils@npm:^1.0.4, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.7, @walletconnect/jsonrpc-utils@npm:^1.0.8": version: 1.0.8 resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8" @@ -12182,6 +12520,34 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-ws-connection@npm:1.0.14": + version: 1.0.14 + resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.14" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.6 + "@walletconnect/safe-json": ^1.0.2 + events: ^3.3.0 + ws: ^7.5.1 + checksum: a401e60b19390098183ef1b2a7b3e15c4dd3c64f9ac87fd2bbc0ae1f7fb31539ba542374ca021193efc4a2ae59fa3b04e588aed98cdf5c364f50524403d50f9f + languageName: node + linkType: hard + +"@walletconnect/keyvaluestorage@npm:1.1.1": + version: 1.1.1 + resolution: "@walletconnect/keyvaluestorage@npm:1.1.1" + dependencies: + "@walletconnect/safe-json": ^1.0.1 + idb-keyval: ^6.2.1 + unstorage: ^1.9.0 + peerDependencies: + "@react-native-async-storage/async-storage": 1.x + peerDependenciesMeta: + "@react-native-async-storage/async-storage": + optional: true + checksum: 7f85cb83963153417745367742070ccb78e03bd62adb549de57a7d5fae7bcfbd9a8f42b2f445ca76a3817ffacacc69d85bbf67757c3616ee7b3525f2f8a0faea + languageName: node + linkType: hard + "@walletconnect/keyvaluestorage@npm:^1.0.2": version: 1.0.2 resolution: "@walletconnect/keyvaluestorage@npm:1.0.2" @@ -12270,6 +12636,16 @@ __metadata: languageName: node linkType: hard +"@walletconnect/logger@npm:2.1.2": + version: 2.1.2 + resolution: "@walletconnect/logger@npm:2.1.2" + dependencies: + "@walletconnect/safe-json": ^1.0.2 + pino: 7.11.0 + checksum: a2bb88b76d95ec5a95279dcc919f1d044d17be8fdda98a01665a607561b445bb56f2245a280933fb19aa7d41d41b688d0ffdb434ac56c46163ad2eb5338f389a + languageName: node + linkType: hard + "@walletconnect/logger@npm:^2.0.1": version: 2.0.1 resolution: "@walletconnect/logger@npm:2.0.1" @@ -12296,6 +12672,15 @@ __metadata: languageName: node linkType: hard +"@walletconnect/modal-core@npm:2.7.0": + version: 2.7.0 + resolution: "@walletconnect/modal-core@npm:2.7.0" + dependencies: + valtio: 1.11.2 + checksum: 2abc4958eed0f65b3f03599f25f7393f06c94602df8ffceb59795e9da6ab3a36242520ee7f1e0733b14278422e9bbba5f850915b0b069f7f0a8f2d48c51365de + languageName: node + linkType: hard + "@walletconnect/modal-react-native@npm:^1.0.0-rc.9": version: 1.0.0-rc.14 resolution: "@walletconnect/modal-react-native@npm:1.0.0-rc.14" @@ -12329,6 +12714,18 @@ __metadata: languageName: node linkType: hard +"@walletconnect/modal-ui@npm:2.7.0": + version: 2.7.0 + resolution: "@walletconnect/modal-ui@npm:2.7.0" + dependencies: + "@walletconnect/modal-core": 2.7.0 + lit: 2.8.0 + motion: 10.16.2 + qrcode: 1.5.3 + checksum: fbea115142df9aeeaa95eeb08581d03d829a5bef1aa145227f3e8c367e4ad990c0b833da37fe82464bf1349744197092a741ca85d3fe9ee255e42ba911f862cc + languageName: node + linkType: hard + "@walletconnect/modal@npm:2.6.2": version: 2.6.2 resolution: "@walletconnect/modal@npm:2.6.2" @@ -12339,6 +12736,16 @@ __metadata: languageName: node linkType: hard +"@walletconnect/modal@npm:2.7.0": + version: 2.7.0 + resolution: "@walletconnect/modal@npm:2.7.0" + dependencies: + "@walletconnect/modal-core": 2.7.0 + "@walletconnect/modal-ui": 2.7.0 + checksum: 028e914db306faac24e350510ea286f08c2aec1b6c39857b2ba8740f7d1bfab6a6c4d2acba5ab63fc127fd7da617ec80ab13599083363f13e72e2aff611615bf + languageName: node + linkType: hard + "@walletconnect/qrcode-modal@npm:^1.8.0": version: 1.8.0 resolution: "@walletconnect/qrcode-modal@npm:1.8.0" @@ -12380,6 +12787,15 @@ __metadata: languageName: node linkType: hard +"@walletconnect/relay-api@npm:1.0.11": + version: 1.0.11 + resolution: "@walletconnect/relay-api@npm:1.0.11" + dependencies: + "@walletconnect/jsonrpc-types": ^1.0.2 + checksum: 9fcddf055de01c04b9fa59035e8c6e31d523743c848d266f528009048aeadaa1b4d9b544bdcb6928e7a69f738d5f0352d1cdebbaa34b1346b937942cb5f6f144 + languageName: node + linkType: hard + "@walletconnect/relay-api@npm:^1.0.9": version: 1.0.9 resolution: "@walletconnect/relay-api@npm:1.0.9" @@ -12390,7 +12806,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/relay-auth@npm:^1.0.4": +"@walletconnect/relay-auth@npm:1.0.4, @walletconnect/relay-auth@npm:^1.0.4": version: 1.0.4 resolution: "@walletconnect/relay-auth@npm:1.0.4" dependencies: @@ -12411,7 +12827,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/safe-json@npm:^1.0.1, @walletconnect/safe-json@npm:^1.0.2": +"@walletconnect/safe-json@npm:1.0.2, @walletconnect/safe-json@npm:^1.0.1, @walletconnect/safe-json@npm:^1.0.2": version: 1.0.2 resolution: "@walletconnect/safe-json@npm:1.0.2" dependencies: @@ -12454,6 +12870,23 @@ __metadata: languageName: node linkType: hard +"@walletconnect/sign-client@npm:2.17.1": + version: 2.17.1 + resolution: "@walletconnect/sign-client@npm:2.17.1" + dependencies: + "@walletconnect/core": 2.17.1 + "@walletconnect/events": 1.0.1 + "@walletconnect/heartbeat": 1.2.2 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/logger": 2.1.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.17.1 + "@walletconnect/utils": 2.17.1 + events: 3.3.0 + checksum: 055a0aa0d176592dec27d096244635b938c098c2f46ea8616c9e7f3fbfa27ecf68b19593c0576e91a74d49b1ced4da83f94813914e3e34eaad175ab96ba49e15 + languageName: node + linkType: hard + "@walletconnect/signer-connection@npm:^1.7.8": version: 1.8.0 resolution: "@walletconnect/signer-connection@npm:1.8.0" @@ -12479,7 +12912,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/time@npm:^1.0.2": +"@walletconnect/time@npm:1.0.2, @walletconnect/time@npm:^1.0.2": version: 1.0.2 resolution: "@walletconnect/time@npm:1.0.2" dependencies: @@ -12516,6 +12949,20 @@ __metadata: languageName: node linkType: hard +"@walletconnect/types@npm:2.17.1": + version: 2.17.1 + resolution: "@walletconnect/types@npm:2.17.1" + dependencies: + "@walletconnect/events": 1.0.1 + "@walletconnect/heartbeat": 1.2.2 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/logger": 2.1.2 + events: 3.3.0 + checksum: 1cf6be908e825ba5b2a292a228f3223c32041fb5c76de6bac1aa3a898f702f917bf500bd6edca8b3e7bcc9303643a114680b7ce29cdefd82c0702e52ba0b3cf1 + languageName: node + linkType: hard + "@walletconnect/types@npm:^1.7.8, @walletconnect/types@npm:^1.8.0, @walletconnect/types@npm:~1.8.0": version: 1.8.0 resolution: "@walletconnect/types@npm:1.8.0" @@ -12557,6 +13004,26 @@ __metadata: languageName: node linkType: hard +"@walletconnect/universal-provider@npm:2.17.1": + version: 2.17.1 + resolution: "@walletconnect/universal-provider@npm:2.17.1" + dependencies: + "@walletconnect/events": 1.0.1 + "@walletconnect/jsonrpc-http-connection": 1.0.8 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/logger": 2.1.2 + "@walletconnect/sign-client": 2.17.1 + "@walletconnect/types": 2.17.1 + "@walletconnect/utils": 2.17.1 + events: 3.3.0 + lodash: 4.17.21 + checksum: 9412f53df01a527595e3afe9341bfed8d87bd0b4703e07c50a19fcc7279729b8a6350cbce637be77b2410273bf2983583e35b92db825a86923a50ebbce4d9aea + languageName: node + linkType: hard + "@walletconnect/utils@npm:2.10.2": version: 2.10.2 resolution: "@walletconnect/utils@npm:2.10.2" @@ -12601,6 +13068,34 @@ __metadata: languageName: node linkType: hard +"@walletconnect/utils@npm:2.17.1": + version: 2.17.1 + resolution: "@walletconnect/utils@npm:2.17.1" + dependencies: + "@ethersproject/hash": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@stablelib/chacha20poly1305": 1.0.1 + "@stablelib/hkdf": 1.0.1 + "@stablelib/random": 1.0.2 + "@stablelib/sha256": 1.0.1 + "@stablelib/x25519": 1.0.3 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/relay-api": 1.0.11 + "@walletconnect/relay-auth": 1.0.4 + "@walletconnect/safe-json": 1.0.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.17.1 + "@walletconnect/window-getters": 1.0.1 + "@walletconnect/window-metadata": 1.0.1 + detect-browser: 5.3.0 + elliptic: 6.5.7 + query-string: 7.1.3 + uint8arrays: 3.1.0 + checksum: 0e2c4c911308e198b0757914536f85464782c3abeab8caaa4e3516354c4f56b40bc83f44f427e0fa1a1b58730d4e30e9f59d310fc4fcead65b7ed92602d59f54 + languageName: node + linkType: hard + "@walletconnect/utils@npm:^1.7.8, @walletconnect/utils@npm:^1.8.0": version: 1.8.0 resolution: "@walletconnect/utils@npm:1.8.0" @@ -12623,7 +13118,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/window-getters@npm:^1.0.0, @walletconnect/window-getters@npm:^1.0.1": +"@walletconnect/window-getters@npm:1.0.1, @walletconnect/window-getters@npm:^1.0.0, @walletconnect/window-getters@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/window-getters@npm:1.0.1" dependencies: @@ -12641,7 +13136,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/window-metadata@npm:^1.0.1": +"@walletconnect/window-metadata@npm:1.0.1, @walletconnect/window-metadata@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/window-metadata@npm:1.0.1" dependencies: @@ -12651,13 +13146,13 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/coinbase@npm:^2.2.4": - version: 2.2.6 - resolution: "@web3-onboard/coinbase@npm:2.2.6" +"@web3-onboard/coinbase@npm:^2.2.6": + version: 2.4.1 + resolution: "@web3-onboard/coinbase@npm:2.4.1" dependencies: - "@coinbase/wallet-sdk": ^3.7.2 - "@web3-onboard/common": ^2.3.3 - checksum: 3aea38b63bb33c450beab0b4e84c0c9898cc35d30a6304f3e73bceede94c31ecee680aa991e6faa4edb10388c175bd8dccc27812ed51bf4ebc7bf93491a86be4 + "@coinbase/wallet-sdk": 4.0.3 + "@web3-onboard/common": ^2.4.1 + checksum: 405f3fcb12c8ed5c56cb225cbddb8d1695fb972214b3c58fe710cba87d61469fcc1741e300f2bf5fa50918233161f5d37db3bf6f65ea198a442e2126debb9822 languageName: node linkType: hard @@ -12672,7 +13167,37 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/core@npm:^2.20.5, @web3-onboard/core@npm:^2.21.2": +"@web3-onboard/common@npm:^2.4.1": + version: 2.4.2 + resolution: "@web3-onboard/common@npm:2.4.2" + dependencies: + joi: 17.9.1 + viem: 2.12.0 + checksum: 24efd1dee0f620019d29340c430a3fd28e1fc1e9140193177f37dc97af8a674771432dac0a6dda60c37aab0a2a7c90a75c33b462aac6cbcabc2f4766329939b3 + languageName: node + linkType: hard + +"@web3-onboard/core@npm:2.23.0": + version: 2.23.0 + resolution: "@web3-onboard/core@npm:2.23.0" + dependencies: + "@web3-onboard/common": ^2.4.1 + bnc-sdk: ^4.6.7 + bowser: ^2.11.0 + eventemitter3: ^4.0.7 + joi: 17.9.1 + lodash.merge: ^4.6.2 + lodash.partition: ^4.6.0 + nanoid: ^4.0.0 + rxjs: ^7.5.5 + svelte: ^3.49.0 + svelte-i18n: ^3.3.13 + viem: 2.12.0 + checksum: 26f931ab6b9e991aafd2653f4b110eb679b2eed60c219d359911d9cc23cce959e1cafb72198067a25ae9d112d223190e3be499acfcda11ed44410183c336ae5f + languageName: node + linkType: hard + +"@web3-onboard/core@npm:^2.21.2": version: 2.21.2 resolution: "@web3-onboard/core@npm:2.21.2" dependencies: @@ -12693,14 +13218,14 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/injected-wallets@npm:^2.10.1": - version: 2.10.9 - resolution: "@web3-onboard/injected-wallets@npm:2.10.9" +"@web3-onboard/injected-wallets@npm:^2.10.11": + version: 2.11.2 + resolution: "@web3-onboard/injected-wallets@npm:2.11.2" dependencies: - "@web3-onboard/common": ^2.3.3 + "@web3-onboard/common": ^2.4.1 joi: 17.9.1 lodash.uniqby: ^4.7.0 - checksum: 023d99ade5da87ab6e3d25fa25f9509697557f8b9a8c8f250e6859daf5017e84793a7c5e261986d171c00c3ff5fef8a42122165ab94d255c4e27a805467e93d2 + checksum: ac8dae873ed4fecbfe8fc8fa29a19386fccb4a86f0c0f425d21a95f8e4740575784a6bbce11e3564925304a7a083f0423808fe82d371a0561e5cb66815812645 languageName: node linkType: hard @@ -12717,26 +13242,38 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/torus@npm:^2.2.5": - version: 2.2.6 - resolution: "@web3-onboard/torus@npm:2.2.6" +"@web3-onboard/react@npm:^2.8.13": + version: 2.10.0 + resolution: "@web3-onboard/react@npm:2.10.0" + dependencies: + "@web3-onboard/common": ^2.4.1 + "@web3-onboard/core": 2.23.0 + use-sync-external-store: 1.0.0 + peerDependencies: + react: ">=16.8" + checksum: 0271bb5c654a78050a479c397ca23366a93eabf45470c24fb34eb952ddaca5268b3a1ff63508082c57512f32e1cdfb775f8c233bf86a1759abb3b9bf96ca6aa5 + languageName: node + linkType: hard + +"@web3-onboard/torus@npm:^2.2.6": + version: 2.3.1 + resolution: "@web3-onboard/torus@npm:2.3.1" dependencies: "@toruslabs/torus-embed": 2.2.9 - "@web3-onboard/common": ^2.3.3 - checksum: 40c90ac90511d109d768b25a78d4ababb2dd4c8a8c02c69d8ccd589ea978d783c24cd06555c95761e244221daab3186ae0c5a83c9eafb2e8b7dac12f7991d564 + "@web3-onboard/common": ^2.4.1 + checksum: 1733345f7dd768d0dec80f917f411d13a8de7c5b4c1a7332ea3ff6dc51c41d180f6019262e0b0720804e06cfddde05c15b002d6cdc2cf1309cd2e22648b1735e languageName: node linkType: hard -"@web3-onboard/walletconnect@npm:^2.4.7": - version: 2.5.0 - resolution: "@web3-onboard/walletconnect@npm:2.5.0" +"@web3-onboard/walletconnect@npm:^2.5.3": + version: 2.6.1 + resolution: "@web3-onboard/walletconnect@npm:2.6.1" dependencies: - "@walletconnect/ethereum-provider": ^2.10.2 - "@walletconnect/modal": 2.6.2 - "@web3-onboard/common": ^2.3.3 + "@walletconnect/ethereum-provider": ^2.13.0 + "@web3-onboard/common": ^2.4.1 joi: 17.9.1 rxjs: ^7.5.2 - checksum: cbd185405773b3c6e0439f592e9d477b7bf4805d16f21db85b721c95cd91c8bcf07f77c2c2243e813ad625f5806a5aa8e49b099ced0f81d6d99a3db52318b704 + checksum: 3a3f8c07399a3153ede5f28ec214b21b0f300201fcd4d5f179ccce898bdec2f3e6ef19b2ecbcc6ac3755ebdf3d5871cb10b13cec8052a3da5687c5bc9aa0fdd0 languageName: node linkType: hard @@ -13278,6 +13815,21 @@ __metadata: languageName: node linkType: hard +"abitype@npm:1.0.0": + version: 1.0.0 + resolution: "abitype@npm:1.0.0" + peerDependencies: + typescript: ">=5.0.4" + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + checksum: ea2c0548c3ba58c37a6de7483d63389074da498e63d803b742bbe94eb4eaa1f51a35d000c424058b2583aef56698cf07c696eb3bc4dd0303bc20c6f0826a241a + languageName: node + linkType: hard + "abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" @@ -13423,6 +13975,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.12.1": + version: 8.13.0 + resolution: "acorn@npm:8.13.0" + bin: + acorn: bin/acorn + checksum: f1541f05eb5d6ff67990d1927290809b1ebb663ac96d9c7057c935cf29c5bcaba6d39f37bd007f4bb814f162f142b0f2b2dd4b14128b8fcfaf9f0508a6f05f1c + languageName: node + linkType: hard + "actor@npm:^2.3.1": version: 2.3.1 resolution: "actor@npm:2.3.1" @@ -13598,13 +14159,6 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^3.2.0": - version: 3.2.0 - resolution: "ansi-escapes@npm:3.2.0" - checksum: 0f94695b677ea742f7f1eed961f7fd8d05670f744c6ad1f8f635362f6681dcfbc1575cb05b43abc7bb6d67e25a75fb8c7ea8f2a57330eb2c76b33f18cb2cef0a - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -13748,7 +14302,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.1, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:^3.1.3, anymatch@npm:~3.1.1, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -13836,13 +14390,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.0.3": - version: 1.2.0 - resolution: "aproba@npm:1.2.0" - checksum: 0fca141966559d195072ed047658b6e6c4fe92428c385dd38e288eacfc55807e7b4989322f030faff32c0f46bb0bc10f1e0ac32ec22d25315a1e5bbc0ebb76dc - languageName: node - linkType: hard - "aproba@npm:^1.0.3 || ^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" @@ -13860,16 +14407,6 @@ __metadata: languageName: node linkType: hard -"are-we-there-yet@npm:~1.1.2": - version: 1.1.7 - resolution: "are-we-there-yet@npm:1.1.7" - dependencies: - delegates: ^1.0.0 - readable-stream: ^2.0.6 - checksum: 70d251719c969b2745bfe5ddf3ebaefa846a636e90a6d5212573676af5d6670e15457761d4725731e19cbebdce42c4ab0cbedf23ab047f2a08274985aa10a3c7 - languageName: node - linkType: hard - "arg@npm:4.1.0": version: 4.1.0 resolution: "arg@npm:4.1.0" @@ -14222,6 +14759,13 @@ __metadata: languageName: node linkType: hard +"async-await-mutex-lock@npm:^1.0.11": + version: 1.0.11 + resolution: "async-await-mutex-lock@npm:1.0.11" + checksum: 90dcedd4c9846109ac157ddf33087130b90b31d310469cfe19cf0f068497f8aa199196a36d35b8086dcffc44cd8cdb16f7da879141cbc1520f049931711ee20c + languageName: node + linkType: hard + "async-eventemitter@npm:^0.2.2": version: 0.2.4 resolution: "async-eventemitter@npm:0.2.4" @@ -15778,6 +16322,15 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 + languageName: node + linkType: hard + "brorand@npm:^1.0.1, brorand@npm:^1.1.0": version: 1.1.0 resolution: "brorand@npm:1.1.0" @@ -16467,13 +17020,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:5.0.0": - version: 5.0.0 - resolution: "camelcase@npm:5.0.0" - checksum: 8bfe920e0472d79d34f0279da1391f155bcce7fc74c99b49dafae4f787396040a34f4023da837ab0b4372e63224b460f9524b495906863c38876faea9da53705 - languageName: node - linkType: hard - "camelcase@npm:^3.0.0": version: 3.0.0 resolution: "camelcase@npm:3.0.0" @@ -16766,13 +17312,6 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d - languageName: node - linkType: hard - "charenc@npm:>= 0.0.1": version: 0.0.2 resolution: "charenc@npm:0.0.2" @@ -16865,6 +17404,25 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + languageName: node + linkType: hard + "chownr@npm:^1.0.1, chownr@npm:^1.1.4": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -16923,6 +17481,15 @@ __metadata: languageName: node linkType: hard +"citty@npm:^0.1.5, citty@npm:^0.1.6": + version: 0.1.6 + resolution: "citty@npm:0.1.6" + dependencies: + consola: ^3.2.3 + checksum: 3fbcaaea92d328deddb5aba7d629d9076d4f1aa0338f59db7ea647a8f51eedc14b7f6218c87ad03c9e3c126213ba87d13d7774f9c30d64209f4b074aa83bd6ab + languageName: node + linkType: hard + "cjs-module-lexer@npm:1.2.3, cjs-module-lexer@npm:^1.0.0": version: 1.2.3 resolution: "cjs-module-lexer@npm:1.2.3" @@ -17006,15 +17573,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-cursor@npm:2.1.0" - dependencies: - restore-cursor: ^2.0.0 - checksum: d88e97bfdac01046a3ffe7d49f06757b3126559d7e44aa2122637eb179284dc6cd49fca2fac4f67c19faaf7e6dab716b6fe1dfcd309977407d8c7578ec2d044d - languageName: node - linkType: hard - "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -17126,10 +17684,14 @@ __metadata: languageName: node linkType: hard -"cli-width@npm:^2.0.0": - version: 2.2.1 - resolution: "cli-width@npm:2.2.1" - checksum: 3c21b897a2ff551ae5b3c3ab32c866ed2965dcf7fb442f81adf0e27f4a397925c8f84619af7bcc6354821303f6ee9b2aa31d248306174f32c287986158cf4eed +"clipboardy@npm:^4.0.0": + version: 4.0.0 + resolution: "clipboardy@npm:4.0.0" + dependencies: + execa: ^8.0.1 + is-wsl: ^3.1.0 + is64bit: ^2.0.0 + checksum: ac7fa4438451d4a509fd7163505c08be92087c1a0ab8f54f8063eb04a69191ded1b59333344e2fd60bad9688e2a3dd69e50a813bf05ebf8369fa8bf65a0f47a2 languageName: node linkType: hard @@ -17234,7 +17796,7 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^1.1.0, clsx@npm:^1.1.1": +"clsx@npm:^1.1.0, clsx@npm:^1.1.1, clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 @@ -17581,6 +18143,13 @@ __metadata: languageName: node linkType: hard +"confbox@npm:^0.1.8": + version: 0.1.8 + resolution: "confbox@npm:0.1.8" + checksum: 5c7718ab22cf9e35a31c21ef124156076ae8c9dc65e6463d54961caf5a1d529284485a0fdf83fd23b27329f3b75b0c8c07d2e36c699f5151a2efe903343f976a + languageName: node + linkType: hard + "connect@npm:^3.6.5": version: 3.7.0 resolution: "connect@npm:3.7.0" @@ -17593,6 +18162,13 @@ __metadata: languageName: node linkType: hard +"consola@npm:^3.2.3": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 32ec70e177dd2385c42e38078958cc7397be91db21af90c6f9faa0b16168b49b1c61d689338604bbb2d64370b9347a35f42a9197663a913d3a405bb0ce728499 + languageName: node + linkType: hard + "console-browserify@npm:^1.1.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" @@ -17600,7 +18176,7 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0, console-control-strings@npm:~1.1.0": +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed @@ -17686,6 +18262,13 @@ __metadata: languageName: node linkType: hard +"cookie-es@npm:^1.2.2": + version: 1.2.2 + resolution: "cookie-es@npm:1.2.2" + checksum: 099050c30c967c89aa72d1d7984e87b3395f3e709cf148d297f436828ebfcc39033f5374d2efdc46d9b5e3eee50b1d59635432c252e57329fea7f09afeb4d055 + languageName: node + linkType: hard + "cookie-signature@npm:1.0.6": version: 1.0.6 resolution: "cookie-signature@npm:1.0.6" @@ -17995,6 +18578,15 @@ __metadata: languageName: node linkType: hard +"crossws@npm:>=0.2.0 <0.4.0": + version: 0.3.1 + resolution: "crossws@npm:0.3.1" + dependencies: + uncrypto: ^0.1.3 + checksum: 4950893a2f3f37ade0284f64aa48b71a2f0600a19283b5b786011642d2f7e946567d5c170cadf1768178d8442d90e382e2dec3f2f4025698a52a5b53089f3d1f + languageName: node + linkType: hard + "crypt@npm:>= 0.0.1": version: 0.0.2 resolution: "crypt@npm:0.0.2" @@ -18481,6 +19073,13 @@ __metadata: languageName: node linkType: hard +"defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 40e3af6338f195ac1564f53d1887fa2d0429ac7e8c081204bc4d29191180059d3952b5f4e08fe5df8d59eb873aa26e9c88b56d4fac699673d4a372c93620b229 + languageName: node + linkType: hard + "delay@npm:4.3.0": version: 4.3.0 resolution: "delay@npm:4.3.0" @@ -18579,6 +19178,13 @@ __metadata: languageName: node linkType: hard +"destr@npm:^2.0.3": + version: 2.0.3 + resolution: "destr@npm:2.0.3" + checksum: 4521b145ba6118919a561f7d979d623793695a516d1b9df704de81932601bf9cf21c47278e1cb93a309c88a14f4fd1f18680bb49ebef8b2546cc7f415e7ae48e + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -18625,6 +19231,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: daaaed925ffa7889bd91d56e9624e6c8033911bb60f3a50a74a87500680652969dbaab9526d1e200a4c94acf80fc862a22131841145a0a8482d60a99c24f4a3e + languageName: node + linkType: hard + "detect-libc@npm:^2.0.0": version: 2.0.2 resolution: "detect-libc@npm:2.0.2" @@ -19169,6 +19784,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:6.5.7": + version: 6.5.7 + resolution: "elliptic@npm:6.5.7" + dependencies: + bn.js: ^4.11.9 + brorand: ^1.1.0 + hash.js: ^1.0.0 + hmac-drbg: ^1.0.1 + inherits: ^2.0.4 + minimalistic-assert: ^1.0.1 + minimalistic-crypto-utils: ^1.0.1 + checksum: af0ffddffdbc2fea4eeec74388cd73e62ed5a0eac6711568fb28071566319785df529c968b0bf1250ba4bc628e074b2d64c54a633e034aa6f0c6b152ceb49ab8 + languageName: node + linkType: hard + "emittery@npm:0.10.0": version: 0.10.0 resolution: "emittery@npm:0.10.0" @@ -21269,6 +21899,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^8.0.1 + human-signals: ^5.0.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + languageName: node + linkType: hard + "exenv@npm:^1.2.2": version: 1.2.2 resolution: "exenv@npm:1.2.2" @@ -21408,17 +22055,6 @@ __metadata: languageName: node linkType: hard -"external-editor@npm:^3.0.3": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: ^0.7.0 - iconv-lite: ^0.4.24 - tmp: ^0.0.33 - checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 - languageName: node - linkType: hard - "extglob@npm:^2.0.4": version: 2.0.4 resolution: "extglob@npm:2.0.4" @@ -21721,15 +22357,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^2.0.0": - version: 2.0.0 - resolution: "figures@npm:2.0.0" - dependencies: - escape-string-regexp: ^1.0.5 - checksum: 081beb16ea57d1716f8447c694f637668322398b57017b20929376aaf5def9823b35245b734cdd87e4832dc96e9c6f46274833cada77bfe15e5f980fea1fd21f - languageName: node - linkType: hard - "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -21776,6 +22403,15 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 + languageName: node + linkType: hard + "filter-obj@npm:^1.1.0": version: 1.1.0 resolution: "filter-obj@npm:1.1.0" @@ -22426,22 +23062,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:~2.7.3": - version: 2.7.4 - resolution: "gauge@npm:2.7.4" - dependencies: - aproba: ^1.0.3 - console-control-strings: ^1.0.0 - has-unicode: ^2.0.0 - object-assign: ^4.1.0 - signal-exit: ^3.0.0 - string-width: ^1.0.1 - strip-ansi: ^3.0.1 - wide-align: ^1.1.0 - checksum: a89b53cee65579b46832e050b5f3a79a832cc422c190de79c6b8e2e15296ab92faddde6ddf2d376875cbba2b043efa99b9e1ed8124e7365f61b04e3cee9d40ee - languageName: node - linkType: hard - "generic-pool@npm:3.4.2": version: 3.4.2 resolution: "generic-pool@npm:3.4.2" @@ -22541,6 +23161,13 @@ __metadata: languageName: node linkType: hard +"get-port-please@npm:^3.1.2": + version: 3.1.2 + resolution: "get-port-please@npm:3.1.2" + checksum: 8e65b56459ead2f31c446d76bb8eb639c33e04e72b07a4dd5d8acc39738f12962591e90b2befecf10492844d0d11c2122c281f5204ee48692d4a8ba0ec68733a + languageName: node + linkType: hard + "get-port@npm:^3.1.0": version: 3.2.0 resolution: "get-port@npm:3.2.0" @@ -22573,6 +23200,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -23119,6 +23753,24 @@ __metadata: languageName: node linkType: hard +"h3@npm:^1.12.0": + version: 1.13.0 + resolution: "h3@npm:1.13.0" + dependencies: + cookie-es: ^1.2.2 + crossws: ">=0.2.0 <0.4.0" + defu: ^6.1.4 + destr: ^2.0.3 + iron-webcrypto: ^1.2.1 + ohash: ^1.1.4 + radix3: ^1.1.2 + ufo: ^1.5.4 + uncrypto: ^0.1.3 + unenv: ^1.10.0 + checksum: c71bd0aae3f855684e5f4edfb6bb91353fcd3b5a7636116eb9c61bb3a22eed6636bb024895183ee31f12a8c8370e9ad83a8f17cc8538193bb39e2a33303f61e1 + languageName: node + linkType: hard + "handlebars@npm:^4.0.1": version: 4.7.8 resolution: "handlebars@npm:4.7.8" @@ -23390,7 +24042,7 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.0, has-unicode@npm:^2.0.1": +"has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 @@ -23715,6 +24367,13 @@ __metadata: languageName: node linkType: hard +"http-shutdown@npm:^1.2.2": + version: 1.2.2 + resolution: "http-shutdown@npm:1.2.2" + checksum: 5dccd94f4fe4f51f9cbd7ec4586121160cd6470728e581662ea8032724440d891c4c92b8210b871ac468adadb3c99c40098ad0f752a781a550abae49dfa26206 + languageName: node + linkType: hard + "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -23794,6 +24453,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -23826,7 +24492,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": +"iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -23844,6 +24510,13 @@ __metadata: languageName: node linkType: hard +"idb-keyval@npm:^6.2.1": + version: 6.2.1 + resolution: "idb-keyval@npm:6.2.1" + checksum: 7c0836f832096086e99258167740181132a71dd2694c8b8454a4f5ec69114ba6d70983115153306f0b6de1c8d3bad04f67eed3dff8f50c96815b9985d6d78470 + languageName: node + linkType: hard + "idna-uts46-hx@npm:^2.3.1": version: 2.3.1 resolution: "idna-uts46-hx@npm:2.3.1" @@ -24021,27 +24694,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^6.2.0": - version: 6.5.2 - resolution: "inquirer@npm:6.5.2" - dependencies: - ansi-escapes: ^3.2.0 - chalk: ^2.4.2 - cli-cursor: ^2.1.0 - cli-width: ^2.0.0 - external-editor: ^3.0.3 - figures: ^2.0.0 - lodash: ^4.17.12 - mute-stream: 0.0.7 - run-async: ^2.2.0 - rxjs: ^6.4.0 - string-width: ^2.1.0 - strip-ansi: ^5.1.0 - through: ^2.3.6 - checksum: 175ad4cd1ebed493b231b240185f1da5afeace5f4e8811dfa83cf55dcae59c3255eaed990aa71871b0fd31aa9dc212f43c44c50ed04fb529364405e72f484d28 - languageName: node - linkType: hard - "insert-module-globals@npm:^7.2.1": version: 7.2.1 resolution: "insert-module-globals@npm:7.2.1" @@ -24275,6 +24927,13 @@ __metadata: languageName: node linkType: hard +"iron-webcrypto@npm:^1.2.1": + version: 1.2.1 + resolution: "iron-webcrypto@npm:1.2.1" + checksum: b158d1893c8d037c11a7dcfd1998b519f31f979643c2c505c6eb1170fd63553498a58b05947d5dea116975df8f12ede5ca235cb68e4c1f404fa6695e4508c60c + languageName: node + linkType: hard + "is-accessor-descriptor@npm:^1.0.1": version: 1.0.1 resolution: "is-accessor-descriptor@npm:1.0.1" @@ -24444,6 +25103,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + "is-electron@npm:^2.2.0": version: 2.2.2 resolution: "is-electron@npm:2.2.2" @@ -24566,6 +25234,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -24858,6 +25537,24 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^3.1.0": + version: 3.1.0 + resolution: "is-wsl@npm:3.1.0" + dependencies: + is-inside-container: ^1.0.0 + checksum: f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9 + languageName: node + linkType: hard + +"is64bit@npm:^2.0.0": + version: 2.0.0 + resolution: "is64bit@npm:2.0.0" + dependencies: + system-architecture: ^0.1.0 + checksum: 253079e64b6f9bb90295a63b73a046bea67364cdc104bc5abeffcf4cbc52b3e66b0e921cb14f686deb71b5cab628f9f490845c1194c6e94f84068d177c7f15cd + languageName: node + linkType: hard + "isarray@npm:0.0.1": version: 0.0.1 resolution: "isarray@npm:0.0.1" @@ -24977,6 +25674,15 @@ __metadata: languageName: node linkType: hard +"isows@npm:1.0.4": + version: 1.0.4 + resolution: "isows@npm:1.0.4" + peerDependencies: + ws: "*" + checksum: a3ee62e3d6216abb3adeeb2a551fe2e7835eac87b05a6ecc3e7739259bf5f8e83290501f49e26137390c8093f207fc3378d4a7653aab76ad7bbab4b2dba9c5b9 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -25712,6 +26418,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^2.1.2": + version: 2.3.3 + resolution: "jiti@npm:2.3.3" + bin: + jiti: lib/jiti-cli.mjs + checksum: f1a2b87d937569c966f00a8c9153c8f3e02445b31e034fdaed1b9639a4ecfae3c4df24c7644d5b4764c566f8dee09132a5b55cd049b48e618024accd31d8e6b3 + languageName: node + linkType: hard + "joi@npm:17.9.1": version: 17.9.1 resolution: "joi@npm:17.9.1" @@ -26652,6 +27367,35 @@ __metadata: languageName: node linkType: hard +"listhen@npm:^1.7.2": + version: 1.9.0 + resolution: "listhen@npm:1.9.0" + dependencies: + "@parcel/watcher": ^2.4.1 + "@parcel/watcher-wasm": ^2.4.1 + citty: ^0.1.6 + clipboardy: ^4.0.0 + consola: ^3.2.3 + crossws: ">=0.2.0 <0.4.0" + defu: ^6.1.4 + get-port-please: ^3.1.2 + h3: ^1.12.0 + http-shutdown: ^1.2.2 + jiti: ^2.1.2 + mlly: ^1.7.1 + node-forge: ^1.3.1 + pathe: ^1.1.2 + std-env: ^3.7.0 + ufo: ^1.5.4 + untun: ^0.1.3 + uqr: ^0.1.2 + bin: + listen: bin/listhen.mjs + listhen: bin/listhen.mjs + checksum: 2e65587ac5ca4e4dd590c7b2f132350c96ded594e34245d172662c0566fad1f09cae0ec1b129b0c754d961586db045e2496315d56f6274db769fd0fa6a13ec4f + languageName: node + linkType: hard + "listr2@npm:6.6.1": version: 6.6.1 resolution: "listr2@npm:6.6.1" @@ -27071,7 +27815,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -27243,6 +27987,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.4.3": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + languageName: node + linkType: hard + "lru-cache@npm:^3.2.0": version: 3.2.0 resolution: "lru-cache@npm:3.2.0" @@ -28470,6 +29221,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.5": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: ^3.0.3 + picomatch: ^2.3.1 + checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 + languageName: node + linkType: hard + "micromodal@npm:^0.4.10": version: 0.4.10 resolution: "micromodal@npm:0.4.10" @@ -28523,10 +29284,12 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^1.0.0": - version: 1.2.0 - resolution: "mimic-fn@npm:1.2.0" - checksum: 69c08205156a1f4906d9c46f9b4dc08d18a50176352e77fdeb645cedfe9f20c0b19865d465bd2dec27a5c432347f24dc07fc3695e11159d193f892834233e939 +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 languageName: node linkType: hard @@ -28779,14 +29542,7 @@ __metadata: languageName: node linkType: hard -"mixpanel-browser@npm:^2.45.0": - version: 2.47.0 - resolution: "mixpanel-browser@npm:2.47.0" - checksum: f44e0e0ac70b3772ed1be7c826d3cb0ffbf2dda35e6b927a3f7167795283745ae16573ae6ba303238bf776e3a5ed72c98c3c3f97e2a3c72bcbada15b956e9e9d - languageName: node - linkType: hard - -"mixpanel-react-native@npm:^2.1.0, mixpanel-react-native@npm:^2.3.1": +"mixpanel-react-native@npm:^2.3.1": version: 2.3.1 resolution: "mixpanel-react-native@npm:2.3.1" checksum: 019d11ee55f6da89d30111a31c514bc7de0ec2be51d81e4258f9dc89054fc44c5306bd7a7374d30e8cc2485b5db4825869a3b5764a8cf516127d08550c812a98 @@ -28850,6 +29606,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.7.1, mlly@npm:^1.7.2": + version: 1.7.2 + resolution: "mlly@npm:1.7.2" + dependencies: + acorn: ^8.12.1 + pathe: ^1.1.2 + pkg-types: ^1.2.0 + ufo: ^1.5.4 + checksum: 66a92b0ac4f76cac22d2d6688338fece01f2ac4afd7816cd4224525c1f9032c452075730c54c3ef7558485455d704b7141060e517785c93b276b2faa3bb04199 + languageName: node + linkType: hard + "mnemonist@npm:^0.38.0, mnemonist@npm:^0.38.3": version: 0.38.5 resolution: "mnemonist@npm:0.38.5" @@ -28986,7 +29754,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:1.2.0, mri@npm:^1.1.0": +"mri@npm:1.2.0, mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -29168,13 +29936,6 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.7": - version: 0.0.7 - resolution: "mute-stream@npm:0.0.7" - checksum: a9d4772c1c84206aa37c218ed4751cd060239bf1d678893124f51e037f6f22f4a159b2918c030236c93252638a74beb29c9b1fd3267c9f24d4b3253cf1eaa86f - languageName: node - linkType: hard - "mv@npm:~2": version: 2.1.1 resolution: "mv@npm:2.1.1" @@ -29271,6 +30032,13 @@ __metadata: languageName: node linkType: hard +"napi-wasm@npm:^1.1.0": + version: 1.1.3 + resolution: "napi-wasm@npm:1.1.3" + checksum: c02424b9e26f152ea1224bdf950d09292ab5f2069644d878c96aa416316f05ba58ae9a6f39f664c592b523e6f39b6b0b831a5987b10e26ce2154da3b4f2b7859 + languageName: node + linkType: hard + "native-abort-controller@npm:^1.0.3, native-abort-controller@npm:^1.0.4": version: 1.0.4 resolution: "native-abort-controller@npm:1.0.4" @@ -29449,6 +30217,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: latest + checksum: 46051999e3289f205799dfaf6bcb017055d7569090f0004811110312e2db94cb4f8654602c7eb77a60a1a05142cc2b96e1b5c56ca4622c41a5c6370787faaf30 + languageName: node + linkType: hard + "node-cache@npm:^5.1.2": version: 5.1.2 resolution: "node-cache@npm:5.1.2" @@ -29483,7 +30260,14 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2, node-fetch@npm:^2.0.0-alpha.8, node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.8": +"node-fetch-native@npm:^1.6.4": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 7b159f610e037e8813750096a6616ec6771e9abf868aa6e75e5b790bfc2ba2d92cf2abcce33c18fd01f2e5e5cc72de09c78bd4381e7f8c0887f7de21bd96f045 + languageName: node + linkType: hard + +"node-fetch@npm:2, node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.8": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -29546,6 +30330,13 @@ __metadata: languageName: node linkType: hard +"node-forge@npm:^1.3.1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 + languageName: node + linkType: hard + "node-gyp-build@npm:4.3.0": version: 4.3.0 resolution: "node-gyp-build@npm:4.3.0" @@ -29796,18 +30587,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^4.1.2": - version: 4.1.2 - resolution: "npmlog@npm:4.1.2" - dependencies: - are-we-there-yet: ~1.1.2 - console-control-strings: ~1.1.0 - gauge: ~2.7.3 - set-blocking: ~2.0.0 - checksum: edbda9f95ec20957a892de1839afc6fb735054c3accf6fbefe767bac9a639fd5cea2baeac6bd2bcd50a85cb54924d57d9886c81c7fbc2332c2ddd19227504192 - languageName: node - linkType: hard - "npmlog@npm:^5.0.1": version: 5.0.1 resolution: "npmlog@npm:5.0.1" @@ -30071,6 +30850,24 @@ __metadata: languageName: node linkType: hard +"ofetch@npm:^1.3.4": + version: 1.4.1 + resolution: "ofetch@npm:1.4.1" + dependencies: + destr: ^2.0.3 + node-fetch-native: ^1.6.4 + ufo: ^1.5.4 + checksum: 005974d238b7212dc10b67ddb019eda9cf89ba781dfa8c2f31d8eea0782261d626ce7a36ac377deb71ec0f72f05a023e6d3cc31b7384fbbabdb328afbf1bf929 + languageName: node + linkType: hard + +"ohash@npm:^1.1.4": + version: 1.1.4 + resolution: "ohash@npm:1.1.4" + checksum: 8c63897941e67129ac81a15cfc2bb66a7b122200c9ee244e86d3d6b7aa7f5d9f7cb98d33dfc38b169c83b77c9babcc6f66ccbc90864d1f862f10ac8b72d80d66 + languageName: node + linkType: hard + "on-exit-leak-free@npm:^0.2.0": version: 0.2.0 resolution: "on-exit-leak-free@npm:0.2.0" @@ -30135,15 +30932,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^2.0.0": - version: 2.0.1 - resolution: "onetime@npm:2.0.1" - dependencies: - mimic-fn: ^1.0.0 - checksum: bb44015ac7a525d0fb43b029a583d4ad359834632b4424ca209b438aacf6d669dda81b5edfbdb42c22636e607b276ba5589f46694a729e3bc27948ce26f4cc1a - languageName: node - linkType: hard - "onetime@npm:^5.1.0, onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" @@ -30199,15 +30987,6 @@ __metadata: languageName: node linkType: hard -"opn@npm:^5.4.0": - version: 5.5.0 - resolution: "opn@npm:5.5.0" - dependencies: - is-wsl: ^1.1.0 - checksum: 35b677b5a1fd6c8cb1996b0607671ba79f7ce9fa029217d54eafaf6bee13eb7e700691c6a415009140fd02a435fffdfd143875f3b233b60f3f9d631c6f6b81a0 - languageName: node - linkType: hard - "optimism@npm:^0.18.0": version: 0.18.0 resolution: "optimism@npm:0.18.0" @@ -30925,6 +31704,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 + languageName: node + linkType: hard + "pathval@npm:^1.1.1": version: 1.1.1 resolution: "pathval@npm:1.1.1" @@ -31118,6 +31904,17 @@ __metadata: languageName: node linkType: hard +"pkg-types@npm:^1.2.0": + version: 1.2.1 + resolution: "pkg-types@npm:1.2.1" + dependencies: + confbox: ^0.1.8 + mlly: ^1.7.2 + pathe: ^1.1.2 + checksum: d2e3ad7aef36cc92b17403e61c04db521bf0beb175ccb4d432c284239f00ec32ff37feb072a260613e9ff727911cff1127a083fd52f91b9bec6b62970f385702 + languageName: node + linkType: hard + "pkg-up@npm:^3.1.0": version: 3.1.0 resolution: "pkg-up@npm:3.1.0" @@ -31184,7 +31981,7 @@ __metadata: languageName: node linkType: hard -"posthog-react-native@npm:^2.4.0": +"posthog-react-native@npm:2.8.1": version: 2.8.1 resolution: "posthog-react-native@npm:2.8.1" peerDependencies: @@ -31238,6 +32035,13 @@ __metadata: languageName: node linkType: hard +"preact@npm:^10.16.0": + version: 10.24.3 + resolution: "preact@npm:10.24.3" + checksum: 372f601576f52d6417a750a8732cd83c4fc133b0b136f82ea69f013092266ad0213c160b71ae421a0fc7ab04caacb651c29dbf515e3aec26d82b0a8675e8786e + languageName: node + linkType: hard + "precond@npm:0.2": version: 0.2.3 resolution: "precond@npm:0.2.3" @@ -31864,17 +32668,6 @@ __metadata: languageName: node linkType: hard -"r2@npm:^2.0.1": - version: 2.0.1 - resolution: "r2@npm:2.0.1" - dependencies: - caseless: ^0.12.0 - node-fetch: ^2.0.0-alpha.8 - typedarray-to-buffer: ^3.1.2 - checksum: 0f683fdda0720d189d91acb65f0632c0713798a6036116d3f2f2155e1a2cc5c347e095ec8514f11c2d3bcb63bc6487833efc4f8b9cb5636d0c100c76d2992815 - languageName: node - linkType: hard - "rabin-rs@npm:^2.1.0": version: 2.1.0 resolution: "rabin-rs@npm:2.1.0" @@ -31882,6 +32675,13 @@ __metadata: languageName: node linkType: hard +"radix3@npm:^1.1.2": + version: 1.1.2 + resolution: "radix3@npm:1.1.2" + checksum: c4d49a3f603b5b7b7704dd907383c8884d12064d6d475f7ca8b05ecc7604d3bd73524b55e0fbcca0f7c9da3a2e9b473a6b4fbc0b639c29c2b0e85020ebda67d3 + languageName: node + linkType: hard + "ramda@npm:^0.27.1": version: 0.27.2 resolution: "ramda@npm:0.27.2" @@ -32587,6 +33387,16 @@ __metadata: languageName: node linkType: hard +"react-use-wizard@npm:^2.3.0": + version: 2.3.0 + resolution: "react-use-wizard@npm:2.3.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: cb17577c90001d56c244b248ed3f51d8c92b26c5ec2438d0c61c352c9087d63789beb9412219022513b9a9b8161acbdaf793e427c1f3e43d4daba1397f7bf080 + languageName: node + linkType: hard + "react@npm:17.0.2": version: 17.0.2 resolution: "react@npm:17.0.2" @@ -32606,15 +33416,6 @@ __metadata: languageName: node linkType: hard -"read-env@npm:^1.3.0": - version: 1.3.0 - resolution: "read-env@npm:1.3.0" - dependencies: - camelcase: 5.0.0 - checksum: 4742007cca1ed0af04858f7c58fa137cbf2f8d086505e645d94c44da870ab90bdf5d2cbd4bcc327710c530ca1f7298529cdfdc9dc1de13eb0209d8e686035e0d - languageName: node - linkType: hard - "read-only-stream@npm:^2.0.0": version: 2.0.0 resolution: "read-only-stream@npm:2.0.0" @@ -32667,7 +33468,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2, readable-stream@npm:^2.2.8, readable-stream@npm:^2.2.9, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.2.8, readable-stream@npm:^2.2.9, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -33266,16 +34067,6 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^2.0.0": - version: 2.0.0 - resolution: "restore-cursor@npm:2.0.0" - dependencies: - onetime: ^2.0.0 - signal-exit: ^3.0.2 - checksum: 482e13d02d834b6e5e3aa90304a8b5e840775d6f06916cc92a50038adf9f098dcc72405b567da8a37e137ae40ad3e31896fa3136ae62f7a426c2fbf53d036536 - languageName: node - linkType: hard - "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -33461,13 +34252,6 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^2.2.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: a2c88aa15df176f091a2878eb840e68d0bdee319d8d97bbb89112223259cebecb94bc0defd735662b83c2f7a30bed8cddb7d1674eb48ae7322dc602b22d03797 - languageName: node - linkType: hard - "run-parallel-limit@npm:^1.1.0": version: 1.1.0 resolution: "run-parallel-limit@npm:1.1.0" @@ -33493,7 +34277,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.4.0, rxjs@npm:^6.6.3": +"rxjs@npm:^6.6.3": version: 6.6.7 resolution: "rxjs@npm:6.6.7" dependencies: @@ -33879,7 +34663,7 @@ __metadata: languageName: node linkType: hard -"set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0": +"set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 @@ -34138,7 +34922,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^4.0.1": +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 @@ -34799,6 +35583,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 + languageName: node + linkType: hard + "stream-blackhole@npm:^1.0.3": version: 1.0.3 resolution: "stream-blackhole@npm:1.0.3" @@ -34988,7 +35779,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^2.1.0, string-width@npm:^2.1.1": +"string-width@npm:^2.1.1": version: 2.1.1 resolution: "string-width@npm:2.1.1" dependencies: @@ -35472,6 +36263,13 @@ __metadata: languageName: node linkType: hard +"system-architecture@npm:^0.1.0": + version: 0.1.0 + resolution: "system-architecture@npm:0.1.0" + checksum: ca0dd793c45c354ab57dd7fc8ce7dc9923a6e07382bd3b22eb5b08f55ddb0217c390d00767549c5155fd4ce7ef23ffdd8cfb33dd4344cbbd37837d085a50f6f0 + languageName: node + linkType: hard + "table-layout@npm:^1.0.2": version: 1.0.2 resolution: "table-layout@npm:1.0.2" @@ -35714,7 +36512,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:2.3.x, through@npm:>=2.2.7 <3, through@npm:^2.3.6": +"through@npm:2, through@npm:2.3.x, through@npm:>=2.2.7 <3": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -36589,7 +37387,7 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:3.1.5, typedarray-to-buffer@npm:^3.1.2, typedarray-to-buffer@npm:^3.1.5": +"typedarray-to-buffer@npm:3.1.5, typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" dependencies: @@ -36710,6 +37508,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.5.4": + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: f244703b7d4f9f0df4f9af23921241ab73410b591f4e5b39c23e3147f3159b139a4b1fb5903189c306129f7a16b55995dac0008e0fbae88a37c3e58cbc34d833 + languageName: node + linkType: hard + "uglify-es@npm:^3.1.9": version: 3.3.10 resolution: "uglify-es@npm:3.3.10" @@ -36747,6 +37552,15 @@ __metadata: languageName: node linkType: hard +"uint8arrays@npm:3.1.0": + version: 3.1.0 + resolution: "uint8arrays@npm:3.1.0" + dependencies: + multiformats: ^9.4.2 + checksum: 77fe0c8644417a849f5cfc0e5a5308c65e3b779a56f816dd27b8f60f7fac1ac7626f57c9abacec77d147beb5da8401b86438b1591d93cae7f7511a3211cc01b3 + languageName: node + linkType: hard + "uint8arrays@npm:3.1.1, uint8arrays@npm:^3.0.0, uint8arrays@npm:^3.1.0": version: 3.1.1 resolution: "uint8arrays@npm:3.1.1" @@ -36820,6 +37634,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 07160e08806dd6cea16bb96c3fd54cd70fc801e02fc3c6f86980144d15c9ebbd1c55587f7280a207b3af6cd34901c0d0b77ada5a02c2f7081a033a05acf409e2 + languageName: node + linkType: hard + "undeclared-identifiers@npm:^1.1.2": version: 1.1.3 resolution: "undeclared-identifiers@npm:1.1.3" @@ -36867,6 +37688,19 @@ __metadata: languageName: node linkType: hard +"unenv@npm:^1.10.0": + version: 1.10.0 + resolution: "unenv@npm:1.10.0" + dependencies: + consola: ^3.2.3 + defu: ^6.1.4 + mime: ^3.0.0 + node-fetch-native: ^1.6.4 + pathe: ^1.1.2 + checksum: 4510b20adb2d4481d5ea9996aa37f452add8085fbee76838088c57750014a5a6d6b05f9599333fdc32e7fcb52064ffbd39ee47d9d1c5d634109651ed260819d5 + languageName: node + linkType: hard + "unfetch@npm:^4.2.0": version: 4.2.0 resolution: "unfetch@npm:4.2.0" @@ -36980,6 +37814,78 @@ __metadata: languageName: node linkType: hard +"unstorage@npm:^1.9.0": + version: 1.12.0 + resolution: "unstorage@npm:1.12.0" + dependencies: + anymatch: ^3.1.3 + chokidar: ^3.6.0 + destr: ^2.0.3 + h3: ^1.12.0 + listhen: ^1.7.2 + lru-cache: ^10.4.3 + mri: ^1.2.0 + node-fetch-native: ^1.6.4 + ofetch: ^1.3.4 + ufo: ^1.5.4 + peerDependencies: + "@azure/app-configuration": ^1.7.0 + "@azure/cosmos": ^4.1.1 + "@azure/data-tables": ^13.2.2 + "@azure/identity": ^4.4.1 + "@azure/keyvault-secrets": ^4.8.0 + "@azure/storage-blob": ^12.24.0 + "@capacitor/preferences": ^6.0.2 + "@netlify/blobs": ^6.5.0 || ^7.0.0 + "@planetscale/database": ^1.19.0 + "@upstash/redis": ^1.34.0 + "@vercel/kv": ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.4.1 + peerDependenciesMeta: + "@azure/app-configuration": + optional: true + "@azure/cosmos": + optional: true + "@azure/data-tables": + optional: true + "@azure/identity": + optional: true + "@azure/keyvault-secrets": + optional: true + "@azure/storage-blob": + optional: true + "@capacitor/preferences": + optional: true + "@netlify/blobs": + optional: true + "@planetscale/database": + optional: true + "@upstash/redis": + optional: true + "@vercel/kv": + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + checksum: 894d0009b5336d256fbea63c3c902df4b85084e5670e2fdc6359c0f18aa7de4479eabbdced9ff0e16d7c21cd8b00c1ac657ca002627f29f4838e1a60362c2567 + languageName: node + linkType: hard + +"untun@npm:^0.1.3": + version: 0.1.3 + resolution: "untun@npm:0.1.3" + dependencies: + citty: ^0.1.5 + consola: ^3.2.3 + pathe: ^1.1.1 + bin: + untun: bin/untun.mjs + checksum: ad886c242dbac250f88ef6f18ad780fa084d07e4d030ab5ceacfe4378aa4bf2d3549b8ed8352bad5776facd9aaee05e3f914c661adc11bace867e2a12fd7bee5 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.13": version: 1.0.13 resolution: "update-browserslist-db@npm:1.0.13" @@ -37010,6 +37916,13 @@ __metadata: languageName: node linkType: hard +"uqr@npm:^0.1.2": + version: 0.1.2 + resolution: "uqr@npm:0.1.2" + checksum: 717766f03814172f5a9934dae2c4c48f6de065a4fd7da82aa513bd8300b621c1e606efdd174478cab79093e5ba244a99f0c0b1b0b9c0175656ab5e637a006d92 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -37358,6 +38271,27 @@ __metadata: languageName: node linkType: hard +"viem@npm:2.12.0": + version: 2.12.0 + resolution: "viem@npm:2.12.0" + dependencies: + "@adraffy/ens-normalize": 1.10.0 + "@noble/curves": 1.2.0 + "@noble/hashes": 1.3.2 + "@scure/bip32": 1.3.2 + "@scure/bip39": 1.2.1 + abitype: 1.0.0 + isows: 1.0.4 + ws: 8.13.0 + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 7373bf955eca9a044cfa51a3d0eece054eb91d1088f500a056c7d3f84ea10e8c79efaaca237e6d47beb9c7f21febd67085b8098838ad6f2fe13fe4c19ee626e8 + languageName: node + linkType: hard + "viem@npm:^1.0.0, viem@npm:^1.10.8, viem@npm:^1.2.13": version: 1.18.9 resolution: "viem@npm:1.18.9" @@ -38774,7 +39708,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.0, wide-align@npm:^1.1.2": +"wide-align@npm:^1.1.2": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -39033,7 +39967,7 @@ __metadata: languageName: node linkType: hard -"xcode@npm:3.0.1, xcode@npm:^3.0.1": +"xcode@npm:^3.0.1": version: 3.0.1 resolution: "xcode@npm:3.0.1" dependencies: @@ -39307,7 +40241,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:16.2.0, yargs@npm:^16.2.0": +"yargs@npm:16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0" dependencies: From 0707878be975e8124aa817c05a202d40fbdc8a52 Mon Sep 17 00:00:00 2001 From: Lewis B Date: Fri, 25 Oct 2024 11:27:08 +0700 Subject: [PATCH 4/4] 224 homepage with factory (#229) * wip: use factory instead of withTheme * remove withTheme hook usage, add: centralize breakpoint handling * style fixes * fix: handle copy in ui * add typing --- packages/app/README.md | 35 --- packages/app/src/components/AboutCard.tsx | 100 ++++--- packages/app/src/components/ActionButton.tsx | 120 ++++---- .../app/src/components/CollectiveHomeCard.tsx | 14 +- .../app/src/components/DonateComponent.tsx | 33 +-- .../FlowingDonationsRowItem.old.tsx | 96 ------- .../components/FlowingDonationsRowItem.tsx | 14 +- .../components/Header/ConnectWalletMenu.tsx | 15 +- packages/app/src/components/Header/Header.tsx | 20 +- packages/app/src/components/ImpactButton.tsx | 11 +- packages/app/src/components/Layout/Layout.tsx | 26 +- packages/app/src/components/RowItem.tsx | 12 +- .../TransactionList/TransactionList.tsx | 13 +- .../app/src/components/ViewCollective.tsx | 18 +- .../components/WalletCards/WalletCards.tsx | 15 +- packages/app/src/components/WalletProfile.tsx | 10 +- packages/app/src/components/theme.ts | 2 - packages/app/src/hooks/useTotalStats.ts | 3 +- packages/app/src/pages/HomePage.tsx | 270 ++++++++++-------- packages/app/src/pages/ViewDonorsPage.tsx | 12 +- packages/app/src/pages/ViewStewardsPage.tsx | 11 +- packages/app/src/pages/theme.ts | 1 - packages/app/src/theme/hooks/index.ts | 1 + packages/app/src/theme/hooks/useScreenSize.ts | 23 ++ packages/app/src/theme/theme.ts | 29 +- 25 files changed, 401 insertions(+), 503 deletions(-) delete mode 100644 packages/app/README.md delete mode 100644 packages/app/src/components/FlowingDonationsRowItem.old.tsx delete mode 100644 packages/app/src/components/theme.ts delete mode 100644 packages/app/src/pages/theme.ts create mode 100644 packages/app/src/theme/hooks/index.ts create mode 100644 packages/app/src/theme/hooks/useScreenSize.ts diff --git a/packages/app/README.md b/packages/app/README.md deleted file mode 100644 index 8d2b7dd2..00000000 --- a/packages/app/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# How to theme - -Current theme based on design system can be found here: GoodCollective/packages/app/src/theme -example of implementation can be found at: - -1. import components from 'native-base' instead of 'react-native' - 1a. they are mostly the same, but have extended styling options and are connected to the above mentioned theme -2. by using the withTheme hook you can apply styles similiar to how you would do with react-native's StyleSheet - ie. - -``` -import { withTheme } from '@gooddollar/good-design' -import { Text } from 'native-base' - -export const theme = { - baseStyle: { - fontStyles: { - title: { - fontWeight: 700, - color: 'black', - fontFamily: 'heading', - fontSize: 'md', - } - }, - ...// define additional styles - } -} - -const TestComponent = withTheme({ name: })(({ fontStyles }: any) => ( - TestText // add as props so that it can apply the definitions from theme -)) -``` - -3. todo: add example for breakpoint values -4. todo: add example for variants diff --git a/packages/app/src/components/AboutCard.tsx b/packages/app/src/components/AboutCard.tsx index 06a81376..ef83e269 100644 --- a/packages/app/src/components/AboutCard.tsx +++ b/packages/app/src/components/AboutCard.tsx @@ -1,63 +1,61 @@ import { Text, View } from 'native-base'; -import { withTheme } from '@gooddollar/good-design'; -export const theme = { - baseStyle: { - fontStyles: { - title: { - fontWeight: 700, - color: 'black', - fontFamily: 'heading', - fontSize: 'md', - }, - subTitle: { - color: 'goodGrey.500', - fontWeight: 700, - lineHeight: 24, - fontFamily: 'heading', - fontSize: 'sm', - }, - paragraph: { - color: 'goodGrey.500', - width: '100%', - lineHeight: 24, - fontWeight: 400, - fontSize: 'sm', - }, +export const aboutCardStyles = { + font: { + title: { + fontWeight: 700, + color: 'black', + fontFamily: 'heading', + fontSize: 'md', }, - styles: { - aboutContainer: { - padding: 15, - marginBottom: 10, - }, - mainContainer: { - width: '100%', - backgroundColor: 'white', - paddingVertical: 16, - paddingHorizontal: 12, - borderRadius: 20, - gap: 24, - }, - elevation: { - shadowColor: 'black', - shadowOffset: { - width: 0, - height: 12, - }, - shadowOpacity: 0.15, - shadowRadius: 15, - elevation: 24, + subTitle: { + color: 'goodGrey.500', + fontWeight: 700, + lineHeight: 24, + fontFamily: 'heading', + fontSize: 'sm', + }, + paragraph: { + color: 'goodGrey.500', + width: '100%', + lineHeight: 24, + fontWeight: 400, + fontSize: 'sm', + }, + }, + container: { + aboutContainer: { + padding: 15, + marginBottom: 10, + }, + mainContainer: { + width: '100%', + backgroundColor: 'white', + paddingVertical: 16, + paddingHorizontal: 12, + borderRadius: 20, + gap: 24, + }, + elevation: { + shadowColor: 'black', + shadowOffset: { + width: 0, + height: 12, }, + shadowOpacity: 0.15, + shadowRadius: 15, + elevation: 24, }, }, }; -const AboutCard = withTheme({ name: 'AboutCard' })(({ styles, fontStyles, ...props }: any) => { - const { title, subTitle, paragraph } = fontStyles; +const AboutCard = () => { + const { font, container } = aboutCardStyles; + const { title, subTitle, paragraph } = font; return ( - - + + About Collective GoodCollective makes visible the climate stewardship activities of individuals, and provides a direct channel @@ -103,6 +101,6 @@ const AboutCard = withTheme({ name: 'AboutCard' })(({ styles, fontStyles, ...pro ); -}); +}; export default AboutCard; diff --git a/packages/app/src/components/ActionButton.tsx b/packages/app/src/components/ActionButton.tsx index 62e40010..84ecd2fb 100644 --- a/packages/app/src/components/ActionButton.tsx +++ b/packages/app/src/components/ActionButton.tsx @@ -1,5 +1,4 @@ import { Box, Link, Pressable, Text, useBreakpointValue } from 'native-base'; -import { withTheme } from '@gooddollar/good-design'; import { InterSemiBold } from '../utils/webFonts'; @@ -9,81 +8,74 @@ type ActionButtonProps = { bg: string; textColor: string; onPress?: any; - buttonStyles?: any; }; -export const theme = { - baseStyle: { - buttonStyles: { - buttonContainer: { - justifyContent: 'space-evenly', - marginTop: 2, - }, +export const buttonStyles = { + buttonContainer: { + justifyContent: 'space-evenly', + marginTop: 2, + }, + button: { + width: '100%', + height: 47, + flex: 1, + justifyContent: 'space-between', + alignItems: 'center', + paddingRight: 10, + paddingLeft: 10, + paddingBottom: 1, + fontSize: 'md', + fontWeight: 700, + flexDirection: 'row', + flexWrap: 'wrap', + borderRadius: 50, + }, + buttonText: { + ...InterSemiBold, + fontSize: 'md', + }, +}; + +const ActionButton = ({ href, text, bg, textColor, onPress }: ActionButtonProps) => { + const responsiveStyles = useBreakpointValue({ + base: { button: { - width: '100%', + ...buttonStyles.button, + justifyContent: 'center', + }, + buttonText: { + ...buttonStyles.buttonText, height: 47, - flex: 1, - justifyContent: 'space-between', + display: 'flex', alignItems: 'center', - paddingRight: 10, - paddingLeft: 10, - paddingBottom: 1, - fontSize: 'md', - fontWeight: 700, - flexDirection: 'row', - flexWrap: 'wrap', - borderRadius: 50, }, - buttonText: { - ...InterSemiBold, - fontSize: 'md', + buttonContainer: { + ...buttonStyles.buttonContainer, + width: '100%', }, }, - }, -}; + lg: buttonStyles, + }); -const ActionButton = withTheme({ name: 'ActionButton' })( - ({ href, text, bg, textColor, onPress, buttonStyles }: ActionButtonProps) => { - const responsiveStyles = useBreakpointValue({ - base: { - button: { - ...buttonStyles.button, - justifyContent: 'center', - }, - buttonText: { - ...buttonStyles.buttonText, - height: 47, - display: 'flex', - alignItems: 'center', - }, - buttonContainer: { - ...buttonStyles.buttonContainer, - width: '100%', - }, - }, - md: buttonStyles, - }); + const { buttonContainer, button, buttonText } = responsiveStyles ?? {}; - const { buttonContainer, button, buttonText } = responsiveStyles ?? {}; + const content = ( + + + {text} + + + ); - const content = ( - - - {text} - - + if (href) { + return ( + + {content} + ); - - if (href) { - return ( - - {content} - - ); - } - - return {content}; } -); + + return {content}; +}; export default ActionButton; diff --git a/packages/app/src/components/CollectiveHomeCard.tsx b/packages/app/src/components/CollectiveHomeCard.tsx index 471a06b6..90ce7917 100644 --- a/packages/app/src/components/CollectiveHomeCard.tsx +++ b/packages/app/src/components/CollectiveHomeCard.tsx @@ -1,10 +1,11 @@ -import { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; +import { Image, StyleSheet, Text, TouchableOpacity, TouchableOpacityProps, View } from 'react-native'; + import { InterSemiBold, InterSmall } from '../utils/webFonts'; import useCrossNavigate from '../routes/useCrossNavigate'; import { Colors } from '../utils/colors'; -import { useMediaQuery } from 'native-base'; import { useState } from 'react'; import { Ocean } from '../assets'; +import { useScreenSize } from '../theme/hooks'; interface CollectiveHomeCardProps { name: string; @@ -15,11 +16,9 @@ interface CollectiveHomeCardProps { function CollectiveHomeCard({ name, description, headerImage, route }: CollectiveHomeCardProps) { const { navigate } = useCrossNavigate(); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView, isTabletView } = useScreenSize(); - const headerImg = { uri: headerImage } ?? Ocean; + const headerImg = headerImage ? { uri: headerImage } : Ocean; const [isParagraphExpanded, setIsParagraphExpanded] = useState(false); @@ -28,8 +27,9 @@ function CollectiveHomeCard({ name, description, headerImage, route }: Collectiv style={[ styles.cardContainer, styles.elevation, - isDesktopResolution ? styles.cardContainerDesktop : {}, + isDesktopView ? styles.cardContainerDesktop : {}, isParagraphExpanded ? { height: 'auto' } : {}, + isTabletView ? { marginBottom: 20 } : {}, ]} onPress={() => navigate(`/collective/${route}`)}> diff --git a/packages/app/src/components/DonateComponent.tsx b/packages/app/src/components/DonateComponent.tsx index 6d17bd2e..6ee177fc 100644 --- a/packages/app/src/components/DonateComponent.tsx +++ b/packages/app/src/components/DonateComponent.tsx @@ -1,27 +1,30 @@ import { useCallback, useMemo, useState } from 'react'; import { Image, StyleSheet, Text, TextInput, View } from 'react-native'; +import { Link } from 'native-base'; +import { useAccount, useNetwork } from 'wagmi'; +import { useParams } from 'react-router-native'; +import Decimal from 'decimal.js'; +import { waitForTransaction } from '@wagmi/core'; +import { TransactionReceipt } from 'viem'; + import { InterRegular, InterSemiBold, InterSmall } from '../utils/webFonts'; import RoundedButton from './RoundedButton'; import CompleteDonationModal from './modals/CompleteDonationModal'; import { Colors } from '../utils/colors'; -import { Link, useMediaQuery } from 'native-base'; +import { useScreenSize } from '../theme/hooks'; + import Dropdown from './Dropdown'; import { getDonateStyles, getFrequencyPlural } from '../utils'; import { useContractCalls, useGetTokenPrice } from '../hooks'; -import { useAccount, useNetwork } from 'wagmi'; import { Collective } from '../models/models'; import { useGetTokenBalance } from '../hooks/useGetTokenBalance'; import { acceptablePriceImpact, Frequency, frequencyOptions, GDEnvTokens, SupportedNetwork } from '../models/constants'; import { InfoIconOrange } from '../assets'; -import { useParams } from 'react-router-native'; -import Decimal from 'decimal.js'; import { formatFiatCurrency } from '../lib/formatFiatCurrency'; import ErrorModal from './modals/ErrorModal'; import { SwapRouteState, useSwapRoute } from '../hooks/useSwapRoute'; import { useApproveSwapTokenCallback } from '../hooks/useApproveSwapTokenCallback'; import ApproveSwapModal from './modals/ApproveSwapModal'; -import { waitForTransaction } from '@wagmi/core'; -import { TransactionReceipt } from 'viem'; import { useToken, useTokenList } from '../hooks/useTokenList'; import { formatDecimalStringInput } from '../lib/formatDecimalStringInput'; import ThankYouModal from './modals/ThankYouModal'; @@ -32,9 +35,7 @@ interface DonateComponentProps { } function DonateComponent({ collective }: DonateComponentProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const { id: collectiveId = '0x' } = useParams(); const { address, isConnected } = useAccount(); @@ -212,12 +213,12 @@ function DonateComponent({ collective }: DonateComponentProps) { const onCloseErrorModal = () => setErrorMessage(undefined); return ( - + Donate Support {collective.ipfs.name}{' '} - {isDesktopResolution && ( + {isDesktopView && ( <>
@@ -227,7 +228,7 @@ function DonateComponent({ collective }: DonateComponentProps) {
- {!isDesktopResolution && ( + {!isDesktopView && ( <> Donation Currency: @@ -256,7 +257,7 @@ function DonateComponent({ collective }: DonateComponentProps) { )} - {isDesktopResolution && ( + {isDesktopView && ( @@ -289,7 +290,7 @@ function DonateComponent({ collective }: DonateComponentProps) { Donation Frequency - How often do you want to donate this {!isDesktopResolution &&
} amount? + How often do you want to donate this {!isDesktopView &&
} amount?
@@ -319,7 +320,7 @@ function DonateComponent({ collective }: DonateComponentProps) { <> - {!isDesktopResolution && ( + {!isDesktopView && ( <> {frequency !== 'One-Time' && ( @@ -495,7 +496,7 @@ function DonateComponent({ collective }: DonateComponentProps) { )} - - - {rowInfo} - - - - - {currency} {formattedDonations} - {isDesktopResolution && currency && = {donationsUsdValue} USD} - - {!isDesktopResolution && currency && = {donationsUsdValue} USD} - - - - ); -} - -const styles = StyleSheet.create({ - row: { - width: '100%', - backgroundColor: Colors.white, - flex: 1, - flexDirection: 'row', - alignItems: 'center', - }, - imageTitleRow: { - width: '100%', - flex: 1, - flexDirection: 'row', - alignItems: 'center', - }, - rowIcon: { - height: 28, - width: 28, - }, - rowInfo: { - marginLeft: 8, - maxWidth: '60%', - fontWeight: '700', - fontSize: 16, - color: Colors.black, - ...InterSemiBold, - }, - rightItem: { - position: 'relative', - alignSelf: 'flex-end', - }, - rowData: { - color: Colors.gray[100], - textAlign: 'right', - fontSize: 16, - ...InterSemiBold, - gap: 2, - }, - rowBalance: { - fontSize: 12, - textAlign: 'right', - color: Colors.gray[200], - ...InterRegular, - }, -}); - -export default FlowingDonationsRowItem; diff --git a/packages/app/src/components/FlowingDonationsRowItem.tsx b/packages/app/src/components/FlowingDonationsRowItem.tsx index 6d39c5e1..5880985d 100644 --- a/packages/app/src/components/FlowingDonationsRowItem.tsx +++ b/packages/app/src/components/FlowingDonationsRowItem.tsx @@ -1,12 +1,14 @@ import { Image, Text, View, StyleSheet } from 'react-native'; +import Decimal from 'decimal.js'; + import { InterRegular, InterSemiBold } from '../utils/webFonts'; import { Colors } from '../utils/colors'; -import { useMediaQuery } from 'native-base'; +import { useScreenSize } from '../theme/hooks'; + import { useDonorCollectivesFlowingBalancesWithAltStaticBalance } from '../hooks/useFlowingBalance'; import { DonorCollective } from '../models/models'; import { useGetTokenBalance } from '../hooks/useGetTokenBalance'; import { SupportedNetwork } from '../models/constants'; -import Decimal from 'decimal.js'; import { useTokenByAddress } from '../hooks/useTokenList'; import { GoodDollarAmount } from './GoodDollarAmount'; @@ -30,9 +32,7 @@ function FlowingDonationsRowItem({ additionalBalance, }: FlowingDonationsRowItemProps) { const token = useTokenByAddress(currency); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const currentBalance = useGetTokenBalance(currency, collective, SupportedNetwork.CELO); const balanceUsed = additionalBalance @@ -59,9 +59,9 @@ function FlowingDonationsRowItem({ lastDigitsProps={{ style: { ...InterRegular, color: Colors.gray[200], fontWeight: 400 } }} amount={wei || '0'} /> - {isDesktopResolution && currency && = {usdValueCurrentPool} USD} + {isDesktopView && currency && = {usdValueCurrentPool} USD} - {!isDesktopResolution && currency && = {usdValueCurrentPool} USD} + {!isDesktopView && currency && = {usdValueCurrentPool} USD}
diff --git a/packages/app/src/components/Header/ConnectWalletMenu.tsx b/packages/app/src/components/Header/ConnectWalletMenu.tsx index b303c61e..28f37c45 100644 --- a/packages/app/src/components/Header/ConnectWalletMenu.tsx +++ b/packages/app/src/components/Header/ConnectWalletMenu.tsx @@ -1,10 +1,11 @@ +import { useState } from 'react'; import { Image, StyleSheet, Text, TextStyle, TouchableOpacity, View } from 'react-native'; import { useConnect } from 'wagmi'; + import { Colors } from '../../utils/colors'; -import { useState } from 'react'; import { RotatingArrowIcon } from './RotatingArrowIcon'; import { MetaMaskLogo, WalletConnectLogo, WalletConnectLogoWhite, WebIcon } from '../../assets'; -import { useMediaQuery } from 'native-base'; +import { useScreenSize } from '../../theme/hooks'; const supportedConnectors = { metaMask: 'MetaMask', @@ -16,7 +17,7 @@ interface ConnectWalletMenuProps { } export const ConnectWalletMenu = (props: ConnectWalletMenuProps) => { - const [isDesktopResolution] = useMediaQuery({ minWidth: 920 }); + const { isDesktopView } = useScreenSize(); const { dropdownOffset } = props; const { connect, connectors, isLoading, pendingConnector } = useConnect(); @@ -34,7 +35,7 @@ export const ConnectWalletMenu = (props: ConnectWalletMenuProps) => { } const onClickConnectWallet = () => { - if (isDesktopResolution) { + if (isDesktopView) { setOpenDropdown(!openDropdown); } else { const connector = connectors.find((conn) => conn.name === supportedConnectors.walletConnect); @@ -47,13 +48,13 @@ export const ConnectWalletMenu = (props: ConnectWalletMenuProps) => { return ( <> - - {!isDesktopResolution && ( + + {!isDesktopView && ( )} Connect Wallet - {isDesktopResolution && } + {isDesktopView && } {openDropdown && ( diff --git a/packages/app/src/components/Header/Header.tsx b/packages/app/src/components/Header/Header.tsx index 13cdf1fa..c5eb1bbb 100644 --- a/packages/app/src/components/Header/Header.tsx +++ b/packages/app/src/components/Header/Header.tsx @@ -1,23 +1,23 @@ import { Image, StyleSheet, TouchableOpacity, View } from 'react-native'; -import { useMediaQuery } from 'native-base'; import { useAccount } from 'wagmi'; + import { ConnectedAccountDisplay } from './ConnectedAccountDisplay'; import { ConnectWalletMenu } from './ConnectWalletMenu'; import { DropdownMenu } from './DropdownMenu'; + import useCrossNavigate from '../../routes/useCrossNavigate'; import { Colors } from '../../utils/colors'; import { BackIcon, HeaderLogo } from '../../assets'; +import { useScreenSize } from '../../theme/hooks'; function Header(): JSX.Element { const { address } = useAccount(); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const { navigate } = useCrossNavigate(); return ( - {isDesktopResolution && ( + {isDesktopView && ( navigate('/')}> @@ -25,23 +25,23 @@ function Header(): JSX.Element { - {address && } + {address && } {!address && } )} - {!isDesktopResolution && ( + {!isDesktopView && ( - {address && } + {address && } {!address && } diff --git a/packages/app/src/components/ImpactButton.tsx b/packages/app/src/components/ImpactButton.tsx index 9155edea..35bcb017 100644 --- a/packages/app/src/components/ImpactButton.tsx +++ b/packages/app/src/components/ImpactButton.tsx @@ -1,8 +1,9 @@ import { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native'; + import { InterSemiBold } from '../utils/webFonts'; import { Colors } from '../utils/colors'; -import { useMediaQuery } from 'native-base'; import { chevronRight } from '../assets'; +import { useScreenSize } from '../theme/hooks'; interface ImpactButtonProps { title: string; @@ -10,13 +11,11 @@ interface ImpactButtonProps { } function ImpactButton({ title, onClick }: ImpactButtonProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); return ( - - + + {title} diff --git a/packages/app/src/components/Layout/Layout.tsx b/packages/app/src/components/Layout/Layout.tsx index 77dbd5e3..ac9e4d0f 100644 --- a/packages/app/src/components/Layout/Layout.tsx +++ b/packages/app/src/components/Layout/Layout.tsx @@ -1,15 +1,17 @@ import { ReactNode } from 'react'; -import Header from '../Header/Header'; import { Platform, ScrollView, StyleSheet, View } from 'react-native'; -import ImpactButton from '../ImpactButton'; import { useLocation } from 'react-router-native'; -import { Colors } from '../../utils/colors'; +import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useAccount } from 'wagmi'; -import { useMediaQuery } from 'native-base'; + +import ImpactButton from '../ImpactButton'; +import { Colors } from '../../utils/colors'; +import Header from '../Header/Header'; + +import { useScreenSize } from '../../theme/hooks'; import useCrossNavigate from '../../routes/useCrossNavigate'; import Breadcrumb, { BreadcrumbPathEntry } from './Breadcrumb'; import { DesktopPageContentContainer } from './DesktopPageContentContainer'; -import { useSafeAreaFrame } from 'react-native-safe-area-context'; interface LayoutProps { children: ReactNode; @@ -21,9 +23,7 @@ function Layout({ children, breadcrumbPath }: LayoutProps) { const scrollViewHeight = safeAreaHeight - 105; const { address } = useAccount(); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const location = useLocation(); const { navigate } = useCrossNavigate(); @@ -33,7 +33,7 @@ function Layout({ children, breadcrumbPath }: LayoutProps) { const bodyStyles = { ...styles.body, - backgroundColor: isDesktopResolution ? Colors.brown[200] : Colors.gray[400], + backgroundColor: isDesktopView ? Colors.brown[200] : Colors.gray[400], }; const scrollViewStyles = [ @@ -45,7 +45,7 @@ function Layout({ children, breadcrumbPath }: LayoutProps) { return (
- {isDesktopResolution ? ( + {isDesktopView ? ( {breadcrumbPath && } @@ -58,9 +58,7 @@ function Layout({ children, breadcrumbPath }: LayoutProps) { ) : ( {children} )} - {isCollectivePage && !isDesktopResolution && ( - - )} + {isCollectivePage && !isDesktopView && } ); } @@ -82,7 +80,7 @@ const styles = StyleSheet.create({ native: 'scroll', default: 'auto', }), - backgroundColor: 'defaultGrey', + backgroundColor: 'goodGrey.50', }, }); diff --git a/packages/app/src/components/RowItem.tsx b/packages/app/src/components/RowItem.tsx index 798d3fd1..1ef4713a 100644 --- a/packages/app/src/components/RowItem.tsx +++ b/packages/app/src/components/RowItem.tsx @@ -1,8 +1,10 @@ import { Image, Text, View, StyleSheet } from 'react-native'; + import { InterRegular, InterSemiBold } from '../utils/webFonts'; import { Colors } from '../utils/colors'; +import { useScreenSize } from '../theme/hooks'; + import { formatFiatCurrency } from '../lib/formatFiatCurrency'; -import { useMediaQuery } from 'native-base'; import { GoodDollarAmount } from './GoodDollarAmount'; interface RowItemProps { @@ -14,9 +16,7 @@ interface RowItemProps { } function RowItem({ rowInfo, rowData, balance, currency, imageUrl }: RowItemProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const usdBalance = balance ? formatFiatCurrency(balance) : '0.00'; @@ -38,10 +38,10 @@ function RowItem({ rowInfo, rowData, balance, currency, imageUrl }: RowItemProps }} amount={String(rowData)} /> - {isDesktopResolution ? = {usdBalance} USD : null} + {isDesktopView ? = {usdBalance} USD : null} ) : null} - {!isDesktopResolution && currency ? = {usdBalance} USD : null} + {!isDesktopView && currency ? = {usdBalance} USD : null} ); diff --git a/packages/app/src/components/TransactionList/TransactionList.tsx b/packages/app/src/components/TransactionList/TransactionList.tsx index 9b556501..dfe28513 100644 --- a/packages/app/src/components/TransactionList/TransactionList.tsx +++ b/packages/app/src/components/TransactionList/TransactionList.tsx @@ -1,8 +1,11 @@ import { Image, Text, View, Platform, StyleSheet } from 'react-native'; +import { Link } from 'native-base'; + import { InterRegular, InterSemiBold } from '../../utils/webFonts'; import { Colors } from '../../utils/colors'; -import { Link, useMediaQuery } from 'native-base'; import { chevronDown, TransactionIcon } from '../../assets'; +import { useScreenSize } from '../../theme/hooks'; + import { ClaimTx, Transaction } from '../../models/models'; import { useRecentTransactions } from '../../hooks/useRecentTransactions'; import { isSupportTx } from '../../models/typeUtil'; @@ -16,9 +19,7 @@ interface TransactionListProps { } function TransactionList({ collective }: TransactionListProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const transactions: Transaction[] = useRecentTransactions(collective, 6, SUBGRAPH_POLL_INTERVAL); @@ -29,7 +30,7 @@ function TransactionList({ collective }: TransactionListProps) { Recent Transactions - {isDesktopResolution && } + {isDesktopView && } {transactions .slice(0, 5) @@ -41,7 +42,7 @@ function TransactionList({ collective }: TransactionListProps) { ) )} - {isDesktopResolution && transactions.length > 5 && ( + {isDesktopView && transactions.length > 5 && ( Show more diff --git a/packages/app/src/components/ViewCollective.tsx b/packages/app/src/components/ViewCollective.tsx index 6ed9580a..ab3af162 100644 --- a/packages/app/src/components/ViewCollective.tsx +++ b/packages/app/src/components/ViewCollective.tsx @@ -1,5 +1,8 @@ import { StyleSheet, Text, View, Image } from 'react-native'; import { useState } from 'react'; +import { Link } from 'native-base'; +import { useAccount } from 'wagmi'; + import RowItem from './RowItem'; import RoundedButton from './RoundedButton'; import StewardList from './StewardsList/StewardsList'; @@ -7,12 +10,13 @@ import TransactionList from './TransactionList/TransactionList'; import { InterSemiBold, InterSmall } from '../utils/webFonts'; import useCrossNavigate from '../routes/useCrossNavigate'; import StopDonationModal from './modals/StopDonationModal'; + import { Colors } from '../utils/colors'; -import { Link, useMediaQuery } from 'native-base'; +import { useScreenSize } from '../theme/hooks'; + import { formatTime } from '../lib/formatTime'; import { Collective } from '../models/models'; import { useDonorCollectiveByAddresses, useGetTokenPrice } from '../hooks'; -import { useAccount } from 'wagmi'; import { AtIcon, CalendarIcon, @@ -43,9 +47,7 @@ interface ViewCollectiveProps { function ViewCollective({ collective }: ViewCollectiveProps) { const { navigate } = useCrossNavigate(); - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const { address: poolAddress, @@ -58,7 +60,7 @@ function ViewCollective({ collective }: ViewCollectiveProps) { } = collective; // default to oceanUri if headerImage is undefined - const headerImg = { uri: ipfs.headerImage } ?? Ocean; + const headerImg = ipfs?.headerImage ? { uri: ipfs.headerImage } : Ocean; const stewardsPaid = stewardCollectives.length; const infoLabel = collective.ipfs.infoLabel ?? defaultInfoLabel; @@ -87,7 +89,7 @@ function ViewCollective({ collective }: ViewCollectiveProps) { 2 ); - if (isDesktopResolution) { + if (isDesktopView) { return ( @@ -132,7 +134,7 @@ function ViewCollective({ collective }: ViewCollectiveProps) { {isDonating ? ( - {!isDesktopResolution && ( + {!isDesktopView && ( <> You Support this GoodCollective!! diff --git a/packages/app/src/components/WalletCards/WalletCards.tsx b/packages/app/src/components/WalletCards/WalletCards.tsx index faa0a262..6a91aeed 100644 --- a/packages/app/src/components/WalletCards/WalletCards.tsx +++ b/packages/app/src/components/WalletCards/WalletCards.tsx @@ -1,10 +1,11 @@ +import React from 'react'; import { Donor, IpfsCollective, Steward } from '../../models/models'; -import { useMediaQuery } from 'native-base'; import { View } from 'react-native'; + import StewardCollectiveCard from './StewardCollectiveCard'; import DonorCollectiveCard from './DonorCollectiveCard'; -import React from 'react'; import { styles } from './styles'; +import { useScreenSize } from '../../theme/hooks'; interface WalletCardsProps { donor?: Donor; @@ -23,11 +24,9 @@ function WalletCards({ ensName, tokenPrice, }: WalletCardsProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); - const dynamicContainerStyle: Record = isDesktopResolution + const dynamicContainerStyle: Record = isDesktopView ? { marginTop: 0, flexDirection: 'row', @@ -50,7 +49,7 @@ function WalletCards({ ipfsCollective={stewardIpfsCollectives[i]} ensName={ensName ?? undefined} tokenPrice={tokenPrice} - isDesktopResolution={isDesktopResolution} + isDesktopResolution={isDesktopView} /> ))} {donor && @@ -62,7 +61,7 @@ function WalletCards({ ipfsCollective={donorIpfsCollectives[i]} ensName={ensName ?? undefined} tokenPrice={tokenPrice} - isDesktopResolution={isDesktopResolution} + isDesktopResolution={isDesktopView} /> ))} diff --git a/packages/app/src/components/WalletProfile.tsx b/packages/app/src/components/WalletProfile.tsx index d44116ba..c4cc6fb9 100644 --- a/packages/app/src/components/WalletProfile.tsx +++ b/packages/app/src/components/WalletProfile.tsx @@ -1,10 +1,12 @@ import React from 'react'; import { Image, StyleSheet, Text, View } from 'react-native'; + import { Colors } from '../utils/colors'; import { InterSemiBold, InterSmall } from '../utils/webFonts'; +import { useScreenSize } from '../theme/hooks'; + import ProfileView from './ProfileView'; import WalletDetails from './WalletDetails/WalletDetails'; -import { useMediaQuery } from 'native-base'; import { Donor, Steward } from '../models/models'; import { useCollectivesMetadataById, useGetTokenPrice } from '../hooks'; import { LightningIcon } from '../assets'; @@ -22,9 +24,7 @@ interface WalletProfileProps { } function WalletProfile({ address, ensName, firstName, lastName, donor, steward, isWhitelisted }: WalletProfileProps) { - const [isDesktopResolution] = useMediaQuery({ - minWidth: 920, - }); + const { isDesktopView } = useScreenSize(); const userIdentifier = firstName ? `${firstName} ${lastName}` @@ -44,7 +44,7 @@ function WalletProfile({ address, ensName, firstName, lastName, donor, steward, donor?.collectives.map((collective) => collective.collective) ?? [] ); - if (isDesktopResolution) { + if (isDesktopView) { return ( diff --git a/packages/app/src/components/theme.ts b/packages/app/src/components/theme.ts deleted file mode 100644 index f7fd1b6b..00000000 --- a/packages/app/src/components/theme.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { theme as AboutCard } from './AboutCard'; -export { theme as ActionButton } from './ActionButton'; diff --git a/packages/app/src/hooks/useTotalStats.ts b/packages/app/src/hooks/useTotalStats.ts index 9527c06a..278098ba 100644 --- a/packages/app/src/hooks/useTotalStats.ts +++ b/packages/app/src/hooks/useTotalStats.ts @@ -5,9 +5,8 @@ import { formatGoodDollarAmount } from '../lib/calculateGoodDollarAmounts'; type StatsFormatted = { amount: string; - copy: string; }; -type TotalStats = { +export type TotalStats = { totalDonations: StatsFormatted; totalPools: StatsFormatted; totalMembers: StatsFormatted; diff --git a/packages/app/src/pages/HomePage.tsx b/packages/app/src/pages/HomePage.tsx index e561c2e5..3aaa167b 100644 --- a/packages/app/src/pages/HomePage.tsx +++ b/packages/app/src/pages/HomePage.tsx @@ -1,8 +1,10 @@ -import { useRef } from 'react'; -import { useScreenSize, withTheme } from '@gooddollar/good-design'; +import { FC, PropsWithChildren, useRef } from 'react'; import { Box, HStack, ScrollView, Spinner, Text, useBreakpointValue, VStack } from 'native-base'; +import { Platform } from 'react-native'; import { useTotalStats } from '../hooks'; +import type { TotalStats } from '../hooks'; +import { useScreenSize } from '../theme/hooks'; import ActionButton from '../components/ActionButton'; import CollectiveHomeCard from '../components/CollectiveHomeCard'; @@ -11,59 +13,65 @@ import Layout from '../components/Layout/Layout'; import { IpfsCollective } from '../models/models'; import { useCollectivesMetadata } from '../hooks'; -type HomePageProps = { - buttonStyles?: any; - containerStyles?: any; +const homeContainerStyles = { + flex: 1, + paddingY: 5, + minHeight: 'auto', + marginLeft: 'auto', + marginRight: 'auto', + shadow: 1, + padding: 4, + width: '100%', + backgroundColor: 'white', + borderRadius: 16, + maxWidth: 1312, }; -export const theme = { - baseStyle: { - containerStyles: { - body: { - flex: 1, - paddingTop: 5, - paddingBottom: 5, - minHeight: 'auto', - marginLeft: 'auto', - marginRight: 'auto', - shadow: 1, - padding: 4, - width: '100%', - backgroundColor: 'white', - borderRadius: 16, - maxWidth: 1312, - }, - sectionContainer: { - marginBottom: 20, - paddingTop: 0, - paddingLeft: 15, - paddingRight: 15, - }, - }, - }, -}; - -const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles }: HomePageProps) => { - const collectives = useCollectivesMetadata(); - const totalStats = useTotalStats(); - - const { body, sectionContainer } = containerStyles ?? {}; - const { isTabletView } = useScreenSize(); +const CollectivesContainer: FC = ({ children }) => { + const { isDesktopView } = useScreenSize(); + const collectiveStyles = { + marginBottom: 20, + paddingTop: 0, + }; - const collectivesContainer = useBreakpointValue({ + const container = useBreakpointValue({ base: { - ...sectionContainer, + ...collectiveStyles, }, - md: { - ...sectionContainer, + lg: { + ...collectiveStyles, flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'center', alignItems: 'flex-start', - gap: 24, }, }); + return ( + + {children} + + ); +}; + +const statsCopy: { [K in keyof TotalStats]: { copy: string } } = { + totalPools: { + copy: 'GoodCollective pools', + }, + totalDonations: { + copy: 'Total Donations', + }, + totalMembers: { + copy: 'GoodCollective Members Paid', + }, +}; + +const HomePage = () => { + const collectives = useCollectivesMetadata(); + const totalStats = useTotalStats(); + + const { isDesktopView } = useScreenSize(); + const collectivesSectionRef = useRef(null); const scrollToCollectives = () => { @@ -72,99 +80,111 @@ const HomePage = withTheme({ name: 'HomePage' })(({ containerStyles }: HomePageP } }; - if (!totalStats) return ; + const stats = totalStats + ? Object.keys(statsCopy).map((keys) => { + const key = keys as keyof typeof totalStats; + return { + amount: totalStats[key].amount, + copy: statsCopy[key].copy, + }; + }) + : []; return ( - - - - - - Empower Communities. Maximize Impact. - - {`GoodCollective is committed to empowering -individuals and communities by providing direct digital payments to those who need it most.`} - - - - - Impact to Date + {!totalStats ? ( + + ) : ( + + + + + + Empower Communities. Maximize Impact. - - {Object.values(totalStats).map(({ amount, copy }) => ( - - - {amount} - - {copy} - - ))} - + {`GoodCollective is committed to empowering +individuals and communities by providing direct digital payments to those who need it most.`} - - - - - - - - + + + + Impact to Date + + + {Object.values(stats).map(({ amount, copy }) => ( + + + {amount} + + {copy} + + ))} + + + + + + + + + + + - - - - - + + + + + + + + Explore GoodCollective Pools + + {`Check out existing GoodCollective pools and support existing members, or start your own!`} + - - - Explore GoodCollective Pools - - {`Check out existing GoodCollective pools and support existing members, or start your own!`} - - - - {!collectives ? ( - Loading... - ) : ( - collectives?.map((ipfsCollective: IpfsCollective) => ( - - )) - )} + + {!collectives ? ( + Loading... + ) : ( + collectives?.map((ipfsCollective: IpfsCollective) => ( + + )) + )} + - - + + )} ); -}); +}; export default HomePage; diff --git a/packages/app/src/pages/ViewDonorsPage.tsx b/packages/app/src/pages/ViewDonorsPage.tsx index 496924ed..e3298256 100644 --- a/packages/app/src/pages/ViewDonorsPage.tsx +++ b/packages/app/src/pages/ViewDonorsPage.tsx @@ -1,22 +1,24 @@ +import React from 'react'; import { StyleSheet, Text, View, Image } from 'react-native'; +import { useParams } from 'react-router-native'; + import Layout from '../components/Layout/Layout'; import { InterSemiBold } from '../utils/webFonts'; import { Colors } from '../utils/colors'; import { DonorBlue, Ocean } from '../assets'; -import { useParams } from 'react-router-native'; +import { useScreenSize } from '../theme/hooks'; + import { useCollectiveById } from '../hooks'; -import React from 'react'; -import { useMediaQuery } from 'native-base'; import DonorList from '../components/DonorsList/DonorsList'; function ViewDonorsPage() { - const [isDesktopResolution] = useMediaQuery({ minWidth: 612 }); + const { isTabletView } = useScreenSize(); const { id: collectiveId = '' } = useParams(); const collective = useCollectiveById(collectiveId); const headerImage = collective?.ipfs.headerImage ? { uri: collective.ipfs.headerImage } : Ocean; - if (isDesktopResolution) { + if (isTabletView) { return ( { + const isDesktopView = useBreakpointValue({ base: false, lg: true }); + const isTabletView = useBreakpointValue({ base: false, md: true }); + const isSmallTabletView = useBreakpointValue({ base: true, sm: true, md: false }); + const isMobileView = useBreakpointValue({ base: true, sm: false }); + + return { isMobileView, isSmallTabletView, isTabletView, isDesktopView }; +}; + +export default useScreenSize; diff --git a/packages/app/src/theme/theme.ts b/packages/app/src/theme/theme.ts index 3b5640d7..3395a8ad 100644 --- a/packages/app/src/theme/theme.ts +++ b/packages/app/src/theme/theme.ts @@ -1,27 +1,24 @@ import { extendTheme } from 'native-base'; import { fontConfig, getPlatformFamilies } from '@gooddollar/good-design'; -import * as components from '../components/theme'; -import * as pages from '../pages/theme'; - export const nbTheme = extendTheme({ fontConfig: getPlatformFamilies(fontConfig), colors: { /* g$ design system */ - gdPrimary: '#00AFFF', + primary: '#00AEFF', primaryHoverDark: '#0075AC', white: '#FFFFFF', black: '#000000', - defaultGrey: '#F3F3F3', + // text goodGrey: { - 50: '#F4F4F4', - 100: '#E6E6E6', - 200: '#CCCCCC', - 300: '#B0B0B0', - 400: '#1F2937', - 500: '#5A5A5A', - 600: '#000000', + 50: '#F3F3F3', + 100: '#F4F4F4', + 200: '#E6E6E6', + 300: '#CCCCCC', + 400: '#B0B0B0', + 500: '#1F2937', + 600: '#5A5A5A', }, goodPurple: { 100: '#E2EAFF', @@ -56,8 +53,8 @@ export const nbTheme = extendTheme({ // custom keys for breakpoints cannot be used in useBreakpoint hook so we override defaults base: 0, sm: 375, - md: 720, - lg: 976, + md: 580, + lg: 920, xl: 1280, '2xl': 1440, }, @@ -79,13 +76,11 @@ export const nbTheme = extendTheme({ '4xl': 60, }, components: { - ...components, - ...pages, Spinner: { variants: { 'page-loader': () => ({ borderWidth: '0', - color: 'gdPrimary', + color: 'goodPurple.400', paddingBottom: 4, }), },