From c5ca5f161de345cd4756897fe1f87597b7a8c4e2 Mon Sep 17 00:00:00 2001 From: corlard3y Date: Tue, 2 Jul 2024 09:50:59 +0100 Subject: [PATCH 01/31] update changes --- package.json | 1 + src/blocks/dropdown/Dropdown.tsx | 57 ++++++++ src/blocks/dropdown/Dropdown.types.ts | 24 ++++ src/blocks/dropdown/Dropdown.utils.tsx | 35 +++++ src/blocks/dropdown/index.ts | 3 + src/blocks/index.ts | 2 + src/blocks/menu/Menu.constants.ts | 10 ++ src/blocks/menu/Menu.tsx | 50 +++++++ src/blocks/menu/Menu.types.ts | 37 ++++++ src/blocks/menu/MenuItem.tsx | 68 ++++++++++ src/blocks/menu/index.ts | 4 + .../components/FeaturedChannelsListItem.tsx | 43 +++++- yarn.lock | 124 ++++++++++++++++++ 13 files changed, 457 insertions(+), 1 deletion(-) create mode 100644 src/blocks/dropdown/Dropdown.tsx create mode 100644 src/blocks/dropdown/Dropdown.types.ts create mode 100644 src/blocks/dropdown/Dropdown.utils.tsx create mode 100644 src/blocks/dropdown/index.ts create mode 100644 src/blocks/menu/Menu.constants.ts create mode 100644 src/blocks/menu/Menu.tsx create mode 100644 src/blocks/menu/Menu.types.ts create mode 100644 src/blocks/menu/MenuItem.tsx create mode 100644 src/blocks/menu/index.ts diff --git a/package.json b/package.json index 918fc6257f..0da062e186 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "@pushprotocol/restapi": "1.7.20", "@pushprotocol/socket": "0.5.3", "@pushprotocol/uiweb": "1.4.1", + "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-tooltip": "^1.1.1", "@reach/tabs": "^0.18.0", "@reduxjs/toolkit": "^1.7.1", diff --git a/src/blocks/dropdown/Dropdown.tsx b/src/blocks/dropdown/Dropdown.tsx new file mode 100644 index 0000000000..ff478598ce --- /dev/null +++ b/src/blocks/dropdown/Dropdown.tsx @@ -0,0 +1,57 @@ +import { FC, forwardRef, useState } from 'react'; +import styled from 'styled-components'; +import * as RadixDropdown from '@radix-ui/react-dropdown-menu'; + +import { DropdownProps } from './Dropdown.types'; +import { getDropdownPositionalCSS } from './Dropdown.utils'; + +const RadixDropdownContent = styled(RadixDropdown.Content)` + /* Extra CSS props */ + ${(props) => props.css || ''} +`; + +const Dropdown: FC = forwardRef( + ({ overlay, trigger = 'click', children, dropdownPosition = 'bottom', ...props }, ref) => { + const [isOpen, setIsOpen] = useState(false); + + const showDropdown = () => setIsOpen(true); + const hideDropdown = () => setIsOpen(false); + const toggleDropdown = () => setIsOpen(!isOpen); + + const { ...cssProps } = getDropdownPositionalCSS(dropdownPosition); + + return ( + + trigger == 'hover' && showDropdown()} + onMouseLeave={() => trigger == 'hover' && hideDropdown()} + onClick={() => trigger == 'click' && toggleDropdown} + > + {children && typeof children === 'function' ? children({ isOpen }) : children} + + + trigger == 'hover' && showDropdown()} + onMouseLeave={() => trigger == 'hover' && hideDropdown()} + onPointerDownOutside={() => hideDropdown()} + {...cssProps} + {...props} + > + {overlay} + + + + ); + } +); + +Dropdown.displayName = 'Dropdown'; + +export { Dropdown }; diff --git a/src/blocks/dropdown/Dropdown.types.ts b/src/blocks/dropdown/Dropdown.types.ts new file mode 100644 index 0000000000..390e9c3949 --- /dev/null +++ b/src/blocks/dropdown/Dropdown.types.ts @@ -0,0 +1,24 @@ +import { ReactElement, ReactNode } from 'react'; +import { FlattenSimpleInterpolation } from 'styled-components'; +import { DropdownMenuContentProps } from '@radix-ui/react-dropdown-menu'; + +export type DropdownPosition = 'bottom' | 'left' | 'top' | 'right'; + +export type DropdownTrigger = 'hover' | 'click'; + +export type DropdownComponentProps = { + // This will be content upon clicking on which the dropdown overlay will open + children?: ((props: { isOpen: boolean }) => ReactElement) | ReactNode | any; + // children?: ((props: { isOpen: boolean }) => ReactElement) | ReactElement | ReactNode | any; + // children?: ReactNode; + // position of menu + dropdownPosition?: DropdownPosition; + // on which action to open the dropdown + trigger?: DropdownTrigger; + // This is used for custom css instead of style prop, check Box/Text component + css?: FlattenSimpleInterpolation; + // This will be the contents of the dropdown overlay + overlay?: ReactNode; +}; + +export type DropdownProps = DropdownComponentProps & DropdownMenuContentProps; diff --git a/src/blocks/dropdown/Dropdown.utils.tsx b/src/blocks/dropdown/Dropdown.utils.tsx new file mode 100644 index 0000000000..e726e923f2 --- /dev/null +++ b/src/blocks/dropdown/Dropdown.utils.tsx @@ -0,0 +1,35 @@ +import { DropdownPosition } from './Dropdown.types'; +import { DropdownMenuContentProps } from '@radix-ui/react-dropdown-menu'; + +export const getDropdownPositionalCSS = (dropdownPosition: DropdownPosition) => { + let style: { + align: DropdownMenuContentProps['align']; + side: DropdownMenuContentProps['side']; + } = { + align: 'center', + side: 'bottom', + }; + + switch (dropdownPosition) { + case 'top': + style = { + align: 'center', + side: 'top', + }; + break; + case 'left': + style = { + align: 'center', + side: 'left', + }; + break; + case 'right': + style = { + align: 'center', + side: 'right', + }; + break; + } + + return style; +}; diff --git a/src/blocks/dropdown/index.ts b/src/blocks/dropdown/index.ts new file mode 100644 index 0000000000..5eb60d0962 --- /dev/null +++ b/src/blocks/dropdown/index.ts @@ -0,0 +1,3 @@ +export * from './Dropdown'; +export * from './Dropdown.types'; +export * from './Dropdown.utils'; diff --git a/src/blocks/index.ts b/src/blocks/index.ts index 4867ab5b8d..0c4ffec8cc 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -1,7 +1,9 @@ export { Box, type BoxProps } from './box'; export { Button, type ButtonProps } from './button'; +export { Dropdown, type DropdownProps } from './dropdown'; export { HoverableSVG, type HoverableSVGProps } from './hoverableSVG'; export { Link, type LinkProps } from './link'; +export { Menu, type MenuProps, MenuItem, type MenuItemComponentProps } from './menu'; export { Separator, type SeparatorProps } from './separator'; export { Skeleton, type SkeletonProps } from './skeleton'; export { Tabs, type TabsProps, type TabItem } from './tabs'; diff --git a/src/blocks/menu/Menu.constants.ts b/src/blocks/menu/Menu.constants.ts new file mode 100644 index 0000000000..cc560bcb31 --- /dev/null +++ b/src/blocks/menu/Menu.constants.ts @@ -0,0 +1,10 @@ +import { MenuProps } from './Menu.types'; + +export const menuCSSPropsKeys: (keyof MenuProps)[] = [ + 'height', + 'maxHeight', + 'minHeight', + 'maxWidth', + 'minWidth', + 'width', +]; diff --git a/src/blocks/menu/Menu.tsx b/src/blocks/menu/Menu.tsx new file mode 100644 index 0000000000..1dc9bb50d7 --- /dev/null +++ b/src/blocks/menu/Menu.tsx @@ -0,0 +1,50 @@ +import { FC } from 'react'; +import styled from 'styled-components'; + +import type { MenuProps } from './Menu.types'; +import { getBlocksColor } from 'blocks/Blocks.utils'; +import { ModeProp } from 'blocks/Blocks.types'; +import { useBlocksTheme } from 'blocks/Blocks.hooks'; +import { menuCSSPropsKeys } from './Menu.constants'; + +const StyledMenu = styled.div.withConfig({ + shouldForwardProp: (prop, defaultValidatorFn) => + !menuCSSPropsKeys.includes(prop as keyof MenuProps) && defaultValidatorFn(prop), +})` + display: flex; + flex-direction: column; + background-color: ${({ mode }) => getBlocksColor(mode, { light: 'white', dark: 'gray-900' })}; + border: 1px solid ${({ mode }) => getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; + border-radius: var(--r3); + padding: var(--s2); + margin: var(--s0); + gap: var(--s3); + + /* Menu non-responsive styles */ + width: ${(props) => props.width}; + min-width: ${(props) => props.minWidth || '145px'}; + max-width: ${(props) => props.maxWidth}; + height: ${(props) => props.height}; + min-height: ${(props) => props.minHeight}; + max-height: ${(props) => props.maxHeight}; + + /* Extra CSS props */ + ${(props) => props.css || ''} +`; + +const Menu: FC = ({ children, ...props }) => { + const { mode } = useBlocksTheme(); + + return ( + + {children} + + ); +}; + +Menu.displayName = 'Menu'; + +export { Menu }; diff --git a/src/blocks/menu/Menu.types.ts b/src/blocks/menu/Menu.types.ts new file mode 100644 index 0000000000..162a506321 --- /dev/null +++ b/src/blocks/menu/Menu.types.ts @@ -0,0 +1,37 @@ +import { ReactNode } from 'react'; +import { FlattenSimpleInterpolation } from 'styled-components'; + +export type MenuNonResponsiveProps = { + /* Sets height css property */ + height?: string; + /* Sets max-height css property */ + maxHeight?: string; + /* Sets min-height css property */ + minHeight?: string; + /* Sets max-width css property */ + maxWidth?: string; + /* Sets min-width css property */ + minWidth?: string; + /* Sets width css property */ + width?: string; +}; + +export type MenuComponentProps = { + /* Additional prop from styled components to apply custom css to Menu */ + css?: FlattenSimpleInterpolation; + /* Child react nodes rendered by Menu */ + children: ReactNode; +}; + +export type MenuItemComponentProps = { + /* icon element */ + icon?: ReactNode; + /* function attached to the menu item */ + onClick?: () => void; + /* menu item text */ + label?: string; + /* Additional prop from styled components to apply custom css to Menu */ + css?: FlattenSimpleInterpolation; +}; + +export type MenuProps = MenuNonResponsiveProps & MenuComponentProps; diff --git a/src/blocks/menu/MenuItem.tsx b/src/blocks/menu/MenuItem.tsx new file mode 100644 index 0000000000..9d753841c5 --- /dev/null +++ b/src/blocks/menu/MenuItem.tsx @@ -0,0 +1,68 @@ +import { FC } from 'react'; +import styled from 'styled-components'; + +import { MenuItemComponentProps } from './Menu.types'; +import { ModeProp } from 'blocks/Blocks.types'; +import { getBlocksColor } from '../Blocks.utils'; +import { useBlocksTheme } from 'blocks/Blocks.hooks'; +import { Text } from 'blocks/text'; +import { Box } from 'blocks/box'; + +const StyledMenuItem = styled.div.withConfig({ + shouldForwardProp: (prop, defaultValidatorFn) => !['mode'].includes(prop) && defaultValidatorFn(prop), +})` + // Menu default styles + padding: var(--s1); + display: flex; + flex-direction: row; + flex: 1; + align-items: center; + gap: var(--s1); + border-radius: var(--r2); + &:hover { + background-color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-100', dark: 'gray-1000' })}; + } + .menu-icon { + svg { + width: 100%; + height: 100%; + } + } + cursor: pointer; + font-size: 15px; + /* Extra CSS props */ + ${(props) => props.css || ''} +`; + +const MenuItem: FC = ({ icon, label, onClick, ...props }) => { + const { mode } = useBlocksTheme(); + + return ( + + {icon && ( + + {icon && {icon}} + + )} + + + {label} + + + ); +}; + +MenuItem.displayName = 'MenuItem'; + +export { MenuItem }; diff --git a/src/blocks/menu/index.ts b/src/blocks/menu/index.ts new file mode 100644 index 0000000000..6cb277673b --- /dev/null +++ b/src/blocks/menu/index.ts @@ -0,0 +1,4 @@ +export * from './Menu'; +export * from './MenuItem'; +export * from './Menu.types'; +export * from './Menu.constants'; diff --git a/src/modules/dashboard/components/FeaturedChannelsListItem.tsx b/src/modules/dashboard/components/FeaturedChannelsListItem.tsx index 0e337d9c4a..63c6d57a3e 100644 --- a/src/modules/dashboard/components/FeaturedChannelsListItem.tsx +++ b/src/modules/dashboard/components/FeaturedChannelsListItem.tsx @@ -13,7 +13,8 @@ import { useAccount } from 'hooks'; import { formatSubscriberCount } from '../Dashboard.utils'; // Components -import { Box, Button, CaretDown, NotificationMobile, Skeleton, Text } from 'blocks'; +import { Box, Button, CaretDown, CaretUp, Dropdown, Menu, MenuItem, NotificationMobile, Skeleton, Text } from 'blocks'; +import { AiFillExclamationCircle } from 'react-icons/ai'; import { SubscribeChannelDropdown } from 'common/components/SubscribeChannelDropdown'; import { UnsubscribeChannelDropdown } from 'common/components/UnsubscribeChannelDropdown'; import TickDecoratedCircleFilled from 'blocks/icons/components/TickDecoratedCircleFilled'; @@ -82,6 +83,46 @@ const FeaturedChannelsListItem: FC = (props) => { /> + + } + onClick={() => { + alert('wewe'); + }} + label="Archive" + /> + } + onClick={() => {}} + label="New Archive" + /> + } + onClick={() => {}} + label="New Test" + /> + } + onClick={() => {}} + label="Delete" + /> + + } + trigger="hover" + // dropdownPosition="top" + > + {({ isOpen }: { isOpen: boolean }) => ( + + )} + + {!isSubscribed && ( Date: Tue, 2 Jul 2024 10:33:33 +0100 Subject: [PATCH 02/31] add props type --- src/blocks/dropdown/Dropdown.tsx | 2 +- src/blocks/dropdown/Dropdown.types.ts | 2 -- .../dashboard/components/FeaturedChannelsListItem.tsx | 8 ++++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/blocks/dropdown/Dropdown.tsx b/src/blocks/dropdown/Dropdown.tsx index ff478598ce..d5ae5927b3 100644 --- a/src/blocks/dropdown/Dropdown.tsx +++ b/src/blocks/dropdown/Dropdown.tsx @@ -37,7 +37,7 @@ const Dropdown: FC = forwardRef trigger == 'hover' && showDropdown()} onMouseLeave={() => trigger == 'hover' && hideDropdown()} onPointerDownOutside={() => hideDropdown()} diff --git a/src/blocks/dropdown/Dropdown.types.ts b/src/blocks/dropdown/Dropdown.types.ts index 390e9c3949..db6be6bb2f 100644 --- a/src/blocks/dropdown/Dropdown.types.ts +++ b/src/blocks/dropdown/Dropdown.types.ts @@ -9,8 +9,6 @@ export type DropdownTrigger = 'hover' | 'click'; export type DropdownComponentProps = { // This will be content upon clicking on which the dropdown overlay will open children?: ((props: { isOpen: boolean }) => ReactElement) | ReactNode | any; - // children?: ((props: { isOpen: boolean }) => ReactElement) | ReactElement | ReactNode | any; - // children?: ReactNode; // position of menu dropdownPosition?: DropdownPosition; // on which action to open the dropdown diff --git a/src/modules/dashboard/components/FeaturedChannelsListItem.tsx b/src/modules/dashboard/components/FeaturedChannelsListItem.tsx index 63c6d57a3e..cf5405241d 100644 --- a/src/modules/dashboard/components/FeaturedChannelsListItem.tsx +++ b/src/modules/dashboard/components/FeaturedChannelsListItem.tsx @@ -33,6 +33,10 @@ type FeaturedChannelsListItemProps = { width: string; }; +type isOpenProps = { + isOpen: boolean; +}; + const FeaturedChannelsListItem: FC = (props) => { const { channelAddress, width } = props; @@ -110,10 +114,10 @@ const FeaturedChannelsListItem: FC = (props) => { /> } - trigger="hover" + // trigger="hover" // dropdownPosition="top" > - {({ isOpen }: { isOpen: boolean }) => ( + {({ isOpen }: isOpenProps) => ( - )} - - {!isSubscribed && ( Date: Tue, 16 Jul 2024 13:02:05 +0530 Subject: [PATCH 04/31] refactored the TextInput code (#1732) * refactored the input code * refactored the input code * Update PointsVaultLogin.tsx --- src/blocks/textInput/TextInput.constants.tsx | 43 --- src/blocks/textInput/TextInput.tsx | 306 +++++++++--------- src/blocks/textInput/TextInput.types.tsx | 4 - src/blocks/textInput/TextInput.utils.ts | 68 ---- src/blocks/textarea/TextArea.tsx | 6 +- .../components/PointsVaultLogin.tsx | 39 +-- 6 files changed, 182 insertions(+), 284 deletions(-) delete mode 100644 src/blocks/textInput/TextInput.constants.tsx delete mode 100644 src/blocks/textInput/TextInput.types.tsx delete mode 100644 src/blocks/textInput/TextInput.utils.ts diff --git a/src/blocks/textInput/TextInput.constants.tsx b/src/blocks/textInput/TextInput.constants.tsx deleted file mode 100644 index 116b86331c..0000000000 --- a/src/blocks/textInput/TextInput.constants.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { TextInputStyles } from './TextInput.types'; - -const backgroundColor: TextInputStyles = { - error: { light: 'red-100', dark: 'gray-800' }, - success: { light: 'green-100', dark: 'gray-800' }, - disabled: { light: 'gray-200', dark: 'gray-800' }, - default: { light: 'white', dark: 'gray-800' }, -}; - -const borderColor: TextInputStyles = { - error: { light: 'red-400', dark: 'red-500' }, - success: { light: 'green-500', dark: 'green-400' }, - disabled: { light: 'gray-300', dark: 'gray-900' }, - default: { light: 'gray-200', dark: 'gray-800' }, -}; - -const textColor: TextInputStyles = { - error: { light: 'gray-1000', dark: 'gray-100' }, - success: { light: 'gray-1000', dark: 'gray-100' }, - disabled: { light: 'gray-400', dark: 'gray-700' }, - default: { light: 'gray-1000', dark: 'gray-100' }, -}; - -const descriptionColor: TextInputStyles = { - error: { light: 'gray-1000', dark: 'gray-100' }, - success: { light: 'gray-1000', dark: 'gray-100' }, - disabled: { light: 'gray-400', dark: 'gray-600' }, - default: { light: 'gray-400', dark: 'gray-600' }, -}; -const iconColor: TextInputStyles = { - error: { light: 'red-700', dark: 'red-500' }, - success: { light: 'green-600', dark: 'green-400' }, - disabled: { light: 'gray-400', dark: 'gray-700' }, - default: { light: 'gray-300', dark: 'gray-600' }, -}; - -export const textInputColor = { - backgroundColor: backgroundColor, - borderColor: borderColor, - textColor: textColor, - iconColor: iconColor, - descriptionColor: descriptionColor, -}; diff --git a/src/blocks/textInput/TextInput.tsx b/src/blocks/textInput/TextInput.tsx index 33a259eb44..12ddd7e16d 100644 --- a/src/blocks/textInput/TextInput.tsx +++ b/src/blocks/textInput/TextInput.tsx @@ -1,187 +1,201 @@ -import { ReactNode, forwardRef } from 'react'; - -import styled, { FlattenSimpleInterpolation } from 'styled-components'; - -import { ModeProp } from '../Blocks.types'; - -import { getTextInputState, getTextInputStateStyles } from './TextInput.utils'; -import { useBlocksTheme } from 'blocks/Blocks.hooks'; -import { Asterisk, CrossFilled } from 'blocks/icons'; -import { Text } from 'blocks/text'; +import { Box } from 'blocks'; +import { Asterisk, CrossFilled } from '../icons'; +import { Text, textVariants } from '../text'; +import React, { ReactNode, forwardRef } from 'react'; +import styled, { FlattenSimpleInterpolation, css } from 'styled-components'; export type TextInputProps = { - /* Additional prop from styled components to apply custom css to input field */ css?: FlattenSimpleInterpolation; - /* Render an icon before input field contents */ + description?: string; + disabled?: boolean; icon?: ReactNode; - /* Handles the change in input value */ - onChange?: (e: React.ChangeEvent) => void; - /* Input value */ - value?: string; - /* Input type value */ + error?: boolean; type?: 'text' | 'password'; - /* Handles the clearing the entire input value */ - onClear?: () => void; - /* Label for the input field */ + errorMessage?: string; label?: string; - /* TotalLength of input value */ - totalCount?: number; - /* Placeholder for input field */ + onChange: (e: React.ChangeEvent) => void; + onClear?: () => void; placeholder?: string; - /* Sets the input field to be compulsory */ required?: boolean; - /* Sets the input field to error state */ - error?: boolean; - /* Sets the input field to success state */ success?: boolean; - /* Sets button as disabled */ - disabled?: boolean; - /* Description shown below the input field */ - description?: string; - /* Error message shown below the input field */ - errorMessage?: string; + totalCount?: number; + value: string; }; -const StyledTextInput = styled.div` - /* Common Input field CSS */ +const Container = styled.div<{ css?: FlattenSimpleInterpolation }>` + align-items: flex-start; display: flex; flex-direction: column; - width: inherit; - gap: var(--s2); - .label-count { - display: flex; - justify-content: space-between; - align-items: center; - } - .label { - display: flex; - gap: var(--s1); - } - .input-container { - cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')}; - display: flex; - align-items: center; - font-family: var(--font-family); - font-size: 14px; - font-style: normal; - font-weight: 400; - line-height: 20px; - white-space: nowrap; - padding: var(--s0) var(--s3); - border-radius: var(--r3); - - /* Common icon css added through CSS class */ - [role='img'] { - width: 18px; - height: 18px; - } - - & input { - flex: 1; - border: none; - background-color: transparent; - padding: var(--s3) var(--s0); - margin-left: var(--s1); - &:focus { - outline: none; + flex: 1 0 0; + gap: var(--spacing-xxs, 8px); + + /* Custom CSS applied via styled component css prop */ + ${(props) => props.css || ''}; +`; + +const StyledTextInput = styled.div<{ + error?: boolean; + success?: boolean; + disabled?: boolean; +}>` + ${({ theme, success, error, disabled }) => { + const colors = theme?.blocksTheme?.colors; + const defaultState = error ? 'danger' : success ? 'success' : disabled ? 'disabled' : 'default'; + const focusState = error ? 'danger' : success ? 'success' : 'focus'; + return css` + align-self: stretch; + justify-content: space-between; + align-items: flex-start; + border-radius: var(--radius-xs, 12px); + border: 1.5px solid + var(--components-inputs-stroke-${defaultState}, ${colors[`components-inputs-stroke-${defaultState}`]}); + background: var( + --components-inputs-background-${defaultState}, + ${colors[`components-inputs-background-${defaultState}`]} + ); + + display: flex; + + font-family: var(--font-family); + font-size: ${textVariants['bs-regular'].fontSize}; + font-style: ${textVariants['bs-regular'].fontStyle}; + font-weight: ${textVariants['bs-regular'].fontWeight}; + line-height: ${textVariants['bs-regular'].lineHeight}; + + gap: var(--spacing-xxs, 8px); + + padding: var(--spacing-xs, 12px); + [role='img'] { + width: 24px; + height: 24px; + + color: var(--components-inputs-icon-${defaultState}, ${colors[`components-inputs-icon-${defaultState}`]}); + } + & input { + color: var(--components-inputs-text-${defaultState}, ${colors[`components-inputs-text-${defaultState}`]}); + + width: 100%; + ::placeholder { + color: var(--components-inputs-text-placeholder, ${colors['components-inputs-text-placeholder']}); + } + border: none; + background: transparent; + &:focus, + :disabled { + outline: none; + } } + &:hover { + border: 1.5px solid var(--components-inputs-stroke-hover, ${colors['components-inputs-stroke-hover']}); + } + + &:focus-within { + border: 1.5px solid + var(--components-inputs-stroke-${focusState}, ${colors[`components-inputs-stroke-${focusState}`]}); outline: none; } - :disabled { - background-color: transparent; + + &:disabled { + border: 1.5px solid var(--components-inputs-stroke-default, ${colors['components-inputs-stroke-default']}); + background: var(--components-inputs-background-disabled, ${colors['components-inputs-background-disabled']}); + cursor: not-allowed; + color: var(--components-inputs-text-disabled, ${colors['components-inputs-text-disabled']}); } - } - } - /* TextInput type CSS styles */ - ${({ mode, error, disabled, success }) => - getTextInputStateStyles({ - mode, - state: getTextInputState({ error: !!error, disabled: !!disabled, success: !!success }), - })} + `; + }} +`; - /* Custom CSS applied via styled component css prop */ - ${(props) => props.css || ''} +const LabelContainer = styled.div` + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; `; -const TextInput = forwardRef( +const LabelTextContainer = styled.div` + display: flex; + align-items: flex-start; + gap: var(--spacing-xxxs, 4px); +`; + +export const TextInput = forwardRef( ( { + css, + description, disabled, error, - success, - required, + errorMessage, label, - totalCount, + onChange, + onClear, placeholder, - icon, + required, type = 'text', - onChange, + icon, + success, + totalCount, value, - onClear, - description, - errorMessage, - ...props }, ref ) => { - const { mode } = useBlocksTheme(); return ( - - {(label || totalCount) && ( -
- {label && ( -
- - {label} - - {!!required && ( - - )} -
- )} - + + {label && ( + + + + {label} + {required && } + + {totalCount && ( - {`${value?.length}/${totalCount}`} - + color={disabled ? 'components-inputs-text-disabled' : 'components-inputs-text-secondary'} + >{`${value?.length || 0} / ${totalCount}`} )} -
+ )} -
- {icon} - + + + {icon} + + {onClear && onClear?.()} />} -
+
{description && ( {description} @@ -189,16 +203,12 @@ const TextInput = forwardRef( {errorMessage && ( {errorMessage} )} - + ); } ); - -TextInput.displayName = 'TextInput'; - -export { TextInput }; diff --git a/src/blocks/textInput/TextInput.types.tsx b/src/blocks/textInput/TextInput.types.tsx deleted file mode 100644 index 5876495617..0000000000 --- a/src/blocks/textInput/TextInput.types.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { ThemeModeColors } from 'blocks/Blocks.types'; - -export type TextInputStates = 'error' | 'disabled' | 'default' | 'success'; -export type TextInputStyles = Record; diff --git a/src/blocks/textInput/TextInput.utils.ts b/src/blocks/textInput/TextInput.utils.ts deleted file mode 100644 index 3416ece84d..0000000000 --- a/src/blocks/textInput/TextInput.utils.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { ThemeMode } from 'blocks/Blocks.types'; -import { getBlocksColor } from 'blocks/Blocks.utils'; - -import { textInputColor } from './TextInput.constants'; -import { TextInputStates } from './TextInput.types'; - -export const getTextInputState = ({ - error, - disabled, - success, -}: { - error: boolean; - disabled: boolean; - success: boolean; -}): TextInputStates => { - if (error) { - return 'error'; - } else if (disabled) { - return 'disabled'; - } else if (success) { - return 'success'; - } - return 'default'; -}; - -export const getTextInputStateStyles = ({ mode, state }: { mode: ThemeMode; state: TextInputStates }) => { - /*check all dark mode , label ,count and icon and placeholder colors - add success state - */ - return ` - - .input-container { - background-color: ${getBlocksColor(mode, textInputColor.backgroundColor[state])}; - - border: 1.5px solid ${getBlocksColor(mode, textInputColor.borderColor[state])}; - - - &:hover { - border: 1.5px solid ${getBlocksColor(mode, { - light: 'gray-300', - dark: 'gray-700', - })}; - }; - - &:focus-within { - border: 1.5px solid ${getBlocksColor( - mode, - state === 'error' ? textInputColor.borderColor.error : { light: 'pink-300', dark: 'pink-300' } - )}; - }; - - [role='img'] { - color: ${getBlocksColor(mode, textInputColor.iconColor[state])}; - }; - - & input{ - color: ${getBlocksColor(mode, textInputColor.textColor[state])}; - ::placeholder { - color: ${getBlocksColor(mode, { - light: 'gray-400', - dark: 'gray-600', - })}; - - }; - } - -}`; -}; diff --git a/src/blocks/textarea/TextArea.tsx b/src/blocks/textarea/TextArea.tsx index 501ef1079d..0bf1bf6197 100644 --- a/src/blocks/textarea/TextArea.tsx +++ b/src/blocks/textarea/TextArea.tsx @@ -51,7 +51,7 @@ const StyledTextArea = styled.textarea<{ ${colors[`components-inputs-background-${defaultState}`]} ); - color: var(--components-inputs-text-default, ${colors['components-inputs-text-default']}); + color: var(--components-inputs-text-${defaultState}, ${colors[`components-inputs-text-${defaultState}`]}); display: flex; @@ -130,7 +130,7 @@ export const TextArea = forwardRef( {label} @@ -140,7 +140,7 @@ export const TextArea = forwardRef( {totalCount && ( {`${value?.length || 0} / ${totalCount}`} )} diff --git a/src/modules/pointsVault/components/PointsVaultLogin.tsx b/src/modules/pointsVault/components/PointsVaultLogin.tsx index fd217d7717..ceca2254b1 100644 --- a/src/modules/pointsVault/components/PointsVaultLogin.tsx +++ b/src/modules/pointsVault/components/PointsVaultLogin.tsx @@ -110,25 +110,28 @@ const PointsVaultLogin: FC = ({ handleSetActiveView }) => gap="s3" width="100%" > - - - + + + + + + From 3a49fe9edb6a1edd443d6860261a6b37160753bb Mon Sep 17 00:00:00 2001 From: Kolade Date: Tue, 16 Jul 2024 10:25:35 +0100 Subject: [PATCH 05/31] update unlock profile steps (#1733) --- .../chat/unlockProfile/UnlockProfile.tsx | 18 +++++++++++------- src/contexts/AppContext.tsx | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/components/chat/unlockProfile/UnlockProfile.tsx b/src/components/chat/unlockProfile/UnlockProfile.tsx index 26fc9ee51c..b98c6c7e7d 100644 --- a/src/components/chat/unlockProfile/UnlockProfile.tsx +++ b/src/components/chat/unlockProfile/UnlockProfile.tsx @@ -1,5 +1,5 @@ // React + Web3 Essentials -import { useContext, useEffect, useMemo, useState } from 'react'; +import { useCallback, useContext, useEffect, useState } from 'react'; // External Packages import styled, { useTheme } from 'styled-components'; @@ -66,20 +66,24 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps body: 'Sign with wallet to continue.', }); - const handleRememberMeChange = (event) => { + // const handleRememberMeChange = (event: any) => { + const handleRememberMeChange = (event: React.ChangeEvent) => { setRememberMe(event.target.checked); }; - const handleChatprofileUnlock = async () => { - const user = await handleConnectWallet({ remember: rememberMe }); + const connectWallet = () => { + connect(); + }; + + const handleChatprofileUnlock = useCallback(async () => { + const user = await handleConnectWallet({ remember: rememberMe, wallet }); - // reject unlock profile listener const errorExists = checkUnlockProfileErrors(user); if (errorExists && onClose) { onClose(); } - }; + }, [wallet, rememberMe]); useEffect(() => { if (wallet?.accounts?.length > 0) { @@ -228,7 +232,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps activeStatus={activeStatus.status} status={PROFILESTATE.CONNECT_WALLET} disabled={activeStatus.status !== PROFILESTATE.CONNECT_WALLET && true} - onClick={() => connect()} + onClick={() => connectWallet()} > Connect Wallet diff --git a/src/contexts/AppContext.tsx b/src/contexts/AppContext.tsx index 704f098cdb..457e79f5cd 100644 --- a/src/contexts/AppContext.tsx +++ b/src/contexts/AppContext.tsx @@ -33,6 +33,7 @@ const AppContextProvider = ({ children }) => { const shouldInitializeRef = useRef(true); // Using a ref to control useEffect execution const { connect, provider, account, wallet, connecting } = useAccount(); + const web3onboardToast = useToast(); const { readOnlyWallet } = useContext(GlobalContext); @@ -96,7 +97,17 @@ const AppContextProvider = ({ children }) => { }; // TODO: Change function name to handleConnectWalletAndUser - const handleConnectWallet = async ({ remember = false, showToast = false, toastMessage = undefined } = {}) => { + const handleConnectWallet = async ({ + remember = false, + showToast = false, + toastMessage = undefined, + wallet, + }: { + wallet?: any; + remember?: any; + showToast?: boolean; + toastMessage?: string; + }) => { shouldInitializeRef.current = false; // Directly modify the ref to disable useEffect execution if (showToast) { @@ -116,7 +127,7 @@ const AppContextProvider = ({ children }) => { let user; if (wallet?.accounts?.length > 0) { - user = await initializePushSDK(); + user = await initializePushSDK(wallet); } else { const walletConnected = await connect(); if (walletConnected.length > 0) { From 6dda8892537c7b0fff205aa9d348dd8210f55cf0 Mon Sep 17 00:00:00 2001 From: Kolade Date: Tue, 16 Jul 2024 10:30:04 +0100 Subject: [PATCH 06/31] Rewards QA minor fixes (#1734) * fix leaderboard issues * add scroll bar visible --- src/modules/rewards/components/LeaderBoardList.tsx | 8 +++++++- src/modules/rewards/components/LeaderBoardListItem.tsx | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/rewards/components/LeaderBoardList.tsx b/src/modules/rewards/components/LeaderBoardList.tsx index 454685d9a8..dfadfbc427 100644 --- a/src/modules/rewards/components/LeaderBoardList.tsx +++ b/src/modules/rewards/components/LeaderBoardList.tsx @@ -1,6 +1,7 @@ // React and other libraries import { FC } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; +import { css } from 'styled-components'; //Hooks import { useGetRewardsLeaderboard, ModelledLeaderBoardUser } from 'queries'; @@ -41,7 +42,12 @@ const LeaderBoardList: FC = () => { = ({ rank, address, poin variant="bm-bold" color={{ light: 'gray-1000', dark: 'gray-100' }} > - {rank} + {rank > 0 && rank} = ({ rank, address, poin display={{ ml: 'none', dp: 'block' }} color={{ light: 'gray-1000', dark: 'gray-100' }} > - {points} + {points?.toLocaleString()} - {points} + {points?.toLocaleString()}
From f593d1d2e2a9ae34587aa66262dcda799bb9ea46 Mon Sep 17 00:00:00 2001 From: Abhishek <77395788+abhishek-01k@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:18:00 +0530 Subject: [PATCH 07/31] Fixed the metamask pop up for staking in Yield Farming Page (#1731) --- src/components/yield/StakingModalComponent.tsx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/components/yield/StakingModalComponent.tsx b/src/components/yield/StakingModalComponent.tsx index a5ad272597..9e688a3c2a 100644 --- a/src/components/yield/StakingModalComponent.tsx +++ b/src/components/yield/StakingModalComponent.tsx @@ -8,14 +8,13 @@ import { ethers } from 'ethers'; // External Packages import styled, { useTheme } from 'styled-components'; import { MdCheckCircle, MdError } from 'react-icons/md'; -import { useSelector } from 'react-redux'; // Internal Compoonents import Close from 'assets/chat/group-chat/close.svg?react'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { bnToInt, formatTokens } from 'helpers/StakingHelper'; import { P } from 'components/SharedStyling'; -import { ButtonV2, H2V2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; +import { ButtonV2, H2V2, ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; import { AppContext } from 'contexts/AppContext'; // Internal Configs @@ -25,7 +24,7 @@ import { useAccount, useDeviceWidthCheck } from 'hooks'; const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => { const { title, getUserData, getPoolStats, setUnstakeErrorMessage, setWithdrawErrorMessage } = InnerComponentProps; - const { account, provider } = useAccount(); + const { account, provider, isWalletConnected, connect } = useAccount(); const [maxAmount, setMaxAmount] = useState(0); const [approvedToken, setApprovedToken] = useState(0); @@ -36,9 +35,6 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => const [txnMessage, setTxnMessage] = useState(null); - const { userPushSDKInstance } = useSelector((state: any) => { - return state.user; - }); const { handleConnectWallet } = useContext(AppContext); const [depositAmount, setDepositAmount] = useState(0); @@ -85,8 +81,9 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => }, []); const approveDeposit = async () => { - if (!userPushSDKInstance.signer) { - handleConnectWallet(); + + if (!isWalletConnected) { + connect(); return; } @@ -162,8 +159,8 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => }; const depositAmountTokenFarmSingleTx = async () => { - if (!userPushSDKInstance.signer) { - handleConnectWallet(); + if (!isWalletConnected) { + connect(); return; } From 1b7165ba6eb178a94f4a62618b972495dd62f28c Mon Sep 17 00:00:00 2001 From: Kolade Date: Tue, 16 Jul 2024 12:44:54 +0100 Subject: [PATCH 08/31] Feat/Base Chain support (#1741) * base chain changes * add custom scroll bar --- package.json | 12 +- public/svg/Base.svg | 6 + src/blocks/box/Box.tsx | 36 +- src/blocks/box/Box.types.ts | 2 + src/components/ChangeNetwork.tsx | 2 +- src/components/Faucets.tsx | 7 + src/components/VerifyAlias.tsx | 4 + src/config/config-dev.js | 8 + src/config/config-prod.js | 8 + src/config/config-staging.js | 8 + src/connectors/chains.ts | 12 + src/helpers/CaipHelper.ts | 2 +- src/helpers/UtilityHelper.ts | 69 +- src/hooks/useInactiveListener.ts | 4 +- .../ChannelOwnerDashboard.tsx | 5 +- .../rewards/components/LeaderBoardList.tsx | 9 +- yarn.lock | 2024 +++++++---------- 17 files changed, 914 insertions(+), 1304 deletions(-) create mode 100644 public/svg/Base.svg diff --git a/package.json b/package.json index 7a5e6ee199..f154f080b3 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@metamask/eth-sig-util": "^4.0.0", "@mui/icons-material": "^5.8.4", "@mui/material": "^5.5.0", - "@pushprotocol/restapi": "1.7.20", + "@pushprotocol/restapi": "1.7.23", "@pushprotocol/socket": "0.5.3", "@pushprotocol/uiweb": "1.4.2", "@radix-ui/react-dropdown-menu": "^2.1.1", @@ -50,11 +50,11 @@ "@uniswap/widgets": "^2.47.3", "@unstoppabledomains/resolution": "8.5.0", "@web3-name-sdk/core": "^0.1.18", - "@web3-onboard/coinbase": "^2.2.5", - "@web3-onboard/core": "2.21.6", - "@web3-onboard/injected-wallets": "2.10.16", - "@web3-onboard/react": "^2.8.9", - "@web3-onboard/walletconnect": "2.5.5", + "@web3-onboard/coinbase": "^2.4.1", + "@web3-onboard/core": "2.22.2", + "@web3-onboard/injected-wallets": "2.11.1", + "@web3-onboard/react": "^2.9.2", + "@web3-onboard/walletconnect": "2.6.1", "@yisheng90/react-loading": "1.2.3", "assert": "2.0.0", "babel-plugin-styled-components": "1.10.7", diff --git a/public/svg/Base.svg b/public/svg/Base.svg new file mode 100644 index 0000000000..da7e6fbe95 --- /dev/null +++ b/public/svg/Base.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/blocks/box/Box.tsx b/src/blocks/box/Box.tsx index b866e161bb..4fb50f1b2b 100644 --- a/src/blocks/box/Box.tsx +++ b/src/blocks/box/Box.tsx @@ -7,6 +7,7 @@ import { getBlocksColor, getBlocksBorder, getBlocksBorderRadius } from '../Block import { BoxCSSProps, BoxComponentProps } from './Box.types'; import { getBoxResponsiveCSS } from './Box.utils'; import { boxRestrictedCSSPropKeys } from './Box.constants'; +import { colorBrands } from 'blocks/theme/colors/colors.brands'; export type BoxProps = BoxCSSProps & BoxComponentProps & TransformedHTMLAttributes; @@ -28,27 +29,24 @@ const StyledBox = styled.div.withConfig({ position: ${(props) => props.position}; // push custom scroll - &::-webkit-scrollbar-track { - background-color: none; - border-radius: 9px; - } + ${(props) => + props.customScrollbar && + ` + &::-webkit-scrollbar-track { + background-color: none; + border-radius: 9px; + } - &::-webkit-scrollbar { - background-color: none; - width: 4px; - } + &::-webkit-scrollbar { + background-color: none; + width: 4px; + } - &::-webkit-scrollbar-thumb { - border-radius: 10px; - background-image: -webkit-gradient( - linear, - left top, - left bottom, - color-stop(0.44, #cf1c84), - color-stop(0.72, #cf1c84), - color-stop(0.86, #cf1c84) - ); - } + &::-webkit-scrollbar-thumb { + border-radius: 10px; + background: ${colorBrands[`primary-500`]}; + } + `} /* Extra CSS prop */ ${(props) => props.css || ''} diff --git a/src/blocks/box/Box.types.ts b/src/blocks/box/Box.types.ts index 11f6288ffb..182677ad07 100644 --- a/src/blocks/box/Box.types.ts +++ b/src/blocks/box/Box.types.ts @@ -75,6 +75,8 @@ export type BoxComponentProps = { css?: FlattenSimpleInterpolation; /* Child react nodes rendered by Box */ children?: ReactNode; + // option to add custom scroll bar to box + customScrollbar?: boolean; }; export type BoxResponsiveCSSProperties = diff --git a/src/components/ChangeNetwork.tsx b/src/components/ChangeNetwork.tsx index 648a13f106..4aba9ca2c2 100644 --- a/src/components/ChangeNetwork.tsx +++ b/src/components/ChangeNetwork.tsx @@ -53,7 +53,7 @@ const ChangeNetwork = () => { color="#fff" radius="15px" padding="20px 20px" - onClick={() => switchChain(aliasChainId)} + onClick={() => switchChain(parseInt(aliasChainId))} > { function: () => {}, link: 'https://cyber-testnet.testnets.rollbridge.app/', }, + { + id: '84532', + value: 'Base Sepolia', + title: 'Base Sepolia Faucet', + function: () => {}, + link: 'https://www.alchemy.com/faucets/base-sepolia', + }, ]; // render diff --git a/src/components/VerifyAlias.tsx b/src/components/VerifyAlias.tsx index d384723152..4c5dfd5dca 100644 --- a/src/components/VerifyAlias.tsx +++ b/src/components/VerifyAlias.tsx @@ -69,6 +69,10 @@ const VerifyAlias = ({ aliasEthAccount, setAliasVerified }) => { label: 'Cyber ETH', url: 'https://cyber-testnet.testnets.rollbridge.app/', }, + 84532: { + label: 'Base Sepolia', + url: 'https://www.alchemy.com/faucets/base-sepolia', + }, }; const checkAlias = async () => { diff --git a/src/config/config-dev.js b/src/config/config-dev.js index 77760246db..dd655d20c2 100644 --- a/src/config/config-dev.js +++ b/src/config/config-dev.js @@ -32,6 +32,7 @@ export const config = { 421614, // arbitrum testnet 123, // fuse testnet 111557560, // Cyber testnet + 84532, //base sepolia ], /** @@ -182,4 +183,11 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber-testnet.alt.technology/', commAddress: '0x9cb3bd7550B5c92baA056Fc0F08132f49508145F', }, + 84532: { + label: 'Base Sepolia', + name: 'BASE_TESTNET', + chainid: 84532, + rpcUrl: 'https://sepolia.base.org/', + commAddress: '0x9cb3bd7550B5c92baA056Fc0F08132f49508145F', + }, }; diff --git a/src/config/config-prod.js b/src/config/config-prod.js index 2cf4b64029..ef744b5776 100644 --- a/src/config/config-prod.js +++ b/src/config/config-prod.js @@ -31,6 +31,7 @@ export const config = { 1101, // polygon zkevm mainnet 122, // fuse mainnet 7560, // Cyber mainnet + 8453, //base mainnet ], /** @@ -175,4 +176,11 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber.alt.technology/', commAddress: '0xb3971BCef2D791bc4027BbfedFb47319A4AAaaAa', }, + 8453: { + label: 'Base Mainnet', + name: 'BASE_MAINNET', + chainid: 8453, + rpcUrl: 'https://mainnet.base.org/', + commAddress: '0xb3971BCef2D791bc4027BbfedFb47319A4AAaaAa', + }, }; diff --git a/src/config/config-staging.js b/src/config/config-staging.js index 1be1b680ef..2cc4e92893 100644 --- a/src/config/config-staging.js +++ b/src/config/config-staging.js @@ -33,6 +33,7 @@ export const config = { 421614, // arbitrum testnet 123, // fuse testnet 111557560, // Cyber testnet + 84532, //base sepolia ], /** @@ -179,4 +180,11 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber-testnet.alt.technology/', commAddress: '0x6e489B7af21cEb969f49A90E481274966ce9D74d', }, + 84532: { + label: 'Base Sepolia', + name: 'BASE_TESTNET', + chainid: 84532, + rpcUrl: 'https://sepolia.base.org/', + commAddress: '0x6e489B7af21cEb969f49A90E481274966ce9D74d', + }, }; diff --git a/src/connectors/chains.ts b/src/connectors/chains.ts index 557a8b4136..7f55ab2b43 100644 --- a/src/connectors/chains.ts +++ b/src/connectors/chains.ts @@ -130,6 +130,12 @@ export const MAINNET_CHAINS: ChainConfig = { nativeCurrency: ETH, blockExplorerUrls: ['https://cyberscan.co/'], }, + 8453: { + name: 'Base Mainnet', + urls: ['https://mainnet.base.org/'], + nativeCurrency: ETH, + blockExplorerUrls: ['https://basescan.org/'], + }, }; export const TESTNET_CHAINS: ChainConfig = { @@ -192,6 +198,12 @@ export const TESTNET_CHAINS: ChainConfig = { nativeCurrency: ETH, blockExplorerUrls: ['https://testnet.cyberscan.co/'], }, + 84532: { + name: 'Base Sepolia', + urls: ['https://sepolia.base.org/'], + nativeCurrency: ETH, + blockExplorerUrls: ['https://sepolia-explorer.base.org/'], + }, }; export const CHAINS: ChainConfig = { diff --git a/src/helpers/CaipHelper.ts b/src/helpers/CaipHelper.ts index e2c9128ed6..2762d75abf 100644 --- a/src/helpers/CaipHelper.ts +++ b/src/helpers/CaipHelper.ts @@ -2,7 +2,7 @@ import { appConfig } from '../config/index.js'; export const Eip155EnabledIds: Array = [ - 1, 56, 137, 10, 1101, 42161, 11155111, 97, 80002, 11155420, 2442, 421614, 122, 123, 111557560, 7560, + 1, 56, 137, 10, 1101, 42161, 11155111, 97, 80002, 11155420, 2442, 421614, 122, 123, 111557560, 7560, 84532, 8453, ]; // Types diff --git a/src/helpers/UtilityHelper.ts b/src/helpers/UtilityHelper.ts index 7966e03c78..246356be92 100644 --- a/src/helpers/UtilityHelper.ts +++ b/src/helpers/UtilityHelper.ts @@ -19,7 +19,8 @@ const UtilityHelper = { chainId === 10 || chainId === 42161 || chainId === 122 || - chainId === 7560 + chainId === 7560 || + chainId === 8453 ) { return true; } @@ -62,6 +63,8 @@ export const MaskedAliasChannels: { 123: {}, 111557560: {}, 7560: {}, + 8453: {}, + 84532: {}, }; export const findObject = (data: any, parentArray: any[], property: string): boolean => { @@ -126,6 +129,8 @@ export const networkName = { 123: 'Fuse Testnet', 111557560: 'Cyber Testnet', 7560: 'Cyber Mainnet', + 8453: 'Base Mainnet', + 84532: 'Base Sepolia', }; export const chainNameBackendStandard = { @@ -151,6 +156,8 @@ export const aliasChainIdToChainName = { 123: 'FUSE', 111557560: 'CYBERCONNECT', 7560: 'CYBERCONNECT', + 8453: 'BASE', + 84532: 'BASE', }; export const aliasChainIdsMapping = { @@ -259,6 +266,20 @@ export const NETWORK_DETAILS = { rpcUrls: ['https://cyber.alt.technology/'], blockExplorerUrls: [' https://.cyberscan.co/'], }, + BASE_TESTNET: { + chainId: utils.hexValue(84532), + chainName: 'Base Testnet', + nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, + rpcUrls: ['https://sepolia.base.org/'], + blockExplorerUrls: ['https://sepolia-explorer.base.org/'], + }, + BASE_MAINNET: { + chainId: utils.hexValue(8453), + chainName: 'Base Mainnet', + nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, + rpcUrls: ['https://mainnet.base.org/'], + blockExplorerUrls: ['https://basescan.org/'], + }, }; export const CORE_CHAIN_ID: number = appConfig.coreContractChain; @@ -283,6 +304,8 @@ export const LOGO_FROM_CHAIN_ID: { 123: 'Fuse.svg', 111557560: 'Cyber.svg', 7560: 'Cyber.svg', + 8453: 'Base.svg', + 84532: 'Base.svg', }; export type getAliasResponseType = { @@ -290,27 +313,39 @@ export type getAliasResponseType = { chainId: string | null; }; +// check code and verify with sc team or be before removing +// export const getAliasFromChannelDetails = (channelDetails: Object | null | string): getAliasResponseType => { +// if (!channelDetails || channelDetails === 'unfetched') return null; + +// if (channelDetails['aliasDetails']) { +// const aliasDetails = channelDetails['aliasDetails']; +// const aliasDetail = { chainId: null, address: null }; +// appConfig.allowedNetworks.forEach((chainID) => { +// const caipChainId = convertChainIdToChainCaip(chainID); +// if (aliasDetails[caipChainId!]) { +// aliasDetail.address = aliasDetails[caipChainId!]; +// aliasDetail.chainId = chainID; +// } +// }); +// if (aliasDetail.address) return aliasDetail; +// } else if (channelDetails['address'] != null && channelDetails['address'] != '') { +// if (appConfig.allowedNetworks.includes(+channelDetails['chain_id'])) { +// return { address: channelDetails['address'], chainId: channelDetails['chain_id'] }; +// } +// } + +// return { address: null, chainId: null }; +// }; + export const getAliasFromChannelDetails = (channelDetails: Object | null | string): getAliasResponseType => { if (!channelDetails || channelDetails === 'unfetched') return null; - if (channelDetails['aliasDetails']) { - const aliasDetails = channelDetails['aliasDetails']; - const aliasDetail = { chainId: null, address: null }; - appConfig.allowedNetworks.forEach((chainID) => { - const caipChainId = convertChainIdToChainCaip(chainID); - if (aliasDetails[caipChainId!]) { - aliasDetail.address = aliasDetails[caipChainId!]; - aliasDetail.chainId = chainID; - } - }); - if (aliasDetail.address) return aliasDetail; - } else if (channelDetails['address'] != null && channelDetails['address'] != '') { - if (appConfig.allowedNetworks.includes(+channelDetails['chain_id'])) { - return { address: channelDetails['address'], chainId: channelDetails['chain_id'] }; + if (channelDetails['alias_address'] != null && channelDetails['alias_address'] != '') { + if (appConfig.allowedNetworks.includes(+channelDetails['alias_blockchain_id'])) { + return { address: channelDetails['alias_address'], chainId: channelDetails['alias_blockchain_id'] }; } } - - return { address: null, chainId: null }; + return null; }; export const CHANNEL_TYPE = { diff --git a/src/hooks/useInactiveListener.ts b/src/hooks/useInactiveListener.ts index f6f7b110cc..d351042ca2 100644 --- a/src/hooks/useInactiveListener.ts +++ b/src/hooks/useInactiveListener.ts @@ -16,9 +16,9 @@ export function useInactiveListener() { if (appConfig.coreContractChain === 42) return 'Unsupported Network, please connect to the Ethereum Kovan network or Polygon Amoy network'; else if (appConfig.coreContractChain === 11155111) - return 'Unsupported Network, please connect to the Ethereum Sepolia, Polygon Amoy, BNB testnet, Optimism Sepolia, Arbitrum Sepolia or Polygon zkEVM testnet'; + return 'Unsupported Network, please connect to the Ethereum Sepolia, Polygon Amoy, BNB testnet, Optimism Sepolia, Arbitrum Sepolia, Base Sepolia or Polygon zkEVM testnet'; else - return 'Unsupported Network, please connect to the Ethereum, Polygon, BNB, Optimism, Arbitrum or Polygon zkEVM Mainnet'; + return 'Unsupported Network, please connect to the Ethereum, Polygon, BNB, Optimism, Arbitrum, Base or Polygon zkEVM Mainnet'; }; useEffect(() => { diff --git a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx index 4a33aef36e..4295ec09a1 100644 --- a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx +++ b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx @@ -73,8 +73,9 @@ const ChannelOwnerDashboard = () => { useEffect(() => { if (!onCoreNetwork || !channelDetails || aliasAddrFromContract || channelDetails === 'unfetched') return; - const { address: aliasAddress, chainId: aliasChainId } = getAliasFromChannelDetails(channelDetails); - if (aliasAddress) { + const aliasDetails = getAliasFromChannelDetails(channelDetails); + if (aliasDetails) { + const { address: aliasAddress, chainId: aliasChainId } = aliasDetails; dispatch(setAliasAddressFromContract(aliasAddress)); dispatch(setAliasChainId(aliasChainId)); // dispatch(setAliasAddress(aliasAddress)); diff --git a/src/modules/rewards/components/LeaderBoardList.tsx b/src/modules/rewards/components/LeaderBoardList.tsx index dfadfbc427..0f3446e85c 100644 --- a/src/modules/rewards/components/LeaderBoardList.tsx +++ b/src/modules/rewards/components/LeaderBoardList.tsx @@ -1,7 +1,6 @@ // React and other libraries import { FC } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; -import { css } from 'styled-components'; //Hooks import { useGetRewardsLeaderboard, ModelledLeaderBoardUser } from 'queries'; @@ -42,12 +41,8 @@ const LeaderBoardList: FC = () => { =7.17.0, @babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.24.7 - resolution: "@babel/runtime@npm:7.24.7" + version: 7.24.8 + resolution: "@babel/runtime@npm:7.24.8" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10/7b77f566165dee62db3db0296e71d08cafda3f34e1b0dcefcd68427272e17c1704f4e4369bff76651b07b6e49d3ea5a0ce344818af9116e9292e4381e0918c76 + checksum: 10/e6f335e472a8a337379effc15815dd0eddf6a7d0c00b50deb4f9e9585819b45431d0ff3c2d3d0fa58c227a9b04dcc4a85e7245fb57493adb2863b5208c769cbd languageName: node linkType: hard @@ -375,32 +375,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.5, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.4.5": - version: 7.24.7 - resolution: "@babel/traverse@npm:7.24.7" +"@babel/traverse@npm:^7.24.5, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.4.5": + version: 7.24.8 + resolution: "@babel/traverse@npm:7.24.8" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.24.7" + "@babel/generator": "npm:^7.24.8" "@babel/helper-environment-visitor": "npm:^7.24.7" "@babel/helper-function-name": "npm:^7.24.7" "@babel/helper-hoist-variables": "npm:^7.24.7" "@babel/helper-split-export-declaration": "npm:^7.24.7" - "@babel/parser": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" + "@babel/parser": "npm:^7.24.8" + "@babel/types": "npm:^7.24.8" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/785cf26383a992740e492efba7016de964cd06c05c9d7146fa1b5ead409e054c444f50b36dc37856884a56e32cf9d3105ddf1543486b6df68300bffb117a245a + checksum: 10/47d8ecf8cfff58fe621fc4d8454b82c97c407816d8f9c435caa0c849ea7c357b91119a06f3c69f21a0228b5d06ac0b44f49d1f78cff032d6266317707f1fe615 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.8.3": - version: 7.24.7 - resolution: "@babel/types@npm:7.24.7" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.8.3": + version: 7.24.9 + resolution: "@babel/types@npm:7.24.9" dependencies: - "@babel/helper-string-parser": "npm:^7.24.7" + "@babel/helper-string-parser": "npm:^7.24.8" "@babel/helper-validator-identifier": "npm:^7.24.7" to-fast-properties: "npm:^2.0.0" - checksum: 10/ad3c8c0d6fb4acb0bb74bb5b4bb849b181bf6185677ef9c59c18856c81e43628d0858253cf232f0eca806f02e08eff85a1d3e636a3e94daea737597796b0b430 + checksum: 10/21873a08a124646824aa230de06af52149ab88206dca59849dcb3003990a6306ec2cdaa4147ec1127c0cfc5f133853cfc18f80d7f6337b6662a3c378ed565f15 languageName: node linkType: hard @@ -1475,23 +1475,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abi@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/abi@npm:5.5.0" - dependencies: - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/hash": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - checksum: 10/bd1e112b198a39b062f94e70ec62be07829a2d3c607488d613315de5efdb6e8fed9bb988a5161174dc0daee8034bb4ddd7e30e03668b4486189d46dd257ca674 - languageName: node - linkType: hard - "@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.1, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abi@npm:5.7.0" @@ -1509,22 +1492,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abstract-provider@npm:5.5.1": - version: 5.5.1 - resolution: "@ethersproject/abstract-provider@npm:5.5.1" - dependencies: - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/networks": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - "@ethersproject/web": "npm:^5.5.0" - checksum: 10/0668055c01a130dee9c6f5d43bb901e54bd4430dd158ea01730038e35a2b9d1f8feb76738628ee884a44f11cf4de1612e303bad908bde39f0d0def8ea228d043 - languageName: node - linkType: hard - -"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.5.0, @ethersproject/abstract-provider@npm:^5.7.0": +"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abstract-provider@npm:5.7.0" dependencies: @@ -1539,20 +1507,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abstract-signer@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/abstract-signer@npm:5.5.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - checksum: 10/e29b49a0e8ce6d61873fe7de310288e498e2be3db9205b384bc098ad67fe46364750b64cdd6df6ce0a6090b5aac5e5d05e07f2737ba8ce14ed97080d2ea4fddb - languageName: node - linkType: hard - -"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.5.0, @ethersproject/abstract-signer@npm:^5.7.0": +"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abstract-signer@npm:5.7.0" dependencies: @@ -1565,20 +1520,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/address@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/address@npm:5.5.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/rlp": "npm:^5.5.0" - checksum: 10/b38c4efd61434f720b33f4a398f5ddbc8a1234bbfccb6895ef73b3f7c27b2e0af4a874769a76e31c48659701800fa50d177fa3adf547094aca31c510adf1b11c - languageName: node - linkType: hard - -"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5, @ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.5.0, @ethersproject/address@npm:^5.7.0": +"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5, @ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/address@npm:5.7.0" dependencies: @@ -1591,16 +1533,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/base64@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/base64@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - checksum: 10/563991f6fc8bed96f04b99578de0126296ba48d8df283bcd811668191365ba533c9b46f85cd9b1ea9ee017e786d515ea7b592de8d6374609be05785469c1af74 - languageName: node - linkType: hard - -"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.0.2, @ethersproject/base64@npm:^5.5.0, @ethersproject/base64@npm:^5.7.0": +"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.0.2, @ethersproject/base64@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/base64@npm:5.7.0" dependencies: @@ -1609,17 +1542,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/basex@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/basex@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - checksum: 10/89e9b3bf4e96ca7734ba5aab5709d7335bd2fdb6f7247dcf0a62bf2f5923512d1a37531187aeef37ce91ac37081c2e11db68a78c3e005e43795f29a971616b94 - languageName: node - linkType: hard - -"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.5.0, @ethersproject/basex@npm:^5.7.0": +"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/basex@npm:5.7.0" dependencies: @@ -1629,18 +1552,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bignumber@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/bignumber@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - bn.js: "npm:^4.11.9" - checksum: 10/3da18cee3138de4c3d1293c6067c387597dccc4326fffa1594ae40d98cd5fb83d116ab3730b671254ba07dfe488089fc762cb5d409e6d4d0962cae6ff7156c18 - languageName: node - linkType: hard - -"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.5.0, @ethersproject/bignumber@npm:^5.7.0": +"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bignumber@npm:5.7.0" dependencies: @@ -1651,16 +1563,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bytes@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/bytes@npm:5.5.0" - dependencies: - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/f5ce43064f516b34d1365b6f89761094e432647fbea6c97de960f7ca84ffc97254c48bbe310c4b493738a49a707a18748094f7cff2400fc0d20608a503d50bd6 - languageName: node - linkType: hard - -"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.5.0, @ethersproject/bytes@npm:^5.7.0": +"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bytes@npm:5.7.0" dependencies: @@ -1669,16 +1572,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/constants@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/constants@npm:5.5.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.5.0" - checksum: 10/20519ec5abcbff6d2a7f1260f58b33e1c472abdfb2ee3d5428d08091484fed572f8f873b1cb0410f9248f92512016bbf680324f9f2a537b5f65413a6a1359fd3 - languageName: node - linkType: hard - -"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.5.0, @ethersproject/constants@npm:^5.7.0": +"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/constants@npm:5.7.0" dependencies: @@ -1687,24 +1581,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/contracts@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/contracts@npm:5.5.0" - dependencies: - "@ethersproject/abi": "npm:^5.5.0" - "@ethersproject/abstract-provider": "npm:^5.5.0" - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - checksum: 10/407184790fb24f413ffec2e35ebf83c75eb36688267b6421c474605c0f45445d2343b5ba3045892dba53b0017643156cc1c108aee7827ba9ec56d750c9746b3f - languageName: node - linkType: hard - "@ethersproject/contracts@npm:5.7.0, @ethersproject/contracts@npm:^5.0.1, @ethersproject/contracts@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/contracts@npm:5.7.0" @@ -1723,23 +1599,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/hash@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/hash@npm:5.5.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - checksum: 10/d6bf33bb96a76f35357f026632c52e931da1f47d1a257c35a5e7714bd5b8af78fc297b4f5ab85565fd3c6993c75bc59dd91c5e59f419b1e1c6d86c4c5f8c0886 - languageName: node - linkType: hard - -"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.5.0, @ethersproject/hash@npm:^5.7.0": +"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/hash@npm:5.7.0" dependencies: @@ -1756,27 +1616,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/hdnode@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/hdnode@npm:5.5.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/basex": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/pbkdf2": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/sha2": "npm:^5.5.0" - "@ethersproject/signing-key": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - "@ethersproject/wordlists": "npm:^5.5.0" - checksum: 10/6cf358c62a5dc14483821cdeea06203ebecb7a152248a2be43d330f23dfec117c25f33fbfbf8c010ea8e7ab53e1ba58514dc87af3b8145ab8184f223684bc0cb - languageName: node - linkType: hard - -"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.5.0, @ethersproject/hdnode@npm:^5.7.0": +"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/hdnode@npm:5.7.0" dependencies: @@ -1796,28 +1636,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/json-wallets@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/json-wallets@npm:5.5.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/hdnode": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/pbkdf2": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/random": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - aes-js: "npm:3.0.0" - scrypt-js: "npm:3.0.1" - checksum: 10/d0f2cdfe5429c26f78f32dacfcc5b152d70c5ddc04fb8cd5f0a762e4e2c42a4c0385f0a8d1cf922e58422412bcf4e6090aaa4408a086c598b74ef0aa60c7f58f - languageName: node - linkType: hard - -"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.5.0, @ethersproject/json-wallets@npm:^5.7.0": +"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/json-wallets@npm:5.7.0" dependencies: @@ -1838,17 +1657,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/keccak256@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/keccak256@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - js-sha3: "npm:0.8.0" - checksum: 10/587590c8448f3e1db52320d4fecc807d94a8ee83253110c076c7f8ce3b3127f7fd56c302f1ee80e6bc2764a4949a490ee5143344fabfad2a65020dc2f5896a85 - languageName: node - linkType: hard - -"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.5.0, @ethersproject/keccak256@npm:^5.7.0": +"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/keccak256@npm:5.7.0" dependencies: @@ -1858,30 +1667,14 @@ __metadata: languageName: node linkType: hard -"@ethersproject/logger@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/logger@npm:5.5.0" - checksum: 10/84269c2221ae03fc11f0017f6fe3b6ad2c29e11ed09b1182511379e9f40ff22dd09043c0bff995f82e37849f21e2eafa5e8a2b4e25a81b9f4f805432d9d6914c - languageName: node - linkType: hard - -"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.5.0, @ethersproject/logger@npm:^5.7.0": +"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/logger@npm:5.7.0" checksum: 10/683a939f467ae7510deedc23d7611d0932c3046137f5ffb92ba1e3c8cd9cf2fbbaa676b660c248441a0fa9143783137c46d6e6d17d676188dd5a6ef0b72dd091 languageName: node linkType: hard -"@ethersproject/networks@npm:5.5.2": - version: 5.5.2 - resolution: "@ethersproject/networks@npm:5.5.2" - dependencies: - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/09626f4d0a67b543462c19e4afaa12f422165eb3b6ba3b2e289c1cb49e508486887934447bbd53f276d6d532bff8a096cc53142b26df3f6a9c95597e0862da72 - languageName: node - linkType: hard - -"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.5.0, @ethersproject/networks@npm:^5.7.0": +"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0": version: 5.7.1 resolution: "@ethersproject/networks@npm:5.7.1" dependencies: @@ -1890,17 +1683,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/pbkdf2@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/pbkdf2@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/sha2": "npm:^5.5.0" - checksum: 10/7712738caa794a69c5b5e978e972f141c99139b93204216df186429a5f2319b3e2eeb6463ad3fbcf2f5e4617204f8f517d7fee511f8661b75f072fa59d9d2fa8 - languageName: node - linkType: hard - -"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.5.0, @ethersproject/pbkdf2@npm:^5.7.0": +"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/pbkdf2@npm:5.7.0" dependencies: @@ -1910,16 +1693,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/properties@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/properties@npm:5.5.0" - dependencies: - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/d395a534f0a7009920b8a3c095a838088b190f84ba07a7263e3e3c4857dcdf3933560dc9fcfd6c7fa0456c00b5dfc988b8999e1286157178715069c78209408a - languageName: node - linkType: hard - -"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.5.0, @ethersproject/properties@npm:^5.7.0": +"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/properties@npm:5.7.0" dependencies: @@ -1928,33 +1702,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/providers@npm:5.5.2": - version: 5.5.2 - resolution: "@ethersproject/providers@npm:5.5.2" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.5.0" - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/basex": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/hash": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/networks": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/random": "npm:^5.5.0" - "@ethersproject/rlp": "npm:^5.5.0" - "@ethersproject/sha2": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - "@ethersproject/web": "npm:^5.5.0" - bech32: "npm:1.1.4" - ws: "npm:7.4.6" - checksum: 10/25d7f15b0a9eb72410f90ce06cffd887c11c8abfa9699895defdb52424836af52b689c31ff13bd413c932f1ddf4bb21143739fdbf753360fe60c3c018ba3a83b - languageName: node - linkType: hard - "@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5, @ethersproject/providers@npm:^5.0.0-beta.144, @ethersproject/providers@npm:^5.0.4, @ethersproject/providers@npm:^5.6.0, @ethersproject/providers@npm:^5.7.0": version: 5.7.2 resolution: "@ethersproject/providers@npm:5.7.2" @@ -1983,17 +1730,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/random@npm:5.5.1": - version: 5.5.1 - resolution: "@ethersproject/random@npm:5.5.1" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/028e31ed85e6856ce0ca65a11f70ee523237ac84f7b8939b595f9df63943fde234a0bd02392b1f4509dee4f0487bfb9fbe97966879d08b49e3ddde9571ea15ea - languageName: node - linkType: hard - -"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.0.2, @ethersproject/random@npm:^5.5.0, @ethersproject/random@npm:^5.7.0": +"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.0.2, @ethersproject/random@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/random@npm:5.7.0" dependencies: @@ -2003,17 +1740,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/rlp@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/rlp@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/046c3e53fdb6aec68d11f961738d34aae5cf60220ce7f3774d20e2742c2912c49a72671905507ce510bc45d55c9341e6dd117d3c984a0dc8a750074497852967 - languageName: node - linkType: hard - -"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.5.0, @ethersproject/rlp@npm:^5.7.0": +"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/rlp@npm:5.7.0" dependencies: @@ -2023,18 +1750,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/sha2@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/sha2@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - hash.js: "npm:1.1.7" - checksum: 10/31d8bc4d0b8a8948e1562de7a2e3bb98709672e66541c0c9ae76e1b93918ad04b4fbe89f9d39bc739627a6bd00978ab256099d1ae30f44ccda7bbd7bea3c5f40 - languageName: node - linkType: hard - -"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.5.0, @ethersproject/sha2@npm:^5.7.0": +"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/sha2@npm:5.7.0" dependencies: @@ -2045,21 +1761,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/signing-key@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/signing-key@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - bn.js: "npm:^4.11.9" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.7" - checksum: 10/3c426346bceb73d799f508d61fcebcc5459c42a3eba6292fa11ea7520b849609cb4c29d7aa9f8f9b1cda967b672725d298f1f7c616176eecb7a793d9fa81af1b - languageName: node - linkType: hard - -"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.5.0, @ethersproject/signing-key@npm:^5.7.0": +"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/signing-key@npm:5.7.0" dependencies: @@ -2073,20 +1775,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/solidity@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/solidity@npm:5.5.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/sha2": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - checksum: 10/f19a4ebe235a43fe3749420822e4b5e9f3b7b7a95e6c102cd46b9a589118660db099d9a9ef1770b4d15c3710b97bbebc74852a838644a47a769bc997460dbed7 - languageName: node - linkType: hard - "@ethersproject/solidity@npm:5.7.0, @ethersproject/solidity@npm:^5.0.0, @ethersproject/solidity@npm:^5.0.9": version: 5.7.0 resolution: "@ethersproject/solidity@npm:5.7.0" @@ -2101,18 +1789,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/strings@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/strings@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/dd3d601a91ad65049d994bd19e72aa179dfba31d001e8667c82fa7c3f6ae26774cbbc35428f744f397e154918641ff4db10e3e5b49dac9ea8e08807441d5b168 - languageName: node - linkType: hard - -"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.5.0, @ethersproject/strings@npm:^5.7.0": +"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/strings@npm:5.7.0" dependencies: @@ -2123,24 +1800,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/transactions@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/transactions@npm:5.5.0" - dependencies: - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/rlp": "npm:^5.5.0" - "@ethersproject/signing-key": "npm:^5.5.0" - checksum: 10/f92868be223abcdbf29ae698162cba4168169f4acd7751fe911dbfe455a7d667d2bf731bbb02c667672ea70694a453d7d95de7b2e8d622b79e8208c326d18e53 - languageName: node - linkType: hard - -"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.5.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": +"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/transactions@npm:5.7.0" dependencies: @@ -2157,17 +1817,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/units@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/units@npm:5.5.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/constants": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - checksum: 10/7d5a841eb00ec693073dd3f020e1a3207cf917f37af30aaf1b5b3db03ecb2347f84733ea0d820a14cafd12922e8f7137bcf1b0d6309b7520a4a8db7c9e9de7a0 - languageName: node - linkType: hard - "@ethersproject/units@npm:5.7.0": version: 5.7.0 resolution: "@ethersproject/units@npm:5.7.0" @@ -2179,29 +1828,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/wallet@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/wallet@npm:5.5.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.5.0" - "@ethersproject/abstract-signer": "npm:^5.5.0" - "@ethersproject/address": "npm:^5.5.0" - "@ethersproject/bignumber": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/hash": "npm:^5.5.0" - "@ethersproject/hdnode": "npm:^5.5.0" - "@ethersproject/json-wallets": "npm:^5.5.0" - "@ethersproject/keccak256": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/random": "npm:^5.5.0" - "@ethersproject/signing-key": "npm:^5.5.0" - "@ethersproject/transactions": "npm:^5.5.0" - "@ethersproject/wordlists": "npm:^5.5.0" - checksum: 10/6e3933827d975a826534bb0ffd79db97476041dff139eed75884c1f5886835106b89e865b2ebddd3c91456bc6da6de8e472816bba95bcdc123a72e80a141b8c0 - languageName: node - linkType: hard - "@ethersproject/wallet@npm:5.7.0, @ethersproject/wallet@npm:^5.0.1, @ethersproject/wallet@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/wallet@npm:5.7.0" @@ -2225,20 +1851,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/web@npm:5.5.1": - version: 5.5.1 - resolution: "@ethersproject/web@npm:5.5.1" - dependencies: - "@ethersproject/base64": "npm:^5.5.0" - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - checksum: 10/3cf4e9726578ea2460c01a5b59969782265cf41e0c5c52f04270c313c87d50766864bdd64a3b022c50c16b0e26c76a4729d33253ac76b5d11f5fb3bd815a0541 - languageName: node - linkType: hard - -"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.5.0, @ethersproject/web@npm:^5.7.0, @ethersproject/web@npm:^5.7.1": +"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0, @ethersproject/web@npm:^5.7.1": version: 5.7.1 resolution: "@ethersproject/web@npm:5.7.1" dependencies: @@ -2251,20 +1864,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/wordlists@npm:5.5.0": - version: 5.5.0 - resolution: "@ethersproject/wordlists@npm:5.5.0" - dependencies: - "@ethersproject/bytes": "npm:^5.5.0" - "@ethersproject/hash": "npm:^5.5.0" - "@ethersproject/logger": "npm:^5.5.0" - "@ethersproject/properties": "npm:^5.5.0" - "@ethersproject/strings": "npm:^5.5.0" - checksum: 10/7616a08d22e9d9f7dab01aca03e732593ff3df56401d9cf607b7b358ba9348b848906aef0f34836d8477c17d81be364e2932f5afe5be9dc0e6c0013a148b8ce2 - languageName: node - linkType: hard - -"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.5.0, @ethersproject/wordlists@npm:^5.7.0": +"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/wordlists@npm:5.7.0" dependencies: @@ -2284,18 +1884,18 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics-compat@npm:0.2.10": - version: 0.2.10 - resolution: "@firebase/analytics-compat@npm:0.2.10" +"@firebase/analytics-compat@npm:0.2.11": + version: 0.2.11 + resolution: "@firebase/analytics-compat@npm:0.2.11" dependencies: - "@firebase/analytics": "npm:0.10.4" + "@firebase/analytics": "npm:0.10.5" "@firebase/analytics-types": "npm:0.8.2" - "@firebase/component": "npm:0.6.7" - "@firebase/util": "npm:1.9.6" + "@firebase/component": "npm:0.6.8" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/6dd463dab0279d22d8413accee1a1326e4f1937440b96fb25ae96490ee6ad6c5b32836ac1202f0baaf63d3bdb634e2470a970e7a37e9020b22d6323d4a59b134 + checksum: 10/843b9cef7d724ce72c63d9e8eca267abb3a7286d0c6a8de32cd3b66fcb8563fe8ae60bed7c07761aad7ef37fca425e2c2f7535691177ea7d8c184b6037f0b564 languageName: node linkType: hard @@ -2306,34 +1906,34 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics@npm:0.10.4": - version: 0.10.4 - resolution: "@firebase/analytics@npm:0.10.4" +"@firebase/analytics@npm:0.10.5": + version: 0.10.5 + resolution: "@firebase/analytics@npm:0.10.5" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/installations": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" + "@firebase/installations": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/0b8f75ff08e7547399ae0f7bc68a76f54b55ef02f50b603abb0ffe36d60de2c006ecde8db825aff9a48cbf047b4225f8063afe9051383d28dae6498d76317132 + checksum: 10/fb17b6b5bd2c8b41bc42409a60806fd7504e8c255f9e518a73b3f60dc9b92fdb5a48171a1699980475ca57626bcada1014d34e7829719585813b4a1edea2eb2d languageName: node linkType: hard -"@firebase/app-check-compat@npm:0.3.11": - version: 0.3.11 - resolution: "@firebase/app-check-compat@npm:0.3.11" +"@firebase/app-check-compat@npm:0.3.12": + version: 0.3.12 + resolution: "@firebase/app-check-compat@npm:0.3.12" dependencies: - "@firebase/app-check": "npm:0.8.4" + "@firebase/app-check": "npm:0.8.5" "@firebase/app-check-types": "npm:0.5.2" - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/db8f2342ad4b7b3053d082472fe2b4b38572406228828513189adf13a827c80a65d4ce0b19c5f695baadea452fb695b774c9ae5b639a4b733a002df44cb3bbb1 + checksum: 10/b4bd4282ee7e3c1d269d1d9ddc97d41fd84fc8c7e76c1f74c034297cef9a11d89002a88e46d96472d4cc61a4f37df7d5882a86ff120738b87c9732e01d2a9e64 languageName: node linkType: hard @@ -2351,30 +1951,30 @@ __metadata: languageName: node linkType: hard -"@firebase/app-check@npm:0.8.4": - version: 0.8.4 - resolution: "@firebase/app-check@npm:0.8.4" +"@firebase/app-check@npm:0.8.5": + version: 0.8.5 + resolution: "@firebase/app-check@npm:0.8.5" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/0f4ea3c930141ae08c98dc67463d7b6c9b67c0a98a10768a6be7ba1ec56181ffcdeb5e26f60f6cb721794bd03d7e6132541148417f8da45473139c8a138a7d94 + checksum: 10/3d66e8802dde4b6d0e064afcb4571c0d1d84661e5bf0e5dfdf9f6b544bcf5fee3930a5b94fcf4ea8be5f117bcfb9fb9905d4fbe7f887faa5e5eb25ca7cf37042 languageName: node linkType: hard -"@firebase/app-compat@npm:0.2.35": - version: 0.2.35 - resolution: "@firebase/app-compat@npm:0.2.35" +"@firebase/app-compat@npm:0.2.36": + version: 0.2.36 + resolution: "@firebase/app-compat@npm:0.2.36" dependencies: - "@firebase/app": "npm:0.10.5" - "@firebase/component": "npm:0.6.7" + "@firebase/app": "npm:0.10.6" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" - checksum: 10/6de5c8666af2941b56e550f4207b151fade057b91c995cccc5a1f66abb809b9b92c30b3932d473903d17c57b0fa454bae432c3855ac5a5c6b2785e387852b4a2 + checksum: 10/340e72056d9b420298db6ac0097e019471ff63e70e1b58b2de862ebf1ec83357f683c3a0c7a0364bc703e1fc24e40767ade0532b8b223dfc9503f865040901ca languageName: node linkType: hard @@ -2385,32 +1985,32 @@ __metadata: languageName: node linkType: hard -"@firebase/app@npm:0.10.5": - version: 0.10.5 - resolution: "@firebase/app@npm:0.10.5" +"@firebase/app@npm:0.10.6": + version: 0.10.6 + resolution: "@firebase/app@npm:0.10.6" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" idb: "npm:7.1.1" tslib: "npm:^2.1.0" - checksum: 10/55c4190e578efd083c8e22a7ba7b078b2c4c4911e08e79d5187b2779121f9552ee35490373d2f8a101285e6c57c4b8ea1b019137b0274eaee72aa10a790fb564 + checksum: 10/ac1d79cd62d7f90a481545b6fc0495c08f5611d54b52314f41cd27c4fe47f578a908073ee97c6f8395b88130cde2b7db0bfdf5d5324e750778c9689e1cd3275e languageName: node linkType: hard -"@firebase/auth-compat@npm:0.5.9": - version: 0.5.9 - resolution: "@firebase/auth-compat@npm:0.5.9" +"@firebase/auth-compat@npm:0.5.10": + version: 0.5.10 + resolution: "@firebase/auth-compat@npm:0.5.10" dependencies: - "@firebase/auth": "npm:1.7.4" + "@firebase/auth": "npm:1.7.5" "@firebase/auth-types": "npm:0.12.2" - "@firebase/component": "npm:0.6.7" - "@firebase/util": "npm:1.9.6" + "@firebase/component": "npm:0.6.8" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" undici: "npm:5.28.4" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/671203fc6e2fe7d4fc4332129848f552839a771f405fff18502f5035b4e9eda76ad067c2e75b1cbe3e2d4d365d899b092a5f0bd1b395c0ac43c1464e213992fe + checksum: 10/16d85eccb138ee53c36b20a99c1462f83124d7eb2d2e49a7c2efb72cdf7d15c3f6dbf7c8fd8519ec6ec224a66c2c347235b1b254f4375fae2bfe1653b1f78551 languageName: node linkType: hard @@ -2431,13 +2031,13 @@ __metadata: languageName: node linkType: hard -"@firebase/auth@npm:1.7.4": - version: 1.7.4 - resolution: "@firebase/auth@npm:1.7.4" +"@firebase/auth@npm:1.7.5": + version: 1.7.5 + resolution: "@firebase/auth@npm:1.7.5" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" undici: "npm:5.28.4" peerDependencies: @@ -2446,71 +2046,71 @@ __metadata: peerDependenciesMeta: "@react-native-async-storage/async-storage": optional: true - checksum: 10/e61a500b1d67cc1cdc3fff824f20400deb480a0015db1eaee5744026329bbc87d8c755ae6da8b22b9aed0fd42e0d6684c67cc1bb47697152f3e82bb7ae416b26 + checksum: 10/b8e66c7a272b0a6a5e63768425761a28995dda1104a80d6a4590b250145b2ec5fc5852306916921970f4b0a7e76dc399cf1c44fb0d40f81688a0a9377aabad88 languageName: node linkType: hard -"@firebase/component@npm:0.6.7": - version: 0.6.7 - resolution: "@firebase/component@npm:0.6.7" +"@firebase/component@npm:0.6.8": + version: 0.6.8 + resolution: "@firebase/component@npm:0.6.8" dependencies: - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" - checksum: 10/b41a1c654c6da7ed2570c403dac118b3633d05dc8d9769057fdb66ec04f2f3a8dcb7cff4a87dd5a0b9fa614854586d4376b5aadee6876450c1ee851b59d5b0da + checksum: 10/0df2a61a9d3a32981a82889b4f23923c9adc468e89cadec5984b52d2422bb2b184c1219ed78dc7ec0b7f973ac0b7c2e8f486dee4a32a6741c0627648960e4314 languageName: node linkType: hard -"@firebase/database-compat@npm:1.0.5": - version: 1.0.5 - resolution: "@firebase/database-compat@npm:1.0.5" +"@firebase/database-compat@npm:1.0.6": + version: 1.0.6 + resolution: "@firebase/database-compat@npm:1.0.6" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/database": "npm:1.0.5" - "@firebase/database-types": "npm:1.0.3" + "@firebase/component": "npm:0.6.8" + "@firebase/database": "npm:1.0.6" + "@firebase/database-types": "npm:1.0.4" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" - checksum: 10/e7256f2675860340d560143ef40af9d9e1d941798c166e97b95be3c278068524dfceac9a59fe689a8c6c3704a84faae674601f8504a481521dff43dbc3063b1f + checksum: 10/a4bd30a47bb17de6c1b9508b0141f94a25fa8b73c7f85451200390fcdb6500cdb5e1f14bc699e001798f5552b75a7884cf59361d0eb450374504781e64393a66 languageName: node linkType: hard -"@firebase/database-types@npm:1.0.3": - version: 1.0.3 - resolution: "@firebase/database-types@npm:1.0.3" +"@firebase/database-types@npm:1.0.4": + version: 1.0.4 + resolution: "@firebase/database-types@npm:1.0.4" dependencies: "@firebase/app-types": "npm:0.9.2" - "@firebase/util": "npm:1.9.6" - checksum: 10/ecc36c54552b42b063011d8c58d1645ac3a09a7da36b2cebd25774a1be7d8aa79f752671f75025df44c079289d0c4f42de3cfcdb48cd7fc73539ba93fdcfb476 + "@firebase/util": "npm:1.9.7" + checksum: 10/d76125998d322d1fa31a6bf028e21ba03eafb26d7ae3b408ea8f84f52caf1dea716a236a21c64deb857c5eb091ea53cf148b9a2b99f4e97efc5b7c8cabae9acd languageName: node linkType: hard -"@firebase/database@npm:1.0.5": - version: 1.0.5 - resolution: "@firebase/database@npm:1.0.5" +"@firebase/database@npm:1.0.6": + version: 1.0.6 + resolution: "@firebase/database@npm:1.0.6" dependencies: "@firebase/app-check-interop-types": "npm:0.3.2" "@firebase/auth-interop-types": "npm:0.2.3" - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" faye-websocket: "npm:0.11.4" tslib: "npm:^2.1.0" - checksum: 10/1ea0bb014af9e1134f68868a2cfe97befae5c252cc728342d2f8b51ce06df2085dc87b443339eebd4a622c49abdd583bbe2ebf3bd3ac6cad0c148f4a61612c42 + checksum: 10/9d55b61624934703f1636692e4e6765ade127cb636a0d3adda75889cb2be4735eb03347caf4f0184eaef829ade11c5ab210df0327b1ae629f8f0484faa1f8124 languageName: node linkType: hard -"@firebase/firestore-compat@npm:0.3.32": - version: 0.3.32 - resolution: "@firebase/firestore-compat@npm:0.3.32" +"@firebase/firestore-compat@npm:0.3.33": + version: 0.3.33 + resolution: "@firebase/firestore-compat@npm:0.3.33" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/firestore": "npm:4.6.3" + "@firebase/component": "npm:0.6.8" + "@firebase/firestore": "npm:4.6.4" "@firebase/firestore-types": "npm:3.0.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/65ff915c6c1bb3ccc580887c91d7bb6470fbbb4035f3db24dc91ce297391ceb3d12ce2e311b8c7bcac7976e625089e8871cfe0e6a3c22d85945bb34b3022dc0a + checksum: 10/9e0ebf53487af218ad4f3ef67caf4acb29baac087530a0cbcc7296a194aa03da53572f7792bf1db5a819cec2b6a5336b4187cc63084deac518802fe44aee385b languageName: node linkType: hard @@ -2524,36 +2124,36 @@ __metadata: languageName: node linkType: hard -"@firebase/firestore@npm:4.6.3": - version: 4.6.3 - resolution: "@firebase/firestore@npm:4.6.3" +"@firebase/firestore@npm:4.6.4": + version: 4.6.4 + resolution: "@firebase/firestore@npm:4.6.4" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" - "@firebase/webchannel-wrapper": "npm:1.0.0" + "@firebase/util": "npm:1.9.7" + "@firebase/webchannel-wrapper": "npm:1.0.1" "@grpc/grpc-js": "npm:~1.9.0" "@grpc/proto-loader": "npm:^0.7.8" tslib: "npm:^2.1.0" undici: "npm:5.28.4" peerDependencies: "@firebase/app": 0.x - checksum: 10/a2edab1abb1ff2abb891c490bb81aa698128493847256c3ae7f20eefa97b51442c2689c0659c8e1daeb7f054d06687b6ae3db0680396a338d3228e8865933bd2 + checksum: 10/31df78e2157f74dfa00c634eeea27853923db679df438786432503fc9099616a2ac42dd32d9098d14a6f221b0e2572c9e29fd0231c34651c8216352729d6cc0c languageName: node linkType: hard -"@firebase/functions-compat@npm:0.3.11": - version: 0.3.11 - resolution: "@firebase/functions-compat@npm:0.3.11" +"@firebase/functions-compat@npm:0.3.12": + version: 0.3.12 + resolution: "@firebase/functions-compat@npm:0.3.12" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/functions": "npm:0.11.5" + "@firebase/component": "npm:0.6.8" + "@firebase/functions": "npm:0.11.6" "@firebase/functions-types": "npm:0.6.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/271609ea2d95a333b1fab1ed1d4dcec9b92299253f9a310519b1ee70d61be87029da75dd852ce736179c21886bd2f04bb7aee299e731ef88d9ebe3d00540b61a + checksum: 10/d9803c909e848dc381c892d36885a9519b5b025a46afb2c096bf099e840c5c0afc2290b5660a9d763cf6a8bf0ad6f303f85d3011abfc02d75348452bfe3200c8 languageName: node linkType: hard @@ -2564,35 +2164,35 @@ __metadata: languageName: node linkType: hard -"@firebase/functions@npm:0.11.5": - version: 0.11.5 - resolution: "@firebase/functions@npm:0.11.5" +"@firebase/functions@npm:0.11.6": + version: 0.11.6 + resolution: "@firebase/functions@npm:0.11.6" dependencies: "@firebase/app-check-interop-types": "npm:0.3.2" "@firebase/auth-interop-types": "npm:0.2.3" - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/messaging-interop-types": "npm:0.2.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" undici: "npm:5.28.4" peerDependencies: "@firebase/app": 0.x - checksum: 10/839dd2d9a4a9321bb53d210729246fe4db97e7c26dc562ee1b0c95579b111534fd4a27962e19d2a84cd35f62e0ef75d89c06ffa1177d0a178740cfdcf5325162 + checksum: 10/c1ac2887dd986c8abc408db1da26531f5f9d252f2cd4ee36352239ed0a0fc11902dd1f85db9ec21818028fd737c5a09461c01c0701c85f9ea96b9dc8dfc69f03 languageName: node linkType: hard -"@firebase/installations-compat@npm:0.2.7": - version: 0.2.7 - resolution: "@firebase/installations-compat@npm:0.2.7" +"@firebase/installations-compat@npm:0.2.8": + version: 0.2.8 + resolution: "@firebase/installations-compat@npm:0.2.8" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/installations": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" + "@firebase/installations": "npm:0.6.8" "@firebase/installations-types": "npm:0.5.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/b32f9ba4b7d6cdb6c932da28ebbd29a7c398065ec4bf353ac40cb2fc8b2f5a77608759635ade41b6d5e2c8f2047e1710beeb3babdfe116d8fc9c6b693ce922aa + checksum: 10/b0eece054763ac6d229b2fca7ead9cbdd10e6c8429be9f03d95e8ed4a488fcf1cbc3a136f49800b07f2b82fb0f5ff1fecb41bee923aa045314ed854bada256d8 languageName: node linkType: hard @@ -2605,17 +2205,17 @@ __metadata: languageName: node linkType: hard -"@firebase/installations@npm:0.6.7": - version: 0.6.7 - resolution: "@firebase/installations@npm:0.6.7" +"@firebase/installations@npm:0.6.8": + version: 0.6.8 + resolution: "@firebase/installations@npm:0.6.8" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/util": "npm:1.9.6" + "@firebase/component": "npm:0.6.8" + "@firebase/util": "npm:1.9.7" idb: "npm:7.1.1" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/643bc8f1e908b2edadbda422e86753c8599e94744f1e2c4e4ae60059d32c4001c76d3fd63377a53bc49e31e991fbfa2f0c31a46dd69ed3151cc7c96316184b6c + checksum: 10/84cdf30d393fad859f035b276c0ef372cd94907fe042498cdd7c24a719d786866a2f976834b90a49c543e37ae317edd669676830ba7cd83f3a3d34b6f2c0f1ee languageName: node linkType: hard @@ -2628,17 +2228,17 @@ __metadata: languageName: node linkType: hard -"@firebase/messaging-compat@npm:0.2.9": - version: 0.2.9 - resolution: "@firebase/messaging-compat@npm:0.2.9" +"@firebase/messaging-compat@npm:0.2.10": + version: 0.2.10 + resolution: "@firebase/messaging-compat@npm:0.2.10" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/messaging": "npm:0.12.9" - "@firebase/util": "npm:1.9.6" + "@firebase/component": "npm:0.6.8" + "@firebase/messaging": "npm:0.12.10" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/15140fc298bdd28b28fd052eb630770c4388887a9a1d29afa11d4e74cccd3238826fae97e7beb4196a286fe0555023f836442508f13776c6e371bf610819aa5d + checksum: 10/3565546cc935f553c0331dc86e593cd39e09c198c549e801dfb9d4ee53152fcc3bab277355bf1a82a063506b8462038dbd3d2122178b9c1edd39c08a0503244d languageName: node linkType: hard @@ -2649,35 +2249,35 @@ __metadata: languageName: node linkType: hard -"@firebase/messaging@npm:0.12.9": - version: 0.12.9 - resolution: "@firebase/messaging@npm:0.12.9" +"@firebase/messaging@npm:0.12.10": + version: 0.12.10 + resolution: "@firebase/messaging@npm:0.12.10" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/installations": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" + "@firebase/installations": "npm:0.6.8" "@firebase/messaging-interop-types": "npm:0.2.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" idb: "npm:7.1.1" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/67ace395630a858f990513398ea2055cbbf6c167f47068c62cc9eb342a6ab459a3fcb0f2f7b26c1c7027cb79a5e67e4124602723ed9e2ac483153981b91206e0 + checksum: 10/c883b465da2cdee0e08f37119bcb4eb1152bec482fe87136f4dbc6fc9ffbbba1f7c25fff70948844633949ab77bc38d81afd31e7227bf398863cccb878be3095 languageName: node linkType: hard -"@firebase/performance-compat@npm:0.2.7": - version: 0.2.7 - resolution: "@firebase/performance-compat@npm:0.2.7" +"@firebase/performance-compat@npm:0.2.8": + version: 0.2.8 + resolution: "@firebase/performance-compat@npm:0.2.8" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/performance": "npm:0.6.7" + "@firebase/performance": "npm:0.6.8" "@firebase/performance-types": "npm:0.2.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/346cc57378384377c4001dfc84322ece4bcebfbcfb7547e9629576ee527c89b257f763afd2e72640c32732006360976abd26c3e17734dd23398b1165bd3e0b9a + checksum: 10/354a31f31c0d07df10a2b33f4ef2b34ba931cb51738c533c5af9e85c1645d9421f2262ec72eb54a3821f1df52644254f92b866d836c528d6a8ff91b399a2aad4 languageName: node linkType: hard @@ -2688,34 +2288,34 @@ __metadata: languageName: node linkType: hard -"@firebase/performance@npm:0.6.7": - version: 0.6.7 - resolution: "@firebase/performance@npm:0.6.7" +"@firebase/performance@npm:0.6.8": + version: 0.6.8 + resolution: "@firebase/performance@npm:0.6.8" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/installations": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" + "@firebase/installations": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/760b942ad58d73fc6a6b28ff90d59c67fbf5405dc99e2c0fbaa604eecb1fb82419992763c0e59a92147e6cf7d43c1e32ee7cccd39d0706416263bf9684b19a27 + checksum: 10/5c989d154daea84f009f221245231bf5050cf0d96688bf1b20add98429088c815cc6e76e91180394c9d7fe5759094bbe4261c13604ff349c67e3d7113959b146 languageName: node linkType: hard -"@firebase/remote-config-compat@npm:0.2.7": - version: 0.2.7 - resolution: "@firebase/remote-config-compat@npm:0.2.7" +"@firebase/remote-config-compat@npm:0.2.8": + version: 0.2.8 + resolution: "@firebase/remote-config-compat@npm:0.2.8" dependencies: - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/remote-config": "npm:0.4.7" + "@firebase/remote-config": "npm:0.4.8" "@firebase/remote-config-types": "npm:0.3.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/d8e729bb1e5da61a6d0c23dc410a43c404acdd2794cc880a311571354727299ec64936f3dc31b7081786a18cb4e39e12299d8ac4d264af6527fdaecbc5bf0fb3 + checksum: 10/342b27720635c7f68ce8953cd22a5badfc628c3fb9414b32d40a2eaacb2feb2068079eac15c3c811f4327a06d01aa71631a6f2cfe8b80460f1910cfd37126342 languageName: node linkType: hard @@ -2726,33 +2326,33 @@ __metadata: languageName: node linkType: hard -"@firebase/remote-config@npm:0.4.7": - version: 0.4.7 - resolution: "@firebase/remote-config@npm:0.4.7" +"@firebase/remote-config@npm:0.4.8": + version: 0.4.8 + resolution: "@firebase/remote-config@npm:0.4.8" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/installations": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" + "@firebase/installations": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/9fc4699921d20fbd030e1349fd53baaf06faf67c097158993249be295e51fc93117b8efd6c8f13d07353b72a1dd282cbf5ddd12f7bdcaa8f2ea35e3769210be1 + checksum: 10/58f934b8cdc8582f260a8caf5b903d484d74aecba420221bf57e5df28f8ba7d3f9ca1ab58946c90ab2c29659bbfdad679fc59247468068063a5329d92cd27613 languageName: node linkType: hard -"@firebase/storage-compat@npm:0.3.8": - version: 0.3.8 - resolution: "@firebase/storage-compat@npm:0.3.8" +"@firebase/storage-compat@npm:0.3.9": + version: 0.3.9 + resolution: "@firebase/storage-compat@npm:0.3.9" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/storage": "npm:0.12.5" + "@firebase/component": "npm:0.6.8" + "@firebase/storage": "npm:0.12.6" "@firebase/storage-types": "npm:0.8.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/9c92e3f8e72946cc926c8ceb4098589df72d41e677dd7177a27517f98a3d6bda094b96c3370eca1c21bcb59166fbc4480d053255ae81649b7c12b10bed9fdb7b + checksum: 10/4b5a35bcac07684dacc181e9cd7a6ba0350df1acc0d7c18b4dae861dc2876194224a0595965dc94ee3424fadeacd28fdbf808a7d19162f3c2f9b35242fc56ff3 languageName: node linkType: hard @@ -2766,58 +2366,58 @@ __metadata: languageName: node linkType: hard -"@firebase/storage@npm:0.12.5": - version: 0.12.5 - resolution: "@firebase/storage@npm:0.12.5" +"@firebase/storage@npm:0.12.6": + version: 0.12.6 + resolution: "@firebase/storage@npm:0.12.6" dependencies: - "@firebase/component": "npm:0.6.7" - "@firebase/util": "npm:1.9.6" + "@firebase/component": "npm:0.6.8" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" undici: "npm:5.28.4" peerDependencies: "@firebase/app": 0.x - checksum: 10/e8d3241f1851338f33ab954eb636b464fdd75f2800bdba56d52e807c99f5c6b4ac3f59ff35a836377fb28f72709310af7ba5daba9b8138f9173a621fc2231ca0 + checksum: 10/4f00195374b083b6144a2e7f608391a0ac22e4165235177a447b4211199bf10f37b78a493b6fda164fe09381c309346faa341a8d216757ccd693843c899c7697 languageName: node linkType: hard -"@firebase/util@npm:1.9.6": - version: 1.9.6 - resolution: "@firebase/util@npm:1.9.6" +"@firebase/util@npm:1.9.7": + version: 1.9.7 + resolution: "@firebase/util@npm:1.9.7" dependencies: tslib: "npm:^2.1.0" - checksum: 10/4037241991fefd28df19a38a638b8befb01e3d23b111623986256113604c485c3cca4c761de9888f6271da736dc10f0e8311b47f693d574ea46323c5bfd9abdb + checksum: 10/c31290f45794af68a3ab571db1c0e3cb4d15443adfdc50107b835274b4ad525f839ee79a0da2898dd8b31e64ff811c126d338b0bab117be59c0a065ce984a89a languageName: node linkType: hard -"@firebase/vertexai-preview@npm:0.0.2": - version: 0.0.2 - resolution: "@firebase/vertexai-preview@npm:0.0.2" +"@firebase/vertexai-preview@npm:0.0.3": + version: 0.0.3 + resolution: "@firebase/vertexai-preview@npm:0.0.3" dependencies: "@firebase/app-check-interop-types": "npm:0.3.2" - "@firebase/component": "npm:0.6.7" + "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.9.6" + "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x "@firebase/app-types": 0.x - checksum: 10/00ebde87389d85023101b727f2a54af0263a1ab2ad238a9d395672aeb135a023c980a862713b7df6343669be8a10cf8560a1f77da8ceddb0aef2703918c90973 + checksum: 10/490ea78f153b764e117989cb0ee9abeb0f456c6daefc58aa949147b1404a2d90d49c84a04556f8d84a729692ca99ed670b9dd9b37169b93ac01dc8d9242dac13 languageName: node linkType: hard -"@firebase/webchannel-wrapper@npm:1.0.0": - version: 1.0.0 - resolution: "@firebase/webchannel-wrapper@npm:1.0.0" - checksum: 10/007307141753c87d62f94ebe3365bc6d610ccbd1ac13b1b4584ed74452f874a830db69b781e4decc509c1327133df1169eecd39bdccb3c7b3b34ea30f2d884a5 +"@firebase/webchannel-wrapper@npm:1.0.1": + version: 1.0.1 + resolution: "@firebase/webchannel-wrapper@npm:1.0.1" + checksum: 10/22fc7e1e6dd36ab7c13f3a6c1ff51f4d405304424dc323cb146109e7a3ab3b592e2ddb29f53197ee5719a8448cdedb98d9e86a080f9365e389f8429b1c6555c2 languageName: node linkType: hard -"@floating-ui/core@npm:^1.0.0, @floating-ui/core@npm:^1.5.3": - version: 1.6.3 - resolution: "@floating-ui/core@npm:1.6.3" +"@floating-ui/core@npm:^1.5.3, @floating-ui/core@npm:^1.6.0": + version: 1.6.4 + resolution: "@floating-ui/core@npm:1.6.4" dependencies: - "@floating-ui/utils": "npm:^0.2.3" - checksum: 10/e0aa2466d6b8de77d67f704c82f3d5013e19a81f734523a47c6f7b11b2a1c6419ed88cff81eeeb0ea2880b45d100fca43eb74339280a61e3ea5226e49a6c4b02 + "@floating-ui/utils": "npm:^0.2.4" + checksum: 10/589430cbff4bac90b9b891e2c94c57dc113d39ac163552f547d9e4c7d21f09997b9d33e82ec717759caee678c47f845f14a3f28df6f029fcfcf3ad803ba4eb7c languageName: node linkType: hard @@ -2832,16 +2432,16 @@ __metadata: linkType: hard "@floating-ui/dom@npm:^1.0.0": - version: 1.6.6 - resolution: "@floating-ui/dom@npm:1.6.6" + version: 1.6.7 + resolution: "@floating-ui/dom@npm:1.6.7" dependencies: - "@floating-ui/core": "npm:^1.0.0" - "@floating-ui/utils": "npm:^0.2.3" - checksum: 10/14d829b11d7ffb82c9c274c001726d004f81b9b6b0516955350f4922631228cc5e2183f83a2c240673c4e0785028d731157b7093e1027c9a3388ad39c891d857 + "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/utils": "npm:^0.2.4" + checksum: 10/a6a42bfd243c311f6040043808a6549c1db45fa36138b81cb1e615170d61fd2daf4f37accc1df3e0189405d97e3d71b12de39879c9d58ccf181c982b69cf6cf9 languageName: node linkType: hard -"@floating-ui/react-dom@npm:^2.0.0, @floating-ui/react-dom@npm:^2.0.8": +"@floating-ui/react-dom@npm:^2.0.0": version: 2.1.1 resolution: "@floating-ui/react-dom@npm:2.1.1" dependencies: @@ -2853,10 +2453,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.3": - version: 0.2.3 - resolution: "@floating-ui/utils@npm:0.2.3" - checksum: 10/234c3862426cffc1551eafad60a8ad4c5325f36ff985aea671089646a574c6672ef81e54e26282b935d22d84306e13c24ff57a18f1ac564e19ae99b6ce1299fa +"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.4": + version: 0.2.4 + resolution: "@floating-ui/utils@npm:0.2.4" + checksum: 10/7662d7a4ae39c0287e026f666297a3d28c80e588251c8c59ff66938a0aead47d380bbb9018629bd63a98f399c3919ec689d5448a5c48ffc176d545ddef705df1 languageName: node linkType: hard @@ -3284,9 +2884,9 @@ __metadata: linkType: hard "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09 + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd languageName: node linkType: hard @@ -3317,8 +2917,8 @@ __metadata: linkType: hard "@libp2p/interface@npm:^1.0.0": - version: 1.5.0 - resolution: "@libp2p/interface@npm:1.5.0" + version: 1.6.1 + resolution: "@libp2p/interface@npm:1.6.1" dependencies: "@multiformats/multiaddr": "npm:^12.2.3" it-pushable: "npm:^3.2.3" @@ -3326,7 +2926,7 @@ __metadata: multiformats: "npm:^13.1.0" progress-events: "npm:^1.0.0" uint8arraylist: "npm:^2.4.8" - checksum: 10/4248e1ac5fee64f6e0fe4fe6be5bf9db23dc3ed94af4b5603164ec49e1a31be54aa48387750b2983b4a3595c8f3cc0bf6dd92a1f314fb3de330d44df6ed404d4 + checksum: 10/c4eb96a916f64c563f17bd208f38a4054d873be32bb11f44d32f54c917cd2e10c3039ce2ea1e6c1ad938781eac01242cc343b3b6d626e34ae0405a89933b52aa languageName: node linkType: hard @@ -3738,38 +3338,16 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.40": - version: 5.0.0-beta.40 - resolution: "@mui/base@npm:5.0.0-beta.40" - dependencies: - "@babel/runtime": "npm:^7.23.9" - "@floating-ui/react-dom": "npm:^2.0.8" - "@mui/types": "npm:^7.2.14" - "@mui/utils": "npm:^5.15.14" - "@popperjs/core": "npm:^2.11.8" - clsx: "npm:^2.1.0" - prop-types: "npm:^15.8.1" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10/ebee3d9e1136710dcb2af5828acc6bd8d54f6b124785d011585c2665a48dc66e35ccb344d5ebc7fd8bfd776cccb8ea434911f151a62bee193677ee9dc67fc7fc - languageName: node - linkType: hard - -"@mui/core-downloads-tracker@npm:^5.15.21": - version: 5.15.21 - resolution: "@mui/core-downloads-tracker@npm:5.15.21" - checksum: 10/c6f8e2350597833a96593f65e5081930a1006b645be6a34750e93e15e111eeca6973562b42688f5d6393a050401b7196d58c2aa2de96a112ac27fb998411742a +"@mui/core-downloads-tracker@npm:^5.16.2": + version: 5.16.2 + resolution: "@mui/core-downloads-tracker@npm:5.16.2" + checksum: 10/da87713a710dcfc1b214a3179beb440b1129042549506c25f6df74c0d16f7cc48af9e18b8b5ce2ac72adc141bd18e0a88eb67000dabdc3b8c05231f7279d5384 languageName: node linkType: hard "@mui/icons-material@npm:^5.8.4": - version: 5.15.21 - resolution: "@mui/icons-material@npm:5.15.21" + version: 5.16.2 + resolution: "@mui/icons-material@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" peerDependencies: @@ -3779,25 +3357,24 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/812671dbb47c1d15878badf5665fe020579590c36e22eca2e6b0dd898671dec0428afb004907bdde9d06b6e26dc10afe9a0dddf82baa43e96e1c9bbce79057f3 + checksum: 10/b08be67822bdb7c005ed139a51cf3dd54d38bfa5f4f83c9032ffeb35d9d532792a5b4793a55eb9559bcb608f43e8a82c894387552cd5504c280d2f4e621d8626 languageName: node linkType: hard "@mui/material@npm:^5.5.0": - version: 5.15.21 - resolution: "@mui/material@npm:5.15.21" + version: 5.16.2 + resolution: "@mui/material@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/base": "npm:5.0.0-beta.40" - "@mui/core-downloads-tracker": "npm:^5.15.21" - "@mui/system": "npm:^5.15.20" - "@mui/types": "npm:^7.2.14" - "@mui/utils": "npm:^5.15.20" + "@mui/core-downloads-tracker": "npm:^5.16.2" + "@mui/system": "npm:^5.16.2" + "@mui/types": "npm:^7.2.15" + "@mui/utils": "npm:^5.16.2" "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" - react-is: "npm:^18.2.0" + react-is: "npm:^18.3.1" react-transition-group: "npm:^4.4.5" peerDependencies: "@emotion/react": ^11.5.0 @@ -3812,16 +3389,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/3369cb1d0ddd790de2d972dd5a2039eb2cd26e35ff1c515308d0d03929f9ded02d2ba3038551d94258ac5d5dc9a4433ca76ad60f81573346aa0d69075d72f403 + checksum: 10/4fe16de6af8368ffe8591a5aa22ea71eec3a29f092c61537b33026da6f852ae9f2e4b44c6f9f5e0c2e8891931bcf3c92512e6b11038db2e698cd57da89f8d5e7 languageName: node linkType: hard -"@mui/private-theming@npm:^5.15.20": - version: 5.15.20 - resolution: "@mui/private-theming@npm:5.15.20" +"@mui/private-theming@npm:^5.16.2": + version: 5.16.2 + resolution: "@mui/private-theming@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/utils": "npm:^5.15.20" + "@mui/utils": "npm:^5.16.2" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -3829,13 +3406,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/b50792ffae70682b608eb5d62c1f2697e2d06e41e20f1b0f9e6b648939f1e154f884d8b03b08de22b18fd3c59904a17e7fc4e57b410e5897e47802de15aa2507 + checksum: 10/87647371ce594803b49b39eb5ae1cf62bd3dc93a8309811826e3edf362a80207e08fcbc363ce715ad7fca1c561158b852504ebd6b3df0dd381a3cb3fa2a943ce languageName: node linkType: hard -"@mui/styled-engine@npm:^5.15.14": - version: 5.15.14 - resolution: "@mui/styled-engine@npm:5.15.14" +"@mui/styled-engine@npm:^5.16.2": + version: 5.16.2 + resolution: "@mui/styled-engine@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" "@emotion/cache": "npm:^11.11.0" @@ -3850,19 +3427,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10/2a5e03bb20502aef94cfb908898c50abb769192deb32d7f4237039683ce5266104cdc4055a7f0a8342aa62447d52b7439a4f2d0dda0fa6709c227c3621468cab + checksum: 10/3e700a20542903c80c870b92b0a03170e6a800887cfae1c31892bd1f9c94291981157e8457e4cd82316c1af590b0d6811d111a551f591586bc7b18c88e1b50fd languageName: node linkType: hard -"@mui/system@npm:^5.15.20": - version: 5.15.20 - resolution: "@mui/system@npm:5.15.20" +"@mui/system@npm:^5.16.2": + version: 5.16.2 + resolution: "@mui/system@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/private-theming": "npm:^5.15.20" - "@mui/styled-engine": "npm:^5.15.14" - "@mui/types": "npm:^7.2.14" - "@mui/utils": "npm:^5.15.20" + "@mui/private-theming": "npm:^5.16.2" + "@mui/styled-engine": "npm:^5.16.2" + "@mui/types": "npm:^7.2.15" + "@mui/utils": "npm:^5.16.2" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -3878,37 +3455,38 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/2bc5d8537b9a01aff406f6b4b113242be7cc88b768b3be0f89668c918492405e5d538131ecf06e0bb1c76aaa99b73231b1a6b64ee218c63cb9f791665c7e9a1a + checksum: 10/51a9fce00ca128b4ecebd9ce2999d450f455a4090f8d7031823603e1eddd8e6bed2e69617bf24a7b3923ad2641503b73db3bec7e4754868154b6ac27bee1508c languageName: node linkType: hard -"@mui/types@npm:^7.2.14": - version: 7.2.14 - resolution: "@mui/types@npm:7.2.14" +"@mui/types@npm:^7.2.15": + version: 7.2.15 + resolution: "@mui/types@npm:7.2.15" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10/b10cca8f63ea522be4f7c185acd1f4d031947e53824cbf9dc5649c165bcfa8a2749e83fd0bd1809b8e2698f58638ab2b4ce03550095989189d14434ea5c6c0b6 + checksum: 10/235b4af48a76cbe121e4cf7c4c71c7f9e4eaa458eaff5df2ac8a8f2d4ae93eafa929aba7848a2dfbb3c97dd8d50f4e13828dc17ec136b777bcfdd7d654263996 languageName: node linkType: hard -"@mui/utils@npm:^5.15.14, @mui/utils@npm:^5.15.20": - version: 5.15.20 - resolution: "@mui/utils@npm:5.15.20" +"@mui/utils@npm:^5.16.2": + version: 5.16.2 + resolution: "@mui/utils@npm:5.16.2" dependencies: "@babel/runtime": "npm:^7.23.9" - "@types/prop-types": "npm:^15.7.11" + "@types/prop-types": "npm:^15.7.12" + clsx: "npm:^2.1.1" prop-types: "npm:^15.8.1" - react-is: "npm:^18.2.0" + react-is: "npm:^18.3.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10/55842c79e05d4afb24e802925bf7370fac5405be058396ec101a9d66ef4b362263131ce8a7f01b319f7054f90e458a817515058c12ad0f2101fff8778abd4e33 + checksum: 10/ef67136dc82bb797448ea1ddef5bcab7f8d2d4ab635b8a8ef0cc74ab81a01a0a98c915c3e1f3ec33f64ba5fe43b86f26740dd949432b90bc607e0cf05cdd72f3 languageName: node linkType: hard @@ -3981,12 +3559,12 @@ __metadata: languageName: node linkType: hard -"@noble/curves@npm:1.4.0, @noble/curves@npm:~1.4.0": - version: 1.4.0 - resolution: "@noble/curves@npm:1.4.0" +"@noble/curves@npm:1.4.2, @noble/curves@npm:~1.4.0": + version: 1.4.2 + resolution: "@noble/curves@npm:1.4.2" dependencies: "@noble/hashes": "npm:1.4.0" - checksum: 10/b21b30a36ff02bfcc0f5e6163d245cdbaf7f640511fff97ccf83fc207ee79cfd91584b4d97977374de04cb118a55eb63a7964c82596a64162bbc42bc685ae6d9 + checksum: 10/f433a2e8811ae345109388eadfa18ef2b0004c1f79417553241db4f0ad0d59550be6298a4f43d989c627e9f7551ffae6e402a4edf0173981e6da95fc7cab5123 languageName: node linkType: hard @@ -4306,7 +3884,7 @@ __metadata: languageName: node linkType: hard -"@popperjs/core@npm:^2.11.8, @popperjs/core@npm:^2.4.4": +"@popperjs/core@npm:^2.4.4": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" checksum: 10/ddd16090cde777aaf102940f05d0274602079a95ad9805bd20bc55dcc7c3a2ba1b99dd5c73e5cc2753c3d31250ca52a67d58059459d7d27debb983a9f552936c @@ -4386,9 +3964,9 @@ __metadata: languageName: node linkType: hard -"@pushprotocol/restapi@npm:1.7.20": - version: 1.7.20 - resolution: "@pushprotocol/restapi@npm:1.7.20" +"@pushprotocol/restapi@npm:1.7.23": + version: 1.7.23 + resolution: "@pushprotocol/restapi@npm:1.7.23" dependencies: "@metamask/eth-sig-util": "npm:^5.0.2" axios: "npm:^0.27.2" @@ -4411,7 +3989,7 @@ __metadata: peerDependenciesMeta: ethers: optional: true - checksum: 10/42ca0e0ce0ba2068c330973f0252dd5cb18167d5375cb191371086a0a5be9cf46382c5125503fe4dac1c2d33641b37f43348f160802e3d48cb2eea860b6c856d + checksum: 10/542f4e83fb21f06497423a42f7e727e4c8eb2d51a134c5e7d91730e30bbde4e20225bb3226556189cd17b5d3b185b8182a9b7e4f2035a2ba520814b8498d4177 languageName: node linkType: hard @@ -5686,10 +5264,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.17.0": - version: 1.17.0 - resolution: "@remix-run/router@npm:1.17.0" - checksum: 10/bffc96ebe5c5658c2ea0585f7b2b7fd4760366ad63cdc05062f84ea84ba0f88dd70e75d802ed938f08b17be5348a8add8e4eef30e1d6422ea27a0ecb02cda66e +"@remix-run/router@npm:1.17.1": + version: 1.17.1 + resolution: "@remix-run/router@npm:1.17.1" + checksum: 10/5efc598626cd81688ac26e0abd08204b980831ead8cd2c4b8a27e0c169ee4777fc609fa289c093b93efc3a1e335304698c6961276c2309348444ec7209836c83 languageName: node linkType: hard @@ -5737,114 +5315,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0" +"@rollup/rollup-android-arm-eabi@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm64@npm:4.18.0" +"@rollup/rollup-android-arm64@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-android-arm64@npm:4.18.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" +"@rollup/rollup-darwin-arm64@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.18.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" +"@rollup/rollup-darwin-x64@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.18.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" +"@rollup/rollup-linux-arm64-musl@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" +"@rollup/rollup-linux-x64-gnu@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" +"@rollup/rollup-linux-x64-musl@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" +"@rollup/rollup-win32-x64-msvc@npm:4.18.1": + version: 4.18.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6416,90 +5994,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-darwin-arm64@npm:1.6.5" +"@swc/core-darwin-arm64@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-darwin-arm64@npm:1.6.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-darwin-x64@npm:1.6.5" +"@swc/core-darwin-x64@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-darwin-x64@npm:1.6.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.5" +"@swc/core-linux-arm-gnueabihf@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.13" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-linux-arm64-gnu@npm:1.6.5" +"@swc/core-linux-arm64-gnu@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm64-gnu@npm:1.6.13" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-linux-arm64-musl@npm:1.6.5" +"@swc/core-linux-arm64-musl@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm64-musl@npm:1.6.13" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-linux-x64-gnu@npm:1.6.5" +"@swc/core-linux-x64-gnu@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-x64-gnu@npm:1.6.13" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-linux-x64-musl@npm:1.6.5" +"@swc/core-linux-x64-musl@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-x64-musl@npm:1.6.13" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-win32-arm64-msvc@npm:1.6.5" +"@swc/core-win32-arm64-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-arm64-msvc@npm:1.6.13" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-win32-ia32-msvc@npm:1.6.5" +"@swc/core-win32-ia32-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-ia32-msvc@npm:1.6.13" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.6.5": - version: 1.6.5 - resolution: "@swc/core-win32-x64-msvc@npm:1.6.5" +"@swc/core-win32-x64-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-x64-msvc@npm:1.6.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.100": - version: 1.6.5 - resolution: "@swc/core@npm:1.6.5" - dependencies: - "@swc/core-darwin-arm64": "npm:1.6.5" - "@swc/core-darwin-x64": "npm:1.6.5" - "@swc/core-linux-arm-gnueabihf": "npm:1.6.5" - "@swc/core-linux-arm64-gnu": "npm:1.6.5" - "@swc/core-linux-arm64-musl": "npm:1.6.5" - "@swc/core-linux-x64-gnu": "npm:1.6.5" - "@swc/core-linux-x64-musl": "npm:1.6.5" - "@swc/core-win32-arm64-msvc": "npm:1.6.5" - "@swc/core-win32-ia32-msvc": "npm:1.6.5" - "@swc/core-win32-x64-msvc": "npm:1.6.5" + version: 1.6.13 + resolution: "@swc/core@npm:1.6.13" + dependencies: + "@swc/core-darwin-arm64": "npm:1.6.13" + "@swc/core-darwin-x64": "npm:1.6.13" + "@swc/core-linux-arm-gnueabihf": "npm:1.6.13" + "@swc/core-linux-arm64-gnu": "npm:1.6.13" + "@swc/core-linux-arm64-musl": "npm:1.6.13" + "@swc/core-linux-x64-gnu": "npm:1.6.13" + "@swc/core-linux-x64-musl": "npm:1.6.13" + "@swc/core-win32-arm64-msvc": "npm:1.6.13" + "@swc/core-win32-ia32-msvc": "npm:1.6.13" + "@swc/core-win32-x64-msvc": "npm:1.6.13" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.9" peerDependencies: @@ -6528,7 +6106,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/874b7d5f790e67b82546967fec5f380539b81fe10725f97772f8260776ee800448ef3e6f0c7c6eb1d1094ebe65b8531f982e407ef918de7220977b04d094d605 + checksum: 10/ccb9c11d5f2e8371f17fca33f7d702433684013fce685d0db06f0b3a6064db476b1c4378bb8f1e9d12841338fc745a6aed056137443cb370d4238b6f4fc5405c languageName: node linkType: hard @@ -6582,17 +6160,17 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.48.0": - version: 5.48.0 - resolution: "@tanstack/query-core@npm:5.48.0" - checksum: 10/b07b31044370c2493df89d0cbb9a32827ecbd5d93af5790fa32c5b8ff7cd09a49d1154fd1d4e085515e226e45cd1d4c5282d707c443eeda3f077a0a3b5ee0f27 +"@tanstack/query-core@npm:5.51.1": + version: 5.51.1 + resolution: "@tanstack/query-core@npm:5.51.1" + checksum: 10/6f37cc960218d2e49ea392f36e6586ade632e4306a8a1ca4f80940b4b73022e82f8bdd0aa3f9ff6e10a9106bc1d608cbba432fd32eb73295942ed6e20771d48b languageName: node linkType: hard -"@tanstack/query-devtools@npm:5.47.0": - version: 5.47.0 - resolution: "@tanstack/query-devtools@npm:5.47.0" - checksum: 10/9bb44dc40463b76b792b864ca94aed0267037a31414f93b73e2b535c8e4962e47e1c692eb8b4d367adf2580d396f0cdf29ac0af9adc4ad69ec9416527b6d4cfa +"@tanstack/query-devtools@npm:5.51.1": + version: 5.51.1 + resolution: "@tanstack/query-devtools@npm:5.51.1" + checksum: 10/660d7ed8072c296d281548db5ff06745750a28c7e1c3153d936733725cd1e8174255f923518e0267b72ce3712895315b11f93b92bede652992e0cc665078e2ef languageName: node linkType: hard @@ -6606,14 +6184,14 @@ __metadata: linkType: hard "@tanstack/react-query-devtools@npm:^5.44.0": - version: 5.48.0 - resolution: "@tanstack/react-query-devtools@npm:5.48.0" + version: 5.51.1 + resolution: "@tanstack/react-query-devtools@npm:5.51.1" dependencies: - "@tanstack/query-devtools": "npm:5.47.0" + "@tanstack/query-devtools": "npm:5.51.1" peerDependencies: - "@tanstack/react-query": ^5.48.0 + "@tanstack/react-query": ^5.51.1 react: ^18 || ^19 - checksum: 10/47cb24bf5709eceba81178795323c1bc3ee11f4d9e29f6a3ae0732e08ac9f9fc51b5f29d2b28d8459080227ca8d84bbd1d0f94ae01ae25b8f20fc58e1280b6ef + checksum: 10/d04383c72e4faa8945ded06e25fb9c9bcef4468a7fc1e76289bccc41ddd5d548a33b1ff264b2470ebc0c4e2c3c753dec2274b227f0207c5300ff7b6ff4bb096d languageName: node linkType: hard @@ -6648,13 +6226,13 @@ __metadata: linkType: hard "@tanstack/react-query@npm:^5.44.0": - version: 5.48.0 - resolution: "@tanstack/react-query@npm:5.48.0" + version: 5.51.1 + resolution: "@tanstack/react-query@npm:5.51.1" dependencies: - "@tanstack/query-core": "npm:5.48.0" + "@tanstack/query-core": "npm:5.51.1" peerDependencies: react: ^18.0.0 - checksum: 10/7e7b64a7aec837e2e3af7dca414eb749350cbf3c00ad8890613fec9b6916502d61725b507082371a80facd3489116d6bc5cc9e9d4d0d6ab0e45b0f89be79118b + checksum: 10/0f97d0b55c4a7017f741da1c451e3d3ff99a9a4de8bb7d76d987c243d5cc1e6fdd649afe9bc9d3c4b4ec2df212c9c77dec8d82b8ad823772637972e98798857e languageName: node linkType: hard @@ -6979,9 +6557,9 @@ __metadata: linkType: hard "@types/lodash@npm:*, @types/lodash@npm:^4.14.182": - version: 4.17.6 - resolution: "@types/lodash@npm:4.17.6" - checksum: 10/6d3a68b3e795381f4aaf946855134d24eeb348ad5d66e9a44461d30026da82b215d55b92b70486d811ca45d54d4ab956aa2dced37fd04e19d49afe160ae3da2e + version: 4.17.7 + resolution: "@types/lodash@npm:4.17.7" + checksum: 10/b8177f19cf962414a66989837481b13f546afc2e98e8d465bec59e6ac03a59c584eb7053ce511cde3a09c5f3096d22a5ae22cfb56b23f3b0da75b0743b6b1a44 languageName: node linkType: hard @@ -7000,11 +6578,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.14.9 - resolution: "@types/node@npm:20.14.9" + version: 20.14.10 + resolution: "@types/node@npm:20.14.10" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/f313b06c79be92f5d3541159ef813b9fc606941f951ecf826e940658c6d4952755ca2f06277b746326cef0697ed79a04676ecde053d32e1121b3352c8168d2e9 + checksum: 10/672892cf94d0d95cf052f11271990686a0fd204cd1e5fe7a4ef240e5315e06711765dc47b9ec98627d3adac18b8c92bb7e2d8db21d18faa20bc3e3203a143e79 languageName: node linkType: hard @@ -7054,7 +6632,7 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.11": +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.12": version: 15.7.12 resolution: "@types/prop-types@npm:15.7.12" checksum: 10/ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe @@ -7231,14 +6809,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.2.0": - version: 7.14.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.14.1" + version: 7.16.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.16.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/type-utils": "npm:7.14.1" - "@typescript-eslint/utils": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.16.1" + "@typescript-eslint/type-utils": "npm:7.16.1" + "@typescript-eslint/utils": "npm:7.16.1" + "@typescript-eslint/visitor-keys": "npm:7.16.1" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -7249,44 +6827,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/48c815dbb92399965483c93b27816fad576c3b3227b59eebfe5525e24d07b39ec8b0c7459de83865c8d61c818696519f50b229714dd3ed705d5b35973bfcc781 + checksum: 10/fddbfe461f85d10ee3967b89efa3c704806074af6806833f982915b21754567a98c5a486627174cc6b0ac4cb5f1282865d64ae251a5cbf6dbbbe191d0268520a languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.2.0": - version: 7.14.1 - resolution: "@typescript-eslint/parser@npm:7.14.1" + version: 7.16.1 + resolution: "@typescript-eslint/parser@npm:7.16.1" dependencies: - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/typescript-estree": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.16.1" + "@typescript-eslint/types": "npm:7.16.1" + "@typescript-eslint/typescript-estree": "npm:7.16.1" + "@typescript-eslint/visitor-keys": "npm:7.16.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/f521462a7005cab5e4923937dcf36713d9438ded175b53332ae469d91cc9eb18cb3a23768b3c52063464280baae83f6b66db28cebb2e262d6d869d1a898b23f3 + checksum: 10/7af36bacc2c38e9fb367edf886a04fde292ff28b49adfc3f4fc0dd456364c5e18444346112ae52557f2f32fe2e5abd144b87b4db89b6960b4957d69a9d390f91 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/scope-manager@npm:7.14.1" +"@typescript-eslint/scope-manager@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/scope-manager@npm:7.16.1" dependencies: - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" - checksum: 10/600a7beb96f5b96f675125285137339c2438b5b26db203a66eef52dd409e8c0db0dafb22c94547dfb963f8efdf63b0fb59e05655e2dcf84d54624863365a59e7 + "@typescript-eslint/types": "npm:7.16.1" + "@typescript-eslint/visitor-keys": "npm:7.16.1" + checksum: 10/57ce02c2624e49988b01666b3e13d1adb44ab78f2dafc47a56800d57bff624779b348928a905393fa5f2cce94a5844173ab81f32b81f0bb2897f10bbaf9cab6a languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/type-utils@npm:7.14.1" +"@typescript-eslint/type-utils@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/type-utils@npm:7.16.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.14.1" - "@typescript-eslint/utils": "npm:7.14.1" + "@typescript-eslint/typescript-estree": "npm:7.16.1" + "@typescript-eslint/utils": "npm:7.16.1" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -7294,23 +6872,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/75c279948a7e7e546d692e85a0b48fc3b648ffee1773feb7ff199aba1b0847a9a16c432b133aa72d26e645627403852b7dd24829f9b3badd6d4711c4cc38e9e4 + checksum: 10/38a72a3de8a2c3455d19e6d43e67ac6e1dc23e93b2d84571282b0323fadadcab33df1a89787c76fc99e45514e41a08bc9f5cb51287a7da48f56c64b512a3269b languageName: node linkType: hard -"@typescript-eslint/types@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/types@npm:7.14.1" - checksum: 10/608057582bb195bd746a7bfb7c04dac4be1d4602b8fa681b2d1d50b564362b681dc2ca293b13cc4c7acc454f3a09f1ea2580415347efb7853e5df8ba34b7acdb +"@typescript-eslint/types@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/types@npm:7.16.1" + checksum: 10/cfb48821ffb5a5307e67ce05b9ec2f4775c560dc53011e313d4fa75d033e0130ce0d364ac92ad3634d325c16a889ddc3201e8a742217c73be8d34385da85620b languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.14.1" +"@typescript-eslint/typescript-estree@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.16.1" dependencies: - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/visitor-keys": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.16.1" + "@typescript-eslint/visitor-keys": "npm:7.16.1" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -7320,31 +6898,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/f75b956f7981712d3f85498f9d9fcc2243d79d6fe71b24bc688a7c43d2a4248f73ecfb78f9d58501fde87fc44b02e26c46f9ea2ae51eb8450db79ca169f91ef9 + checksum: 10/7f88176f2d25779ec2d40df4c6bd0a26aa41494ee0302d4895b4d0cb4e284385c1e218ac2ad67ed90b5e1bf82b78b8aa4b903b5906fbf7101b08c409ce778e9c languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/utils@npm:7.14.1" +"@typescript-eslint/utils@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/utils@npm:7.16.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.14.1" - "@typescript-eslint/types": "npm:7.14.1" - "@typescript-eslint/typescript-estree": "npm:7.14.1" + "@typescript-eslint/scope-manager": "npm:7.16.1" + "@typescript-eslint/types": "npm:7.16.1" + "@typescript-eslint/typescript-estree": "npm:7.16.1" peerDependencies: eslint: ^8.56.0 - checksum: 10/1ef74214ca84e32f151364512a51e82b7da5590dee03d0de0e1abcf18009e569f9a0638506cf03bd4a844af634b4935458e334b7b2459e9a50a67aba7d6228c7 + checksum: 10/b3c279d706ff1b3a0002c8e0f0fcf559b63f4296e218199a25863054bda5b28d5a7ab6ad4ad1d0b7fa2c6cd9f2d0dcd7f784c3f75026fae7b58846695481ec45 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.14.1": - version: 7.14.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.14.1" +"@typescript-eslint/visitor-keys@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.16.1" dependencies: - "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.16.1" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/42246f33cb3f9185c0b467c9a534e34a674e4fc08ba982a03aaa77dc1e569e916f1fca9ce9cd14c4df91f416e6e917bff51f98b8d8ca26ec5f67c253e8646bde + checksum: 10/f5088d72b6ca48f4e525b7b5d6c6c9254d0d039d2959fd91200691218e8ac8f3e56287ec8bc411a79609e9d85ed5fc6c4f7d2edd80fadf734aeb6f6bfc833322 languageName: node linkType: hard @@ -7448,8 +7026,8 @@ __metadata: linkType: hard "@uniswap/smart-order-router@npm:^3.16.25": - version: 3.35.9 - resolution: "@uniswap/smart-order-router@npm:3.35.9" + version: 3.35.12 + resolution: "@uniswap/smart-order-router@npm:3.35.12" dependencies: "@eth-optimism/sdk": "npm:^3.2.2" "@types/brotli": "npm:^1.3.4" @@ -7478,7 +7056,7 @@ __metadata: stats-lite: "npm:^2.2.0" peerDependencies: jsbi: ^3.2.0 - checksum: 10/acedff552e0c742b4ab15db4ce1603a56854e170d423daededc88ccdf917def65ff29631bfa4976c54dedb9eb7ce1ad6bb5dd9acca23ded7c9a6e64f2f3f29dd + checksum: 10/81ac98b8e89f3ad2ba84bfefee942bd1ff17b6b3aa3b82f6a4e02d8d07b81bdd535741d780f60c5029aa5fa963f5322746be9d212939422f7434e1a5d49d8dd0 languageName: node linkType: hard @@ -7941,7 +7519,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/ethereum-provider@npm:^2.10.1, @walletconnect/ethereum-provider@npm:^2.12.2, @walletconnect/ethereum-provider@npm:^2.13.0": +"@walletconnect/ethereum-provider@npm:^2.10.1, @walletconnect/ethereum-provider@npm:^2.13.0": version: 2.13.3 resolution: "@walletconnect/ethereum-provider@npm:2.13.3" dependencies: @@ -8240,7 +7818,7 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/coinbase@npm:^2.2.5": +"@web3-onboard/coinbase@npm:^2.2.5, @web3-onboard/coinbase@npm:^2.4.1": version: 2.4.1 resolution: "@web3-onboard/coinbase@npm:2.4.1" dependencies: @@ -8250,7 +7828,7 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/common@npm:^2.3.3, @web3-onboard/common@npm:^2.3.4, @web3-onboard/common@npm:^2.4.1": +"@web3-onboard/common@npm:^2.4.1": version: 2.4.2 resolution: "@web3-onboard/common@npm:2.4.2" dependencies: @@ -8260,27 +7838,6 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/core@npm:2.21.6": - version: 2.21.6 - resolution: "@web3-onboard/core@npm:2.21.6" - dependencies: - "@web3-onboard/common": "npm:^2.3.4" - bignumber.js: "npm:^9.0.0" - bnc-sdk: "npm:^4.6.7" - bowser: "npm:^2.11.0" - ethers: "npm:5.5.3" - eventemitter3: "npm:^4.0.7" - joi: "npm:17.9.1" - lodash.merge: "npm:^4.6.2" - lodash.partition: "npm:^4.6.0" - nanoid: "npm:^4.0.0" - rxjs: "npm:^7.5.5" - svelte: "npm:^3.49.0" - svelte-i18n: "npm:^3.3.13" - checksum: 10/d4325b174d1a1fdabae5fa5b0cf260a8b4d58756ff14f12c7a0330182f19dbde3742526706b8b97df9d66a43b9220ce3e1e5acbe33454623b0a8f215f65dc263 - languageName: node - linkType: hard - "@web3-onboard/core@npm:2.22.2, @web3-onboard/core@npm:^2.21.1": version: 2.22.2 resolution: "@web3-onboard/core@npm:2.22.2" @@ -8301,18 +7858,7 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/injected-wallets@npm:2.10.16": - version: 2.10.16 - resolution: "@web3-onboard/injected-wallets@npm:2.10.16" - dependencies: - "@web3-onboard/common": "npm:^2.3.3" - joi: "npm:17.9.1" - lodash.uniqby: "npm:^4.7.0" - checksum: 10/8e7084338f17053832b287b5788e6d1e19168e6d63d225073e129b4bdd4e0ca4d6b2cd8ec62379d72ec686529d2ebb407d5a465f794de07e47df5626c1214707 - languageName: node - linkType: hard - -"@web3-onboard/injected-wallets@npm:^2.10.5": +"@web3-onboard/injected-wallets@npm:2.11.1, @web3-onboard/injected-wallets@npm:^2.10.5": version: 2.11.1 resolution: "@web3-onboard/injected-wallets@npm:2.11.1" dependencies: @@ -8323,7 +7869,7 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/react@npm:^2.8.9": +"@web3-onboard/react@npm:^2.8.9, @web3-onboard/react@npm:^2.9.2": version: 2.9.2 resolution: "@web3-onboard/react@npm:2.9.2" dependencies: @@ -8336,19 +7882,7 @@ __metadata: languageName: node linkType: hard -"@web3-onboard/walletconnect@npm:2.5.5": - version: 2.5.5 - resolution: "@web3-onboard/walletconnect@npm:2.5.5" - dependencies: - "@walletconnect/ethereum-provider": "npm:^2.12.2" - "@web3-onboard/common": "npm:^2.3.3" - joi: "npm:17.9.1" - rxjs: "npm:^7.5.2" - checksum: 10/bd19304d9b1b8e049c939288212dc338ae9aa857348ef66dc224eba73bbc5ec8f21aacc0b7d4ef050e6520946b2e0142bb45bd6d89a16220935db00918d239fe - languageName: node - linkType: hard - -"@web3-onboard/walletconnect@npm:^2.4.6": +"@web3-onboard/walletconnect@npm:2.6.1, @web3-onboard/walletconnect@npm:^2.4.6": version: 2.6.1 resolution: "@web3-onboard/walletconnect@npm:2.6.1" dependencies: @@ -8818,11 +8352,11 @@ __metadata: linkType: hard "acorn@npm:^8.11.3, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.12.0 - resolution: "acorn@npm:8.12.0" + version: 8.12.1 + resolution: "acorn@npm:8.12.1" bin: acorn: bin/acorn - checksum: 10/550cc5033184eb98f7fbe2e9ddadd0f47f065734cc682f25db7a244f52314eb816801b64dec7174effd978045bd1754892731a90b1102b0ede9d17a15cfde138 + checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 languageName: node linkType: hard @@ -8888,14 +8422,14 @@ __metadata: linkType: hard "ajv@npm:^8.0.0, ajv@npm:^8.11.0": - version: 8.16.0 - resolution: "ajv@npm:8.16.0" + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 10/9b4b380efaf8be2639736d535662bd142a6972b43075b404380165c37ab6ceb72f01c7c987536747ff3e9e21eb5cd2e2a194f1e0fa8355364ea6204b1262fcd1 + checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33 languageName: node linkType: hard @@ -9319,11 +8853,11 @@ __metadata: linkType: hard "base-x@npm:^3.0.2, base-x@npm:^3.0.8": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" + version: 3.0.10 + resolution: "base-x@npm:3.0.10" dependencies: safe-buffer: "npm:^5.0.1" - checksum: 10/957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 + checksum: 10/52307739559e81d9980889de2359cb4f816cc0eb9a463028fa3ab239ab913d9044a1b47b4520f98e68453df32a457b8ba58b8d0ee7e757fc3fb971f3fa7a1482 languageName: node linkType: hard @@ -9742,17 +9276,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.22.2": - version: 4.23.1 - resolution: "browserslist@npm:4.23.1" +"browserslist@npm:^4.21.10, browserslist@npm:^4.23.1": + version: 4.23.2 + resolution: "browserslist@npm:4.23.2" dependencies: - caniuse-lite: "npm:^1.0.30001629" - electron-to-chromium: "npm:^1.4.796" + caniuse-lite: "npm:^1.0.30001640" + electron-to-chromium: "npm:^1.4.820" node-releases: "npm:^2.0.14" - update-browserslist-db: "npm:^1.0.16" + update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10/91da59f70a8e01ece97133670f9857d6d7e96be78e1b7ffa54b869f97d01d01c237612471b595cee41c1ab212e26e536ce0b6716ad1d6c4368a40c222698cac1 + checksum: 10/326a98b1c39bcc9a99b197f15790dc28e122b1aead3257c837421899377ac96239123f26868698085b3d9be916d72540602738e1f857e86a387e810af3fda6e5 languageName: node linkType: hard @@ -9906,8 +9440,8 @@ __metadata: linkType: hard "cacache@npm:^18.0.0": - version: 18.0.3 - resolution: "cacache@npm:18.0.3" + version: 18.0.4 + resolution: "cacache@npm:18.0.4" dependencies: "@npmcli/fs": "npm:^3.1.0" fs-minipass: "npm:^3.0.0" @@ -9921,7 +9455,7 @@ __metadata: ssri: "npm:^10.0.0" tar: "npm:^6.1.11" unique-filename: "npm:^3.0.0" - checksum: 10/d4c161f071524bb636334b8cf94780c014e29c180a886b8184da8f2f44d2aca88d5664797c661e9f74bdbd34697c2f231ed7c24c256cecbb0a0563ad1ada2219 + checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104 languageName: node linkType: hard @@ -10019,10 +9553,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001154, caniuse-lite@npm:^1.0.30001629": - version: 1.0.30001638 - resolution: "caniuse-lite@npm:1.0.30001638" - checksum: 10/f30c80a5a33e659c990909046d5299af1584441059785460b012d10a58f0885da25fde08ab655ed0cf76b2695d0b3a32c41875bb9b7a730b34f992ec2512d430 +"caniuse-lite@npm:^1.0.30001154, caniuse-lite@npm:^1.0.30001640": + version: 1.0.30001642 + resolution: "caniuse-lite@npm:1.0.30001642" + checksum: 10/8d80ea82be453ae0fdfea8766d82740a4945c1b99189650f29bfc458d4e235d7e99027a8f8bc5a4228d8c4457ba896315284b0703f300353ad5f09d8e693de10 languageName: node linkType: hard @@ -10057,11 +9591,20 @@ __metadata: linkType: hard "cborg@npm:^4.0.0": - version: 4.2.2 - resolution: "cborg@npm:4.2.2" + version: 4.2.3 + resolution: "cborg@npm:4.2.3" bin: cborg: lib/bin.js - checksum: 10/e657dea3393120f508600e96fbb7d490a20f74ee20e17ea7d2ca64a568d828f704a77b7c77a16eed3ccf9c89ed2662edde7f2c2e27ab2d46ad0ea9bc2579ea02 + checksum: 10/4ee9ee953329c5688e8f72333e05a2329548cfd2d8e684d7c7546e334d8edf5ca3267da6b8a70d420f4d8d8da5327b02293a19170299521cd7d3c7caf41efaed + languageName: node + linkType: hard + +"centra@npm:^2.7.0": + version: 2.7.0 + resolution: "centra@npm:2.7.0" + dependencies: + follow-redirects: "npm:^1.15.6" + checksum: 10/59ec76d9ba7086b76e9594129b9843856fe7293400b89cb8b133f444a62ca5d4c536df0d4722374b0c16d86dd4e0baba1fc9722640b7d3b532865bebdec2b1a2 languageName: node linkType: hard @@ -10338,7 +9881,7 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^2.1.0": +"clsx@npm:^2.1.0, clsx@npm:^2.1.1": version: 2.1.1 resolution: "clsx@npm:2.1.1" checksum: 10/cdfb57fa6c7649bbff98d9028c2f0de2f91c86f551179541cf784b1cfdc1562dcb951955f46d54d930a3879931a980e32a46b598acaea274728dbe068deca919 @@ -11459,9 +11002,9 @@ __metadata: linkType: hard "dompurify@npm:^3.0.2": - version: 3.1.5 - resolution: "dompurify@npm:3.1.5" - checksum: 10/4ea935df48b49a0a76c66b6eee8522ca12783f2643119482b8329867f1e8adb34ff1d2dd56973927be9de5f01079948556907f22e882b06fa7b0c0ba281bf14a + version: 3.1.6 + resolution: "dompurify@npm:3.1.6" + checksum: 10/036844bc9b717b172ba27f5863b56f950289a05d8eebfb702d6953bbf80bd021e480ce4217bd084567186f2d0ada13358ce5556963492cfe402d774e8667f120 languageName: node linkType: hard @@ -11609,10 +11152,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.585, electron-to-chromium@npm:^1.4.796": - version: 1.4.814 - resolution: "electron-to-chromium@npm:1.4.814" - checksum: 10/cd411bd8d79333daf8695f495b30e0092489a79f5307344e4ac75d48eca2b3fc488f4f4acac8e2651fd2fe8b857e52b0c2f87d352bbf426ce7670766b88b4a27 +"electron-to-chromium@npm:^1.3.585, electron-to-chromium@npm:^1.4.820": + version: 1.4.828 + resolution: "electron-to-chromium@npm:1.4.828" + checksum: 10/5962877ab1239f93683729b07403ffa89559aad358b863d11f40edbc073a79414238296a628bc602a07eedcf41e9fa01b4a84d6813237dfeb4183b0e387b6136 languageName: node linkType: hard @@ -11723,13 +11266,13 @@ __metadata: linkType: hard "emoji-picker-react@npm:^4.4.9": - version: 4.10.0 - resolution: "emoji-picker-react@npm:4.10.0" + version: 4.11.1 + resolution: "emoji-picker-react@npm:4.11.1" dependencies: - flairup: "npm:0.0.39" + flairup: "npm:1.0.0" peerDependencies: react: ">=16" - checksum: 10/e75ecb889dd03211623029f1f791ba3397cd2680c50956c8572a9d702cb48b2457121df2a51d97e1ed00d36354b20d0b3bd4cae5d255d2d752e8cb3270f36994 + checksum: 10/86a9b8d157ceba2151c9fd2702fc0800883a56125b341a137af6ce32b68f17d3e16864bd1d12e9b27153ef5ff67b468759fd99b87796e94958f9a22630503bd9 languageName: node linkType: hard @@ -11805,9 +11348,9 @@ __metadata: linkType: hard "engine.io-parser@npm:~5.2.1": - version: 5.2.2 - resolution: "engine.io-parser@npm:5.2.2" - checksum: 10/135b1278547bde501412ac462e93b3b4f6a2fecc30a2b843bb9408b96301e8068bb2496c32d124a3d2544eb0aec8b8eddcb4ef0d0d0b84b7d642b1ffde1b2dcf + version: 5.2.3 + resolution: "engine.io-parser@npm:5.2.3" + checksum: 10/eb0023fff5766e7ae9d59e52d92df53fea06d472cfd7b52e5d2c36b4c1dbf78cab5fde1052bcb3d4bb85bdb5aee10ae85d8a1c6c04676dac0c6cdf16bcba6380 languageName: node linkType: hard @@ -12233,11 +11776,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.6": - version: 0.4.7 - resolution: "eslint-plugin-react-refresh@npm:0.4.7" + version: 0.4.8 + resolution: "eslint-plugin-react-refresh@npm:0.4.8" peerDependencies: eslint: ">=7" - checksum: 10/acbbe24e40b2b6fe96656e9407e275fdda6db031814674117e7a65d49a7a713f05b0d79dc6426d927b7622ce310a261cff385821c80b2e97089068dcd30bda52 + checksum: 10/f502cd803a43dac83db43a924defe543a3ed57b545a4b5a9fc74c578c05903ffcb4f2988848b8d02672cf9443e390ef831ba5a1577f64617b68b3746229172b4 languageName: node linkType: hard @@ -12347,11 +11890,11 @@ __metadata: linkType: hard "esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: "npm:^5.1.0" - checksum: 10/e65fcdfc1e0ff5effbf50fb4f31ea20143ae5df92bb2e4953653d8d40aa4bc148e0d06117a592ce4ea53eeab1dafdfded7ea7e22a5be87e82d73757329a1b01d + checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a languageName: node linkType: hard @@ -12495,14 +12038,14 @@ __metadata: linkType: hard "ethereum-cryptography@npm:^2.0.0, ethereum-cryptography@npm:^2.1.2": - version: 2.2.0 - resolution: "ethereum-cryptography@npm:2.2.0" + version: 2.2.1 + resolution: "ethereum-cryptography@npm:2.2.1" dependencies: - "@noble/curves": "npm:1.4.0" + "@noble/curves": "npm:1.4.2" "@noble/hashes": "npm:1.4.0" "@scure/bip32": "npm:1.4.0" "@scure/bip39": "npm:1.3.0" - checksum: 10/cca045cd0704e350042a97f3f3f5501d25a2c56fe4b6e129a2ae8a2ff84f773bcca8af90f42429f7490a803fd9b145b2cf71ed92cf3745d9727aec0e0c3e0f83 + checksum: 10/ab123bbfe843500ac2d645ce9edc4bc814962ffb598db6bf8bf01fbecac656e6c81ff4cf2472f1734844bbcbad2bf658d8b699cb7248d768e0f06ae13ecf43b8 languageName: node linkType: hard @@ -12608,44 +12151,6 @@ __metadata: languageName: node linkType: hard -"ethers@npm:5.5.3": - version: 5.5.3 - resolution: "ethers@npm:5.5.3" - dependencies: - "@ethersproject/abi": "npm:5.5.0" - "@ethersproject/abstract-provider": "npm:5.5.1" - "@ethersproject/abstract-signer": "npm:5.5.0" - "@ethersproject/address": "npm:5.5.0" - "@ethersproject/base64": "npm:5.5.0" - "@ethersproject/basex": "npm:5.5.0" - "@ethersproject/bignumber": "npm:5.5.0" - "@ethersproject/bytes": "npm:5.5.0" - "@ethersproject/constants": "npm:5.5.0" - "@ethersproject/contracts": "npm:5.5.0" - "@ethersproject/hash": "npm:5.5.0" - "@ethersproject/hdnode": "npm:5.5.0" - "@ethersproject/json-wallets": "npm:5.5.0" - "@ethersproject/keccak256": "npm:5.5.0" - "@ethersproject/logger": "npm:5.5.0" - "@ethersproject/networks": "npm:5.5.2" - "@ethersproject/pbkdf2": "npm:5.5.0" - "@ethersproject/properties": "npm:5.5.0" - "@ethersproject/providers": "npm:5.5.2" - "@ethersproject/random": "npm:5.5.1" - "@ethersproject/rlp": "npm:5.5.0" - "@ethersproject/sha2": "npm:5.5.0" - "@ethersproject/signing-key": "npm:5.5.0" - "@ethersproject/solidity": "npm:5.5.0" - "@ethersproject/strings": "npm:5.5.0" - "@ethersproject/transactions": "npm:5.5.0" - "@ethersproject/units": "npm:5.5.0" - "@ethersproject/wallet": "npm:5.5.0" - "@ethersproject/web": "npm:5.5.1" - "@ethersproject/wordlists": "npm:5.5.0" - checksum: 10/75412f0dd60f0a21c2e8ade37781b6f67a84377d0b5452cf4c4d73596e6c2626966f666d491e53c55e124621ce3b72edf0001c683f2ef9ef08da79b5a3a02ace - languageName: node - linkType: hard - "ethers@npm:^5.3.1, ethers@npm:^5.6.8, ethers@npm:^5.7.0, ethers@npm:^5.7.2": version: 5.7.2 resolution: "ethers@npm:5.7.2" @@ -12924,13 +12429,6 @@ __metadata: languageName: node linkType: hard -"fast-loops@npm:^1.1.3": - version: 1.1.3 - resolution: "fast-loops@npm:1.1.3" - checksum: 10/1bf9f102d8ed48a8c8304e2b27fd32afa65d370498db9b49d5762696ac4aa8c55593d505c142c2b7e25ca79f45207c4b25f778afd80f35df98cb2caaaf9609b7 - languageName: node - linkType: hard - "fast-redact@npm:^3.0.0": version: 3.5.0 resolution: "fast-redact@npm:3.5.0" @@ -12945,6 +12443,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.1 + resolution: "fast-uri@npm:3.0.1" + checksum: 10/e8ee4712270de0d29eb0fbf41ffad0ac80952e8797be760e8bb62c4707f08f50a86fe2d7829681ca133c07d6eb4b4a75389a5fc36674c5b254a3ac0891a68fc7 + languageName: node + linkType: hard + "fastest-stable-stringify@npm:^2.0.2": version: 2.0.2 resolution: "fastest-stable-stringify@npm:2.0.2" @@ -13094,37 +12599,37 @@ __metadata: linkType: hard "firebase@npm:^10.12.2": - version: 10.12.2 - resolution: "firebase@npm:10.12.2" - dependencies: - "@firebase/analytics": "npm:0.10.4" - "@firebase/analytics-compat": "npm:0.2.10" - "@firebase/app": "npm:0.10.5" - "@firebase/app-check": "npm:0.8.4" - "@firebase/app-check-compat": "npm:0.3.11" - "@firebase/app-compat": "npm:0.2.35" + version: 10.12.3 + resolution: "firebase@npm:10.12.3" + dependencies: + "@firebase/analytics": "npm:0.10.5" + "@firebase/analytics-compat": "npm:0.2.11" + "@firebase/app": "npm:0.10.6" + "@firebase/app-check": "npm:0.8.5" + "@firebase/app-check-compat": "npm:0.3.12" + "@firebase/app-compat": "npm:0.2.36" "@firebase/app-types": "npm:0.9.2" - "@firebase/auth": "npm:1.7.4" - "@firebase/auth-compat": "npm:0.5.9" - "@firebase/database": "npm:1.0.5" - "@firebase/database-compat": "npm:1.0.5" - "@firebase/firestore": "npm:4.6.3" - "@firebase/firestore-compat": "npm:0.3.32" - "@firebase/functions": "npm:0.11.5" - "@firebase/functions-compat": "npm:0.3.11" - "@firebase/installations": "npm:0.6.7" - "@firebase/installations-compat": "npm:0.2.7" - "@firebase/messaging": "npm:0.12.9" - "@firebase/messaging-compat": "npm:0.2.9" - "@firebase/performance": "npm:0.6.7" - "@firebase/performance-compat": "npm:0.2.7" - "@firebase/remote-config": "npm:0.4.7" - "@firebase/remote-config-compat": "npm:0.2.7" - "@firebase/storage": "npm:0.12.5" - "@firebase/storage-compat": "npm:0.3.8" - "@firebase/util": "npm:1.9.6" - "@firebase/vertexai-preview": "npm:0.0.2" - checksum: 10/427d404993a86832ee528a9bb68c12c1f1e81b07b6d61fd721351e64c8ba3025a91d4464361cff9160ca0ef994b2f9d409ecbe0f685430fbe4ce2606822e96d6 + "@firebase/auth": "npm:1.7.5" + "@firebase/auth-compat": "npm:0.5.10" + "@firebase/database": "npm:1.0.6" + "@firebase/database-compat": "npm:1.0.6" + "@firebase/firestore": "npm:4.6.4" + "@firebase/firestore-compat": "npm:0.3.33" + "@firebase/functions": "npm:0.11.6" + "@firebase/functions-compat": "npm:0.3.12" + "@firebase/installations": "npm:0.6.8" + "@firebase/installations-compat": "npm:0.2.8" + "@firebase/messaging": "npm:0.12.10" + "@firebase/messaging-compat": "npm:0.2.10" + "@firebase/performance": "npm:0.6.8" + "@firebase/performance-compat": "npm:0.2.8" + "@firebase/remote-config": "npm:0.4.8" + "@firebase/remote-config-compat": "npm:0.2.8" + "@firebase/storage": "npm:0.12.6" + "@firebase/storage-compat": "npm:0.3.9" + "@firebase/util": "npm:1.9.7" + "@firebase/vertexai-preview": "npm:0.0.3" + checksum: 10/9fd3d72b9c9c0dc9b4fbce1902b06457c847afb426931c3432e9d10fafcdc80c172d86307e5a75864608fbb6e4af13f727b2222a4b9fcb0244fe5b054f1e907d languageName: node linkType: hard @@ -13135,10 +12640,10 @@ __metadata: languageName: node linkType: hard -"flairup@npm:0.0.39": - version: 0.0.39 - resolution: "flairup@npm:0.0.39" - checksum: 10/8b72671b31529db4d1aaa218efbc91795cd3049bf4c0d095737e8841aad61784c1a5f1f5f4c07f12e98a2bc6ef266d5f388662223087adac16df82fc0ff411ec +"flairup@npm:1.0.0": + version: 1.0.0 + resolution: "flairup@npm:1.0.0" + checksum: 10/9125711da6effe146fa748fda4c293027a142bde7cc9264d6e515a5845c79181d6fdb63bb1254a5c364006b333a1083d06ac6ead0c2e3c28024c977363e19571 languageName: node linkType: hard @@ -13160,7 +12665,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9": +"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.6": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: @@ -13521,8 +13026,8 @@ __metadata: linkType: hard "glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.4.2 - resolution: "glob@npm:10.4.2" + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: "npm:^3.1.0" jackspeak: "npm:^3.1.2" @@ -13532,7 +13037,7 @@ __metadata: path-scurry: "npm:^1.11.1" bin: glob: dist/esm/bin.mjs - checksum: 10/e412776b5952a818eba790c830bea161c9a56813fd767d8c4c49f855603b1fb962b3e73f1f627a47298a57d2992b9f0f2fe15cf93e74ecaaa63fb45d63fdd090 + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac languageName: node linkType: hard @@ -13635,9 +13140,9 @@ __metadata: linkType: hard "google-protobuf@npm:^3.12.2": - version: 3.21.2 - resolution: "google-protobuf@npm:3.21.2" - checksum: 10/b376c2e47fb0419b41b901e4da8f3827fe9594ffb7887708b9c241f36005d0b9f2edc7b3f05795f6793924a241e767f67831732eae0f23bdbb337b56a6ab4e26 + version: 3.21.4 + resolution: "google-protobuf@npm:3.21.4" + checksum: 10/0d87fe8ef221d105cbaa808f4024bd577638524d8e461469e3733f2e4933391ad4da86b7fcbd11e8781bee04eacf2e8ba19aaacd5f9deb336a220485841d980f languageName: node linkType: hard @@ -13922,9 +13427,9 @@ __metadata: linkType: hard "hls.js@npm:^1.4.12": - version: 1.5.11 - resolution: "hls.js@npm:1.5.11" - checksum: 10/eb73da08148953b4da4c2e14eb40bbdd8f9184f4cba6463cd46af7ec5a204c2f4b47d9d1d2e5dad3a5dd56e50c646d6b6a507fdb9f9e90eedf8f42d75ed375d9 + version: 1.5.13 + resolution: "hls.js@npm:1.5.13" + checksum: 10/ccb709c07322d81e8be7cde428ca83543a8f61bdaad2e825018013e25c710d9e7cf0570aad1547c95ad635019869d1a2d680c743e2094f7da4a97b44201589e2 languageName: node linkType: hard @@ -14262,12 +13767,11 @@ __metadata: linkType: hard "inline-style-prefixer@npm:^7.0.0": - version: 7.0.0 - resolution: "inline-style-prefixer@npm:7.0.0" + version: 7.0.1 + resolution: "inline-style-prefixer@npm:7.0.1" dependencies: css-in-js-utils: "npm:^3.1.0" - fast-loops: "npm:^1.1.3" - checksum: 10/38486ce52ffa81649d845ffc4dda421ac24ea02709b8608d61f82cf186bc57749a73e562c2b7236c3946705a0c6e9d5e3872c59280972df73b0a1161fbf51eba + checksum: 10/a430c962693f32a36bcec0124c9798bcf3725bb90468d493108c0242446a9cc92ff1967bdf99b6ce5331e7a9b75e6836bc9ba1b3d4756876b8ef48036acb2509 languageName: node linkType: hard @@ -15273,15 +14777,15 @@ __metadata: linkType: hard "jackspeak@npm:^3.1.2": - version: 3.4.0 - resolution: "jackspeak@npm:3.4.0" + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" dependencies: "@isaacs/cliui": "npm:^8.0.2" "@pkgjs/parseargs": "npm:^0.11.0" dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 10/5032c43c0c1fb92e72846ce496df559214253bc6870c90399cbd7858571c53169d9494b7c152df04abcb75f2fb5e9cffe65651c67d573380adf3a482b150d84b + checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 languageName: node linkType: hard @@ -16009,18 +15513,18 @@ __metadata: linkType: hard "load-bmfont@npm:^1.3.1": - version: 1.4.1 - resolution: "load-bmfont@npm:1.4.1" + version: 1.4.2 + resolution: "load-bmfont@npm:1.4.2" dependencies: buffer-equal: "npm:0.0.1" mime: "npm:^1.3.4" parse-bmfont-ascii: "npm:^1.0.3" parse-bmfont-binary: "npm:^1.0.5" parse-bmfont-xml: "npm:^1.1.4" - phin: "npm:^2.9.1" + phin: "npm:^3.7.1" xhr: "npm:^2.0.1" xtend: "npm:^4.0.0" - checksum: 10/15d067360875df5a3e5f331044706c1c44ad24f7233306d3ca8e4728796d639c646e2997839e31051281813a0af50fc263cbe25f683dd6fecceea8ece2701a78 + checksum: 10/73d80e9d5bd3ba12ba1174a33a6dfdc90a635106bb9a040b375060f24a9e15f757f06f3adfbcaa1f6effd93e380ef8c51f2b946dc6d976037f7119f0dd5266bf languageName: node linkType: hard @@ -16295,9 +15799,9 @@ __metadata: linkType: hard "lru-cache@npm:^10.0.1, lru-cache@npm:^10.1.0, lru-cache@npm:^10.2.0": - version: 10.3.0 - resolution: "lru-cache@npm:10.3.0" - checksum: 10/37e921aedbd1f4062475d9fa6760391fa7adfaaee3a5a6cbedd1d6d0b46705c14012312c1edb2b13f119eae6584a48f73c158d118828d42475b44a7abf7d05ab + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a languageName: node linkType: hard @@ -16625,12 +16129,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:*, minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" +"minimatch@npm:*": + version: 10.0.1 + resolution: "minimatch@npm:10.0.1" dependencies: brace-expansion: "npm:^2.0.1" - checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + checksum: 10/082e7ccbc090d5f8c4e4e029255d5a1d1e3af37bda837da2b8b0085b1503a1210c91ac90d9ebfe741d8a5f286ece820a1abb4f61dc1f82ce602a055d461d93f3 languageName: node linkType: hard @@ -16643,6 +16147,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + languageName: node + linkType: hard + "minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -16791,7 +16304,7 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.6.1, mlly@npm:^1.7.0": +"mlly@npm:^1.6.1, mlly@npm:^1.7.1": version: 1.7.1 resolution: "mlly@npm:1.7.1" dependencies: @@ -17017,9 +16530,9 @@ __metadata: linkType: hard "multiformats@npm:^13.0.0, multiformats@npm:^13.1.0": - version: 13.1.1 - resolution: "multiformats@npm:13.1.1" - checksum: 10/5d523145662596c913f292ad54c8fccffe3ff6efc3eddcca3801d2bb64e52702e026b81f9d4f509a8633f1709686c1ef0ebdadbfcc1d540cdbe5f35a46df7cff + version: 13.1.3 + resolution: "multiformats@npm:13.1.3" + checksum: 10/5568213caf73a9cd189afae61b0d8ca4d3175507ee50fa64a8931b7617f4ea9bf076da6fdbe78131151e5d9d48207dcd4ce56863a93d39b3f56d158e2d856daa languageName: node linkType: hard @@ -17320,11 +16833,11 @@ __metadata: linkType: hard "node-addon-api@npm:^7.0.0": - version: 7.1.0 - resolution: "node-addon-api@npm:7.1.0" + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" dependencies: node-gyp: "npm:latest" - checksum: 10/e20487e98c76660f4957e81e85c45dfb667140d9be0bf872a3b3dfd86b4ea19c0275939116c90efebc0da7fc6af2c7b7b060512ceebe6417b1ed145a26910453 + checksum: 10/ee1e1ed6284a2f8cd1d59ac6175ecbabf8978dcf570345e9a8095a9d0a2b9ced591074ae77f9009287b00c402352b38aa9322a34f2199cdc9f567b842a636b94 languageName: node linkType: hard @@ -17395,8 +16908,8 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.1.0 - resolution: "node-gyp@npm:10.1.0" + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" @@ -17404,13 +16917,13 @@ __metadata: graceful-fs: "npm:^4.2.6" make-fetch-happen: "npm:^13.0.0" nopt: "npm:^7.0.0" - proc-log: "npm:^3.0.0" + proc-log: "npm:^4.1.0" semver: "npm:^7.3.5" - tar: "npm:^6.1.2" + tar: "npm:^6.2.1" which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10/89e105e495e66cd4568af3cf79cdeb67d670eb069e33163c7781d3366470a30367c9bd8dea59e46db16370020139e5bf78b1fbc03284cb571754dfaa59744db5 + checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe languageName: node linkType: hard @@ -18111,6 +17624,15 @@ __metadata: languageName: node linkType: hard +"phin@npm:^3.7.1": + version: 3.7.1 + resolution: "phin@npm:3.7.1" + dependencies: + centra: "npm:^2.7.0" + checksum: 10/eebbfb0ab63d90f1513a2da05ef5ccc4bfb17216567fe62e9f0b8a4da27ff301b6409da8dcada6a66711c040b318ffb456e1adf24e8d261e24a916d30d91aadf + languageName: node + linkType: hard + "pica@npm:^9.0.1": version: 9.0.1 resolution: "pica@npm:9.0.1" @@ -18196,13 +17718,13 @@ __metadata: linkType: hard "pkg-types@npm:^1.1.1": - version: 1.1.1 - resolution: "pkg-types@npm:1.1.1" + version: 1.1.3 + resolution: "pkg-types@npm:1.1.3" dependencies: confbox: "npm:^0.1.7" - mlly: "npm:^1.7.0" + mlly: "npm:^1.7.1" pathe: "npm:^1.1.2" - checksum: 10/225eaf7c0339027e176dd0d34a6d9a1384c21e0aab295e57dfbef1f1b7fc132f008671da7e67553e352b80b17ba38c531c720c914061d277410eef1bdd9d9608 + checksum: 10/06c03ca679ea8e3a1ea7cb74e92af1a486a6081401aac35f6aa51fb6f0855cd86bbfc713f9bfdaaa730815b5ae147b4d6a838710b550c1c4b3f54a6653ff04a3 languageName: node linkType: hard @@ -18266,7 +17788,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.38, postcss@npm:^8.4.38": +"postcss@npm:8.4.38": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -18277,10 +17799,21 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.38, postcss@npm:^8.4.39": + version: 8.4.39 + resolution: "postcss@npm:8.4.39" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10/ad9c1add892c96433b9a5502878201ede4a20c4ce02d056251f61f8d9a3e5426dab3683fe5a086edfa78a1a19f2b4988c8cea02c5122136d29758cb5a17e2621 + languageName: node + linkType: hard + "preact@npm:^10.16.0": - version: 10.22.0 - resolution: "preact@npm:10.22.0" - checksum: 10/0f3092916a538fa47d205d603bb5c513f9368a59bcbf881b457641ea6b88470b6a07960da8727db1287c232cb0f3a6292963917fa5cf09864be5eb50bf2a294e + version: 10.22.1 + resolution: "preact@npm:10.22.1" + checksum: 10/53ec958c49e600dcdedbb2da27834aa9779115690c26d240a953558fdd32d7f8cb3b34f2ec7a7c029a8aec46a93680b0e4b5baa0592fae6d53c7932abda6c06e languageName: node linkType: hard @@ -18340,14 +17873,7 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 10/02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 - languageName: node - linkType: hard - -"proc-log@npm:^4.2.0": +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": version: 4.2.0 resolution: "proc-log@npm:4.2.0" checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a @@ -18376,9 +17902,9 @@ __metadata: linkType: hard "progress-events@npm:^1.0.0": - version: 1.0.0 - resolution: "progress-events@npm:1.0.0" - checksum: 10/fa5a17a54566a4cb6432d0b65df9d844939fab9ec77a0c57f939dd9dc3fd2d450cd4c8de8b44da667f163274763d98f149fb2e6fef4c4746f1713678e1617fe8 + version: 1.0.1 + resolution: "progress-events@npm:1.0.1" + checksum: 10/21e8ba984e6c6f6764279fabdf7b34d8110c1720757360fc8cad56b1622e67857fe543619652b64cee51a880a2a4a5febdcb4ff86e4c2969ed90048e2264f42f languageName: node linkType: hard @@ -18603,7 +18129,7 @@ __metadata: "@metamask/eth-sig-util": "npm:^4.0.0" "@mui/icons-material": "npm:^5.8.4" "@mui/material": "npm:^5.5.0" - "@pushprotocol/restapi": "npm:1.7.20" + "@pushprotocol/restapi": "npm:1.7.23" "@pushprotocol/socket": "npm:0.5.3" "@pushprotocol/uiweb": "npm:1.4.2" "@radix-ui/react-dropdown-menu": "npm:^2.1.1" @@ -18629,11 +18155,11 @@ __metadata: "@unstoppabledomains/resolution": "npm:8.5.0" "@vitejs/plugin-react": "npm:^4.2.1" "@web3-name-sdk/core": "npm:^0.1.18" - "@web3-onboard/coinbase": "npm:^2.2.5" - "@web3-onboard/core": "npm:2.21.6" - "@web3-onboard/injected-wallets": "npm:2.10.16" - "@web3-onboard/react": "npm:^2.8.9" - "@web3-onboard/walletconnect": "npm:2.5.5" + "@web3-onboard/coinbase": "npm:^2.4.1" + "@web3-onboard/core": "npm:2.22.2" + "@web3-onboard/injected-wallets": "npm:2.11.1" + "@web3-onboard/react": "npm:^2.9.2" + "@web3-onboard/walletconnect": "npm:2.6.1" "@yisheng90/react-loading": "npm:1.2.3" assert: "npm:2.0.0" babel-plugin-styled-components: "npm:1.10.7" @@ -18748,11 +18274,11 @@ __metadata: linkType: hard "qs@npm:^6.11.2": - version: 6.12.1 - resolution: "qs@npm:6.12.1" + version: 6.12.3 + resolution: "qs@npm:6.12.3" dependencies: side-channel: "npm:^1.0.6" - checksum: 10/035bcad2a1ab0175bac7a74c904c15913bdac252834149ccff988c93a51de02642fe7be10e43058ba4dc4094bb28ce9b59d12b9e91d40997f445cfde3ecc1c29 + checksum: 10/486d80cfa5e12886de6fe15a5aa2b3c7023bf4461f949a742022c3ae608499dbaebcb57b1f15c1f59d86356772969028768b33c1a7c01e76d99f149239e63d59 languageName: node linkType: hard @@ -19159,7 +18685,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^18.2.0": +"react-is@npm:^18.3.1": version: 18.3.1 resolution: "react-is@npm:18.3.1" checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 @@ -19352,26 +18878,26 @@ __metadata: linkType: hard "react-router-dom@npm:^6.9.0": - version: 6.24.0 - resolution: "react-router-dom@npm:6.24.0" + version: 6.24.1 + resolution: "react-router-dom@npm:6.24.1" dependencies: - "@remix-run/router": "npm:1.17.0" - react-router: "npm:6.24.0" + "@remix-run/router": "npm:1.17.1" + react-router: "npm:6.24.1" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 10/a6622bc53dd7652bbfb9f5c6f2c1bff4aa93a24cc91e048aa2908d096f7106de3707b5d4cf4bd9cf0b67d4475c7718add7fd96045430f7435c7d78da04708a30 + checksum: 10/98eeeec3d36695b3d6d8000d8373ba3cefa9afc49ee44f646f3b721e8b47a80f5ce3737ad1f752cccf19caf01e370918750a4bc86a06a99e491731b454d5ec55 languageName: node linkType: hard -"react-router@npm:6.24.0": - version: 6.24.0 - resolution: "react-router@npm:6.24.0" +"react-router@npm:6.24.1": + version: 6.24.1 + resolution: "react-router@npm:6.24.1" dependencies: - "@remix-run/router": "npm:1.17.0" + "@remix-run/router": "npm:1.17.1" peerDependencies: react: ">=16.8" - checksum: 10/71d750e4422d74e1981b38f54c0dd02a7af7b1059cab471d96e4dc3374824557f6eec8449fe557c0ed8af18569554de8d565bbfd708c1fc90d3421b3d6c6ac82 + checksum: 10/18ac968171dee286a2f067dc8568faf73c759f833e88e09f1b34ff6e9376d1fd5eade8697a86be83093225956b256b398d935ce2f681c1bf711fb3c058c19839 languageName: node linkType: hard @@ -19997,25 +19523,25 @@ __metadata: linkType: hard "rollup@npm:^4.13.0": - version: 4.18.0 - resolution: "rollup@npm:4.18.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.18.0" - "@rollup/rollup-android-arm64": "npm:4.18.0" - "@rollup/rollup-darwin-arm64": "npm:4.18.0" - "@rollup/rollup-darwin-x64": "npm:4.18.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.18.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-x64-musl": "npm:4.18.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.18.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.18.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.18.0" + version: 4.18.1 + resolution: "rollup@npm:4.18.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.18.1" + "@rollup/rollup-android-arm64": "npm:4.18.1" + "@rollup/rollup-darwin-arm64": "npm:4.18.1" + "@rollup/rollup-darwin-x64": "npm:4.18.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.18.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.18.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.18.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.18.1" + "@rollup/rollup-linux-x64-musl": "npm:4.18.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.18.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.18.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.18.1" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -20055,7 +19581,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/2320fe653cfd5e3d72ecab2f1d52d47e7b624a6ab02919f53c1ad1c5efa3b66e277c3ecfef03bb97651e79cef04bfefd34ad1f6e648f496572bf76c834f19599 + checksum: 10/7a5f110d216e8599dc3cb11cf570316d989abae00785d99c2bcb6027287fe60d2eaed70e457d88a036622e7fc67e8db6e730d3c784aa90a258bd4c020676ad44 languageName: node linkType: hard @@ -21243,7 +20769,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": +"tar@npm:^6.1.11, tar@npm:^6.2.1": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -21280,8 +20806,8 @@ __metadata: linkType: hard "terser@npm:^5.26.0": - version: 5.31.1 - resolution: "terser@npm:5.31.1" + version: 5.31.2 + resolution: "terser@npm:5.31.2" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -21289,7 +20815,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10/4b22b62e762aebcd538dc3f5d5323fb3b51786e9294f7069d591cb61401a1161778039fdf283bbaf06244f500ee8563e0c49fc3c64176310556f34cc6637d463 + checksum: 10/dab8d0a7e2845f14535433795aa8dcf1b80a33e75749f5dbd67ee97aa66c1dec37191afa46dd88dad8472c9ff0bf16a812dd4388cb30d8675a6a95a7ead0421b languageName: node linkType: hard @@ -21668,9 +21194,9 @@ __metadata: linkType: hard "type-fest@npm:^4.18.2": - version: 4.20.1 - resolution: "type-fest@npm:4.20.1" - checksum: 10/52dc64fae094949008afb79f21b02eca0289c8dc41ed1cfff88f343230edb476fca4815e1b5d58acf5e07fdc7a1b098504473b5931ef418e6f38a3edb70fc1df + version: 4.21.0 + resolution: "type-fest@npm:4.21.0" + checksum: 10/a4dc074b25239fff4062495c58554dcec15845622d753092d2bf24fc3b1c49f85805ed74f151976d666056ff122b3a5a988e85226575b7fbbc8e92d2db210137 languageName: node linkType: hard @@ -21713,22 +21239,22 @@ __metadata: linkType: hard "typescript@npm:^5.2.2": - version: 5.5.2 - resolution: "typescript@npm:5.5.2" + version: 5.5.3 + resolution: "typescript@npm:5.5.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/9118b20f248e76b0dbff8737fef65dfa89d02668d4e633d2c5ceac99033a0ca5e8a1c1a53bc94da68e8f67677a88f318663dde859c9e9a09c1e116415daec2ba + checksum: 10/11a867312419ed497929aafd2f1d28b2cd41810a5eb6c6e9e169559112e9ea073d681c121a29102e67cd4478d0a4ae37a306a5800f3717f59c4337e6a9bd5e8d languageName: node linkType: hard "typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": - version: 5.5.2 - resolution: "typescript@patch:typescript@npm%3A5.5.2#optional!builtin::version=5.5.2&hash=b45daf" + version: 5.5.3 + resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=b45daf" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/28b3de2ddaf63a7620e7ddbe5d377af71ce93ecc558c41bf0e3d88661d8e6e7aa6c7739164fef98055f69819e41faca49252938ef3633a3dff2734cca6a9042e + checksum: 10/b61b8bb4b4d6a8a00f9d5f931f8c67070eed6ad11feabf4c41744a326987080bfc806a621596c70fbf2e5974eca3ed65bafeeeb22a078071bdfb51d8abd7c013 languageName: node linkType: hard @@ -21999,9 +21525,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.16": - version: 1.0.16 - resolution: "update-browserslist-db@npm:1.0.16" +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" dependencies: escalade: "npm:^3.1.2" picocolors: "npm:^1.0.1" @@ -22009,7 +21535,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10/071bf0b2fb8568db6cd42ee2598ac9b87c794a7229fcbf1b035ae7f883e770c07143f16a5371525d5bcb94b99f9a1b279036142b0195ffd4cf5a0008fc4a500e + checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c languageName: node linkType: hard @@ -22027,7 +21553,7 @@ __metadata: languageName: node linkType: hard -"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": +"uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" dependencies: @@ -22408,12 +21934,12 @@ __metadata: linkType: hard "vite@npm:^5.2.7": - version: 5.3.2 - resolution: "vite@npm:5.3.2" + version: 5.3.4 + resolution: "vite@npm:5.3.4" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.38" + postcss: "npm:^8.4.39" rollup: "npm:^4.13.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -22443,7 +21969,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/77b284938921da6c2c4055a5edd916ab221a973aa1403dba2aef303db1bd54ac7325db13f3fad13d77a7ac55cac7ffef49dffaa69bcadcc3caf2cae32ca03127 + checksum: 10/9eadb261be1f5f6335a67cb44a8803febd8b190202909385fd2ae7849991095ee13c5af914da53da48a421ee0901a8fedbb7519dc7d1b8ade3ea6e42bd9b2b39 languageName: node linkType: hard @@ -22807,8 +22333,8 @@ __metadata: linkType: hard "webpack@npm:^4.46.0 || ^5.0.0": - version: 5.92.1 - resolution: "webpack@npm:5.92.1" + version: 5.93.0 + resolution: "webpack@npm:5.93.0" dependencies: "@types/eslint-scope": "npm:^3.7.3" "@types/estree": "npm:^1.0.5" @@ -22839,7 +22365,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10/76fcfbebcc0719c4734c65a01dcef7a0f18f3f2647484e8a7e8606adbd128ac42756bb3a8b7e2d486fe97f6286ebdc7b937ccdf3cf1d21b4684134bb89bbed89 + checksum: 10/a48bef7a511d826db7f9ebee2c84317214923ac40cb2aabe6a649546c54a76a55fc3b91ff03c05fed22a13a176891c47bbff7fcc644c53bcbe5091555863641b languageName: node linkType: hard From d4509b9a13ba0bd36749ffe9f86edddaa6fd83cb Mon Sep 17 00:00:00 2001 From: Kolade Date: Wed, 17 Jul 2024 08:06:25 +0100 Subject: [PATCH 09/31] Update Enable Push profile function (#1743) * update function name, and update wallet condition * remove unused --- src/components/ChannelDetails.jsx | 8 ++++---- src/components/ChannelSettingsDropdown.tsx | 6 ------ src/components/NavigationButton.jsx | 6 +----- src/components/SendNotifications.tsx | 6 +++--- src/components/channel/NotificationSettings.tsx | 6 +++--- .../chat/unlockProfile/UnlockProfile.tsx | 4 ++-- .../dropdowns/ManageNotifSettingDropdown.tsx | 4 ++-- .../dropdowns/OptinNotifSettingDropdown.tsx | 4 ++-- .../dropdowns/UpdateNotifSettingDropdown.tsx | 6 +++--- src/components/yield/StakingModalComponent.tsx | 3 +-- src/components/yield/YieldPoolCard.tsx | 14 +++++++------- src/contexts/AppContext.tsx | 7 +++---- .../channelDashboard/ChannelOwnerDashboard.tsx | 6 +++--- src/modules/chat/ChatModule.tsx.deprecated | 2 +- src/modules/createChannel/CreateChannelModule.jsx | 6 +++--- src/sections/chat/ChatSidebarSection.tsx | 2 +- src/types/context.ts | 7 ++++++- 17 files changed, 45 insertions(+), 52 deletions(-) diff --git a/src/components/ChannelDetails.jsx b/src/components/ChannelDetails.jsx index d34b794c87..2be1f54f7c 100644 --- a/src/components/ChannelDetails.jsx +++ b/src/components/ChannelDetails.jsx @@ -37,7 +37,7 @@ import { CHANNEL_TYPE } from 'helpers/UtilityHelper'; const DATE_FORMAT = 'DD MMM, YYYY'; export default function ChannelDetails({ isChannelExpired, setIsChannelExpired, showEditChannel, destroyChannel }) { - const { account, chainId } = useAccount(); + const { account, chainId, wallet } = useAccount(); const { delegatees, channelDetails, @@ -48,7 +48,7 @@ export default function ChannelDetails({ isChannelExpired, setIsChannelExpired, const { userPushSDKInstance } = useSelector((state) => { return state.user; }); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const { CHANNEL_ACTIVE_STATE, CHANNNEL_DEACTIVATED_STATE } = useSelector((state) => state.channels); const { processingState } = useSelector((state) => state.channelCreation); const [verifyingChannel, setVerifyingChannel] = useState([]); @@ -78,7 +78,7 @@ export default function ChannelDetails({ isChannelExpired, setIsChannelExpired, const handleDelegateModal = async () => { if (!userPushSDKInstance.signer) { - await handleConnectWallet(); + await handleConnectWalletAndEnableProfile({ wallet }); } showAddDelegateModal(); }; @@ -157,7 +157,7 @@ export default function ChannelDetails({ isChannelExpired, setIsChannelExpired, const removeDelegate = async (walletAddress) => { let userPushInstance = userPushSDKInstance; if (!userPushInstance.signer) { - userPushInstance = await handleConnectWallet(); + userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); if (!userPushInstance) { return; } diff --git a/src/components/ChannelSettingsDropdown.tsx b/src/components/ChannelSettingsDropdown.tsx index dac2bf4298..af59b629a7 100644 --- a/src/components/ChannelSettingsDropdown.tsx +++ b/src/components/ChannelSettingsDropdown.tsx @@ -24,7 +24,6 @@ import ChannelReactivateModalContent from './ChannelReactivateModalContent'; // Internal Configs import { appConfig } from 'config/index.js'; import { useAccount, useDeviceWidthCheck } from 'hooks'; -import { AppContext } from 'contexts/AppContext'; import { ethers } from 'ethers'; @@ -47,7 +46,6 @@ function ChannelSettings({ DropdownRef, isDropdownOpen, closeDropdown }: Channel const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); - const { handleConnectWallet } = React.useContext(AppContext); const theme = useTheme(); const { channelState } = channelDetails; @@ -122,10 +120,6 @@ function ChannelSettings({ DropdownRef, isDropdownOpen, closeDropdown }: Channel const userSignerToast = useToast(); const toggleChannelActivationState = () => { if (isChannelBlocked) return; - // if (!userPushSDKInstance.signer) { - // handleConnectWallet(); - // return; - // } if (isChannelDeactivated) { showReactivateChannelModal(); } else { diff --git a/src/components/NavigationButton.jsx b/src/components/NavigationButton.jsx index 5a0642badf..01f3a1297f 100644 --- a/src/components/NavigationButton.jsx +++ b/src/components/NavigationButton.jsx @@ -37,7 +37,7 @@ function NavigationButton({ item, data, sectionID, active, bg = 'none' }) { setActiveIcon(navigationIcons[data.activeSrc] ?? data.activeSrc); }, [data.src, data.activeSrc]); - const { showMetamaskPushSnap, handleConnectWallet } = useContext(AppContext); + const { showMetamaskPushSnap } = useContext(AppContext); const { readOnlyWallet, mode, sidebarCollapsed } = useContext(GlobalContext); const navigationToast = useToast(5000); @@ -83,9 +83,6 @@ function NavigationButton({ item, data, sectionID, active, bg = 'none' }) { RouteLogic = ProtectedRoute; } - const handleDisallowedNav = () => { - handleConnectWallet(); - }; return ( <> {data.loading && ( @@ -118,7 +115,6 @@ function NavigationButton({ item, data, sectionID, active, bg = 'none' }) { margin={definedMargin} bg={bg} active={active ? 1 : 0} - // onClick={disallowNavigation && handleDisallowedNav} className={data?.name?.toLowerCase()} > {data.iconFactory ? ( diff --git a/src/components/SendNotifications.tsx b/src/components/SendNotifications.tsx index f24b85aea4..df9cb9d094 100644 --- a/src/components/SendNotifications.tsx +++ b/src/components/SendNotifications.tsx @@ -114,7 +114,7 @@ const LIMITER_KEYS = ['Enter', ',']; function SendNotifications() { const theme = useTheme(); const isMobile = useDeviceWidthCheck(425); - const { account, provider, chainId } = useAccount(); + const { account, provider, chainId, wallet } = useAccount(); const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); @@ -129,7 +129,7 @@ function SendNotifications() { return state.canSend; }); const onCoreNetwork = CORE_CHAIN_ID === chainId; - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const [nfProcessing, setNFProcessing] = useState(0); const [channelAddress, setChannelAddress] = useState(''); const [nfRecipient, setNFRecipient] = useState(account); @@ -316,7 +316,7 @@ function SendNotifications() { let userPushInstance = userPushSDKInstance; if (!userPushInstance.signer) { - userPushInstance = await handleConnectWallet(); + userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); if (!userPushInstance) { return; } diff --git a/src/components/channel/NotificationSettings.tsx b/src/components/channel/NotificationSettings.tsx index e0eeaa1597..624c33071e 100644 --- a/src/components/channel/NotificationSettings.tsx +++ b/src/components/channel/NotificationSettings.tsx @@ -31,7 +31,7 @@ import { NotificationSetting } from '@pushprotocol/restapi/src/lib/pushNotificat const CORE_CHAIN_ID = appConfig.coreContractChain; function NotificationSettings() { - const { account, chainId } = useAccount(); + const { account, chainId, wallet } = useAccount(); const { coreChannelAdmin, delegatees } = useSelector((state: any) => state.admin); const { channelSettings } = useSelector((state: any) => state.channels); @@ -45,7 +45,7 @@ function NotificationSettings() { const [settingToEdit, setSettingToEdit] = useState(); const [isLoading, setIsLoading] = useState(false); const [isLoadingSettings, setIsLoadingSettings] = useState(true); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const { userPushSDKInstance } = useSelector((state: any) => { return state.user; @@ -134,7 +134,7 @@ function NotificationSettings() { let userPushInstance = userPushSDKInstance; if (!userPushInstance.signer) { - userPushInstance = await handleConnectWallet(); + userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); if (!userPushInstance) { setIsLoading(false); return; diff --git a/src/components/chat/unlockProfile/UnlockProfile.tsx b/src/components/chat/unlockProfile/UnlockProfile.tsx index b98c6c7e7d..de08c8adf1 100644 --- a/src/components/chat/unlockProfile/UnlockProfile.tsx +++ b/src/components/chat/unlockProfile/UnlockProfile.tsx @@ -53,7 +53,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps const { type, description } = InnerComponentProps; const theme = useTheme(); - const { handleConnectWallet, initializePushSDK } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile, initializePushSDK } = useContext(AppContext); const { account, wallet, connect } = useAccount(); @@ -76,7 +76,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps }; const handleChatprofileUnlock = useCallback(async () => { - const user = await handleConnectWallet({ remember: rememberMe, wallet }); + const user = await handleConnectWalletAndEnableProfile({ remember: rememberMe, wallet }); const errorExists = checkUnlockProfileErrors(user); diff --git a/src/components/dropdowns/ManageNotifSettingDropdown.tsx b/src/components/dropdowns/ManageNotifSettingDropdown.tsx index 61d55f4ba6..00db98456a 100644 --- a/src/components/dropdowns/ManageNotifSettingDropdown.tsx +++ b/src/components/dropdowns/ManageNotifSettingDropdown.tsx @@ -111,7 +111,7 @@ const ManageNotifSettingDropdownContainer: FC = (options) => { const { children, centerOnMobile, userSetting, channelDetail, onSuccessOptout } = options; const [isOpen, setIsOpen] = useState(false); - const { chainId, provider, account } = useAccount(); + const { chainId, provider, account, wallet } = useAccount(); const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); @@ -142,7 +142,7 @@ const ManageNotifSettingDropdown: FC = (options //TODO: We can change this back to use Push User // if (!userPushInstance.signer) { - // userPushInstance = await handleConnectWallet(); + // userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); // if (!userPushInstance) { // setLoadingFunc(false); // return; diff --git a/src/components/dropdowns/OptinNotifSettingDropdown.tsx b/src/components/dropdowns/OptinNotifSettingDropdown.tsx index 7e5602dcaa..0559704880 100644 --- a/src/components/dropdowns/OptinNotifSettingDropdown.tsx +++ b/src/components/dropdowns/OptinNotifSettingDropdown.tsx @@ -186,7 +186,7 @@ const OptinNotifSettingDropdown: FC = (options) const [isOpen, setIsOpen] = useState(false); const dispatch = useDispatch(); - const { handleConnectWallet, connectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile, connectWallet } = useContext(AppContext); const onCoreNetwork = chainId === appConfig.coreContractChain; @@ -219,7 +219,7 @@ const OptinNotifSettingDropdown: FC = (options) let userPushInstance = userPushSDKInstance; // if (!userPushInstance.signer) { - // userPushInstance = await handleConnectWallet(); + // userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); // if (!userPushInstance) { // setLoadingFunc(false); // return; diff --git a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx index d9b5cd6e3b..66f9158c5c 100644 --- a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx +++ b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx @@ -186,7 +186,7 @@ const UpdateNotifSettingDropdown: FC = ({ }) => { const [isOpen, setIsOpen] = useState(false); - const { chainId } = useAccount(); + const { chainId, wallet } = useAccount(); const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); @@ -202,7 +202,7 @@ const UpdateNotifSettingDropdown: FC = ({ setIsOpen(false); }; - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const subscribeToast = useToast(); const saveUserSettingHandler = async ({ @@ -219,7 +219,7 @@ const UpdateNotifSettingDropdown: FC = ({ let userPushInstance = userPushSDKInstance; if (!userPushInstance.signer) { - userPushInstance = await handleConnectWallet(); + userPushInstance = await handleConnectWalletAndEnableProfile({ wallet }); if (!userPushInstance) { setLoadingFunc(false); return; diff --git a/src/components/yield/StakingModalComponent.tsx b/src/components/yield/StakingModalComponent.tsx index 9e688a3c2a..8aa7254db8 100644 --- a/src/components/yield/StakingModalComponent.tsx +++ b/src/components/yield/StakingModalComponent.tsx @@ -35,7 +35,7 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => const [txnMessage, setTxnMessage] = useState(null); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const [depositAmount, setDepositAmount] = useState(0); @@ -81,7 +81,6 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => }, []); const approveDeposit = async () => { - if (!isWalletConnected) { connect(); return; diff --git a/src/components/yield/YieldPoolCard.tsx b/src/components/yield/YieldPoolCard.tsx index 4f37aa8871..d36fae1eea 100644 --- a/src/components/yield/YieldPoolCard.tsx +++ b/src/components/yield/YieldPoolCard.tsx @@ -41,7 +41,7 @@ const YieldPoolCard = ({ tokenAddress, setActiveTab, }: any) => { - const { account, provider } = useAccount(); + const { account, provider, wallet } = useAccount(); const [txInProgressWithdraw, setTxInProgressWithdraw] = useState(false); const [txInProgressClaimRewards, setTxInProgressClaimRewards] = useState(false); @@ -55,7 +55,7 @@ const YieldPoolCard = ({ const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const [filled, setFilled] = useState(0); @@ -65,7 +65,7 @@ const YieldPoolCard = ({ const massClaimRewardsTokensAll = async () => { if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({ wallet }); return; } @@ -153,7 +153,7 @@ const YieldPoolCard = ({ const withdrawTokens = async () => { if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({ wallet }); return; } @@ -234,7 +234,7 @@ const YieldPoolCard = ({ const migrateToNewPool = async () => { if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({ wallet }); return; } @@ -457,7 +457,7 @@ const YieldPoolCard = ({ const depositLpToken = async (tx, withdrawAmount, totalTxnSteps) => { if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({ wallet }); return; } @@ -510,7 +510,7 @@ const YieldPoolCard = ({ const depositPushToken = async (tx, withdrawAmount, totalTxnSteps) => { if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({ wallet }); return; } diff --git a/src/contexts/AppContext.tsx b/src/contexts/AppContext.tsx index 457e79f5cd..96c82add27 100644 --- a/src/contexts/AppContext.tsx +++ b/src/contexts/AppContext.tsx @@ -96,8 +96,7 @@ const AppContextProvider = ({ children }) => { } }; - // TODO: Change function name to handleConnectWalletAndUser - const handleConnectWallet = async ({ + const handleConnectWalletAndEnableProfile = async ({ remember = false, showToast = false, toastMessage = undefined, @@ -126,7 +125,7 @@ const AppContextProvider = ({ children }) => { let user; - if (wallet?.accounts?.length > 0) { + if (wallet && typeof wallet === 'object' && wallet?.accounts?.length > 0) { user = await initializePushSDK(wallet); } else { const walletConnected = await connect(); @@ -535,7 +534,7 @@ const AppContextProvider = ({ children }) => { setSnapState, initializePushSDK, SnapState, - handleConnectWallet, + handleConnectWalletAndEnableProfile, connectWallet, setSnapInstalled, snapInstalled, diff --git a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx index 4295ec09a1..2be592a9cb 100644 --- a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx +++ b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx @@ -43,7 +43,7 @@ let intervalID = null; // CREATE CHANNEL OWNER DASHBOARD const ChannelOwnerDashboard = () => { const theme = useTheme(); - const { account, chainId } = useAccount(); + const { account, chainId, wallet } = useAccount(); const { channelDetails, delegatees, @@ -54,7 +54,7 @@ const ChannelOwnerDashboard = () => { const { userPushSDKInstance } = useSelector((state: any) => { return state.user; }); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const isChannelDetails = channelDetails && channelDetails !== 'unfetched'; @@ -175,7 +175,7 @@ const ChannelOwnerDashboard = () => { const showEditChannel = () => { // if (!userPushSDKInstance.signer) { - // handleConnectWallet(); + // handleConnectWalletAndEnableProfile({wallet}); // return; // } setEditChannel(true); diff --git a/src/modules/chat/ChatModule.tsx.deprecated b/src/modules/chat/ChatModule.tsx.deprecated index 649fc91c13..21ecf3545f 100644 --- a/src/modules/chat/ChatModule.tsx.deprecated +++ b/src/modules/chat/ChatModule.tsx.deprecated @@ -73,7 +73,7 @@ function Chat({ chatid }) { setConnectedUser, displayQR, setDisplayQR, - handleConnectWallet, + handleConnectWalletAndEnableProfile, } = useContext(AppContext); const { userPushSDKInstance } = useSelector((state: any) => { diff --git a/src/modules/createChannel/CreateChannelModule.jsx b/src/modules/createChannel/CreateChannelModule.jsx index dcfa401185..75dc3c3903 100644 --- a/src/modules/createChannel/CreateChannelModule.jsx +++ b/src/modules/createChannel/CreateChannelModule.jsx @@ -36,11 +36,11 @@ const CORE_CHAIN_ID = appConfig.coreContractChain; // Create Header function CreateChannelModule() { - const { account, provider, chainId } = useAccount(); + const { account, provider, chainId, wallet } = useAccount(); const { userPushSDKInstance } = useSelector((state) => { return state.user; }); - const { handleConnectWallet } = useContext(AppContext); + const { handleConnectWalletAndEnableProfile } = useContext(AppContext); const theme = useTheme(); const onCoreNetwork = CORE_CHAIN_ID === chainId; @@ -240,7 +240,7 @@ function CreateChannelModule() { // e.preventDefault(); if (!userPushSDKInstance.signer) { - handleConnectWallet(); + handleConnectWalletAndEnableProfile({wallet}); return; } diff --git a/src/sections/chat/ChatSidebarSection.tsx b/src/sections/chat/ChatSidebarSection.tsx index de51096557..9dedd16182 100644 --- a/src/sections/chat/ChatSidebarSection.tsx +++ b/src/sections/chat/ChatSidebarSection.tsx @@ -85,7 +85,7 @@ const ChatSidebarSection = ({ showCreateGroupModal, chatId, selectedChatId, setS // showCreateGroupModal(); // } else { // if (userPushSDKInstance.account === readOnlyWallet) { - // handleConnectWallet(); + // handleConnectWalletAndEnableProfile(); // } else { // if (userPushSDKInstance.signer === undefined) { // await initializePushSDK(); diff --git a/src/types/context.ts b/src/types/context.ts index 326ea12bef..e784ddc2bb 100644 --- a/src/types/context.ts +++ b/src/types/context.ts @@ -44,7 +44,12 @@ export interface AppContextType { initializePushSDK: () => Promise; snapInstalled: boolean; setSnapInstalled: (snapInstalled: boolean) => void; - handleConnectWallet: (showToast?: boolean, toastMessage?: string) => any; + handleConnectWalletAndEnableProfile: ( + showToast?: boolean, + toastMessage?: string, + wallet?: any, + remember?: any + ) => any; connectWallet: (showToast?: boolean, toastMessage?: string) => any; setBlockedLoading: (blockedLoading: BlockedLoadingI) => void; blockedLoading: BlockedLoadingI; From 547552d0357309b9b39f7750eaed689d7a906fdc Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Thu, 18 Jul 2024 12:09:06 +0530 Subject: [PATCH 10/31] chore: handle rejected user state in rewards (#1738) * chore: handle rejected user state in rewards * chore: allow user to reverify --- src/modules/rewards/components/RewardsActivitiesListItem.tsx | 4 ++-- src/queries/types/rewards.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/rewards/components/RewardsActivitiesListItem.tsx b/src/modules/rewards/components/RewardsActivitiesListItem.tsx index cbfea77991..cf9ee45aa3 100644 --- a/src/modules/rewards/components/RewardsActivitiesListItem.tsx +++ b/src/modules/rewards/components/RewardsActivitiesListItem.tsx @@ -143,7 +143,7 @@ const RewardsActivitiesListItem: FC = ({ userId, - {errorMessage && ( + {(errorMessage || usersSingleActivity?.status === 'REJECTED') && ( = ({ userId, variant="h5-semibold" color={{ light: 'red-700', dark: 'red-300' }} > - {errorMessage} + {errorMessage || 'Verification Rejected. Please contact the Push team over discord.'} )} diff --git a/src/queries/types/rewards.ts b/src/queries/types/rewards.ts index 824235d5d1..8808009279 100644 --- a/src/queries/types/rewards.ts +++ b/src/queries/types/rewards.ts @@ -32,7 +32,7 @@ export type UsersActivity = { userId: string; activityTypeId: string; data: { twitter?: string; discord?: string }; - status: 'COMPLETED' | 'PENDING'; + status: 'COMPLETED' | 'PENDING' | 'REJECTED'; points: number; multiplier: number; verificationProof: string; From a0306a8faaad05d71100b0cbd6a947624c643c09 Mon Sep 17 00:00:00 2001 From: Monalisha Mishra <42746736+mishramonalisha76@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:12:06 +0530 Subject: [PATCH 11/31] Implemented toggle switch (#1749) * implemented toggle switch * fixed the review issue * fixed the review issue * fixed text --- package.json | 1 + src/blocks/index.ts | 1 + src/blocks/toggleSwtich/ToggleSwitch.tsx | 127 +++++++++++++++++++++++ src/blocks/toggleSwtich/index.ts | 1 + yarn.lock | 39 +++++++ 5 files changed, 169 insertions(+) create mode 100644 src/blocks/toggleSwtich/ToggleSwitch.tsx create mode 100644 src/blocks/toggleSwtich/index.ts diff --git a/package.json b/package.json index f154f080b3..b3d0375438 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@pushprotocol/socket": "0.5.3", "@pushprotocol/uiweb": "1.4.2", "@radix-ui/react-dropdown-menu": "^2.1.1", + "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.1", "@reach/tabs": "^0.18.0", "@reduxjs/toolkit": "^1.7.1", diff --git a/src/blocks/index.ts b/src/blocks/index.ts index 391c79191b..ecb30db71f 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -12,6 +12,7 @@ export { Text, type TextProps } from './text'; export { Tooltip, type TooltipProps } from './tooltip'; export { TextArea, type TextAreaProps } from './textarea'; export { TextInput } from './textInput'; +export { ToggleSwitch } from './toggleSwtich'; export * from './Blocks.colors'; export * from './Blocks.types'; diff --git a/src/blocks/toggleSwtich/ToggleSwitch.tsx b/src/blocks/toggleSwtich/ToggleSwitch.tsx new file mode 100644 index 0000000000..035bda6aa6 --- /dev/null +++ b/src/blocks/toggleSwtich/ToggleSwitch.tsx @@ -0,0 +1,127 @@ +import React from 'react'; + +import styled, { FlattenSimpleInterpolation } from 'styled-components'; +import * as Switch from '@radix-ui/react-switch'; + +import { TextVariants, textVariants } from '../text'; +import { ThemeColors } from 'blocks/theme/Theme.types'; + +export type ToggleSwitchProps = { + /* Additional prop from styled components to apply custom css to Toggle switch */ + css?: FlattenSimpleInterpolation; + /* Label for the toggle switch */ + label?: string; + /* Description for the toggle switch */ + description?: string; + /* Sets toggle switch as disabled */ + disabled?: boolean; + /* Render the toggle before text contents */ + leadingToggle?: boolean; + /* Sets toggle switch to checked */ + checked: boolean; + /* Function invoked when toggle switch is clicked*/ + onCheckedChange: (checked: boolean) => void; +}; + +const StyledToggleRoot = styled(Switch.Root)` + width: 38px; + height: 20px; + padding: 3px; + background-color: var(--components-toggle-switch-background-unselected); + border-radius: var(--radius-md); + position: relative; + &[data-state='checked'] { + background-color: var(--components-toggle-switch-background-selected); + } + &:disabled { + cursor: not-allowed; + background: var(--components-toggle-switch-background-disabled); + span { + background: var(--components-toggle-switch-icon-disabled); + } + } +`; +const StyledToggleThumb = styled(Switch.Thumb)` + display: block; + cursor: pointer; + width: 14px; + height: 14px; + background-color: var(--components-toggle-switch-icon-default); + border-radius: var(--radius-round); + transition: transform 100ms; + will-change: transform; + &[data-state='checked'] { + transform: translateX(17.5px); + } +`; + +const Container = styled.div<{ css?: FlattenSimpleInterpolation; flexDirection: string }>` + display: flex; + flex-direction: ${({ flexDirection }) => flexDirection || ''}; + gap: var(--spacing-xxs); + justifycontent: space-between; + + /* Custom CSS applied via styled component css prop */ + ${(props) => props.css || ''}; +`; + +const LabelContainer = styled.div` + display: flex; + align-items: flex-start; + flex-direction: column; +`; +const TextContainer = styled.p<{ variant: TextVariants; color: ThemeColors }>` + margin: 0; + color: ${({ color }) => color}; + ${({ variant }) => + `font-family: var(--font-family); + font-size: ${textVariants[variant].fontSize}; + font-style: ${textVariants[variant].fontStyle}; + font-weight: ${textVariants[variant].fontWeight}; + line-height: ${textVariants[variant].lineHeight};`} +`; +const ToggleSwitch: React.FC = ({ + label, + description, + disabled = false, + onCheckedChange, + leadingToggle = true, + checked, +}) => { + return ( + + + + + {(label || description) && ( + + {label && ( + + {label} + + )} + {description && ( + + {description} + + )} + + )} + + ); +}; + +ToggleSwitch.displayName = 'ToggleSwitch'; + +export { ToggleSwitch }; diff --git a/src/blocks/toggleSwtich/index.ts b/src/blocks/toggleSwtich/index.ts new file mode 100644 index 0000000000..05bf93c40e --- /dev/null +++ b/src/blocks/toggleSwtich/index.ts @@ -0,0 +1 @@ +export { ToggleSwitch, type ToggleSwitchProps } from './ToggleSwitch'; diff --git a/yarn.lock b/yarn.lock index 9a4bbd2e78..1f71c8a44b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4775,6 +4775,31 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-switch@npm:^1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-switch@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/847930e2a25699015e83f07ffb5065c2e925ffcf84b2ef2222e63e7862a9753e09ea8cd64504d20cbb689060ece1ad2e3b8a4c04702bc8040c5fda7d13ef71ae + languageName: node + linkType: hard + "@radix-ui/react-tooltip@npm:^1.1.1": version: 1.1.2 resolution: "@radix-ui/react-tooltip@npm:1.1.2" @@ -4938,6 +4963,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-previous@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-previous@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/8a2407e3db6248ab52bf425f5f4161355d09f1a228038094959250ae53552e73543532b3bb80e452f6ad624621e2e1c6aebb8c702f2dfaa5e89f07ec629d9304 + languageName: node + linkType: hard + "@radix-ui/react-use-rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-rect@npm:1.0.1" @@ -18133,6 +18171,7 @@ __metadata: "@pushprotocol/socket": "npm:0.5.3" "@pushprotocol/uiweb": "npm:1.4.2" "@radix-ui/react-dropdown-menu": "npm:^2.1.1" + "@radix-ui/react-switch": "npm:^1.1.0" "@radix-ui/react-tooltip": "npm:^1.1.1" "@reach/tabs": "npm:^0.18.0" "@reduxjs/toolkit": "npm:^1.7.1" From c83c26cd86c6c90bedaccf35abeb512fa5e77d05 Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Thu, 18 Jul 2024 21:16:15 +0530 Subject: [PATCH 12/31] Replace buttons in the app with new ds component (#1739) * chore: replace buttons in the app with new ds component * chore: add block prop to button * chore: move block styling for button to the end * chore: update spacing vars and search bar icon * chore: update color variables --- src/App.tsx | 34 +--- src/blocks/button/Button.tsx | 5 + src/components/ChangeNetwork.tsx | 33 ++-- src/components/ChannelDetails.jsx | 48 ++--- src/components/ChannelInfo.tsx | 33 ++-- src/components/ChannelSettings.jsx | 19 -- src/components/FaucetInfo.tsx | 47 ++--- src/components/ProfileModal.tsx | 28 +-- src/components/PushSnap/EnableSnoozeModal.tsx | 53 ++---- .../PushSnap/InstallPushSnapModal.tsx | 115 ++++++------ .../PushSnap/PushSnapConfigureModal.tsx | 79 +------- src/components/PushSnap/PushSnapSettings.tsx | 32 +--- .../PushSnap/SnapInformationModal.tsx | 35 +--- src/components/SearchFilter.jsx | 68 ++----- src/components/SendNotifications.tsx | 76 +++----- src/components/StakingInfo.tsx | 20 +- src/components/StepsTransactionModal.tsx | 42 ++--- src/components/UploadLogo.jsx | 17 +- src/components/VerifyAlias.tsx | 22 +-- src/components/ViewChannelItem.jsx | 153 +++++++-------- src/components/ViewDelegateeItem.jsx | 12 +- src/components/YieldFarmChainError.tsx | 32 +--- src/components/channel/ChannelButtons.tsx | 89 ++++----- src/components/channel/DepositFeeFooter.tsx | 62 ++---- .../chat/unlockProfile/UnlockProfile.tsx | 51 ++--- .../chat/w2wChat/searchBar/SearchBar.tsx | 46 ++--- .../dropdowns/OptinNotifSettingDropdown.tsx | 48 +---- .../dropdowns/UpdateNotifSettingDropdown.tsx | 49 +---- .../yield/StakingModalComponent.tsx | 78 ++------ src/components/yield/YieldPushFeeV3.tsx | 120 +++--------- src/components/yield/YieldUniswapV3.tsx | 119 +++--------- src/hooks/useToast.tsx | 18 +- .../ChannelOwnerDashboard.tsx | 48 ++--- src/modules/claimGalxe/ClaimGalxeModule.tsx | 60 +++--- src/modules/editChannel/EditChannel.tsx | 90 +++------ src/modules/editChannel/uploadLogoModal.tsx | 47 +---- src/modules/gov/GovModule.tsx | 176 +++++++----------- src/modules/snap/SnapModule.tsx | 92 ++------- src/pages/NotFoundPage.tsx | 83 ++++----- .../ModalConfirmButton.tsx | 37 +--- src/sections/chat/ChatSidebarSection.tsx | 76 +------- src/structure/Header.tsx | 18 +- 42 files changed, 711 insertions(+), 1699 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 2391304112..1de8e6ec04 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -85,6 +85,16 @@ const GlobalStyle = createGlobalStyle` --s13: 52px; --s14: 56px; --s15: 60px; + --s16: 64px; + --s17: 68px; + --s18: 72px; + --s19: 76px; + --s20: 80px; + --s21: 84px; + --s22: 88px; + --s23: 92px; + --s24: 96px; + --s25: 100px; // TODO: Add more as needed /* deprecated */ @@ -475,30 +485,6 @@ const PushLogo = styled.div` padding-bottom: 20px; `; -const ProviderButton = styled.button` - flex: none; - min-width: 179px; - background: ${(props) => props.theme.default.bg}; - margin: 20px 15px; - overflow: hidden; - padding: 20px 5px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 24px; - display: flex; - flex-direction: column; - - &:hover { - cursor: pointer; - background: rgba(207, 206, 255, 0.24); - } - &:active { - cursor: pointer; - background: rgba(207, 206, 255, 0.24); - } -`; - const ProviderImage = styled.img` width: 73px; height: 69px; diff --git a/src/blocks/button/Button.tsx b/src/blocks/button/Button.tsx index 83ec9fb5af..1c8d5f2af8 100644 --- a/src/blocks/button/Button.tsx +++ b/src/blocks/button/Button.tsx @@ -24,6 +24,8 @@ export type ButtonProps = { trailingIcon?: ReactNode; /* Sets the variant of the button */ variant?: ButtonVariant; + /* Button takes the full width if enabled */ + block?: boolean; } & TransformedHTMLAttributes; const StyledButton = styled.button` @@ -52,6 +54,9 @@ const StyledButton = styled.button` /* Circular CSS for rounded icon only buttons */ ${({ circular, iconOnly }) => circular && iconOnly && `border-radius: var(--r10)`} + /* Prop specific CSS */ + ${({ block }) => block && 'width: 100%;'} + /* Custom CSS applied via styled component css prop */ ${(props) => props.css || ''} `; diff --git a/src/components/ChangeNetwork.tsx b/src/components/ChangeNetwork.tsx index 4aba9ca2c2..56af5e9cdc 100644 --- a/src/components/ChangeNetwork.tsx +++ b/src/components/ChangeNetwork.tsx @@ -9,10 +9,11 @@ import { useSelector } from 'react-redux'; // Internal Components import useToast from 'hooks/useToast'; -import { Button, Item, Span } from '../primaries/SharedStyling'; +import { Item, Span } from '../primaries/SharedStyling'; import { aliasChainIdsMapping, CORE_CHAIN_ID, networkName } from 'helpers/UtilityHelper'; import { appConfig, CHAIN_DETAILS } from 'config/index.js'; import { useAccount } from 'hooks'; +import { Box, Button, Text } from 'blocks'; const ChangeNetwork = () => { const changeNetworkToast = useToast(); @@ -42,30 +43,20 @@ const ChangeNetwork = () => { verifying your Channel Alias. - - + ); }; diff --git a/src/components/ChannelDetails.jsx b/src/components/ChannelDetails.jsx index 2be1f54f7c..9d02827533 100644 --- a/src/components/ChannelDetails.jsx +++ b/src/components/ChannelDetails.jsx @@ -10,8 +10,8 @@ import { useNavigate } from 'react-router-dom'; import styled from 'styled-components'; // Internal Compoonents -import { Button, Item } from 'components/SharedStyling'; -import { ButtonV2, ImageV2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; +import { Item } from 'components/SharedStyling'; +import { ImageV2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; import { useAccount, useDeviceWidthCheck } from 'hooks'; import useModalBlur, { MODAL_POSITION } from 'hooks/useModalBlur'; import useToast from 'hooks/useToast'; @@ -33,6 +33,7 @@ import { AppContext } from 'contexts/AppContext'; import { convertAddressToAddrCaip } from 'helpers/CaipHelper'; import { getDateFromTimestamp, nextDaysDateFromTimestamp, timeRemaining } from 'helpers/TimerHelper'; import { CHANNEL_TYPE } from 'helpers/UtilityHelper'; +import { Button } from 'blocks'; const DATE_FORMAT = 'DD MMM, YYYY'; @@ -275,21 +276,26 @@ export default function ChannelDetails({ isChannelExpired, setIsChannelExpired, padding="0 0 15px 0" alignSelf="center" display="flex" + gap="8px" > - {!isChannelExpired && onCoreNetwork && Edit Channel} + {!isChannelExpired && onCoreNetwork && ( + + )} {!isChannelExpired && } {isChannelExpired && onCoreNetwork && ( - Delete Channel - + )} )} @@ -398,11 +404,6 @@ const AdaptiveMobileItemVV2 = styled(ItemVV2)` } `; -const DestroyChannelBtn = styled(ButtonV2)` - height: ${(props) => props.height || '100%'}; - width: ${(props) => props.width || '100%'}; -`; - const AdaptiveMobileItemHV2 = styled(ItemHV2)` @media (max-width: 767px) { justify-content: center; @@ -607,21 +608,6 @@ const SectionDes = styled.div` } `; -const SubmitButton = styled(Button)` - width: fit-content; - background: #d53a94; - color: #fff; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - margin-right: 9px; - border-radius: 8px; - padding: 10px 16px; -`; - const DelegateContainer = styled(Item)` flex: 5; min-width: 280px; diff --git a/src/components/ChannelInfo.tsx b/src/components/ChannelInfo.tsx index e6cfdf3b1a..1a523a77db 100644 --- a/src/components/ChannelInfo.tsx +++ b/src/components/ChannelInfo.tsx @@ -9,7 +9,7 @@ import styled, { useTheme } from 'styled-components'; import DateTimePicker from 'react-datetime-picker'; // Internal Compoonents -import { Button, Input, Item, Section, Span, TextField } from 'primaries/SharedStyling'; +import { Button as SharedButton, Input, Item, Section, Span, TextField } from 'primaries/SharedStyling'; import '../modules/createChannel/createChannel.css'; import { useDeviceWidthCheck } from 'hooks'; import { ItemHV2 } from './reusables/SharedStylingV2'; @@ -19,6 +19,7 @@ import { device } from 'config/Globals'; import NewTag from './NewTag'; import ErrorMessage from './reusables/errorMessageLabel/errorMessageLabel'; import { getIsNewTagVisible } from 'helpers/TimerHelper'; +import { Box, Button } from 'blocks'; const coreChainId = appConfig.coreContractChain; @@ -313,19 +314,15 @@ const ChannelInfo = ({ {errorInfo?.url && } - - + ); diff --git a/src/components/ChannelSettings.jsx b/src/components/ChannelSettings.jsx index f921da4a91..a43122435a 100644 --- a/src/components/ChannelSettings.jsx +++ b/src/components/ChannelSettings.jsx @@ -8,7 +8,6 @@ import styled, { useTheme } from 'styled-components'; // Internal Compoonents import { ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; import ChannelSettingsDropdown from './ChannelSettingsDropdown'; -import { Button } from './SharedStyling'; export default function ChannelSettings() { const DropdownRef = React.useRef(null); @@ -70,21 +69,3 @@ const Settings = styled(AiOutlineEllipsis)` transition: 400ms; transform: ${(props) => (props.active ? 'rotateZ(90deg)' : 'none')}; `; - -const SubmitButton = styled(Button)` - width: 7rem; - background: #cf1c84; - color: #fff; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - margin-right: 20px; - border-radius: 8px; - padding: 11px 10px; - @media (min-width: 600px) and (max-width: 700px) { - margin-right: 9px; - } -`; diff --git a/src/components/FaucetInfo.tsx b/src/components/FaucetInfo.tsx index a8d41c76f5..6e7cd52f7a 100644 --- a/src/components/FaucetInfo.tsx +++ b/src/components/FaucetInfo.tsx @@ -2,7 +2,7 @@ import styled from 'styled-components'; // Internal Components -import { ButtonV2, ImageV2, SpanV2 } from './reusables/SharedStylingV2'; +import { ImageV2, SpanV2 } from './reusables/SharedStylingV2'; import swapIcon from '../assets/icons/swapIcon.svg'; import { useAccount } from 'hooks'; @@ -13,6 +13,7 @@ import { useEffect, useState } from 'react'; import { getHasEnoughPushToken } from 'helpers'; import useModalBlur, { MODAL_POSITION } from 'hooks/useModalBlur'; import { UniswapWidgetModal } from './UniswapWidget'; +import { Button } from 'blocks'; type FaucetInfoType = { onMintPushToken: (noOfTokens: number) => Promise; @@ -63,15 +64,19 @@ const FaucetInfo = ({ onMintPushToken, noOfPushTokensToCheck, containerProps }: : 'Follow these steps to ensure you have enough Testnet Push to proceed.'} {isProd ? ( - - - Swap Tokens for PUSH - + ) : ( { const theme = useTheme(); @@ -15,20 +16,21 @@ const ProfileModal = ({ showDropdown, setShowDropdown, dropdownValues }) => { return ( - + <> {dropdownValues.map((dropdownValue) => diff --git a/src/components/PushSnap/EnableSnoozeModal.tsx b/src/components/PushSnap/EnableSnoozeModal.tsx index e28b7e49e9..1ec3993b09 100644 --- a/src/components/PushSnap/EnableSnoozeModal.tsx +++ b/src/components/PushSnap/EnableSnoozeModal.tsx @@ -5,7 +5,8 @@ import { useState, useContext } from 'react'; import styled from 'styled-components'; // Internal Compoonents -import { ButtonV2, ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; // Internal Configs import { defaultSnapOrigin } from 'config/index.js'; @@ -78,10 +79,17 @@ const EnableSnoozeModal = ({ /> - - Cancel - - Enable Snooze + + + ); @@ -113,41 +121,6 @@ const SecondaryText = styled.p` color: ${(props) => props.theme.snapSecondaryText}; `; -const SnapButton = styled(ButtonV2)` - align-self: end; - height: 36px; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: normal; - border-radius: 8px; -`; - -const FilledButton = styled(SnapButton)` - min-width: 79px; - padding: 14px; - background: #d53a94; - height: 48px; - radius: 12px; - padding: 0px 24px 0px 24px; - color: #fff; - white-space: nowrap; -`; - -const EnptyButton = styled(SnapButton)` - flex-direction: row; - text-align: center; - height: 48px; - padding: 0px 24px 0px 24px; - margin-right: 8px; - border: 1px solid #bac4d6; - color: ${(props) => props.theme.default.color}; - background: ${(props) => props.theme.default.bg}; - gap: 4px; -`; - const Input = styled.input` box-sizing: border-box; display: flex; diff --git a/src/components/PushSnap/InstallPushSnapModal.tsx b/src/components/PushSnap/InstallPushSnapModal.tsx index f538c04dca..91f6e6488e 100644 --- a/src/components/PushSnap/InstallPushSnapModal.tsx +++ b/src/components/PushSnap/InstallPushSnapModal.tsx @@ -13,7 +13,7 @@ import PushIcon from 'assets/snap/PushIcon.svg'; import UDIcon from 'assets/snap/UDIcon.svg'; import VersoIcon from 'assets/snap/VersoIcon.svg'; import Metamask from 'assets/snap/metamasksnap.svg'; -import { Button } from 'components/SharedStyling'; +import { Button } from 'blocks'; import { ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; import { A } from 'primaries/SharedStyling'; @@ -55,16 +55,22 @@ const InstallPushSnapModal = ({ setSnapState, configure, setConfigure }) => { {configure ? ( - { setSnapState(3); // navigate('/snap') }} > Configure - + ) : ( - setSnapState(2)}>Install + )} @@ -85,7 +91,7 @@ const InstallPushSnapModal = ({ setSnapState, configure, setConfigure }) => { href="https://chromewebstore.google.com/detail/push-protocol-alpha/lbdcbpaldalgiieffakjhiccoeebchmg" target="_blank" > - Install + @@ -107,27 +113,33 @@ const InstallPushSnapModal = ({ setSnapState, configure, setConfigure }) => { href="https://apps.apple.com/ng/app/verso-wallet-crypto-nft/id1539304605" target="_blank" > - - App store - + @@ -287,24 +292,6 @@ const Container = styled(ItemVV2)` padding: 0px 0px 12px 9px; `; -const ToolTipContainer = styled(ItemVV2)` - box-sizing: border-box; - width: 18.75rem; - // height: 7.5rem; - // max-height: 7.5rem; - background: ${(props) => props.theme.default.bg}; - border-radius: 1rem 1rem 1rem 0.125rem; - justify-content: flex-start; - border: 1px solid rgba(173, 176, 190, 0.2); - align-items: flex-start; - padding: 0.75rem 0.25rem 0.75rem 1rem; - box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05); - - @media (max-width: 400px) { - width: 16.75rem; - } -`; - const PrimaryText = styled.p` margin: 0px; font-size: 18px; @@ -325,58 +312,6 @@ const SecondaryText = styled.p` color: ${(props) => props.theme.snapSecondaryText}; `; -const ToolTipText = styled.p` - margin: 0px; - font-size: 16px; - font-weight: 400; - line-height: 24px; - color: #62626a; - color: ${(props) => props.theme.modalMessageColor}; - text-align: left; -`; - -const SnapButton = styled(Button)` - align-self: end; - height: 36px; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: normal; - border-radius: 8px; -`; - -const FilledButton = styled(SnapButton)` - min-width: 79px; - padding: 14px; - background: #d53a94; - width: 79px; - height: 48px; - radius: 12px; - color: #fff; -`; - -const EnptyButton = styled(SnapButton)` - flex-direction: row; - color: ${(props) => props.theme.default.secondaryColor}; - text-align: center; - width: auto; - padding: 16px 24px; - border: 1px solid #bac4d6; - background: ${(props) => props.theme.default.bg}; - gap: 4px; -`; - -const ImageInfo = styled.img` - margin-right: 5px; - display: flex; - justify-content: center; - align-items: center; - align-self: center; - cursor: pointer; -`; - const Input = styled.input` box-sizing: border-box; display: flex; diff --git a/src/components/PushSnap/PushSnapSettings.tsx b/src/components/PushSnap/PushSnapSettings.tsx index b7d4cd07cd..413021e224 100644 --- a/src/components/PushSnap/PushSnapSettings.tsx +++ b/src/components/PushSnap/PushSnapSettings.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react'; import SnapExample from 'assets/snap/SnapExample.svg?react'; import InfoLogo from 'assets/snap/spam-icon.svg?react'; import { Image, Section } from 'components/SharedStyling'; -import { ButtonV2, H2V2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; +import { H2V2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { device } from 'config/Globals'; import { useAccount } from 'hooks'; @@ -10,6 +10,7 @@ import useModalBlur, { MODAL_POSITION } from 'hooks/useModalBlur'; import AboutSnapModal from 'modules/snap/AboutSnapModal'; import styled, { useTheme } from 'styled-components'; import PushSnapConfigureModal from './PushSnapConfigureModal'; +import { Button } from 'blocks'; const PushSnapSettings = () => { const { account } = useAccount(); @@ -145,7 +146,7 @@ const PushSnapSettings = () => { spinnerSize={44} /> ) : ( - connectToMetaMask()}>{!snapInstalled && 'Connect Snap'} + )} @@ -206,33 +207,6 @@ const Container = styled(Section)` } `; -const SnapButton = styled(ButtonV2)` - height: 44px; - border-radius: 15px; - font-size: 16px; - font-weight: 500; - line-height: 141%; - letter-spacing: normal; - color: #ffffff; - flex: none; - cursor: pointer; - - & > div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; - -const ConnectButton = styled(SnapButton)` - min-width: 230px; - padding: 16px 24px; - background: #d53a94; - border: 1px solid #d53a94; -`; - const InfoDiv = styled(ItemHV2)` cursor: pointer; `; diff --git a/src/components/PushSnap/SnapInformationModal.tsx b/src/components/PushSnap/SnapInformationModal.tsx index beaa390204..011baa0e1a 100644 --- a/src/components/PushSnap/SnapInformationModal.tsx +++ b/src/components/PushSnap/SnapInformationModal.tsx @@ -12,8 +12,8 @@ import HandTap from 'assets/snap/HandTap.svg?react'; import NotificationLogo from 'assets/snap/Notification.svg?react'; import WalletLogo from 'assets/snap/Wallet.svg?react'; import Metamask from 'assets/snap/metamasksnap.svg?react'; -import { Button } from 'components/SharedStyling'; import { ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; const SnapInformationModal = ({ handleCloseModal }) => { const theme = useTheme(); @@ -103,16 +103,14 @@ const SnapInformationModal = ({ handleCloseModal }) => { - installSnap()}> - - - Install Snap - - + ); @@ -140,18 +138,3 @@ const SecondaryText = styled.p` color: ${(props) => props.theme.snapSecondaryText}; text-align: left; `; - -const InstallButton = styled(Button)` - width: fit-content; - min-width: 102px; - background: #d53a94; - color: #fff; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: normal; - border-radius: 8px; - padding: 14px; -`; diff --git a/src/components/SearchFilter.jsx b/src/components/SearchFilter.jsx index 994d0bc405..c40d2377d1 100644 --- a/src/components/SearchFilter.jsx +++ b/src/components/SearchFilter.jsx @@ -6,6 +6,7 @@ import { MultiSelect } from 'react-multi-select-component'; import styled, { useTheme } from 'styled-components'; import { ThemeProvider } from 'styled-components'; import DateTimePicker from 'react-datetime-picker'; +import { Box, Button } from 'blocks'; // Constants const DEBOUNCE_TIMEOUT = 500; //time in millisecond which we want to wait for then to finish typing @@ -125,15 +126,28 @@ const SearchFilter = ({ - - Reset - + + + ); @@ -367,48 +381,6 @@ const Container = styled.div` } `; -const ButtonContainer = styled.div` - display: flex; - flex-direction: row; - justify-content: flex-end; - margin: 0.3rem 2rem 1.6rem 0; - font-family: FK Grotesk Neu, Source Sans Pro; - @media (max-width: 600px) { - justify-content: space-evenly; - margin-right: 0; - } -`; - -const ButtonFeed = styled.button` - width: 110px; - height: 36px; - border-radius: 8px; - display: flex; - align-items: center; - justify-content: center; - color: white; - font-weight: 500; - font-size: 14px; - line-height: 17px; - background-color: ${(props) => (props.bgColor ? props.bgColor : '')}; - margin-right: ${(props) => (props.mright ? props.mright : '')}; - &:hover { - cursor: pointer; - pointer: hand; - } - @media (max-width: 500px) { - margin-right: ${(props) => (props.mright ? '1.5rem' : '')}; - } - font-family: FK Grotesk Neu, Source Sans Pro; -`; - -const ResetButton = styled(ButtonFeed)` - background: ${(props) => props.theme.backgroundBG}; - border: 1px solid #bac4d6; - color: #657795; - margin-right: 10px; -`; - const SearchOptions = styled.div` display: flex; flex-direction: row; diff --git a/src/components/SendNotifications.tsx b/src/components/SendNotifications.tsx index df9cb9d094..d2078fe212 100644 --- a/src/components/SendNotifications.tsx +++ b/src/components/SendNotifications.tsx @@ -15,18 +15,8 @@ import styled, { useTheme } from 'styled-components'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { AInlineV2, SectionV2 } from 'components/reusables/SharedStylingV2'; import { convertAddressToAddrCaip } from 'helpers/CaipHelper'; -import { - Button, - Content, - FormSubmision, - H2, - Input, - Item, - ItemH, - Section, - Span, - TextField, -} from 'primaries/SharedStyling'; +import { Content, FormSubmision, H2, Input, Item, ItemH, Section, Span, TextField } from 'primaries/SharedStyling'; +import { Box, Button } from 'blocks'; import useToast from '../hooks/useToast'; import PreviewNotif from './PreviewNotif'; @@ -1105,26 +1095,32 @@ function SendNotifications() { )} {nfType && ( - - {nfProcessing == 1 && ( - - )} - {nfProcessing != 1 && ( - - )} - + + + )} @@ -1388,22 +1384,6 @@ const ToggleOption = styled(ItemH)` } `; -const SubmitButton = styled(Button)` - width: 15rem; - margin: 70px auto 0px auto; - padding: 20px 10px; - border-radius: 15px; - background: #cf1c84; - color: #fff; - @media (max-width: 640px) { - width: 13rem; - padding: 20px 20px; - } - @media (max-width: 380px) { - width: 9.5rem; - } -`; - const DropdownLabel = styled.div` display: flex; flex-direction: row; diff --git a/src/components/StakingInfo.tsx b/src/components/StakingInfo.tsx index 40a2f3827b..51d85fadb8 100644 --- a/src/components/StakingInfo.tsx +++ b/src/components/StakingInfo.tsx @@ -6,7 +6,8 @@ import styled from 'styled-components'; // Internal Components import FaucetInfo from './FaucetInfo'; -import { Button, Item, Span } from 'primaries/SharedStyling'; +import { Item, Span } from 'primaries/SharedStyling'; +import { Button } from 'blocks'; // Internal Configs import { useAccount, useAsyncOperation, useDeviceWidthCheck } from 'hooks'; @@ -99,25 +100,14 @@ const StakingInfo = ({ channelStakeFees, setStakeFeesChoosen, setProcessingInfo, margin={isMobile ? '70px auto 50px auto' : '100px auto 50px auto'} > diff --git a/src/components/StepsTransactionModal.tsx b/src/components/StepsTransactionModal.tsx index c6f6942425..dbcec6a825 100644 --- a/src/components/StepsTransactionModal.tsx +++ b/src/components/StepsTransactionModal.tsx @@ -1,11 +1,11 @@ -import React from 'react'; import Close from 'assets/chat/group-chat/close.svg?react'; -import { ButtonV2, H2V2, ItemHV2, ItemVV2 } from './reusables/SharedStylingV2'; +import { H2V2, ItemHV2, ItemVV2 } from './reusables/SharedStylingV2'; import styled from 'styled-components'; import Globals from 'config/Globals'; import { LOADER_SPINNER_TYPE } from './reusables/loaders/LoaderSpinner'; import Spinner from './reusables/spinners/SpinnerUnit'; import CheckMark from 'assets/checkmark.svg?react'; +import { Button } from 'blocks'; const StepsTransactionModal = ({ onClose, InnerComponentProps }) => { const { @@ -113,7 +113,13 @@ const StepsTransactionModal = ({ onClose, InnerComponentProps }) => { - Retry + )} @@ -144,9 +150,13 @@ const StepsTransactionModal = ({ onClose, InnerComponentProps }) => { - - Close - + )} @@ -167,23 +177,3 @@ const Container = styled(ItemVV2)` min-width: 493px; padding: 32px 24px; `; - -const FilledButton = styled(ButtonV2)` - min-width: 200px; - background: #d53a94; - border: 1px solid #d53a94; - border-radius: 8px; - padding: 12px; - font-size: 16px; - line-height: 141%; - letter-spacing: normal; - color: #ffffff; - cursor: pointer; - & > div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; diff --git a/src/components/UploadLogo.jsx b/src/components/UploadLogo.jsx index becf8f25ea..5221b271fe 100644 --- a/src/components/UploadLogo.jsx +++ b/src/components/UploadLogo.jsx @@ -10,7 +10,8 @@ import { BsCloudUpload } from 'react-icons/bs'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import UtilityHelper from 'helpers/UtilityHelper'; import ImageClipper from 'primaries/ImageClipper'; -import { Button, Content, FormSubmision, H3, Input, Item, Section, Span } from 'primaries/SharedStyling'; +import { Content, FormSubmision, H3, Input, Item, Section, Span } from 'primaries/SharedStyling'; +import { Button } from 'blocks'; // Internal Configs import { abis, addresses } from 'config/index.js'; @@ -164,11 +165,8 @@ const UploadLogo = ({ margin="100px auto 50px auto" > ))} diff --git a/src/components/ViewChannelItem.jsx b/src/components/ViewChannelItem.jsx index e944fe7202..4474179e67 100644 --- a/src/components/ViewChannelItem.jsx +++ b/src/components/ViewChannelItem.jsx @@ -16,7 +16,7 @@ import 'react-toastify/dist/ReactToastify.min.css'; import styled, { css, useTheme } from 'styled-components'; // Internal Compoonents -import { deviceMediaQ } from 'blocks'; +import { Button, deviceMediaQ } from 'blocks'; import MetaInfoDisplayer from 'components/MetaInfoDisplayer'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { ButtonV2 } from 'components/reusables/SharedStylingV2'; @@ -112,7 +112,7 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p try { //TODO:here is the data store const channelJson = await ChannelsDataStore.getInstance().getChannelJsonStartBlockAsync(channelObject.channel); - console.log("Channel JSON !!!!!", channelJson, channelObject.channel); + console.log('Channel JSON !!!!!', channelJson, channelObject.channel); return channelJson; } catch (err) { console.error(err); @@ -169,7 +169,7 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p verifierAddrDetails = await userPushSDKInstance.channel.info( convertAddressToAddrCaip(verifierAddress, appConfig.coreContractChain) ); - console.log("Verifier Details >>>", verifierAddrDetails); + console.log('Verifier Details >>>', verifierAddrDetails); } dispatch( @@ -450,19 +450,19 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p placementProps={ tooltTipHeight < 250 ? { - background: 'none', - // bottom: "25px", - top: '20px', - // right: "-175px", - left: mobileToolTip ? '-100px' : '5px', - } + background: 'none', + // bottom: "25px", + top: '20px', + // right: "-175px", + left: mobileToolTip ? '-100px' : '5px', + } : { - background: 'none', - bottom: '25px', - // top: "20px", - // right: "-175px", - left: mobileToolTip ? '-100px' : '5px', - } + background: 'none', + bottom: '25px', + // top: "20px", + // right: "-175px", + left: mobileToolTip ? '-100px' : '5px', + } } tooltipContent={ {bLoading && ( @@ -889,10 +890,11 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p )} Block channel - + )} {!loading && (isPushAdmin || canVerify) && !isVerified && profileType == 'Channel' && ( - @@ -906,10 +908,12 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p )} Verify Channel - + )} {!loading && (isPushAdmin || canUnverify) && isVerified && profileType == 'Channel' && ( - @@ -923,16 +927,21 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p )} Unverify Channel - + )} {!loading && !subscribed && ( <> {isOwner && ( <> {profileType == 'Profile' ? ( - navigate('/dashboard')}>Go To Dashboard + ) : ( - Owner + Owner )} )} @@ -945,10 +954,10 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p setSubscriberCount((prevSubscriberCount) => prevSubscriberCount + 1); }} > - { }} + )} @@ -971,9 +980,14 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p {isOwner && ( <> {profileType == 'Profile' ? ( - navigate('/dashboard')}>Go To Dashboard + ) : ( - Owner + Owner )} )} @@ -991,7 +1005,7 @@ function ViewChannelItem({ channelObjectProp, loadTeaser, playTeaser, minimal, p }} > { }} + onClick={() => {}} disabled={txInProgress} > {txInProgress && ( @@ -1432,15 +1446,6 @@ const SkeletonButton = styled.div` flex: 1; `; -const SubscribeButton = styled(ChannelActionButton)` - background: #e20880; - color: #fff; - border-radius: 8px; - padding: 0px; - min-height: 36px; - min-width: 108px; -`; - const UnsubscribeButton = styled(ChannelActionButton)` background: transparent; color: ${(props) => props.theme.viewChannelPrimaryText}; @@ -1452,19 +1457,15 @@ const UnsubscribeButton = styled(ChannelActionButton)` min-width: 108px; `; -const OwnerButton = styled(ChannelActionButton)` +const OwnerLabel = styled.div` background: #35c5f3; border-radius: 8px; min-height: 36px; min-width: 108px; -`; - -const DashboardButton = styled(ChannelActionButton)` - background: #e20880; - border-radius: 8px; - padding: 7px 14px; - min-height: 36px; - min-width: max-content; + display: flex; + align-items: center; + justify-content: center; + color: #fff; `; const Toaster = styled.div` diff --git a/src/components/ViewDelegateeItem.jsx b/src/components/ViewDelegateeItem.jsx index 3b4e6f61d5..c3f3a0413c 100644 --- a/src/components/ViewDelegateeItem.jsx +++ b/src/components/ViewDelegateeItem.jsx @@ -20,6 +20,7 @@ import { toolingPostReq } from '../api/index'; import { createTransactionObject } from '../helpers/GaslessHelper'; import { executeDelegateTx } from '../helpers/WithGasHelper'; import { Anchor, Image, Item, ItemBreak, ItemH, Span } from '../primaries/SharedStyling'; +import { Button } from 'blocks'; // Internal Configs import { abis, addresses } from 'config/index.js'; @@ -299,7 +300,10 @@ function ViewDelegateeItem({ delegateeObject, epnsToken, signerObject, pushBalan - + { const { chainId: currentChainId, switchChain } = useAccount(); @@ -38,7 +39,13 @@ const YieldFarmChainError = ({ onClose }) => { - Switch Network + ); @@ -72,24 +79,3 @@ const SecondaryText = styled.div` margin: 10px 0 24px 0; `; const ButtonContainer = styled.div``; - -const FilledButton = styled(ButtonV2)` - // width:100%; - background: #d53a94; - border: 1px solid #d53a94; - border-radius: 8px; - padding: 16px; - width: 165px; - font-size: 16px; - line-height: 141%; - letter-spacing: normal; - color: #ffffff; - cursor: pointer; - & > div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; diff --git a/src/components/channel/ChannelButtons.tsx b/src/components/channel/ChannelButtons.tsx index 3b717ca92b..9c8b35f377 100644 --- a/src/components/channel/ChannelButtons.tsx +++ b/src/components/channel/ChannelButtons.tsx @@ -1,10 +1,9 @@ // External Packages import { AiOutlinePlus } from 'react-icons/ai'; import { FiSettings } from 'react-icons/fi'; -import styled from 'styled-components'; // Internal Components -import { Button } from 'components/SharedStyling'; +import { Button } from 'blocks'; interface ChannelButtonProps { onClick: () => void; @@ -16,75 +15,51 @@ interface ModifySettingsButtonProps extends ChannelButtonProps { export const AddDelegateButton = ({ onClick }: ChannelButtonProps) => { return ( - - - Add Delegate - + ); }; export const ManageSettingsButton = ({ onClick }: ChannelButtonProps) => { return ( - - - Manage Settings - + ); }; export const ModifySettingsButton = ({ onClick, title }: ModifySettingsButtonProps) => { return ( - - {title ? title : 'Modify Settings'} - + ); }; export const AddSettingButton = ({ onClick }: ChannelButtonProps) => { return ( - - - Add Setting - + ); }; - -const ChannelButton = styled(Button)` - min-height: 36px; - background: ${(props) => props.theme.default.primaryPushThemeTextColor}; - color: #fff; - z-index: 0; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - border-radius: 8px; - padding: 4px 12px 4px 12px; -`; - -const ChannelButtonWhite = styled.button` - min-height: 36px; - border: 1px solid ${(props) => props.theme.default.borderColor}; - background: transparent; - color: white; - z-index: 0; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - border-radius: 8px; - padding: 4px 12px 4px 12px; - cursor: pointer; -`; - -const ButtonText = styled.span` - margin-left: 8px; -`; - -const TransparentButtonText = styled.span` - color: ${(props) => props.theme.default.color}; -`; - -const AddButtonIcon = styled(AiOutlinePlus)` - font-size: 16px; -`; diff --git a/src/components/channel/DepositFeeFooter.tsx b/src/components/channel/DepositFeeFooter.tsx index 3143c7157c..980d917839 100644 --- a/src/components/channel/DepositFeeFooter.tsx +++ b/src/components/channel/DepositFeeFooter.tsx @@ -11,10 +11,10 @@ import { ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; import FaucetInfo from 'components/FaucetInfo'; import useToast from 'hooks/useToast'; import { useAccount } from 'hooks'; +import { Button } from 'blocks'; // Internal Configs import GLOBALS, { device } from 'config/Globals'; -import { Button } from '../SharedStyling'; import { LOADER_SPINNER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import Spinner from 'components/reusables/spinners/SpinnerUnit'; import VerifyLogo from '../../assets/Vector.svg?react'; @@ -157,27 +157,31 @@ const DepositFeeFooter = ({ title, description, onCancel, disabled, onClick, fee <> {/* This below is Footer Buttons i.e, Cancel and save changes */} - Cancel - + {pushApprovalAmount >= feeRequired ? ( - Save Changes - + ) : ( - Approve PUSH - + )} @@ -262,47 +266,9 @@ const TransactionText = styled.p` const ButtonContainer = styled(ItemHV2)` justify-content: end; margin-top: 24px; + gap: 14px; @media ${device.mobileL} { flex-direction: column-reverse; flex: 0; } `; - -const FooterButtons = styled(Button)<{ disabled: boolean }>` - font-style: normal; - font-weight: 500; - font-size: 18px; - line-height: 22px; - display: flex; - border-radius: 15px; - align-items: center; - text-align: center; - background: ${(props) => (props.disabled ? props.theme.nfsDisabled : props.theme.default.primaryPushThemeTextColor)}; - color: ${(props) => (props.disabled ? props.theme.nfsDisabledText : 'white')}; - padding: 16px 27px; - width: 12rem; - - @media ${device.tablet} { - font-size: 15px; - padding: 12px 12px; - width: 8rem; - } - - @media ${device.mobileL} { - width: -webkit-fill-available; - } -`; - -const CancelButtons = styled(FooterButtons)` - margin-right: 14px; - background: ${(props) => props.theme.default.bg}; - color: ${(props) => props.theme.logoBtnColor}; - border: 1px solid - ${(props) => - props.theme.scheme === 'light' ? props.theme.default.primaryPushThemeTextColor : props.theme.default.borderColor}; - - @media ${device.mobileL} { - margin-right: 0px; - margin-top: 10px; - } -`; diff --git a/src/components/chat/unlockProfile/UnlockProfile.tsx b/src/components/chat/unlockProfile/UnlockProfile.tsx index de08c8adf1..cbb75ac177 100644 --- a/src/components/chat/unlockProfile/UnlockProfile.tsx +++ b/src/components/chat/unlockProfile/UnlockProfile.tsx @@ -5,15 +5,7 @@ import { useCallback, useContext, useEffect, useState } from 'react'; import styled, { useTheme } from 'styled-components'; // Internal Compoonents -import { - ButtonV2, - ImageV2, - ItemHV2, - ItemVV2, - Skeleton, - SkeletonLine, - SpanV2, -} from 'components/reusables/SharedStylingV2'; +import { ImageV2, ItemHV2, ItemVV2, Skeleton, SkeletonLine, SpanV2 } from 'components/reusables/SharedStylingV2'; import { AppContext } from 'contexts/AppContext'; import { useAccount, useDeviceWidthCheck } from 'hooks'; import { retrieveUserPGPKeyFromStorage } from 'helpers/connectWalletHelper'; @@ -25,8 +17,9 @@ import { device, size } from 'config/Globals'; import Tooltip from 'components/reusables/tooltip/Tooltip'; import UnlockLogo from '../../../assets/chat/unlock.svg'; import Wallet from '../../../assets/chat/wallet.svg'; -import { Box, CrossFilled, HoverableSVG } from 'blocks'; +import { Button, Box, CrossFilled, HoverableSVG } from 'blocks'; import { checkUnlockProfileErrors } from './UnlockProfile.utils'; +import { colorBrands } from 'blocks/theme/colors/colors.brands'; // Constants export enum UNLOCK_PROFILE_TYPE { @@ -198,7 +191,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps flexDirection={type === UNLOCK_PROFILE_TYPE.MODAL || isMobile ? 'column' : 'row'} > 1 @@ -210,7 +203,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps > {!isLoading ? ( <> - connectWallet()} > Connect Wallet - + - Unlock Profile - + ) : ( (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '40px' : '3px')}; background: ${(props) => props.activeState === PROFILESTATE.CONNECT_WALLET - ? `linear-gradient(to right, ${props.theme.btn.primaryBg}, ${props.theme.btn.disabledBg})` - : props.theme.btn.primaryBg}; + ? `linear-gradient(to right, ${colorBrands['primary-500']}, ${props.theme.btn.disabledBg})` + : colorBrands['primary-500']}; @media ${device.tablet} { width: 2px; @@ -412,22 +403,6 @@ const HorizontalBar = styled.div` } `; -const DefaultButton = styled(ButtonV2)` - flex: none; - padding: 12px 16px; - border-radius: 12px; - min-width: 150px; - font-size: 15px; - font-style: normal; - font-weight: 500; - line-height: 16px; - background: ${(props) => - props.activeStatus === props.status ? props.theme.btn.primaryBg : props.theme.btn.disabledBg}; - color: ${(props) => - props.activeStatus === props.status ? props.theme.btn.primaryColor : props.theme.btn.disabledColor}; - cursor: ${(props) => (props.activeStatus !== props.status ? 'not-allowed' : 'pointer')}; -`; - const SkeletonWrapper = styled.div` overflow: hidden; min-width: 220px; diff --git a/src/components/chat/w2wChat/searchBar/SearchBar.tsx b/src/components/chat/w2wChat/searchBar/SearchBar.tsx index 64a7ad8df7..b5b55d1dba 100644 --- a/src/components/chat/w2wChat/searchBar/SearchBar.tsx +++ b/src/components/chat/w2wChat/searchBar/SearchBar.tsx @@ -9,11 +9,12 @@ import styled, { useTheme } from 'styled-components'; // Internal Components import SearchIcon from 'assets/chat/search.svg?react'; -import { ButtonV2, ImageV2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; +import { ImageV2, ItemHV2, ItemVV2, SpanV2 } from 'components/reusables/SharedStylingV2'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { Context } from 'modules/chat/ChatModule'; import { AppContext } from 'types/chat'; import ArrowLeft from '../../../../assets/chat/arrowleft.svg'; +import { Box, Button } from 'blocks'; interface InputProps { typed: boolean; @@ -118,13 +119,12 @@ const SearchBar = ({ autofilled, searchedUser, setSearchedUser }) => { placeholder="Search Web3 domain or 0x123..." /> {searchedUser.length > 0 && ( - - - + /> )} { {activeTab !== 3 && activeTab !== 4 && ( - - + ); @@ -402,47 +405,6 @@ const DropdownSubmitItem = styled.div` padding: 12px 0px; `; -const DropdownSubmitButton = styled.button` - border: 0; - outline: 0; - display: flex; - align-items: center; - min-width: 90px; - justify-content: center; - margin: 0px 0px 0px 10px; - color: #fff; - font-size: 14px; - font-weight: 400; - position: relative; - background: #e20880; - border-radius: 8px; - padding: 9px 20px; - &:hover { - opacity: 0.9; - cursor: pointer; - pointer: hand; - } - &:active { - opacity: 0.75; - cursor: pointer; - pointer: hand; - } - ${(props) => - props.disabled && - css` - &:hover { - opacity: 1; - cursor: default; - pointer: default; - } - &:active { - opacity: 1; - cursor: default; - pointer: default; - } - `} -`; - const DropdownSliderItem = styled.div` display: flex; flex-direction: column; diff --git a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx index 66f9158c5c..85403f7690 100644 --- a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx +++ b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx @@ -23,7 +23,7 @@ import { notifUserSettingFormatString, userSettingsFromDefaultChannelSetting } f import { MdCheckCircle, MdError } from 'react-icons/md'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { updateUserSetting } from 'redux/slices/channelSlice'; -import { Text } from 'blocks'; +import { Button, Text } from 'blocks'; interface UpdateNotifSettingDropdownProps { children: ReactNode; @@ -158,7 +158,9 @@ const UpdateNotifSettingDropdownContainer: FC You will receive all important updates from this channel. - saveUserSettingHandler({ userSettings: modifiedSettings, setLoading: setTxInProgress })} > {txInProgress && ( @@ -169,7 +171,7 @@ const UpdateNotifSettingDropdownContainer: FC )} {!txInProgress && Save} - + ); @@ -341,47 +343,6 @@ const DropdownSubmitItem = styled.div` padding: 12px 0px; `; -const DropdownSubmitButton = styled.button` - border: 0; - outline: 0; - display: flex; - align-items: center; - min-width: 90px; - justify-content: center; - margin: 0px 0px 0px 10px; - color: #fff; - font-size: 14px; - font-weight: 400; - position: relative; - background: #e20880; - border-radius: 8px; - padding: 9px 20px; - &:hover { - opacity: 0.9; - cursor: pointer; - pointer: hand; - } - &:active { - opacity: 0.75; - cursor: pointer; - pointer: hand; - } - ${(props) => - props.disabled && - css` - &:hover { - opacity: 1; - cursor: default; - pointer: default; - } - &:active { - opacity: 1; - cursor: default; - pointer: default; - } - `} -`; - const DropdownSliderItem = styled.div` display: flex; flex-direction: column; diff --git a/src/components/yield/StakingModalComponent.tsx b/src/components/yield/StakingModalComponent.tsx index 8aa7254db8..ce04b51614 100644 --- a/src/components/yield/StakingModalComponent.tsx +++ b/src/components/yield/StakingModalComponent.tsx @@ -14,7 +14,8 @@ import Close from 'assets/chat/group-chat/close.svg?react'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import { bnToInt, formatTokens } from 'helpers/StakingHelper'; import { P } from 'components/SharedStyling'; -import { ButtonV2, H2V2, ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { H2V2, ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; import { AppContext } from 'contexts/AppContext'; // Internal Configs @@ -325,11 +326,14 @@ const StakingModalComponent = ({ onClose, InnerComponentProps, toastObject }) => - - + ); @@ -425,46 +420,3 @@ const MaxText = styled.p` margin: 0px; cursor: pointer; `; - -const FilledButton = styled(ButtonV2)` - width: 100%; - border-radius: 8px; - padding: 12px; - font-size: 16px; - line-height: 141%; - letter-spacing: normal; - width: 145px; - height: 48px; - border: none; - & > div { - display: block; - } - &:after { - background: transparent; - } - - &:hover { - opacity: 1; - } -`; - -const EmptyButton = styled(ButtonV2)` - font-size: 16px; - line-height: 19px; - flex: 1; - width: 145px; - height: 48px; - border-radius: 8px; - margin-left: 10px; - border: none; - & > div { - display: block; - } - &:after { - background: transparent; - } - - &:hover { - opacity: 1; - } -`; diff --git a/src/components/yield/YieldPushFeeV3.tsx b/src/components/yield/YieldPushFeeV3.tsx index dba9dfc5cb..1d1aa61f7c 100644 --- a/src/components/yield/YieldPushFeeV3.tsx +++ b/src/components/yield/YieldPushFeeV3.tsx @@ -16,7 +16,6 @@ import { formatTokens, numberWithCommas } from 'helpers/StakingHelper'; import StakingToolTip, { StakingToolTipContent } from './StakingToolTip'; import StakingModalComponent from './StakingModalComponent'; import { - ButtonV2, H2V2, ImageV2, ItemHV2, @@ -26,6 +25,7 @@ import { SkeletonLine, SpanV2, } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; // Internal Configs import { abis, addresses } from 'config/index.js'; @@ -699,7 +699,13 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP {userDataPush ? ( <> - Stake $PUSH + {PUSHPoolstats?.currentEpochNumber <= 2 ? ( @@ -713,13 +719,10 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP ButtonTitle={'Unstake PUSH'} /> ) : ( - {txInProgressWithdraw ? ( + )} {userDataPush?.availableRewards === 0.0 ? ( @@ -743,11 +746,9 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP left={'40px'} ToolTipWidth={'10rem'} > - {txInProgressClaimRewards ? ( + ) : ( - {txInProgressClaimRewards ? ( @@ -779,7 +778,7 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP ) : ( 'Claim Rewards' )} - + )} @@ -804,23 +803,19 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP export default YieldPushFeeV3; const ErrorToolTip = (props) => { - const theme = useTheme(); return ( - {props.ButtonTitle} - + ); }; @@ -1004,63 +999,10 @@ const DataValue = styled(H2V2)` } `; -const EpochText = styled(ItemHV2)` - align-self: end; - margin: 12px 13px 24px 0px; - letter-spacing: normal; - color: ${(props) => props.theme.modalDescriptionTextColor}; -`; - const ButtonsContainer = styled.div` display: flex; - width: 100%; margin: 15px 0px 0px 0px; -`; - -const FilledButton = styled(ButtonV2)` - width: 100%; - background: #d53a94; - border: 1px solid #d53a94; - border-radius: 8px; - padding: 12px; - font-size: 16px; - line-height: 141%; - letter-spacing: normal; - color: #ffffff; - cursor: pointer; - & > div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; - -const EmptyButton = styled(ButtonV2)` - font-size: 16px; - line-height: 19px; - flex-direction: row; - flex: 1; - padding: 11px; - // width: 145px; - height: 49px; - border-radius: 8px; - - & > div { - display: block; - } - &:after { - background: transparent; - } - - &:hover { - opacity: 1; - } - - @media (max-width: 600px) { - font-size: 14px; - } + gap: var(--s3); `; const SkeletonContainer = styled(Skeleton)` @@ -1069,15 +1011,3 @@ const SkeletonContainer = styled(Skeleton)` border-radius: 5px; gap: 5px; `; - -const UserSkeletonLine = styled(SkeletonLine)` - height: 25px; - width: 100%; - border-radius: 2px; -`; - -const RewardSkeletonLine = styled(SkeletonLine)` - height: 20px; - width: 100%; - border-radius: 2px; -`; diff --git a/src/components/yield/YieldUniswapV3.tsx b/src/components/yield/YieldUniswapV3.tsx index d2087784e5..cc3dda73a8 100644 --- a/src/components/yield/YieldUniswapV3.tsx +++ b/src/components/yield/YieldUniswapV3.tsx @@ -16,7 +16,6 @@ import { formatTokens, numberWithCommas } from 'helpers/StakingHelper'; import StakingToolTip from './StakingToolTip'; import StakingModalComponent from './StakingModalComponent'; import { - ButtonV2, H2V2, ImageV2, ItemHV2, @@ -26,6 +25,7 @@ import { SkeletonLine, SpanV2, } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; // Internal Configs import { abis, addresses } from 'config/index.js'; @@ -559,13 +559,15 @@ const YieldUniswapV3 = ({ lpPoolStats, userDataLP, getLpPoolStats, getUserDataLP {userDataLP ? ( <> - { handleStakingModal(); }} > Stake $UNI-V2 LP Tokens - + {formatTokens(userDataLP?.epochStakeNext) === '0' ? ( @@ -573,14 +575,11 @@ const YieldUniswapV3 = ({ lpPoolStats, userDataLP, getLpPoolStats, getUserDataLP error={true} ToolTipTitle={'Nothing to unstake! Stake First.'} ToolTipWidth={'16rem'} - margin={'0 10px 0 0'} bottom={'-30px'} > - {txInProgressWithdraw ? ( + ) : ( - {txInProgressWithdraw ? ( + )} {userDataLP?.totalAvailableReward === '0.00' ? ( @@ -624,11 +620,9 @@ const YieldUniswapV3 = ({ lpPoolStats, userDataLP, getLpPoolStats, getUserDataLP error={true} ToolTipWidth={'10rem'} > - {txInProgressClaimRewards ? ( + ) : ( - massClaimRewardsTokensAll()} > {txInProgressClaimRewards ? ( @@ -660,7 +652,7 @@ const YieldUniswapV3 = ({ lpPoolStats, userDataLP, getLpPoolStats, getUserDataLP ) : ( 'Claim Rewards' )} - + )} @@ -792,80 +784,13 @@ const DataValue = styled(H2V2)` const ButtonsContainer = styled.div` display: flex; - width: 100%; + gap: var(--spacing-xxxs, 4px); margin: 15px 0px 0px 0px; `; -const FilledButton = styled(ButtonV2)` - width: 100%; - background: #d53a94; - border: 1px solid #d53a94; - border-radius: 8px; - padding: 12px; - font-size: 16px; - line-height: 141%; - letter-spacing: normal; - color: #ffffff; - cursor: pointer; - & > div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; - -const EmptyButton = styled(ButtonV2)` - font-size: 16px; - line-height: 19px; - flex-direction: row; - flex: 1; - height: 49px; - padding: 12px; - border-radius: 8px; - & > div { - display: block; - } - &:after { - background: transparent; - } - - &:hover { - opacity: 1; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; - -const Toaster = styled.div` - display: flex; - flex-direction: row; - align-items: center; - margin: 0px 10px; -`; - -const ToasterMsg = styled.div` - margin: 0px 10px; -`; - const SkeletonContainer = styled(Skeleton)` // width:150px; max-width: -webkit-fill-available; border-radius: 5px; gap: 5px; `; - -const UserSkeletonLine = styled(SkeletonLine)` - height: 25px; - width: 100%; - border-radius: 2px; -`; - -const RewardSkeletonLine = styled(SkeletonLine)` - height: 20px; - width: 100%; - border-radius: 2px; -`; diff --git a/src/hooks/useToast.tsx b/src/hooks/useToast.tsx index d6b3f08211..9c77d09bdc 100644 --- a/src/hooks/useToast.tsx +++ b/src/hooks/useToast.tsx @@ -8,6 +8,7 @@ import FadeLoader from 'react-spinners/FadeLoader'; import { toast } from 'react-toastify'; import styled, { ThemeProvider, useTheme } from 'styled-components'; import useMediaQuery from './useMediaQuery'; +import { Box } from 'blocks'; // Types type LoaderToastType = { msg: string; loaderColor: string; textColor: string }; @@ -37,12 +38,16 @@ const LoaderToast = ({ msg, loaderColor, textColor }: LoaderToastType) => ( ); const CloseButton = ({ closeToast }) => ( - + ); export type ShowLoaderToastType = ({ loaderMessage }: { loaderMessage: string }) => React.ReactText; @@ -221,13 +226,4 @@ const ToastMessage = styled.div` text-align: left; `; -const Button = styled.button` - cursor: pointer; - background: none; - margin: 0; - padding: 0; - width: 1.3rem; - height: 1.3rem; -`; - export default useToast; diff --git a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx index 2be592a9cb..ce1f49d866 100644 --- a/src/modules/channelDashboard/ChannelOwnerDashboard.tsx +++ b/src/modules/channelDashboard/ChannelOwnerDashboard.tsx @@ -12,7 +12,8 @@ import ChannelDetails from 'components/ChannelDetails'; import ChannelLoading from 'components/ChannelLoading'; import ChannelSettings from 'components/ChannelSettings'; import CreateChannelModule from '../createChannel/CreateChannelModule'; -import { ButtonV2, ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { ItemHV2, ItemVV2 } from 'components/reusables/SharedStylingV2'; +import { Button } from 'blocks'; import { getAliasFromChannelDetails } from 'helpers/UtilityHelper'; import { useAccount, useDeviceWidthCheck } from 'hooks'; import { @@ -28,7 +29,6 @@ import useToast from 'hooks/useToast'; // Internal Configs import { appConfig } from 'config/index.js'; -import { Button } from 'components/SharedStyling'; import EditChannel from 'modules/editChannel/EditChannel'; import useModalBlur from 'hooks/useModalBlur'; import { AppContext } from 'contexts/AppContext'; @@ -221,23 +221,26 @@ const ChannelOwnerDashboard = () => { top="0" right="0" zIndex="1" + gap="8px" > {!isChannelExpired && onCoreNetwork && ( - Edit Channel + )} {!isChannelExpired && } {isChannelExpired && onCoreNetwork && ( - Delete Channel - + )} )} @@ -272,26 +275,3 @@ const ChannelOwnerDashboard = () => { }; export default ChannelOwnerDashboard; - -const DestroyChannelBtn = styled(ButtonV2)` - height: ${(props) => props.height || '100%'}; - width: ${(props) => props.width || '100%'}; -`; - -const SubmitButton = styled(Button)` - width: 7rem; - background: #cf1c84; - color: #fff; - z-index: 0; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - margin-right: 20px; - border-radius: 8px; - padding: 11px 10px; - @media (min-width: 600px) and (max-width: 700px) { - margin-right: 9px; - } -`; diff --git a/src/modules/claimGalxe/ClaimGalxeModule.tsx b/src/modules/claimGalxe/ClaimGalxeModule.tsx index caf4e8c9af..4dcd2fbe6f 100644 --- a/src/modules/claimGalxe/ClaimGalxeModule.tsx +++ b/src/modules/claimGalxe/ClaimGalxeModule.tsx @@ -15,6 +15,7 @@ import useToast from 'hooks/useToast'; import AlphaAccessNFTHelper from 'helpers/AlphaAccessNftHelper'; import 'react-toastify/dist/ReactToastify.min.css'; import { NFTSuccessModal } from './NFTSuccessModal'; +import { Box, Button } from 'blocks'; // Internal Configs import { abis, addresses, appConfig, CHAIN_DETAILS } from 'config/index.js'; @@ -184,18 +185,27 @@ const ClaimGalxeModule = () => { Please ensure you are using the same address used on Galxe. In-case of any issues please reach out on our community Discord. - {wallet && wallet?.accounts?.length > 0 ? ( - { - if (submitbtnInfo.enabled) mintNft(); - }} - > - {submitbtnInfo.btnText} - - ) : ( - connect()}>Connect Wallet - )} + + {wallet && wallet?.accounts?.length > 0 ? ( + + ) : ( + + )} + {submitbtnInfo.info} @@ -309,32 +319,6 @@ const GalxeImg = styled(ImageV2)` align-self: flex-start; `; -const SubmitButton = styled.button` - width: 15rem; - padding: 16px 32px; - border-radius: 15px; - background: ${(props) => (props.disabled ? props.theme.btn.disabledBg : '#cf1c84')}; - color: ${(props) => (props.disabled ? props.theme.btn.disabledColor : '#fff')}; - cursor: ${(props) => (props.disabled ? 'default' : 'pointer')}; - - align-self: flex-start; - flex: none; - margin-bottom: 1rem; - :hover { - opacity: 0.8; - } - - @media ${device.tablet} { - margin-bottom: 1rem; - } - @media (max-width: 640px) { - width: 13rem; - } - @media (max-width: 380px) { - width: 9.5rem; - } -`; - const SpanText = styled(SpanV2)` display: flex; align-self: flex-start; diff --git a/src/modules/editChannel/EditChannel.tsx b/src/modules/editChannel/EditChannel.tsx index 92e7ca96bc..74c5b1eb9a 100644 --- a/src/modules/editChannel/EditChannel.tsx +++ b/src/modules/editChannel/EditChannel.tsx @@ -14,7 +14,7 @@ import FaucetInfo from 'components/FaucetInfo'; // Internal Configs import { addresses } from 'config/index.js'; import GLOBALS, { device } from 'config/Globals'; -import { Button } from '../../components/SharedStyling'; +import { Button } from 'blocks'; import EditChannelForms from './EditChannelForms'; import useToast from 'hooks/useToast'; import { MODAL_POSITION } from 'hooks/useModalBlur'; @@ -364,14 +364,15 @@ export default function EditChannel({ closeEditChannel, UploadLogoComponent, dis - { displayUplaodLogoModal(); setShowUploadLogoModal(true); }} > Upload Logo - + {!isMobile && } @@ -423,18 +424,29 @@ export default function EditChannel({ closeEditChannel, UploadLogoComponent, dis <> {/* This below is Footer Buttons i.e, Cancel and save changes */} - Cancel + {pushApprovalAmount >= feesRequiredForEdit ? ( - Save Changes - + ) : ( - Approve PUSH + )} @@ -461,18 +473,6 @@ const EditableContainer = styled(ItemVV2)` } `; -const UploadButton = styled(Button)` - border-radius: 8px; - background: ${(props) => props.theme.logoBtnBg}; - color: ${(props) => props.theme.logoBtnColor}; - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 17px; - padding: 10px 12px; -`; - const TickImage = styled.img``; const AdaptiveMobileItemHV22 = styled(ItemHV2)` @@ -589,56 +589,8 @@ const TransactionText = styled.p` const ButtonContainer = styled(ItemHV2)` justify-content: end; margin-top: 35px; + gap: 14px; @media (max-width: 425px) { flex-direction: column-reverse; } `; - -const FooterButtons = styled(Button)` - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 18px; - line-height: 22px; - display: flex; - border-radius: 15px; - align-items: center; - text-align: center; - background: #cf1c84; - color: #fff; - padding: 16px 27px; - width: 12rem; - - @media (min-width: 425px) and (max-width: 600px) { - font-size: 15px; - padding: 12px 12px; - width: 8rem; - } - - @media (max-width: 425px) { - width: -webkit-fill-available; - } -`; - -const CancelButtons = styled(FooterButtons)` - margin-right:14px; - background:${(props) => props.theme.default.bg}; - color:${(props) => props.theme.logoBtnColor}; - border:1px solid #CF1C84; - - @media (max-width:425px){ - margin-right:0px; - margin-top:10px; - } - - &:hover{ - color:#AC106C; - border:border: 1px solid #AC106C; - background:transparent; - opacity:1; - } - - &:after{ - background:white; - } -`; diff --git a/src/modules/editChannel/uploadLogoModal.tsx b/src/modules/editChannel/uploadLogoModal.tsx index db12dda356..9a0cbf0097 100644 --- a/src/modules/editChannel/uploadLogoModal.tsx +++ b/src/modules/editChannel/uploadLogoModal.tsx @@ -1,5 +1,6 @@ import { ItemVV2 } from 'components/reusables/SharedStylingV2'; -import { Button, Item } from 'components/SharedStyling'; +import { Item } from 'components/SharedStyling'; +import { Button } from 'blocks'; import ImageClipper from 'primaries/ImageClipper'; import { useRef } from 'react'; import { AiOutlineClose } from 'react-icons/ai'; @@ -116,24 +117,28 @@ const uploadLogoModal = ({ onClose, InnerComponentProps }) => { {croppedImage ? ( <> - { setChannelLogo(croppedImage); onClose(); }} > Upload Image - + ) : ( <> - { childRef.current.showCroppedImage(); }} > Crop Image - + )} @@ -182,38 +187,6 @@ const DragText = styled(Item)` const ModalFooter = styled(ItemVV2)``; -const CropButton = styled(Button)` - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 18px; - line-height: 22px; - display: flex; - border-radius: 15px; - align-items: center; - text-align: center; - background: #cf1c84; - color: #fff; - padding: 16px 27px; - width: 12rem; -`; - -const UploadButton = styled(Button)` - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 500; - font-size: 18px; - line-height: 22px; - display: flex; - border-radius: 15px; - align-items: center; - text-align: center; - background: #cf1c84; - color: #fff; - padding: 16px 18px; - width: 12rem; -`; - const Space = styled.div` width: 100%; margin: 24px 0px 44px 0px; diff --git a/src/modules/gov/GovModule.tsx b/src/modules/gov/GovModule.tsx index 7012ed20b8..dcf9249f91 100644 --- a/src/modules/gov/GovModule.tsx +++ b/src/modules/gov/GovModule.tsx @@ -15,7 +15,8 @@ import { GAS_LIMIT, PUSH_BALANCE_TRESHOLD } from 'components/ViewDelegateeItem'; import EPNSCoreHelper from 'helpers/EPNSCoreHelper'; import Blockies from 'primaries/BlockiesIdenticon'; import InfoTooltip from 'primaries/InfoTooltip'; -import { A, B, Button, H2, H3, Input, Item, ItemH, LI, Section, Span, UL } from 'primaries/SharedStyling'; +import { A, B, Button as ButtonSS, H2, H3, Input, Item, ItemH, LI, Section, Span, UL } from 'primaries/SharedStyling'; +import { Box, Button } from 'blocks'; import LoaderSpinner from 'components/reusables/loaders/LoaderSpinner'; import ViewDelegateeItem from 'components/ViewDelegateeItem'; import { createTransactionObject } from 'helpers/GaslessHelper'; @@ -586,82 +587,82 @@ const GovModule = () => {
- {!txInProgress && ( - { - if (showDelegateePrompt) { - delegateAction(newDelegateeAddress); - } else { - setShowDelegateePrompt(true); - } - }} - > - + {!txInProgress && ( + + )} + {!showDelegateePrompt && !txInProgress && ( + )} - - {showDelegateePrompt && ( - { - setShowDelegateePrompt(false); + if (showDelegateePrompt) { + getVotingPower(newDelegateeAddress); + } else { + setShowDelegateePrompt(true); + } }} > - + + + ) : ( + + Query Voting Power + + )} + + + {showDelegateePrompt && ( + + )} +
@@ -1141,7 +1142,7 @@ const ContainerInfo = styled.div` padding: 20px; `; -const Question = styled(Button)` +const Question = styled(ButtonSS)` align-items: stretch; align-self: stretch; background: #fff; @@ -1299,45 +1300,6 @@ const StatsInnerTitle = styled.span` margin-top: 10px; `; -const ButtonAlt = styled(Button)` - border: 0; - outline: 0; - display: flex; - align-items: center; - justify-content: center; - padding: 8px 15px; - margin: 10px; - color: #fff; - border-radius: 5px; - font-size: 14px; - font-weight: 400; - position: relative; - &:hover { - opacity: 0.9; - cursor: pointer; - pointer: hand; - } - &:active { - opacity: 0.75; - cursor: pointer; - pointer: hand; - } - ${(props) => - props.disabled && - css` - &:hover { - opacity: 1; - cursor: default; - pointer: default; - } - &:active { - opacity: 1; - cursor: default; - pointer: default; - } - `} -`; - const CurvedSpan = styled(Span)` font-size: 14px; `; diff --git a/src/modules/snap/SnapModule.tsx b/src/modules/snap/SnapModule.tsx index 6d49fc701d..3c68999a04 100644 --- a/src/modules/snap/SnapModule.tsx +++ b/src/modules/snap/SnapModule.tsx @@ -14,6 +14,7 @@ import { AppContext } from 'contexts/AppContext'; import { useAccount } from 'hooks'; import useModalBlur, { MODAL_POSITION } from 'hooks/useModalBlur'; import { Image, Section } from '../../primaries/SharedStyling'; +import { Button } from 'blocks'; // Internal Configs import ActiveIcon from 'assets/snap/ActiveIcon.svg'; @@ -26,6 +27,7 @@ import SnapExample from 'assets/snap/SnapExample.svg'; import InfoLogo from 'assets/snap/spam-icon.svg'; import GLOBALS, { device, globalsMargin } from 'config/Globals'; import AboutSnapModal from './AboutSnapModal'; +import Metamask from 'assets/snap/metamasksnap.svg?react'; const SnapModule = ({ route }) => { const [loading, setLoading] = useState(false); @@ -315,12 +317,14 @@ const SnapModule = ({ route }) => { spinnerSize={44} /> ) : ( - connectToMetaMask()} + variant="primary" + size="medium" > {!snapInstalled ? 'Step 1: Install Snap' : 'Step 1: Completed'} - + )} {loading && snapInstalled ? ( { spinnerSize={44} /> ) : ( - connectToMetaMask()} + trailingIcon={} > - Step 2: Sign In with Metamask 🦊 - + Step 2: Sign In with Metamask + )} )} {walletConnected || addedAddress ? ( - - + ) : ( div { - display: block; - } - - @media (max-width: 600px) { - font-size: 14px; - } -`; - -const Steps = styled(ItemVV2)` - flex-wrap: wrap; - - &::after { - content: ''; - width: 100%; - } -`; - -const ConnectButton = styled(SnapButton)` - min-width: 280px; - padding: 16px 24px; - background: ${(props) => (props.signOnMM ? '#222222' : '#d53a94')}; - border: ${(props) => (props.signOnMM ? '1px solid #2a2a2a' : '1px solid #d53a94')}; - opacity: ${(props) => (props.disabled ? '0.5' : '1')}; - pointer-events: ${(props) => (props.disabled ? 'none' : 'auto')}; - cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')}; -`; - -const SettingsButton = styled(SnapButton)` - flex-direction: row; - color: ${(props) => props.theme.default.secondaryColor}; - text-align: center; - width: 279px; - padding: 16px 24px; - border: 1px solid ${(props) => props.theme.snapBorderColor}; - background: ${(props) => props.theme.default.bg}; - gap: 4px; - - @media ${device.mobileL} { - min-width: 246px; - } -`; - const PrimaryText = styled.p` margin: 0px; font-size: 18px; @@ -529,16 +479,6 @@ const ChannelSpan = styled(SpanV2)` } `; -const FilledButton = styled(SnapButton)` - width: 135px; - padding: 16px 24px; - background: #d53a94; - - @media ${device.mobileL} { - min-width: 246px; - } -`; - const InfoDiv = styled(ItemHV2)` cursor: pointer; `; diff --git a/src/pages/NotFoundPage.tsx b/src/pages/NotFoundPage.tsx index 8275c6602d..f072d60568 100644 --- a/src/pages/NotFoundPage.tsx +++ b/src/pages/NotFoundPage.tsx @@ -1,24 +1,34 @@ // React + Web3 Essentials -import React from "react"; +import React from 'react'; import { useNavigate } from 'react-router-dom'; // External Packages import styled from 'styled-components'; -import ErrorGraphic from "../assets/404Graphic.svg"; +import ErrorGraphic from '../assets/404Graphic.svg'; // Internal Configs -import GLOBALS from "config/Globals"; +import GLOBALS from 'config/Globals'; +import { Button } from 'blocks'; const NotFoundPage: React.FC = () => { const navigate = useNavigate(); return ( - + Oops... The page you're trying to reach doesn't exist. - navigate("/channels")}>Go to Home + ); @@ -37,61 +47,38 @@ const NotFoundContainer = styled.div` box-sizing: border-box; // margin: ${GLOBALS.ADJUSTMENTS.MARGIN.MINI_MODULES.DESKTOP}; margin: auto; - `; - -const NotFoundText = styled.p` - color: ${(props) => props.theme.default.text}; - font-size: 1.2rem; - margin-bottom: 1.5rem; `; const OopsTitle = styled.p` - font-size: 48px; - font-weight: 500; - margin: 0; - text-align: center; - color: black; + font-size: 48px; + font-weight: 500; + margin: 0; + text-align: center; + color: black; `; - - const PageNotFoundWrapper = styled.div` - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 32px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 32px; `; const PageNotFoundImg = styled.img` - width: 355.7px; - height: 205.79px; - border-radius: 16px; - margin: 0 auto; + width: 355.7px; + height: 205.79px; + border-radius: 16px; + margin: 0 auto; `; const PageNotFoundText = styled.p` - font-size: 24px; - font-weight: 400; - width: 100%; - text-align: center; -`; - -const PageNotFoundButton = styled.button` - padding: 14px 24px 14px 24px; - border-radius: 16px; - background-color: #DD44B9; - color: #FFFFFF; - border: none; - height: 54px; - width: 201px; - font-size: 18px; - display: flex; - text-decoration: none; - align-items: center; - justify-content: center; + font-size: 24px; + font-weight: 400; + width: 100%; + text-align: center; `; const PageNotFoundSubContainer = styled.div` - gap: 16px; -`; \ No newline at end of file + gap: 16px; +`; diff --git a/src/primaries/SharedModalComponents/ModalConfirmButton.tsx b/src/primaries/SharedModalComponents/ModalConfirmButton.tsx index d77b313cbb..a2580e4fee 100644 --- a/src/primaries/SharedModalComponents/ModalConfirmButton.tsx +++ b/src/primaries/SharedModalComponents/ModalConfirmButton.tsx @@ -6,6 +6,7 @@ import styled, { ThemeProvider, useTheme } from 'styled-components'; // Internal Compoonents import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; +import { Button } from 'blocks'; // Types type ModalConfirmButtonType = { @@ -20,17 +21,7 @@ type ModalConfirmButtonType = { padding?: string; }; -const ModalConfirmButton = ({ - text, - onClick, - isLoading, - color, - backgroundColor, - border, - topMargin, - loaderTitle, - padding, -}: ModalConfirmButtonType) => { +const ModalConfirmButton = ({ text, onClick, isLoading, topMargin, loaderTitle }: ModalConfirmButtonType) => { const themes = useTheme(); return ( @@ -50,15 +41,13 @@ const ModalConfirmButton = ({ /> ) : ( - {text} - + )} @@ -85,18 +74,4 @@ const LoaderContainer = styled.div` padding: 8px 16px; `; -const CustomButton = styled.button` - min-width: 50%; - box-sizing: border-box; - cursor: pointer; - color: ${(props) => props.color || 'white'}; - font-family: FK Grotesk Neu; - font-size: 1.125rem; - font-weight: 500; - letter-spacing: normal; - background-color: ${(props) => props.backgroundColor || '#CF1C84'}; - border: ${(props) => props.border || '1px solid transparent'}; - border-radius: 15px; -`; - export default ModalConfirmButton; diff --git a/src/sections/chat/ChatSidebarSection.tsx b/src/sections/chat/ChatSidebarSection.tsx index 9dedd16182..8402d38573 100644 --- a/src/sections/chat/ChatSidebarSection.tsx +++ b/src/sections/chat/ChatSidebarSection.tsx @@ -17,6 +17,7 @@ import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderS import StyleHelper from 'helpers/StyleHelper'; import { getIsNewTagVisible } from 'helpers/TimerHelper'; import { Context } from 'modules/chat/ChatModule'; +import { Button } from 'blocks/index.js'; // Internal Configs import GLOBALS, { device } from 'config/Globals'; @@ -213,20 +214,12 @@ const ChatSidebarSection = ({ showCreateGroupModal, chatId, selectedChatId, setS /> {!searchedUser && ( - { showCreateGroupModal(); }} - background="transparent" - hover={theme.chat.snapFocusBg} - hoverBackground="transparent" - onMouseEnter={() => StyleHelper.changeStyle(createGroupOnMouseEnter)} - onMouseLeave={() => StyleHelper.changeStyle(createGroupOnMouseLeave)} > @@ -240,7 +233,7 @@ const ChatSidebarSection = ({ showCreateGroupModal, chatId, selectedChatId, setS Create Group {isNewTagVisible && } - + )} )} @@ -290,12 +283,9 @@ const ChatSidebarSection = ({ showCreateGroupModal, chatId, selectedChatId, setS {/* // Only show refresh prompt if there are no chats */} {primaryChatLoading.showRefreshPrompt && ( - { setPrimaryChatLoading({ ...primaryChatLoading, @@ -305,7 +295,7 @@ const ChatSidebarSection = ({ showCreateGroupModal, chatId, selectedChatId, setS }} > Refresh - + )} @@ -434,54 +424,6 @@ const ProfileContainer = styled(ItemHV2)` border-top: ${(props) => props.borderTop}; `; -const QRCodeContainer = styled.div` - display: flex; - flex-direction: row; - align-items: center; - padding: 8px; - gap: 9px; - width: 200px; - z-index: 100; - height: 48px; - background: #ffffff; - border: 1px solid #bac4d6; - box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05); - border-radius: 12px; - cursor: pointer; - position: absolute; - z-index: 100; - bottom: 45px; - - @media (max-width: 768px) { - right: 30px; - } - - @media (min-width: 768px) { - left: 85px; - } -`; - -const QROutline = styled(AiOutlineQrcode)` - width: 35px; - height: 30px; -`; - -const TextQR = styled.p` - font-family: 'FK Grotesk Neu'; - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 140%; - text-align: center; - // color: #657795; -`; - -const CreateGroupContainer = styled(ButtonV2)` - flex-direction: row; - align-self: stretch; - justify-content: flex-start; -`; - const MainContent = styled(ItemVV2)` width: 100%; padding: 0px 0px 0px 10px; diff --git a/src/structure/Header.tsx b/src/structure/Header.tsx index dffbfbf20a..d0397580db 100644 --- a/src/structure/Header.tsx +++ b/src/structure/Header.tsx @@ -9,14 +9,14 @@ import { DarkModeSwitch } from 'react-toggle-dark-mode'; import styled, { useTheme } from 'styled-components'; // Internal Components -import { Box, Link, Text, Star, Lozenge, RewardsBell } from 'blocks'; +import { Box, Link, Text, Star, Lozenge, RewardsBell, Button } from 'blocks'; import { LOADER_SPINNER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import Spinner from 'components/reusables/spinners/SpinnerUnit'; import { ErrorContext } from 'contexts/ErrorContext'; import { NavigationContext } from 'contexts/NavigationContext'; import Profile from 'primaries/Profile'; -import { Button, Item, ItemH, Section, Span } from 'primaries/SharedStyling'; +import { Button as IButton, Item, ItemH, Section, Span } from 'primaries/SharedStyling'; import PushLogoDark from '../assets/pushDark.svg'; import PushLogoLight from '../assets/pushLight.svg'; @@ -292,19 +292,17 @@ function Header({ isDarkMode, darkModeToggle }) { {isActive && !error && ( - + )} From 4b8ab4dca0f1092e78b47a90cceae0bd9f7fce74 Mon Sep 17 00:00:00 2001 From: Kolade Date: Thu, 18 Jul 2024 16:47:34 +0100 Subject: [PATCH 13/31] fix verify issue (#1757) --- src/contexts/AppContext.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/contexts/AppContext.tsx b/src/contexts/AppContext.tsx index 96c82add27..19aa1446b7 100644 --- a/src/contexts/AppContext.tsx +++ b/src/contexts/AppContext.tsx @@ -164,6 +164,8 @@ const AppContextProvider = ({ children }) => { const value = localStorage.getItem(key); if (isPGPKey(value)) { + setUserProfileUnlocked(true); + return value; } From 614ff7663abf473c8f68073921716dfc5f89a46e Mon Sep 17 00:00:00 2001 From: Rohit Malhotra Date: Fri, 19 Jul 2024 17:02:41 +0530 Subject: [PATCH 14/31] DApp-1708-1709 new theme support in blocks and their usage (#1753) * update changes * add props type * update version and remove on dash * in progress * introduced new css variables to blocks * fixed states for semantics * fixed all the semantics codebase * fixed css bugs * lozenge css fix --------- Co-authored-by: corlard3y --- src/blocks/Blocks.constants.ts | 8 +- src/blocks/Blocks.types.ts | 18 +- src/blocks/Blocks.utils.ts | 48 +----- src/blocks/box/Box.constants.ts | 1 - src/blocks/box/Box.tsx | 32 ++-- src/blocks/box/Box.types.ts | 13 +- src/blocks/button/Button.tsx | 48 +++--- src/blocks/button/Button.utils.ts | 157 +++++++++--------- src/blocks/hoverableSVG/HoverableSVG.tsx | 46 ++--- src/blocks/icons/IconWrapper.tsx | 5 +- src/blocks/icons/Icons.types.ts | 4 +- src/blocks/link/Link.tsx | 13 +- src/blocks/lozenge/Lozenge.constants.tsx | 74 ++++----- src/blocks/lozenge/Lozenge.tsx | 14 +- src/blocks/menu/Menu.tsx | 30 +--- src/blocks/menu/MenuItem.tsx | 46 +++-- src/blocks/separator/Separator.constants.ts | 1 - src/blocks/separator/Separator.tsx | 25 +-- src/blocks/skeleton/Skeleton.constants.ts | 2 +- src/blocks/skeleton/Skeleton.tsx | 19 +-- src/blocks/tabs/Tabs.styled.ts | 91 +++++----- src/blocks/tabs/Tabs.tsx | 13 +- src/blocks/text/Text.tsx | 35 ++-- src/blocks/textInput/TextInput.tsx | 83 ++++----- src/blocks/textarea/TextArea.tsx | 72 ++++---- src/blocks/theme/Theme.types.ts | 18 +- src/blocks/theme/colors/colors.semantics.ts | 83 +++++++-- .../theme/semantics/semantics.button.ts | 54 ++++-- .../theme/semantics/semantics.checkbox.ts | 9 +- .../theme/semantics/semantics.dropdown.ts | 23 ++- src/blocks/theme/semantics/semantics.icon.ts | 18 +- src/blocks/theme/semantics/semantics.input.ts | 23 ++- src/blocks/theme/semantics/semantics.radio.ts | 9 +- .../theme/semantics/semantics.skeleton.ts | 12 ++ .../theme/semantics/semantics.stroke.ts | 24 +-- .../theme/semantics/semantics.surface.ts | 20 ++- .../theme/semantics/semantics.switch.ts | 7 +- src/blocks/theme/semantics/semantics.text.ts | 16 +- .../theme/semantics/semantics.textarea.ts | 23 ++- src/blocks/theme/semantics/semantics.toast.ts | 17 +- src/blocks/tooltip/Tooltip.tsx | 36 ++-- src/common/components/ContentLayout.tsx | 4 +- .../chat/unlockProfile/UnlockProfile.tsx | 2 +- .../dropdowns/UpdateNotifSettingDropdown.tsx | 1 - src/modules/claimGalxe/NFTSuccessModal.tsx | 11 +- src/modules/dashboard/Dashboard.tsx | 6 +- .../dashboard/components/ChannelListItem.tsx | 14 +- .../components/ChannelTabsSection.tsx | 42 ++--- .../components/ChannelVariantsSection.tsx | 12 +- .../dashboard/components/DashboardHeader.tsx | 10 +- .../components/DashboardSubHeader.tsx | 41 +++-- .../dashboard/components/EmptyChannelList.tsx | 12 +- .../dashboard/components/FeaturedChannels.tsx | 21 +-- .../components/FeaturedChannelsList.tsx | 37 +++-- .../components/FeaturedChannelsListItem.tsx | 22 +-- .../FeaturedChannelsMobileViewList.tsx | 18 +- .../components/RecommendedChatListItem.tsx | 6 +- .../components/RecommendedChatsList.tsx | 8 +- .../dashboard/components/RewardsSection.tsx | 8 +- .../components/VerifiedToolTipComponent.tsx | 8 +- .../DiscordVerification.tsx | 18 +- .../components/PointsVaultApprovedList.tsx | 4 +- .../PointsVaultListActionButtons.tsx | 2 +- .../components/PointsVaultListColumns.tsx | 8 +- .../components/PointsVaultListContainer.tsx | 23 +-- .../components/PointsVaultListItem.tsx | 13 +- .../components/PointsVaultLogin.tsx | 20 +-- .../components/PointsVaultPendingList.tsx | 4 +- .../components/PointsVaultRejectedList.tsx | 4 +- src/modules/rewards/Rewards.tsx | 6 +- .../rewards/components/DashboardSection.tsx | 6 +- .../components/DashboardSectionHeader.tsx | 12 +- .../components/DashboardSectionPoints.tsx | 32 ++-- .../rewards/components/LeaderBoardList.tsx | 4 +- .../components/LeaderBoardListColumns.tsx | 8 +- .../components/LeaderBoardListItem.tsx | 22 +-- .../rewards/components/LeaderBoardSection.tsx | 8 +- .../components/LeaderboardNullState.tsx | 12 +- .../rewards/components/ReferralSection.tsx | 32 ++-- .../components/RewardsActivitiesList.tsx | 2 +- .../components/RewardsActivitiesListItem.tsx | 50 +++--- .../components/RewardsActivitiesSection.tsx | 4 +- .../components/RewardsActivityTitle.tsx | 46 +++-- .../rewards/components/RewardsTabs.tsx | 20 +-- .../components/RewardsTabsContainer.tsx | 9 +- src/structure/Header.tsx | 10 +- 86 files changed, 995 insertions(+), 957 deletions(-) create mode 100644 src/blocks/theme/semantics/semantics.skeleton.ts diff --git a/src/blocks/Blocks.constants.ts b/src/blocks/Blocks.constants.ts index 283264f2ce..7ebcd2aa8e 100644 --- a/src/blocks/Blocks.constants.ts +++ b/src/blocks/Blocks.constants.ts @@ -1,7 +1,3 @@ -export const newRadiusRegex = /\bradius-[a-z]+\b/g; +export const radiusRegex = /\bradius-[a-z]+\b/g; -export const oldRadiusRegex = /\br[0-9]+\b/g; - -export const newSpacingRegex = /\bspacing-[a-z]+\b/g; - -export const oldSpacingRegex = /\bs[0-9]+\b/g; +export const spacingRegex = /\bspacing-[a-z]+\b/g; diff --git a/src/blocks/Blocks.types.ts b/src/blocks/Blocks.types.ts index e18b5a2177..27495a4dcc 100644 --- a/src/blocks/Blocks.types.ts +++ b/src/blocks/Blocks.types.ts @@ -1,7 +1,7 @@ import { HTMLAttributes } from 'react'; import { BoxResponsiveCSSProperties, BoxResponsiveCSSPropertiesData, BoxResponsivePropValues } from './box'; import { blocksColorsLegacy } from './Blocks.colors'; -import { ThemeBorderRadius, ThemeBorderSize, ThemeColors, ThemeSpacing } from './theme/Theme.types'; +import { StrokeColors, ThemeBorderRadius, ThemeBorderSize, ThemeSpacing } from './theme/Theme.types'; import { SkeletonResponsiveCSSProperties, SkeletonResponsiveCSSPropertiesData, @@ -21,20 +21,12 @@ export type Breakpoint = 'initial' | 'ms' | 'mm' | 'ml' | 'tb' | 'lp' | 'll' | ' export type ResponsiveProp = T | { [key in Breakpoint]?: T }; -// Remove old RadiusType types export type BlocksRadiusType = - | `r${number}` - | `r${number} r${number}` - | `r${number} r${number} r${number} r${number}` | ThemeBorderRadius | `${ThemeBorderRadius} ${ThemeBorderRadius}` | `${ThemeBorderRadius} ${ThemeBorderRadius} ${ThemeBorderRadius} ${ThemeBorderRadius}`; -// Remove old SpaceType types export type BlocksSpaceType = - | `s${number}` - | `s${number} s${number}` - | `s${number} s${number} s${number} s${number}` | ThemeSpacing | `${ThemeSpacing} ${ThemeSpacing}` | `${ThemeSpacing} ${ThemeSpacing} ${ThemeSpacing} ${ThemeSpacing}`; @@ -74,12 +66,6 @@ export type BlocksColors = keyof BlocksColorData; export type ThemeMode = 'light' | 'dark'; -// TODO: Remove ThemeModeColors -export type ThemeModeColors = Record; - -// TODO: Remove the blocks colors border size -export type BorderValue = `${number}px ${string} ${BlocksColors}` | `${number}px ${string} ${ThemeBorderSize}` | 'none'; - -export type ThemeModeBorder = Record; +export type BorderValue = `${ThemeBorderSize} ${string} ${StrokeColors}` | 'none'; export type ModeProp = { mode: ThemeMode }; diff --git a/src/blocks/Blocks.utils.ts b/src/blocks/Blocks.utils.ts index b8a346160d..3f60aa64ca 100644 --- a/src/blocks/Blocks.utils.ts +++ b/src/blocks/Blocks.utils.ts @@ -1,21 +1,16 @@ import { css } from 'styled-components'; import { deviceMediaQ, deviceSizes, breakpointMap } from './theme'; import { - BlocksColors, Breakpoint, CSSPropName, CSSPropValueType, DeviceSizeName, - ThemeModeColors, PixelValue, ResponsiveCSSPropertyData, - ThemeMode, - ThemeModeBorder, BorderValue, BlocksRadiusType, } from './Blocks.types'; -import { ThemeColors } from './theme/Theme.types'; -import { newRadiusRegex, newSpacingRegex, oldRadiusRegex, oldSpacingRegex } from './Blocks.constants'; +import { radiusRegex, spacingRegex } from './Blocks.constants'; /** * @param propName @@ -25,10 +20,7 @@ import { newRadiusRegex, newSpacingRegex, oldRadiusRegex, oldSpacingRegex } from const getCSSValue = (propName: CSSPropName, value: CSSPropValueType | undefined) => { if (propName === 'padding' || propName === 'margin') { if (typeof value === 'string') { - return value.replace( - newSpacingRegex.test(value) ? newSpacingRegex : oldSpacingRegex, - (match) => `var(--${match})` - ); + return value.replace(spacingRegex, (match) => `var(--${match})`); } } else if (propName === 'gap' || propName === 'border-radius') { return `var(--${value})`; @@ -139,39 +131,20 @@ export const getResponsiveCSS = (data: ResponsiveCSSPropertyData[]) => { `; }; -/** - * @deprecated - * @param color - * @returns color as a css variable: var(--primary) - * - * // TODO: Remove this function. We don't need it. - */ -export const getBlocksColor = (mode: ThemeMode, color?: BlocksColors | ThemeModeColors | ThemeColors) => { - // If color is not given return undefined, to avoid any breakages - if (!color) return color; - - // Handle the colors for light and dark mode - if (typeof color === 'object') { - return `var(--${color[mode]})`; - } - - // If passed a design system color then use color as a variable - return `var(--${color})`; -}; - /** * @param border * @returns border */ -export const getBlocksBorder = (mode: ThemeMode, border?: BorderValue | ThemeModeBorder) => { +export const getBlocksBorder = (border?: BorderValue) => { // If border is not given return undefined, to avoid any breakages if (!border) return border; - // Handle the border for light and dark mode + let borderValues; - if (typeof border === 'object') borderValues = border[mode].split(' '); - else borderValues = border.split(' '); - // If passed a design system border then use border as a variable + borderValues = border.split(' '); + + borderValues[0] = `var(--${borderValues[0]})`; + borderValues[2] = `var(--${borderValues[2]})`; return borderValues.join(' '); }; @@ -184,10 +157,7 @@ export const getBlocksBorderRadius = (radius?: BlocksRadiusType) => { // If border-radius is not given return undefined, to avoid any breakages if (!radius) return radius; - const result = radius.replace( - newRadiusRegex.test(radius) ? newRadiusRegex : oldRadiusRegex, - (match) => `var(--${match})` - ); + const result = radius.replace(radiusRegex, (match) => `var(--${match})`); return result; }; diff --git a/src/blocks/box/Box.constants.ts b/src/blocks/box/Box.constants.ts index a487e867af..74f87e6c95 100644 --- a/src/blocks/box/Box.constants.ts +++ b/src/blocks/box/Box.constants.ts @@ -24,5 +24,4 @@ export const boxRestrictedCSSPropKeys: (keyof BoxCSSProps | keyof ModeProp)[] = 'overflow', 'padding', 'width', - 'mode', ]; diff --git a/src/blocks/box/Box.tsx b/src/blocks/box/Box.tsx index 4fb50f1b2b..f06a46097d 100644 --- a/src/blocks/box/Box.tsx +++ b/src/blocks/box/Box.tsx @@ -1,9 +1,8 @@ import { forwardRef } from 'react'; import styled from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { TransformedHTMLAttributes, ModeProp } from '../Blocks.types'; -import { getBlocksColor, getBlocksBorder, getBlocksBorderRadius } from '../Blocks.utils'; +import { TransformedHTMLAttributes } from '../Blocks.types'; +import { getBlocksBorder, getBlocksBorderRadius } from '../Blocks.utils'; import { BoxCSSProps, BoxComponentProps } from './Box.types'; import { getBoxResponsiveCSS } from './Box.utils'; import { boxRestrictedCSSPropKeys } from './Box.constants'; @@ -14,18 +13,18 @@ export type BoxProps = BoxCSSProps & BoxComponentProps & TransformedHTMLAttribut const StyledBox = styled.div.withConfig({ shouldForwardProp: (prop, defaultValidatorFn) => !boxRestrictedCSSPropKeys.includes(prop as keyof BoxCSSProps) && defaultValidatorFn(prop), -})` +})` /* Responsive props */ ${(props) => getBoxResponsiveCSS(props)} /* Non-responsive props */ - color: ${(props) => getBlocksColor(props.mode, props.color)}; - background-color: ${(props) => getBlocksColor(props.mode, props.backgroundColor)}; + color: ${(props) => (props?.color ? `var(--${props.color})` : ``)}; + background-color: ${(props) => (props?.backgroundColor ? `var(--${props.backgroundColor})` : ``)}; box-shadow: ${(props) => props.boxShadow}; border-radius: ${(props) => getBlocksBorderRadius(props.borderRadius)}; cursor: ${(props) => props.cursor}; overflow: ${(props) => props.overflow}; - border: ${(props) => getBlocksBorder(props.mode, props.border)}; + border: ${(props) => getBlocksBorder(props.border)}; position: ${(props) => props.position}; // push custom scroll @@ -51,18 +50,13 @@ const StyledBox = styled.div.withConfig({ /* Extra CSS prop */ ${(props) => props.css || ''} `; -const Box = forwardRef(({ as = 'div', ...props }, ref) => { - const { mode } = useBlocksTheme(); - // TODO: We need to remove color dependency from BlocksColors | ThemeModeColors to fix this error - return ( - - ); -}); +const Box = forwardRef(({ as = 'div', ...props }, ref) => ( + +)); Box.displayName = 'Box'; diff --git a/src/blocks/box/Box.types.ts b/src/blocks/box/Box.types.ts index 182677ad07..76f27318a8 100644 --- a/src/blocks/box/Box.types.ts +++ b/src/blocks/box/Box.types.ts @@ -1,18 +1,15 @@ import { CSSProperties, ReactNode } from 'react'; import { - BlocksColors, BorderValue, BlocksRadiusType, ResponsiveProp, BlocksSpaceType, - ThemeModeBorder, - ThemeModeColors, ValueOf, BlocksGapType, } from '../Blocks.types'; import { FlattenSimpleInterpolation } from 'styled-components'; -import { ThemeColors } from 'blocks/theme/Theme.types'; +import { SurfaceColors, TextColors } from 'blocks/theme/Theme.types'; export type BoxResponsiveProps = { /* Sets align-items css property */ @@ -22,7 +19,7 @@ export type BoxResponsiveProps = { /* Sets flex-direction css property */ flexDirection?: ResponsiveProp; /* Sets gap between the elements */ - gap?: ResponsiveProp; + gap?: ResponsiveProp; /* Sets display css property */ display?: ResponsiveProp; /* Sets height css property */ @@ -47,13 +44,13 @@ export type BoxResponsiveProps = { export type BoxNonResponsiveProps = { /* Sets border css property */ - border?: BorderValue | ThemeModeBorder; + border?: BorderValue; /* Sets border-radius css property */ borderRadius?: BlocksRadiusType; /* Sets background-color css property */ - backgroundColor?: BlocksColors | ThemeModeColors | ThemeColors; + backgroundColor?: SurfaceColors; /* Sets color css property */ - color?: BlocksColors | ThemeModeColors | ThemeColors; + color?: TextColors; /* Sets cursor css property */ cursor?: CSSProperties['cursor']; /* Sets position css property */ diff --git a/src/blocks/button/Button.tsx b/src/blocks/button/Button.tsx index 1c8d5f2af8..623c096a99 100644 --- a/src/blocks/button/Button.tsx +++ b/src/blocks/button/Button.tsx @@ -1,7 +1,7 @@ import { ReactNode, forwardRef } from 'react'; import styled, { FlattenSimpleInterpolation } from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import type { ModeProp, TransformedHTMLAttributes } from '../Blocks.types'; + +import type { TransformedHTMLAttributes } from '../Blocks.types'; import type { ButtonSize, ButtonVariant } from './Button.types'; import { getButtonSizeStyles, getButtonVariantStyles } from './Button.utils'; @@ -28,7 +28,7 @@ export type ButtonProps = { block?: boolean; } & TransformedHTMLAttributes; -const StyledButton = styled.button` +const StyledButton = styled.button` /* Common Button CSS */ align-items: center; @@ -46,7 +46,7 @@ const StyledButton = styled.button` } /* Button variant CSS styles */ - ${({ mode, variant }) => getButtonVariantStyles(mode, variant || 'primary')} + ${({ variant }) => getButtonVariantStyles(variant || 'primary')} /* Button and font size CSS styles */ ${({ iconOnly, size }) => getButtonSizeStyles({ iconOnly: !!iconOnly, size: size || 'medium' })} @@ -75,28 +75,24 @@ const Button = forwardRef( ...props }, ref - ) => { - const { mode } = useBlocksTheme(); - return ( - - {leadingIcon && {leadingIcon}} - {!iconOnly && children} - {trailingIcon && {trailingIcon}} - {iconOnly && !children && {iconOnly}} - - ); - } + ) => ( + + {leadingIcon && {leadingIcon}} + {!iconOnly && children} + {trailingIcon && {trailingIcon}} + {iconOnly && !children && {iconOnly}} + + ) ); Button.displayName = 'Button'; diff --git a/src/blocks/button/Button.utils.ts b/src/blocks/button/Button.utils.ts index 835d239124..80d5ba91b6 100644 --- a/src/blocks/button/Button.utils.ts +++ b/src/blocks/button/Button.utils.ts @@ -1,161 +1,162 @@ import { FlattenSimpleInterpolation, css } from 'styled-components'; import { ButtonSize, ButtonVariant } from './Button.types'; -import { ThemeMode } from 'blocks/Blocks.types'; -import { getBlocksColor } from 'blocks/Blocks.utils'; -export const getButtonVariantStyles = (mode: ThemeMode, variant: ButtonVariant) => { +export const getButtonVariantStyles = (variant: ButtonVariant) => { switch (variant) { case 'primary': { return ` - background-color: var(--pink-500); - color: var(--white); + background-color: var(--components-button-primary-background-default); + color: var(--components-button-primary-text-default); &:hover { - background-color: var(--pink-400); + background-color: var(--components-button-primary-background-hover) } &:active { - background-color: ${getBlocksColor(mode, { light: 'pink-800', dark: 'pink-600' })}; + background-color: var(--components-button-primary-background-pressed); } &:focus-visible { - background-color: ${getBlocksColor(mode, { light: 'pink-500', dark: 'pink-400' })}; - border: 1px solid ${getBlocksColor(mode, { light: 'pink-700', dark: 'pink-200' })}; + background-color: var(--components-button-primary-background-focus); + border: var(--border-sm) solid var(--components-button-primary-stroke-focus); outline: none; } &:disabled { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-primary-background-disabled); + color: var(--components-button-primary-text-disabled); } `; } case 'secondary': { return ` - background-color: ${getBlocksColor(mode, { light: 'gray-100', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-1000', dark: 'white' })}; + background-color: var(--components-button-secondary-background-default); + color: var(--components-button-secondary-text-default); &:hover { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-700' })}; + background-color: var(--components-button-secondary-background-hover); } &:active { - background-color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-1000' })}; + background-color: var(--components-button-secondary-background-pressed); } &:focus-visible { - background-color: ${getBlocksColor(mode, { light: 'gray-100', dark: 'gray-800' })}; - border: 1px solid ${getBlocksColor(mode, { light: 'pink-300', dark: 'pink-400' })}; + background-color: var(--components-button-secondary-background-focus); + border: var(--border-sm) solid var(--components-button-secondary-stroke-focus); outline: none; } &:disabled { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-secondary-background-disabled); + color: var(--components-button-secondary-text-disabled) } `; } case 'tertiary': { return ` - background-color: ${getBlocksColor(mode, { light: 'gray-1000', dark: 'gray-700' })}; - color: var(--white); + background-color: var(--components-button-tertiary-background-default); + color: var(--components-button-tertiary-text-default); &:hover { - color: ${getBlocksColor(mode, { light: 'white', dark: 'gray-200' })}; - background-color: ${getBlocksColor(mode, { light: 'gray-900', dark: 'gray-300' })}; + color: var(--components-button-tertiary-text-default); + background-color: var(--components-button-tertiary-background-hover); } &:active { - background-color: ${getBlocksColor(mode, { light: 'gray-100', dark: 'gray-1000' })}; - color: ${getBlocksColor(mode, { light: 'gray-1000', dark: 'white' })}; + background-color: var(--components-button-tertiary-background-pressed); + color: var(--components-button-secondary-text-default); } &:focus-visible { - border: 1px solid ${getBlocksColor(mode, { light: 'pink-300', dark: 'pink-400' })}; - background-color: ${getBlocksColor(mode, { light: 'gray-1000', dark: 'gray-700' })}; - color: ${getBlocksColor(mode, { light: 'white', dark: 'gray-200' })}; + border: var(--border-sm) solid var(--components-button-tertiary-stroke-focus); + background-color: var(--components-button-tertiary-background-focus); + color: var(--components-button-tertiary-text-default); outline: none; } &:disabled { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-tertiary-background-disabled); + color: var(--components-button-tertiary-text-disabled); } `; } case 'danger': { return ` - background-color: ${getBlocksColor(mode, { light: 'red-600', dark: 'red-500' })}; - color: var(--white); + background-color: var(--components-button-danger-background-default); + color: var(--components-button-danger-text-default); &:hover { - background-color: ${getBlocksColor(mode, { light: 'red-500', dark: 'red-400' })}; + background-color: var(--components-button-danger-background-hover); } &:active { - background-color: ${getBlocksColor(mode, { light: 'red-800', dark: 'red-700' })}; + background-color: var(--components-button-danger-background-pressed); } &:focus-visible { - background-color: ${getBlocksColor(mode, { light: 'red-500', dark: 'red-400' })}; - border: 1px solid ${getBlocksColor(mode, { light: 'red-800', dark: 'red-600' })}; + background-color: var(--components-button-danger-background-focus); + border: var(--border-sm) solid var(--components-button-danger-stroke-focus); outline: none; } &:disabled { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-danger-background-disabled); + color: var(--components-button-danger-text-disabled); } `; } case 'dangerSecondary': { return ` - background-color: ${getBlocksColor(mode, { light: 'red-200', dark: 'red-800' })}; - color: ${getBlocksColor(mode, { light: 'red-700', dark: 'white' })}; + background-color: var(--components-button-danger-secondary-background-default); + color: var(--components-button-danger-secondary-text-default); &:hover { - background-color: ${getBlocksColor(mode, { light: 'red-100', dark: 'red-700' })}; + background-color: var(--components-button-danger-secondary-background-hover); } &:active { - background-color: ${getBlocksColor(mode, { light: 'red-500', dark: 'red-1000' })}; + background-color: var(--components-button-danger-secondary-background-pressed); } &:focus-visible { - background-color: ${getBlocksColor(mode, { light: 'red-100', dark: 'red-700' })}; - border: 1px solid ${getBlocksColor(mode, { light: 'red-800', dark: 'red-400' })}; + background-color: var(--components-button-danger-secondary-background-focus); + border: var(--border-sm) solid var(--components-button-danger-secondary-stroke-focus); outline: none; } &:disabled { - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-danger-secondary-background-disabled); + color:var(--components-button-danger-secondary-text-disabled); } `; } case 'outline': { return ` - background-color: transparent; - border: 1px solid ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; - color: ${getBlocksColor(mode, { light: 'gray-1000', dark: 'gray-100' })}; + background-color: var(--components-button-outline-background-default); + border: var(--border-sm) solid var(--components-button-outline-stroke-default); + color: var(--components-button-outline-text-default); outline: none; &:hover { - border: 1px solid ${getBlocksColor(mode, { light: 'pink-300', dark: 'gray-800' })}; + border: var(--border-sm) solid var(--components-button-outline-stroke-hover); + background-color: var(--components-button-outline-background-hover); } &:active { - border: 1px solid ${getBlocksColor(mode, { light: 'gray-600', dark: 'gray-300' })}; + border: var(--border-sm) solid var(--components-button-outline-stroke-pressed); + background-color: var(--components-button-outline-background-pressed); } &:focus-visible { - border: 1px solid ${getBlocksColor(mode, { light: 'pink-300', dark: 'pink-400' })}; + border: var(--border-sm) solid var(--components-button-outline-stroke-focus); + background-color: var(--components-button-outline-background-focus); } &:disabled { border: none; - background-color: ${getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - color: ${getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + background-color: var(--components-button-tertiary-background-disabled); + color: var(--components-button-outline-text-disabled); } `; } @@ -175,17 +176,17 @@ export const getButtonSizeStyles = ({ ${iconOnly ? ` - border-radius: 9.6px; - gap: var(--s0); + border-radius: var(--radius-xxs); + gap: var(--spacing-none); height: 32px; width: 32px; - padding: 9.6px 0px; + padding: var(--spacing-none); ` : ` - border-radius: var(--r2); - gap: var(--s1); + border-radius: var(--radius-xxs); + gap: var(--spacing-xxxs); height: 32px; - padding: var(--s3) var(--s4); + padding: var(--spacing-xs) var(--spacing-sm); min-width: 100px; `} @@ -219,17 +220,17 @@ export const getButtonSizeStyles = ({ ${iconOnly ? ` - border-radius: var(--r3); - gap: var(--s0); + border-radius: var(--radius-xs); + gap: var(--spacing-none); height: 40px; width: 40px; - padding: var(--s3); + padding: var(--spacing-none); ` : ` - border-radius: var(--r3); - gap: var(--s1); + border-radius: var(--radius-xs); + gap: var(--spacing-xxxs); height: 40px; - padding: var(--s3) var(--s6); + padding: var(--spacing-xs) var(--spacing-md); min-width: 100px; `} @@ -264,17 +265,17 @@ export const getButtonSizeStyles = ({ ${iconOnly ? ` - border-radius: 14.4px; - gap: var(--s0); + border-radius: var(--spacing-sm); + gap: var(--spacing-none); height: 48px; width: 48px; - padding: 14.4px; + padding: var(--spacing-none); ` : ` - border-radius: var(--r3); - gap: var(--s1); + border-radius: var(--radius-xs); + gap: var(--spacing-xxxs); height: 48px; - padding: var(--s4) var(--s6); + padding: var(--spacing-sm) var(--spacing-md); min-width: 100px; `} @@ -308,17 +309,17 @@ export const getButtonSizeStyles = ({ ${iconOnly ? ` - border-radius: 15.6px; - gap: var(--s0); + border-radius: var(--spacing-sm); + gap: var(--spacing-none); height: 52px; width: 52px; - padding: 15.6px; + padding: var(--spacing-none); ` : ` - border-radius: var(--r3); - gap: var(--s1); + border-radius: var(--radius-xs); + gap: var(--spacing-xxxs); height: 52px; - padding: var(--s4) var(--s8); + padding: var(--spacing-sm) var(--spacing-lg); min-width: 100px; `} diff --git a/src/blocks/hoverableSVG/HoverableSVG.tsx b/src/blocks/hoverableSVG/HoverableSVG.tsx index 6f1e5f74bc..18f596168c 100644 --- a/src/blocks/hoverableSVG/HoverableSVG.tsx +++ b/src/blocks/hoverableSVG/HoverableSVG.tsx @@ -1,59 +1,49 @@ import { FC } from 'react'; import styled from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { - BlocksColors, - ThemeModeColors, - BlocksSpaceType, - ModeProp, - TransformedHTMLAttributes, - BlocksRadiusType, -} from '../Blocks.types'; -import { getBlocksColor, getBlocksBorderRadius } from '../Blocks.utils'; -import { ThemeColors } from '../theme/Theme.types'; +import { BlocksSpaceType, TransformedHTMLAttributes } from '../Blocks.types'; +import { getBlocksBorderRadius } from '../Blocks.utils'; +import { IconColors, SurfaceColors, ThemeBorderRadius } from '../theme/Theme.types'; export type HoverableSVGProps = { /* Icon component */ icon: React.ReactNode; /* Sets the initial color for SVG */ - defaultColor?: BlocksColors | ThemeModeColors | ThemeColors; + defaultColor?: IconColors; /* Sets button as disabled */ disabled?: boolean; /* Sets the hover color for SVG */ - hoverColor?: BlocksColors | ThemeModeColors | ThemeColors; + hoverColor?: IconColors; /* Sets the initial background color for SVG */ - defaultBackground?: BlocksColors | ThemeModeColors | ThemeColors; + defaultBackground?: SurfaceColors; /* Sets the initial background color for SVG */ - hoverBackground?: BlocksColors | ThemeModeColors | ThemeColors; + hoverBackground?: SurfaceColors; /* Sets the padding for SVG button container */ padding?: BlocksSpaceType; /* Sets the margin for SVG button container */ margin?: BlocksSpaceType; /* Sets the margin for SVG button container */ - borderRadius?: BlocksRadiusType; + borderRadius?: ThemeBorderRadius; } & TransformedHTMLAttributes; -const StyledButton = styled.button.withConfig({ - shouldForwardProp: (prop, defaultValidatorFn) => !['mode'].includes(prop) && defaultValidatorFn(prop), -}) & ModeProp>` +const StyledButton = styled.button>` display: inline-flex; align-items: center; justify-content: center; - padding: var(--${(props) => props.padding || 's0'}); - margin: var(--${(props) => props.margin || 's0'}); + padding: var(--${(props) => props.padding || 'spacing-none'}); + margin: var(--${(props) => props.margin || 'spacing-none'}); border-radius: ${(props) => getBlocksBorderRadius(props.borderRadius)}; - background-color: ${({ defaultBackground, mode }) => getBlocksColor(mode, defaultBackground) || 'transparent'}; - color: ${({ mode, defaultColor }) => getBlocksColor(mode, defaultColor) || 'inherit'}; + background-color: var(--${({ defaultBackground }) => defaultBackground || 'surface-transparent'}); + color: ${({ defaultColor }) => `var(--${defaultColor})` || 'inherit'}; border: none; cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')}; transition: background-color 0.3s, color 0.3s; height: fit-content; &:hover { - background-color: ${({ mode, hoverBackground }) => getBlocksColor(mode, hoverBackground) || 'transparent'}; - color: ${({ mode, hoverColor }) => getBlocksColor(mode, hoverColor) || 'inherit'}; + background-color: var(--${({ hoverBackground }) => hoverBackground || 'surface-transparent'}); + color: ${({ hoverColor }) => `var(--${hoverColor})` || 'inherit'}; } - &:disabled > span { - color: var(--${({ mode }) => (mode === 'dark' ? 'gray-700' : 'gray-300')}); + &:disabled { + color: var(--icon-state-disabled); } `; const HoverableSVG: FC = ({ @@ -68,7 +58,6 @@ const HoverableSVG: FC = ({ borderRadius, ...props }) => { - const { mode } = useBlocksTheme(); return ( = ({ padding={padding} margin={margin} borderRadius={borderRadius} - mode={mode} {...props} > {icon} diff --git a/src/blocks/icons/IconWrapper.tsx b/src/blocks/icons/IconWrapper.tsx index 74891036b2..6857dc74f6 100644 --- a/src/blocks/icons/IconWrapper.tsx +++ b/src/blocks/icons/IconWrapper.tsx @@ -1,7 +1,5 @@ import { FC, ReactNode } from 'react'; import styled, { FlattenSimpleInterpolation } from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { getBlocksColor } from '../Blocks.utils'; import { IconProps } from './Icons.types'; type IconWrapperProps = Omit & { @@ -44,8 +42,7 @@ const IconWrapper: FC = ({ size: sizeProp, ...restProps }) => { - const { mode } = useBlocksTheme(); - const color = (colorProp ? getBlocksColor(mode, colorProp) : 'currentColor') as string; + const color = colorProp ? `var(--${colorProp})` : 'currentColor'; const size = sizeProp ? `${sizeProp}px` : autoSize ? '1em' : '16px'; return ( ; -const StyledLink = styled(RouterLink).withConfig({ - shouldForwardProp: (prop, defaultValidatorFn) => !['mode'].includes(prop) && defaultValidatorFn(prop), -})` +const StyledLink = styled(RouterLink)` /* Link CSS */ text-decoration: none; &:hover > * { - color: ${({ mode, isText }) => (isText ? getBlocksColor(mode, { light: 'pink-600', dark: 'pink-400' }) : '')}; + color: ${({ isText }) => (isText ? 'var(--text-brand-medium)' : '')}; } /* Extra CSS props */ @@ -29,11 +25,8 @@ const StyledLink = styled(RouterLink).withConfig({ `; const Link: FC = ({ textProps, isText = true, ...props }) => { - const { mode } = useBlocksTheme(); - return ( diff --git a/src/blocks/lozenge/Lozenge.constants.tsx b/src/blocks/lozenge/Lozenge.constants.tsx index a7a5b4640e..5cb4478ca4 100644 --- a/src/blocks/lozenge/Lozenge.constants.tsx +++ b/src/blocks/lozenge/Lozenge.constants.tsx @@ -1,39 +1,19 @@ import { FlattenSimpleInterpolation, css } from 'styled-components'; -//Types +import { textVariants } from '../text'; import { LozengeSize, LozengeVariant } from './Lozenge.types'; -import { ThemeMode } from '../Blocks.types'; -export const getLozengeVariantStyles = ({ - mode, - variant, -}: { - mode?: ThemeMode; - variant: LozengeVariant; -}): FlattenSimpleInterpolation => { - if (mode === 'dark') { - if (variant === 'primary') { - return css` - /* Lozenge tag container variant css */ - background-color: var(--pink-300); - color: var(--pink-800); - .icon { - color: var(--pink-400); - } - `; - } - return css``; - } +export const getLozengeVariantStyles = (variant: LozengeVariant): FlattenSimpleInterpolation => { if (variant === 'primary') { return css` - /* Lozenge tag container variant css */ - background-color: var(--pink-200); - color: var(--pink-600); + background-color: var(--surface-brand-subtle); + color: var(--text-brand-bold); .icon { - color: var(--pink-400); + color: var(--icon-brand-medium); } `; } + return css``; }; @@ -50,25 +30,25 @@ export const getLozengeSizeStyles = ({ max-height: 14px; min-height: 14px; + border-radius: var(--radius-xxxs); ${iconOnly ? ` - border-radius: var(--r1); - gap: var(--s0); - padding: var(--s1); + gap: var(--spacing-none); + padding: var(--spacing-xxxs); ` : ` - border-radius: var(--r1); - gap: var(--s1); - padding: var(--s1) var(--s2); + gap: var(--spacing-xxxs); + padding: var(--spacing-xxxs) var(--spacing-xxs); `} /* Lozenge text size css */ leading-trim: both; text-edge: cap; - font-size: 10px; - font-style: normal; - font-weight: 700; - line-height: 14px; + font-size: ${textVariants['os-bold'].fontSize}; + font-style: ${textVariants['os-bold'].fontStyle}; + font-weight: ${textVariants['os-bold'].fontWeight}; + line-height: ${textVariants['os-bold'].lineHeight}; + text-transform: ${textVariants['os-bold'].textTransform}; .icon > span { height: 8px; @@ -81,17 +61,19 @@ export const getLozengeSizeStyles = ({ /* Lozenge tag container size css note: - add medium small and large sizes */ - ${iconOnly - ? ` - border-radius: 15.6px; - gap: var(--s0); - padding: 15.6px; + var(--spacing-sm); + + ${ + iconOnly + ? ` + border-radius: var(--radius-sm); + gap: var(--spacing-none); ` - : ` - border-radius: var(--r3); - gap: var(--s1); - padding: var(--s4); - `} + : ` + border-radius: var(--radius-xs); + gap: var(--spacing-xxxs); + ` + } /* Lozenge text size css */ leading-trim: both; diff --git a/src/blocks/lozenge/Lozenge.tsx b/src/blocks/lozenge/Lozenge.tsx index 4a77b944a3..0672a5892d 100644 --- a/src/blocks/lozenge/Lozenge.tsx +++ b/src/blocks/lozenge/Lozenge.tsx @@ -2,11 +2,9 @@ import { ReactNode, forwardRef } from 'react'; import styled, { FlattenSimpleInterpolation } from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; - import { getLozengeSizeStyles, getLozengeVariantStyles } from './Lozenge.constants'; -import { ModeProp, TransformedHTMLAttributes } from '../Blocks.types'; +import { TransformedHTMLAttributes } from '../Blocks.types'; import { LozengeSize, LozengeVariant } from './Lozenge.types'; export type LozengeProps = { @@ -22,11 +20,9 @@ export type LozengeProps = { variant?: LozengeVariant; } & TransformedHTMLAttributes; -type StyledLozengeProps = LozengeProps & ModeProp & { iconOnly: boolean }; +type StyledLozengeProps = LozengeProps & { iconOnly: boolean }; -const StyledLozenge = styled.div.withConfig({ - shouldForwardProp: (prop, defaultValidatorFn) => !['mode'].includes(prop) && defaultValidatorFn(prop), -})` +const StyledLozenge = styled.div` /* Common Lozenge CSS */ align-items: center; @@ -43,7 +39,7 @@ const StyledLozenge = styled.div.withConfig({ } /* Lozenge variant CSS styles */ - ${({ variant, mode }) => getLozengeVariantStyles({ variant: variant || 'primary', mode })} + ${({ variant }) => getLozengeVariantStyles(variant || 'primary')} /* Lozenge and font size CSS styles */ ${({ iconOnly, size }) => getLozengeSizeStyles({ iconOnly, size: size || 'small' })} @@ -54,7 +50,6 @@ const StyledLozenge = styled.div.withConfig({ const Lozenge = forwardRef( ({ variant = 'primary', size = 'small', icon, children, ...props }, ref) => { - const { mode } = useBlocksTheme(); const iconOnly = !children; return ( @@ -62,7 +57,6 @@ const Lozenge = forwardRef( role="div" iconOnly={iconOnly} ref={ref} - mode={mode} size={size} variant={variant} {...props} diff --git a/src/blocks/menu/Menu.tsx b/src/blocks/menu/Menu.tsx index 1dc9bb50d7..e33834017d 100644 --- a/src/blocks/menu/Menu.tsx +++ b/src/blocks/menu/Menu.tsx @@ -2,23 +2,20 @@ import { FC } from 'react'; import styled from 'styled-components'; import type { MenuProps } from './Menu.types'; -import { getBlocksColor } from 'blocks/Blocks.utils'; -import { ModeProp } from 'blocks/Blocks.types'; -import { useBlocksTheme } from 'blocks/Blocks.hooks'; import { menuCSSPropsKeys } from './Menu.constants'; const StyledMenu = styled.div.withConfig({ shouldForwardProp: (prop, defaultValidatorFn) => !menuCSSPropsKeys.includes(prop as keyof MenuProps) && defaultValidatorFn(prop), -})` +})` display: flex; flex-direction: column; - background-color: ${({ mode }) => getBlocksColor(mode, { light: 'white', dark: 'gray-900' })}; - border: 1px solid ${({ mode }) => getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; - border-radius: var(--r3); - padding: var(--s2); - margin: var(--s0); - gap: var(--s3); + background-color: var(--surface-primary); + border: var(--border-sm) solid var(--stroke-secondary); + border-radius: var(--radius-xs); + padding: var(--spacing-xxs); + margin: var(--spacing-none); + gap: var(--spacing-xs); /* Menu non-responsive styles */ width: ${(props) => props.width}; @@ -32,18 +29,7 @@ const StyledMenu = styled.div.withConfig({ ${(props) => props.css || ''} `; -const Menu: FC = ({ children, ...props }) => { - const { mode } = useBlocksTheme(); - - return ( - - {children} - - ); -}; +const Menu: FC = ({ children, ...props }) => {children}; Menu.displayName = 'Menu'; diff --git a/src/blocks/menu/MenuItem.tsx b/src/blocks/menu/MenuItem.tsx index d5847cf7ac..4d2d329c67 100644 --- a/src/blocks/menu/MenuItem.tsx +++ b/src/blocks/menu/MenuItem.tsx @@ -2,25 +2,19 @@ import { FC } from 'react'; import styled from 'styled-components'; import { MenuItemComponentProps } from './Menu.types'; -import { ModeProp } from 'blocks/Blocks.types'; -import { getBlocksColor } from '../Blocks.utils'; -import { useBlocksTheme } from 'blocks/Blocks.hooks'; -import { Text } from 'blocks/text'; -import { Box } from 'blocks/box'; import * as RadixDropdown from '@radix-ui/react-dropdown-menu'; -import { Link } from 'blocks/link'; +import { Link } from '../link'; +import { textVariants } from '../text'; -const StyledMenuItem = styled(RadixDropdown.Item).withConfig({ - shouldForwardProp: (prop, defaultValidatorFn) => !['mode'].includes(prop) && defaultValidatorFn(prop), -})` +const StyledMenuItem = styled(RadixDropdown.Item)` // Menu default styles - padding: var(--s0) var(--s1); + padding: var(--spacing-none) var(--spacing-xxxs); display: flex; flex-direction: row; flex: 1; align-items: center; - gap: var(--s1); - border-radius: var(--r2); + gap: var(--spacing-xxxs); + border-radius: var(--radius-xxs); [role='img'] { width: 24px; @@ -28,7 +22,7 @@ const StyledMenuItem = styled(RadixDropdown.Item).withConfig({ } &:hover { - background-color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-100', dark: 'gray-1000' })}; + background-color: var(--surface-secondary); outline: none !important; } @@ -39,29 +33,31 @@ const StyledMenuItem = styled(RadixDropdown.Item).withConfig({ ${(props) => props.css || ''}; `; -const MenuItem: FC = ({ icon, label, onClick, destination, newTab, disabled, ...props }) => { - const { mode } = useBlocksTheme(); +const StyledLabel = styled.span` + color: var(--components-dropdown-text-default); + text-align: center; + + font-family: var(--font-family); + font-size: ${textVariants['bs-regular'].fontSize}; + font-style: ${textVariants['bs-regular'].fontStyle}; + font-weight: ${textVariants['bs-regular'].fontWeight}; + line-height: ${textVariants['bs-regular'].lineHeight}; +`; +const MenuItem: FC = ({ icon, label, onClick, destination, newTab, disabled, ...props }) => { const menuContent = ( {icon} - - {label} - + {label} ); return ( - +
{destination ? ( = ({ icon, label, onClick, destinatio ) : ( menuContent )} - +
); }; diff --git a/src/blocks/separator/Separator.constants.ts b/src/blocks/separator/Separator.constants.ts index 12b388ee72..ada8e131fa 100644 --- a/src/blocks/separator/Separator.constants.ts +++ b/src/blocks/separator/Separator.constants.ts @@ -6,5 +6,4 @@ export const separatorRestrictedPropsKeys: (keyof SeparatorProps | keyof ModePro 'margin', 'width', 'orientation', - 'mode', ]; diff --git a/src/blocks/separator/Separator.tsx b/src/blocks/separator/Separator.tsx index ecdcdf9cea..6346ccb1d0 100644 --- a/src/blocks/separator/Separator.tsx +++ b/src/blocks/separator/Separator.tsx @@ -1,9 +1,6 @@ import { FC } from 'react'; import styled from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { ModeProp } from '../Blocks.types'; -import { getBlocksColor } from '../Blocks.utils'; import { SeparatorProps } from './Separator.types'; import { getSeparatorResponsiveCSS } from './Separator.utils'; import { separatorRestrictedPropsKeys } from './Separator.constants'; @@ -11,7 +8,7 @@ import { separatorRestrictedPropsKeys } from './Separator.constants'; const StyledSeparator = styled.div.withConfig({ shouldForwardProp: (prop, defaultValidatorFn) => !separatorRestrictedPropsKeys.includes(prop as keyof SeparatorProps) && defaultValidatorFn(prop), -})` +})` /* Initial values */ width: ${({ width, orientation }) => width || (orientation === 'horizontal' ? '100%' : '1px')}; height: ${({ height, orientation }) => height || (orientation === 'horizontal' ? '1px' : '100%')}; @@ -20,23 +17,19 @@ const StyledSeparator = styled.div.withConfig({ ${(props) => getSeparatorResponsiveCSS(props)} /* Non-responsive props */ - background-color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; + background-color: var(--surface-tertiary); /* Extra CSS prop */ ${({ css }) => css || ''} `; -const Separator: FC = ({ orientation = 'horizontal', ...rest }) => { - const { mode } = useBlocksTheme(); - return ( - - ); -}; +const Separator: FC = ({ orientation = 'horizontal', ...rest }) => ( + +); Separator.displayName = 'Separator'; diff --git a/src/blocks/skeleton/Skeleton.constants.ts b/src/blocks/skeleton/Skeleton.constants.ts index be99c83282..6039f6618c 100644 --- a/src/blocks/skeleton/Skeleton.constants.ts +++ b/src/blocks/skeleton/Skeleton.constants.ts @@ -1,4 +1,4 @@ import { ModeProp } from '../Blocks.types'; import type { SkeletonProps } from './Skeleton.types'; -export const skeletonCSSPropsKeys: (keyof SkeletonProps | keyof ModeProp)[] = ['height', 'width', 'mode']; +export const skeletonCSSPropsKeys: (keyof SkeletonProps | keyof ModeProp)[] = ['height', 'width']; diff --git a/src/blocks/skeleton/Skeleton.tsx b/src/blocks/skeleton/Skeleton.tsx index 72dbd6d085..a22928bcd6 100644 --- a/src/blocks/skeleton/Skeleton.tsx +++ b/src/blocks/skeleton/Skeleton.tsx @@ -1,17 +1,14 @@ import { type FC } from 'react'; import styled from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { ModeProp } from '../Blocks.types'; import { SkeletonProps } from './Skeleton.types'; import { getSkeletonPulseAnimation, getSkeletonResponsiveCSS } from './Skeleton.utils'; import { skeletonCSSPropsKeys } from './Skeleton.constants'; -import { getBlocksColor } from 'blocks/Blocks.utils'; const StyledSkeleton = styled.div.withConfig({ shouldForwardProp: (prop, defaultValidatorFn) => !skeletonCSSPropsKeys.includes(prop as keyof SkeletonProps) && defaultValidatorFn(prop), -})` +})` /* Responsive props */ ${(props) => getSkeletonResponsiveCSS(props)} @@ -19,11 +16,10 @@ const StyledSkeleton = styled.div.withConfig({ ${(props) => props.css || ''} /* Animation props */ - animation: ${({ mode }) => - getSkeletonPulseAnimation( - getBlocksColor(mode, { dark: 'gray-600', light: 'gray-200' }), - getBlocksColor(mode, { dark: 'gray-700', light: 'gray-300' }) - )} + animation: ${getSkeletonPulseAnimation( + 'var(--components-skeleton-loader-gradient-light)', + 'var(--components-skeleton-loader-gradient-dark)' + )} 1s infinite alternate-reverse; /* Hide children */ @@ -32,9 +28,7 @@ const StyledSkeleton = styled.div.withConfig({ } `; -const Skeleton: FC = ({ borderRadius = 'r2', children, isLoading, ...rest }) => { - const { mode } = useBlocksTheme(); - +const Skeleton: FC = ({ borderRadius = 'radius-xxs', children, isLoading, ...rest }) => { if (!isLoading) return children; return ( @@ -44,7 +38,6 @@ const Skeleton: FC = ({ borderRadius = 'r2', children, isLoading, /* The component will not be included in the tab order */ tabIndex={-1} borderRadius={borderRadius} - mode={mode} {...rest} > {children} diff --git a/src/blocks/tabs/Tabs.styled.ts b/src/blocks/tabs/Tabs.styled.ts index 039a7482c5..0856119cbf 100644 --- a/src/blocks/tabs/Tabs.styled.ts +++ b/src/blocks/tabs/Tabs.styled.ts @@ -1,41 +1,40 @@ import { Tabs as ReachTabs, TabList, Tab } from '@reach/tabs'; +import { textVariants } from '../text'; import styled from 'styled-components'; -import { ModeProp } from '../Blocks.types'; -import { getBlocksColor } from '../Blocks.utils'; export const StyledFillTabs = styled(ReachTabs)` display: flex; flex-direction: column; - gap: var(--s4); + gap: var(--spacing-sm); `; -export const StyledFillTabList = styled(TabList)` +export const StyledFillTabList = styled(TabList)` display: flex; width: fit-content; - padding: var(--s1); - background-color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-100', dark: 'gray-1000' })}; - border-radius: var(--r4); - gap: var(--s2); + padding: var(--spacing-xxxs); + background-color: var(--surface-secondary); + border-radius: var(--radius-sm); + gap: var(--spacing-xxs); `; -export const StyledFillTab = styled(Tab)` +export const StyledFillTab = styled(Tab)` display: flex; - padding: var(--s0) var(--s4); + padding: var(--spacing-none) var(--spacing-sm); height: 40px; justify-content: center; align-items: center; - gap: var(--s2); + gap: var(--spacing-xxs); align-self: stretch; cursor: pointer; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-800', dark: 'gray-300' })}; - background-color: ${getBlocksColor('light', 'transparent')}; - border-radius: var(--r3); + color: var(--text-secondary); + background-color: var(--surface-transparent); + border-radius: var(--radius-xs); transition: background-color 0.3s, color 0.3s; border-bottom: none; &[data-selected] { - background-color: ${({ mode }) => getBlocksColor(mode, { light: 'white', dark: 'gray-800' })}; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-1000', dark: 'white' })}; + background-color: var(--components-button-tertiary-background-inverse); + color: var(--text-secondary); } &:focus { @@ -43,21 +42,21 @@ export const StyledFillTab = styled(Tab)` } &:hover { - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-1000', dark: 'white' })}; + color: var(--components-button-secondary-text-default); } &:focus-visible { - outline: 1px solid ${getBlocksColor('light', 'pink-300')}; + outline: var(--border-sm) solid var(--stroke-state-focused); } &:active { - background-color: ${getBlocksColor('light', 'transparent')}; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-1000', dark: 'white' })}; + background-color: var(--surface-transparent); + color: var(--components-button-secondary-text-default); } &[aria-disabled='true'] { cursor: not-allowed; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-300', dark: 'gray-700' })}; + color: var(--components-button-secondary-text-disabled); opacity: 1; } `; @@ -65,56 +64,64 @@ export const StyledFillTab = styled(Tab)` export const StyledLineTabs = styled(ReachTabs)` display: flex; flex-direction: column; - gap: var(--s4); + gap: var(--spacing-sm); `; -export const StyledLineTabList = styled(TabList)` +export const StyledLineTabList = styled(TabList)` display: flex; - background-color: ${getBlocksColor('light', 'transparent')}; - gap: var(--s3); + background-color: var(--surface-transparent); + gap: var(--spacing-xs); justify-content: flex-start; - border-bottom: 1px solid ${({ mode }) => getBlocksColor(mode, { light: 'gray-200', dark: 'gray-800' })}; + border-bottom: var(--border-sm) solid var(--stroke-secondary); `; -export const StyledLineTab = styled(Tab)` +export const StyledLineTab = styled(Tab)` display: flex; - padding: var(--s0) var(--s4); + padding: var(--spacing-none) var(--spacing-sm); height: 40px; justify-content: center; align-items: center; - gap: var(--s2); + gap: var(--spacing-xxs); cursor: pointer; margin-bottom: -1px; - background-color: ${getBlocksColor('light', 'transparent')}; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-800', dark: 'gray-300' })}; + background-color: var(--surface-transparent); + color: var(--text-secondary); transition: background-color 0.3s, color 0.3s; - border-bottom: 2px solid ${getBlocksColor('light', 'transparent')}; + border-bottom: var(--border-md) solid var(--surface-transparent); &[data-selected] { - border-bottom: 2px solid ${getBlocksColor('light', 'pink-400')}; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-1000', dark: 'gray-100' })}; + border-bottom: var(--border-md) solid var(--stroke-brand-medium); + color: var(--text-primary); } &:hover { - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-1000', dark: 'gray-100' })}; + color: var(--text-primary); } &:focus-visible { - outline: 2px solid ${getBlocksColor('light', 'pink-300')}; - border-bottom: 2px solid ${getBlocksColor('light', 'transparent')}; - border-radius: var(--r3); + outline: var(--border-md) solid var(--stroke-state-focused); + border-bottom: var(--border-md) solid var(--surface-transparent); + border-radius: var(--radius-xs); margin-bottom: -2px; } &:active { - background-color: ${getBlocksColor('light', 'transparent')}; - color: ${getBlocksColor('light', 'gray-1000')}; + background-color: var(--surface-transparent); + color: var(--text-primary); } &[aria-disabled='true'] { cursor: not-allowed; - color: ${({ mode }) => getBlocksColor(mode, { light: 'gray-400', dark: 'gray-700' })}; - border-bottom: 2px solid ${({ mode }) => getBlocksColor(mode, { light: 'gray-300', dark: 'gray-800' })}; + color: var(--text-state-disabled); + border-bottom: var(--border-md) solid var(--stroke-state-disabled); opacity: 1; } `; + +export const StyledTabLabel = styled.span` + font-family: var(--font-family); + font-size: ${textVariants['h5-semibold'].fontSize}; + font-style: ${textVariants['h5-semibold'].fontStyle}; + font-weight: ${textVariants['h5-semibold'].fontWeight}; + line-height: ${textVariants['h5-semibold'].lineHeight}; +`; diff --git a/src/blocks/tabs/Tabs.tsx b/src/blocks/tabs/Tabs.tsx index 06280ada7b..357a50d81e 100644 --- a/src/blocks/tabs/Tabs.tsx +++ b/src/blocks/tabs/Tabs.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { TabPanels, TabPanel, TabsKeyboardActivation } from '@reach/tabs'; import '@reach/tabs/styles.css'; -import { useBlocksTheme } from '../Blocks.hooks'; import { StyledFillTab, StyledFillTabList, @@ -9,8 +8,8 @@ import { StyledLineTab, StyledLineTabList, StyledLineTabs, + StyledTabLabel, } from './Tabs.styled'; -import { Text } from 'blocks/text'; export type TabItem = { key: string; @@ -28,8 +27,6 @@ export type TabsProps = { }; const Tabs: React.FC = ({ items, onChange, variant = 'line', activeKey }) => { - const { mode } = useBlocksTheme(); - const handleChange = (index: number) => { const activeItem = items[index]; if (activeItem && !activeItem.disabled) { @@ -52,20 +49,16 @@ const Tabs: React.FC = ({ items, onChange, variant = 'line', activeKe role="tabpanel" keyboardActivation={TabsKeyboardActivation.Auto} > - + {items.map((item) => ( {item.icon && item.icon} - {item.label} + {item.label} ))} diff --git a/src/blocks/text/Text.tsx b/src/blocks/text/Text.tsx index 7bdd591b82..dbe1ebd2d3 100644 --- a/src/blocks/text/Text.tsx +++ b/src/blocks/text/Text.tsx @@ -1,10 +1,8 @@ import { ReactNode, forwardRef } from 'react'; import styled, { FlattenSimpleInterpolation } from 'styled-components'; -import { useBlocksTheme } from '../Blocks.hooks'; -import { TransformedHTMLAttributes, BlocksColors, ModeProp, ThemeModeColors } from '../Blocks.types'; -import { getBlocksColor } from '../Blocks.utils'; -import { ThemeColors } from '../theme/Theme.types'; +import { TransformedHTMLAttributes } from '../Blocks.types'; +import { TextColors } from '../theme/Theme.types'; import { TextAlign, TextHTMLTags, TextResponsiveProps, TextTransform, TextVariants } from './Text.types'; import { getVariantStyles } from './Text.utils'; import { getTextResponsiveCSS } from './Text.utils'; @@ -15,7 +13,7 @@ export type TextProps = { /* Children pass to the Text component */ children?: ReactNode; /* Sets the css property for text color */ - color?: BlocksColors | ThemeModeColors | ThemeColors; + color?: TextColors; /* Extra css prop from styled components to apply custom css not supported by Text component */ css?: FlattenSimpleInterpolation; /* For truncating the contents with ... when there's container overflow */ @@ -36,13 +34,12 @@ export type TextProps = { TransformedHTMLAttributes; const StyledText = styled.p.withConfig({ - shouldForwardProp: (prop, defaultValidatorFn) => - !['mode', 'color', 'display'].includes(prop) && defaultValidatorFn(prop), -})` + shouldForwardProp: (prop, defaultValidatorFn) => !['color', 'display'].includes(prop) && defaultValidatorFn(prop), +})` /* Variant CSS */ ${({ variant }) => getVariantStyles(variant)} - color: ${({ color, mode }) => getBlocksColor(mode, color)}; + color: ${({ color }) => `var(--${color})`}; font-family: var(--font-family); margin: 0px; text-align: ${({ textAlign }) => textAlign}; @@ -86,18 +83,14 @@ const StyledText = styled.p.withConfig({ ${(props) => props.css || ''} `; -const Text = forwardRef(({ as = 'p', ...props }, ref) => { - const { mode } = useBlocksTheme(); - return ( - // TODO: We need to remove color dependency from BlocksColors | ThemeModeColors to fix this error - - ); -}); +const Text = forwardRef(({ as = 'p', color = 'text-primary', ...props }, ref) => ( + +)); Text.displayName = 'Text'; diff --git a/src/blocks/textInput/TextInput.tsx b/src/blocks/textInput/TextInput.tsx index 12ddd7e16d..3e3f75fd3f 100644 --- a/src/blocks/textInput/TextInput.tsx +++ b/src/blocks/textInput/TextInput.tsx @@ -1,6 +1,5 @@ -import { Box } from 'blocks'; import { Asterisk, CrossFilled } from '../icons'; -import { Text, textVariants } from '../text'; +import { TextVariants, textVariants } from '../text'; import React, { ReactNode, forwardRef } from 'react'; import styled, { FlattenSimpleInterpolation, css } from 'styled-components'; @@ -38,8 +37,7 @@ const StyledTextInput = styled.div<{ success?: boolean; disabled?: boolean; }>` - ${({ theme, success, error, disabled }) => { - const colors = theme?.blocksTheme?.colors; + ${({ success, error, disabled }) => { const defaultState = error ? 'danger' : success ? 'success' : disabled ? 'disabled' : 'default'; const focusState = error ? 'danger' : success ? 'success' : 'focus'; return css` @@ -47,12 +45,8 @@ const StyledTextInput = styled.div<{ justify-content: space-between; align-items: flex-start; border-radius: var(--radius-xs, 12px); - border: 1.5px solid - var(--components-inputs-stroke-${defaultState}, ${colors[`components-inputs-stroke-${defaultState}`]}); - background: var( - --components-inputs-background-${defaultState}, - ${colors[`components-inputs-background-${defaultState}`]} - ); + border: 1.5px solid var(--components-inputs-stroke-${defaultState}); + background: var(--components-inputs-background-${defaultState}); display: flex; @@ -69,14 +63,14 @@ const StyledTextInput = styled.div<{ width: 24px; height: 24px; - color: var(--components-inputs-icon-${defaultState}, ${colors[`components-inputs-icon-${defaultState}`]}); + color: var(--components-inputs-icon-${defaultState}); } & input { - color: var(--components-inputs-text-${defaultState}, ${colors[`components-inputs-text-${defaultState}`]}); + color: var(--components-inputs-text-${defaultState}); width: 100%; ::placeholder { - color: var(--components-inputs-text-placeholder, ${colors['components-inputs-text-placeholder']}); + color: var(--components-inputs-text-placeholder); } border: none; background: transparent; @@ -87,20 +81,19 @@ const StyledTextInput = styled.div<{ } &:hover { - border: 1.5px solid var(--components-inputs-stroke-hover, ${colors['components-inputs-stroke-hover']}); + border: 1.5px solid var(--components-inputs-stroke-hover); } &:focus-within { - border: 1.5px solid - var(--components-inputs-stroke-${focusState}, ${colors[`components-inputs-stroke-${focusState}`]}); + border: 1.5px solid var(--components-inputs-stroke-${focusState}); outline: none; } &:disabled { - border: 1.5px solid var(--components-inputs-stroke-default, ${colors['components-inputs-stroke-default']}); - background: var(--components-inputs-background-disabled, ${colors['components-inputs-background-disabled']}); + border: 1.5px solid var(--components-inputs-stroke-default); + background: var(--components-inputs-background-disabled); cursor: not-allowed; - color: var(--components-inputs-text-disabled, ${colors['components-inputs-text-disabled']}); + color: var(--components-inputs-text-disabled); } `; }} @@ -113,12 +106,30 @@ const LabelContainer = styled.div` width: 100%; `; +const InputText = styled.span<{ color: string; variant: TextVariants }>` + color: var(--${({ color }) => color}); + font-family: var(--font-family); + ${({ variant }) => + ` + font-size: ${textVariants[variant].fontSize}; + font-style: ${textVariants[variant].fontStyle}; + font-weight: ${textVariants[variant].fontWeight}; + line-height: ${textVariants[variant].lineHeight}; + `} +`; + const LabelTextContainer = styled.div` display: flex; align-items: flex-start; gap: var(--spacing-xxxs, 4px); `; +const InputContainer = styled.div` + display: flex; + gap: var(--spacing-xxs); + width: 100%; +`; + export const TextInput = forwardRef( ( { @@ -144,20 +155,22 @@ export const TextInput = forwardRef( {label && ( - {label} {required && } - + {totalCount && ( - {`${value?.length || 0} / ${totalCount}`} + variant="c-regular" + > + {`${value?.length || 0} / ${totalCount}`} + )} )} @@ -168,11 +181,7 @@ export const TextInput = forwardRef( ref={ref} success={success} > - + {icon} ( onChange={onChange} value={value} /> - + {onClear && onClear?.()} />} {description && ( - ( ? 'components-inputs-text-disabled' : 'components-inputs-text-placeholder' } + variant="c-regular" > {description} - + )} {errorMessage && ( - {errorMessage} - + )} ); diff --git a/src/blocks/textarea/TextArea.tsx b/src/blocks/textarea/TextArea.tsx index 0bf1bf6197..2cbedb776c 100644 --- a/src/blocks/textarea/TextArea.tsx +++ b/src/blocks/textarea/TextArea.tsx @@ -1,5 +1,5 @@ import { Asterisk } from 'blocks/icons'; -import { Text } from 'blocks/text/Text'; +import { textVariants } from '../text'; import React, { forwardRef } from 'react'; import styled, { FlattenSimpleInterpolation, css } from 'styled-components'; @@ -36,22 +36,17 @@ const StyledTextArea = styled.textarea<{ success?: boolean; resizable?: boolean; }>` - ${({ theme, resizable, success, error }) => { - const colors = theme?.blocksTheme?.colors; + ${({ resizable, success, error }) => { const defaultState = error ? 'danger' : success ? 'success' : 'default'; const focusState = error ? 'danger' : success ? 'success' : 'focus'; return css` align-self: stretch; align-items: flex-start; border-radius: var(--radius-xs, 12px); - border: 1.5px solid - var(--components-inputs-stroke-${defaultState}, ${colors[`components-inputs-stroke-${defaultState}`]}); - background: var( - --components-inputs-background-${defaultState}, - ${colors[`components-inputs-background-${defaultState}`]} - ); + border: 1.5px solid var(--components-inputs-stroke-${defaultState}); + background: var(--components-inputs-background-${defaultState}); - color: var(--components-inputs-text-${defaultState}, ${colors[`components-inputs-text-${defaultState}`]}); + color: var(--components-inputs-text-${defaultState}); display: flex; @@ -66,7 +61,7 @@ const StyledTextArea = styled.textarea<{ padding: var(--spacing-xs, 12px); ::placeholder { - color: var(--components-inputs-text-placeholder, ${colors['components-inputs-text-placeholder']}); + color: var(--components-inputs-text-placeholder); } resize: ${resizable ? 'vertical' : 'none'}; @@ -76,16 +71,15 @@ const StyledTextArea = styled.textarea<{ } &:focus { - border: 1.5px solid - var(--components-inputs-stroke-${focusState}, ${colors[`components-inputs-stroke-${focusState}`]}); + border: 1.5px solid var(--components-inputs-stroke-${focusState}); outline: none; } &:disabled { - border: 1.5px solid var(--components-inputs-stroke-default, ${colors['components-inputs-stroke-default']}); - background: var(--components-inputs-background-disabled, ${colors['components-inputs-background-disabled']}); + border: 1.5px solid var(--components-inputs-stroke-default); + background: var(--components-inputs-background-disabled); cursor: not-allowed; - color: var(--components-inputs-text-disabled, ${colors['components-inputs-text-disabled']}); + color: var(--components-inputs-text-disabled); } `; }} @@ -98,12 +92,30 @@ const LabelContainer = styled.div` width: 100%; `; +const LabelText = styled.span<{ color: string }>` + color: var(--${({ color }) => color}); + font-family: var(--font-family); + font-size: ${textVariants['h6-semibold'].fontSize}; + font-style: ${textVariants['h6-semibold'].fontStyle}; + font-weight: ${textVariants['h6-semibold'].fontWeight}; + line-height: ${textVariants['h6-semibold'].lineHeight}; +`; + const LabelTextContainer = styled.div` display: flex; align-items: flex-start; gap: var(--spacing-xxxs, 4px); `; +const LabelCount = styled.span<{ color: string }>` + color: var(--${({ color }) => color}); + font-family: var(--font-family); + font-size: ${textVariants['c-regular'].fontSize}; + font-style: ${textVariants['c-regular'].fontStyle}; + font-weight: ${textVariants['c-regular'].fontWeight}; + line-height: ${textVariants['c-regular'].lineHeight}; +`; + export const TextArea = forwardRef( ( { @@ -128,20 +140,16 @@ export const TextArea = forwardRef( {label && ( - + {label} {required && } - + {totalCount && ( - {`${value?.length || 0} / ${totalCount}`} + + {`${value?.length || 0} / ${totalCount}`} + )} )} @@ -158,8 +166,7 @@ export const TextArea = forwardRef( value={value} /> {description && ( - ( } > {description} - - )} - {errorMessage && ( - - {errorMessage} - + )} + {errorMessage && {errorMessage}} ); } diff --git a/src/blocks/theme/Theme.types.ts b/src/blocks/theme/Theme.types.ts index ef1fc512c8..988ce06ce7 100644 --- a/src/blocks/theme/Theme.types.ts +++ b/src/blocks/theme/Theme.types.ts @@ -1,4 +1,4 @@ -import { colorSemantics } from './colors/colors.semantics'; +import { colorSemantics, semanticKeys } from './colors/colors.semantics'; import { blurVariables } from './variables/variables.blur'; import { borderRadiusVariables } from './variables/variables.borderRadius'; import { borderSizeVariables } from './variables/variables.borderSize'; @@ -11,14 +11,14 @@ type ColorSemantics = typeof colorSemantics; type StringKeys = Extract; -type ThemeColorsConfig = { - [K1 in StringKeys as `${K1}-${StringKeys}`]: string; +type ThemeColorsConfig = { + [K1 in StringKeys as `${K1}-${StringKeys}`]: string; }; -export type ThemeColors = keyof ThemeColorsConfig; +export type ThemeColors = keyof ThemeColorsConfig; export type Theme = { - colors: ThemeColorsConfig; + colors: ThemeColorsConfig; blur: typeof blurVariables; borderRadius: typeof borderRadiusVariables; borderSize: typeof borderSizeVariables; @@ -31,3 +31,11 @@ export type ThemeBorderRadius = keyof Theme['borderRadius']; export type ThemeBorderSize = keyof Theme['borderSize']; export type ThemeSpacing = keyof Theme['spacing']; + +export type SurfaceColors = keyof ThemeColorsConfig<{ [semanticKeys.surface]: ColorSemantics['surface'] }>; + +export type TextColors = keyof ThemeColorsConfig<{ [semanticKeys.text]: ColorSemantics['text'] }>; + +export type IconColors = keyof ThemeColorsConfig<{ [semanticKeys.icon]: ColorSemantics['icon'] }>; + +export type StrokeColors = keyof ThemeColorsConfig<{ [semanticKeys.stroke]: ColorSemantics['stroke'] }>; diff --git a/src/blocks/theme/colors/colors.semantics.ts b/src/blocks/theme/colors/colors.semantics.ts index 37fbce3307..747dbaf480 100644 --- a/src/blocks/theme/colors/colors.semantics.ts +++ b/src/blocks/theme/colors/colors.semantics.ts @@ -11,6 +11,7 @@ import { dropdownSemantics } from '../semantics/semantics.dropdown'; import { iconSemantics } from '../semantics/semantics.icon'; import { inputSemantics } from '../semantics/semantics.input'; import { radioSemantics } from '../semantics/semantics.radio'; +import { skeletonSemantics } from '../semantics/semantics.skeleton'; import { strokeSemantics } from '../semantics/semantics.stroke'; import { surfaceSemantics } from '../semantics/semantics.surface'; import { switchSemantics } from '../semantics/semantics.switch'; @@ -19,23 +20,69 @@ import { textAreaSemantics } from '../semantics/semantics.textarea'; import { toastSemantics } from '../semantics/semantics.toast'; import { tooltipSemantics } from '../semantics/semantics.tooltip'; +// TODO: find a better way to do this in future +type SemanticKeys = { + buttonPrimary: 'components-button-primary'; + buttonSecondary: 'components-button-secondary'; + buttonTertiary: 'components-button-tertiary'; + buttonOutline: 'components-button-outline'; + buttonDanger: 'components-button-danger'; + buttonDangerSecondary: 'components-button-danger-secondary'; + checkbox: 'components-checkbox'; + dropdown: 'components-dropdown'; + icon: 'icon'; + input: 'components-inputs'; + radio: 'components-radio-button'; + surface: 'surface'; + stroke: 'stroke'; + skeleton: 'components-skeleton-loader'; + text: 'text'; + textArea: 'components-textarea'; + toast: 'components-toast'; + toggle: 'components-toggle-switch'; + tooltip: 'components-tooltip'; +}; + +export const semanticKeys: SemanticKeys = { + buttonPrimary: 'components-button-primary', + buttonSecondary: 'components-button-secondary', + buttonTertiary: 'components-button-tertiary', + buttonOutline: 'components-button-outline', + buttonDanger: 'components-button-danger', + buttonDangerSecondary: 'components-button-danger-secondary', + checkbox: 'components-checkbox', + dropdown: 'components-dropdown', + icon: 'icon', + input: 'components-inputs', + radio: 'components-radio-button', + surface: 'surface', + stroke: 'stroke', + skeleton: 'components-skeleton-loader', + text: 'text', + textArea: 'components-textarea', + toast: 'components-toast', + toggle: 'components-toggle-switch', + tooltip: 'components-tooltip', +}; + export const colorSemantics = { - 'components-button-primary': primaryButtonSemantics, - 'components-button-secondary': secondaryButtonSemantics, - 'components-button-tertiary': tertiaryButtonSemantics, - 'components-button-outline': outlineButtonSemantics, - 'components-button-danger': dangerButtonSemantics, - 'components-button-danger-secondary': dangerSecondaryButtonSemantics, - 'components-checkbox': checkboxSemantics, - 'components-dropdown': dropdownSemantics, - icon: iconSemantics, - 'components-inputs': inputSemantics, - 'components-radio-button': radioSemantics, - surface: surfaceSemantics, - stroke: strokeSemantics, - text: textSemantics, - 'components-textarea': textAreaSemantics, - 'components-toast': toastSemantics, - 'components-toggle-switch': switchSemantics, - 'components-tooltip': tooltipSemantics, + [semanticKeys.buttonPrimary]: primaryButtonSemantics, + [semanticKeys.buttonSecondary]: secondaryButtonSemantics, + [semanticKeys.buttonTertiary]: tertiaryButtonSemantics, + [semanticKeys.buttonOutline]: outlineButtonSemantics, + [semanticKeys.buttonDanger]: dangerButtonSemantics, + [semanticKeys.buttonDangerSecondary]: dangerSecondaryButtonSemantics, + [semanticKeys.checkbox]: checkboxSemantics, + [semanticKeys.dropdown]: dropdownSemantics, + [semanticKeys.icon]: iconSemantics, + [semanticKeys.input]: inputSemantics, + [semanticKeys.radio]: radioSemantics, + [semanticKeys.surface]: surfaceSemantics, + [semanticKeys.stroke]: strokeSemantics, + [semanticKeys.skeleton]: skeletonSemantics, + [semanticKeys.text]: textSemantics, + [semanticKeys.textArea]: textAreaSemantics, + [semanticKeys.toast]: toastSemantics, + [semanticKeys.toggle]: switchSemantics, + [semanticKeys.tooltip]: tooltipSemantics, }; diff --git a/src/blocks/theme/semantics/semantics.button.ts b/src/blocks/theme/semantics/semantics.button.ts index 7f66fa870b..fd625cc34f 100644 --- a/src/blocks/theme/semantics/semantics.button.ts +++ b/src/blocks/theme/semantics/semantics.button.ts @@ -10,13 +10,16 @@ export const primaryButtonSemantics = { 'background-hover': { light: colorBrands['primary-400'], dark: colorBrands['primary-400'] }, 'background-pressed': { light: colorBrands['primary-800'], dark: colorBrands['primary-600'] }, 'background-focus': { light: colorBrands['primary-500'], dark: colorBrands['primary-400'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['white-100'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['white-100'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['primary-700'], dark: colorBrands['primary-200'] }, }; @@ -26,13 +29,16 @@ export const secondaryButtonSemantics = { 'background-hover': { light: colorBrands['neutral-200'], dark: colorBrands['neutral-700'] }, 'background-pressed': { light: colorBrands['neutral-300'], dark: colorBrands['neutral-1000'] }, 'background-focus': { light: colorBrands['neutral-100'], dark: colorBrands['neutral-800'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: colorBrands['neutral-1000'], dark: colorPrimitives['white-100'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorBrands['neutral-800'], dark: colorPrimitives['white-60'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['primary-300'], dark: colorBrands['primary-400'] }, }; @@ -43,13 +49,16 @@ export const tertiaryButtonSemantics = { 'background-hover': { light: colorBrands['neutral-900'], dark: colorBrands['neutral-300'] }, 'background-pressed': { light: colorBrands['neutral-100'], dark: colorPrimitives['gray-1000'] }, 'background-focus': { light: colorBrands['neutral-1000'], dark: colorBrands['neutral-700'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['gray-200'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorBrands['neutral-300'], dark: colorPrimitives['white-50'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['primary-400'], dark: colorBrands['primary-400'] }, }; @@ -59,13 +68,16 @@ export const outlineButtonSemantics = { 'background-hover': { light: colorPrimitives['transparent'], dark: colorPrimitives['transparent'] }, 'background-pressed': { light: colorPrimitives['transparent'], dark: colorPrimitives['transparent'] }, 'background-focus': { light: colorPrimitives['transparent'], dark: colorPrimitives['transparent'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: iconSemantics['primary'].light, dark: iconSemantics['secondary'].dark }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-default': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, 'stroke-focus': { light: colorBrands['primary-300'], dark: colorBrands['primary-400'] }, @@ -78,13 +90,16 @@ export const dangerButtonSemantics = { 'background-hover': { light: colorBrands['danger-500'], dark: colorBrands['danger-400'] }, 'background-pressed': { light: colorBrands['danger-800'], dark: colorBrands['danger-700'] }, 'background-focus': { light: colorBrands['danger-500'], dark: colorBrands['danger-400'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['white-100'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorPrimitives['white-70'], dark: colorPrimitives['white-70'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['danger-800'], dark: colorBrands['danger-600'] }, }; @@ -94,13 +109,16 @@ export const dangerSecondaryButtonSemantics = { 'background-hover': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, 'background-pressed': { light: colorBrands['danger-500'], dark: colorBrands['danger-1000'] }, 'background-focus': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: colorBrands['danger-700'], dark: colorPrimitives['white-100'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorBrands['danger-400'], dark: colorPrimitives['white-70'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['danger-800'], dark: colorBrands['danger-400'] }, }; diff --git a/src/blocks/theme/semantics/semantics.checkbox.ts b/src/blocks/theme/semantics/semantics.checkbox.ts index 28206a3d70..d7bd691611 100644 --- a/src/blocks/theme/semantics/semantics.checkbox.ts +++ b/src/blocks/theme/semantics/semantics.checkbox.ts @@ -5,14 +5,17 @@ import { textSemantics } from './semantics.text'; export const checkboxSemantics = { 'background-default': { light: surfaceSemantics['primary'].light, dark: surfaceSemantics['primary'].dark }, 'background-selected': { light: surfaceSemantics['brand-medium'].light, dark: surfaceSemantics['brand-medium'].dark }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, 'text-secondary': { light: textSemantics['secondary'].light, dark: textSemantics['secondary'].dark }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'stroke-default': { light: textSemantics['brand-medium'].light, dark: textSemantics['brand-medium'].dark }, - 'stroke-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'stroke-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'icon-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['white-100'] }, }; diff --git a/src/blocks/theme/semantics/semantics.dropdown.ts b/src/blocks/theme/semantics/semantics.dropdown.ts index dfc5a63318..932a53be1b 100644 --- a/src/blocks/theme/semantics/semantics.dropdown.ts +++ b/src/blocks/theme/semantics/semantics.dropdown.ts @@ -10,21 +10,30 @@ export const dropdownSemantics = { 'background-hover': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-pressed': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-focus': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'background-success': { light: colorBrands['success-100'], dark: colorBrands['success-200'] }, 'background-danger': { light: colorBrands['danger-100'], dark: colorBrands['danger-200'] }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, 'text-placeholder': { light: colorBrands['neutral-400'], dark: colorBrands['neutral-600'] }, 'text-secondary': { light: colorBrands['neutral-600'], dark: colorBrands['neutral-500'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, - 'text-success': { light: textSemantics['success-bold'].light, dark: textSemantics['success-subtle'].dark }, - 'text-danger': { light: textSemantics['danger-bold'].light, dark: textSemantics['danger-subtle'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, + 'text-success': { + light: textSemantics['state-success-bold'].light, + dark: textSemantics['state-success-subtle'].dark, + }, + 'text-danger': { light: textSemantics['state-danger-bold'].light, dark: textSemantics['state-danger-subtle'].dark }, 'icon-default': { light: iconSemantics['tertiary'].light, dark: iconSemantics['secondary'].dark }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, - 'icon-success': { light: iconSemantics['success-bold'].light, dark: iconSemantics['success-subtle'].dark }, - 'icon-danger': { light: iconSemantics['danger-bold'].light, dark: iconSemantics['danger-subtle'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, + 'icon-success': { + light: iconSemantics['state-success-bold'].light, + dark: iconSemantics['state-success-subtle'].dark, + }, + 'icon-danger': { light: iconSemantics['state-danger-bold'].light, dark: iconSemantics['state-danger-subtle'].dark }, 'stroke-default': { light: strokeSemantics['secondary'].light, dark: strokeSemantics['secondary'].dark }, 'stroke-hover': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, diff --git a/src/blocks/theme/semantics/semantics.icon.ts b/src/blocks/theme/semantics/semantics.icon.ts index 971ea38aff..003bd4b95a 100644 --- a/src/blocks/theme/semantics/semantics.icon.ts +++ b/src/blocks/theme/semantics/semantics.icon.ts @@ -13,17 +13,17 @@ export const iconSemantics = { // icon states - 'success-subtle': { light: colorBrands['success-200'], dark: colorBrands['success-600'] }, - 'success-bold': { light: colorBrands['success-600'], dark: colorBrands['success-300'] }, + 'state-success-subtle': { light: colorBrands['success-200'], dark: colorBrands['success-600'] }, + 'state-success-bold': { light: colorBrands['success-600'], dark: colorBrands['success-300'] }, - 'info-subtle': { light: colorBrands['info-200'], dark: colorBrands['info-600'] }, - 'info-bold': { light: colorBrands['info-600'], dark: colorBrands['info-200'] }, + 'state-info-subtle': { light: colorBrands['info-200'], dark: colorBrands['info-600'] }, + 'state-info-bold': { light: colorBrands['info-600'], dark: colorBrands['info-200'] }, - 'warning-subtle': { light: colorBrands['warning-200'], dark: colorBrands['warning-600'] }, - 'warning-bold': { light: colorBrands['warning-600'], dark: colorBrands['warning-200'] }, + 'state-warning-subtle': { light: colorBrands['warning-200'], dark: colorBrands['warning-600'] }, + 'state-warning-bold': { light: colorBrands['warning-600'], dark: colorBrands['warning-200'] }, - 'danger-subtle': { light: colorBrands['danger-200'], dark: colorBrands['danger-600'] }, - 'danger-bold': { light: colorBrands['danger-600'], dark: colorBrands['danger-300'] }, + 'state-danger-subtle': { light: colorBrands['danger-200'], dark: colorBrands['danger-600'] }, + 'state-danger-bold': { light: colorBrands['danger-600'], dark: colorBrands['danger-300'] }, - disabled: { light: colorBrands['neutral-400'], dark: colorBrands['neutral-700'] }, + 'state-disabled': { light: colorBrands['neutral-400'], dark: colorBrands['neutral-700'] }, }; diff --git a/src/blocks/theme/semantics/semantics.input.ts b/src/blocks/theme/semantics/semantics.input.ts index 2c75b96dbf..e1e8221bef 100644 --- a/src/blocks/theme/semantics/semantics.input.ts +++ b/src/blocks/theme/semantics/semantics.input.ts @@ -10,21 +10,30 @@ export const inputSemantics = { 'background-hover': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-pressed': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-focus': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'background-success': { light: colorBrands['success-100'], dark: colorBrands['success-200'] }, 'background-danger': { light: colorBrands['danger-100'], dark: colorBrands['danger-200'] }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, 'text-placeholder': { light: colorBrands['neutral-400'], dark: colorBrands['neutral-600'] }, 'text-secondary': { light: colorBrands['neutral-600'], dark: colorBrands['neutral-500'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, - 'text-success': { light: textSemantics['success-bold'].light, dark: textSemantics['success-subtle'].dark }, - 'text-danger': { light: textSemantics['danger-bold'].light, dark: textSemantics['danger-subtle'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, + 'text-success': { + light: textSemantics['state-success-bold'].light, + dark: textSemantics['state-success-subtle'].dark, + }, + 'text-danger': { light: textSemantics['state-danger-bold'].light, dark: textSemantics['state-danger-subtle'].dark }, 'icon-default': { light: iconSemantics['tertiary'].light, dark: iconSemantics['secondary'].dark }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, - 'icon-success': { light: iconSemantics['success-bold'].light, dark: iconSemantics['success-subtle'].dark }, - 'icon-danger': { light: iconSemantics['danger-bold'].light, dark: iconSemantics['danger-subtle'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, + 'icon-success': { + light: iconSemantics['state-success-bold'].light, + dark: iconSemantics['state-success-subtle'].dark, + }, + 'icon-danger': { light: iconSemantics['state-danger-bold'].light, dark: iconSemantics['state-danger-subtle'].dark }, 'stroke-default': { light: strokeSemantics['secondary'].light, dark: strokeSemantics['secondary'].dark }, 'stroke-hover': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, diff --git a/src/blocks/theme/semantics/semantics.radio.ts b/src/blocks/theme/semantics/semantics.radio.ts index 58285e9ca5..7e0093180a 100644 --- a/src/blocks/theme/semantics/semantics.radio.ts +++ b/src/blocks/theme/semantics/semantics.radio.ts @@ -5,12 +5,15 @@ import { textSemantics } from './semantics.text'; export const radioSemantics = { 'background-default': { light: surfaceSemantics['primary'].light, dark: surfaceSemantics['primary'].dark }, 'background-selected': { light: surfaceSemantics['brand-medium'].light, dark: surfaceSemantics['brand-medium'].dark }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, 'text-secondary': { light: textSemantics['secondary'].light, dark: textSemantics['secondary'].dark }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, 'stroke-default': { light: strokeSemantics['brand-medium'].light, dark: strokeSemantics['brand-medium'].dark }, - 'stroke-disabled': { light: strokeSemantics['disabled'].light, dark: strokeSemantics['disabled'].dark }, + 'stroke-disabled': { light: strokeSemantics['state-disabled'].light, dark: strokeSemantics['state-disabled'].dark }, }; diff --git a/src/blocks/theme/semantics/semantics.skeleton.ts b/src/blocks/theme/semantics/semantics.skeleton.ts new file mode 100644 index 0000000000..30a7095633 --- /dev/null +++ b/src/blocks/theme/semantics/semantics.skeleton.ts @@ -0,0 +1,12 @@ +import { colorBrands } from '../colors/colors.brands'; + +export const skeletonSemantics = { + 'gradient-light': { + light: colorBrands['neutral-200'], + dark: colorBrands['neutral-800'], + }, + 'gradient-dark': { + light: colorBrands['neutral-300'], + dark: colorBrands['neutral-700'], + }, +}; diff --git a/src/blocks/theme/semantics/semantics.stroke.ts b/src/blocks/theme/semantics/semantics.stroke.ts index b5dc678948..67e0282203 100644 --- a/src/blocks/theme/semantics/semantics.stroke.ts +++ b/src/blocks/theme/semantics/semantics.stroke.ts @@ -11,21 +11,21 @@ export const strokeSemantics = { // stroke states - 'success-subtle': { light: colorBrands['success-300'], dark: colorBrands['success-500'] }, - 'success-bold': { light: colorBrands['success-700'], dark: colorBrands['success-300'] }, + 'state-success-subtle': { light: colorBrands['success-300'], dark: colorBrands['success-500'] }, + 'state-success-bold': { light: colorBrands['success-700'], dark: colorBrands['success-300'] }, - 'info-subtle': { light: colorBrands['info-300'], dark: colorBrands['info-500'] }, - 'info-bold': { light: colorBrands['info-700'], dark: colorBrands['info-300'] }, + 'state-info-subtle': { light: colorBrands['info-300'], dark: colorBrands['info-500'] }, + 'state-info-bold': { light: colorBrands['info-700'], dark: colorBrands['info-300'] }, - 'warning-subtle': { light: colorBrands['warning-300'], dark: colorBrands['warning-500'] }, - 'warning-bold': { light: colorBrands['warning-700'], dark: colorBrands['warning-300'] }, + 'state-warning-subtle': { light: colorBrands['warning-300'], dark: colorBrands['warning-500'] }, + 'state-warning-bold': { light: colorBrands['warning-700'], dark: colorBrands['warning-300'] }, - 'danger-subtle': { light: colorBrands['danger-300'], dark: colorBrands['danger-500'] }, - 'danger-bold': { light: colorBrands['danger-500'], dark: colorBrands['danger-300'] }, + 'state-danger-subtle': { light: colorBrands['danger-300'], dark: colorBrands['danger-500'] }, + 'state-danger-bold': { light: colorBrands['danger-500'], dark: colorBrands['danger-300'] }, - hover: { light: colorBrands['success-300'], dark: colorBrands['success-800'] }, - focus: { light: colorBrands['success-300'], dark: colorBrands['success-300'] }, + 'state-hover': { light: colorBrands['success-300'], dark: colorBrands['success-800'] }, + 'state-focus': { light: colorBrands['success-300'], dark: colorBrands['success-300'] }, - pressed: { light: colorBrands['info-800'], dark: colorBrands['info-300'] }, - disabled: { light: colorBrands['info-300'], dark: colorBrands['info-800'] }, + 'state-pressed': { light: colorBrands['info-800'], dark: colorBrands['info-300'] }, + 'state-disabled': { light: colorBrands['info-300'], dark: colorBrands['info-800'] }, }; diff --git a/src/blocks/theme/semantics/semantics.surface.ts b/src/blocks/theme/semantics/semantics.surface.ts index da6792ffbc..2930a9c14c 100644 --- a/src/blocks/theme/semantics/semantics.surface.ts +++ b/src/blocks/theme/semantics/semantics.surface.ts @@ -15,19 +15,21 @@ export const surfaceSemantics = { 'glass-subtle': { light: colorPrimitives['white-80'], dark: colorPrimitives['black-80'] }, 'glass-bold': { light: colorPrimitives['white-50'], dark: colorPrimitives['black-50'] }, + transparent: { light: colorPrimitives['transparent'], dark: colorPrimitives['transparent'] }, + // surface states - 'success-subtle': { light: colorBrands['success-100'], dark: colorBrands['success-500'] }, - 'success-bold': { light: colorBrands['success-500'], dark: colorBrands['success-200'] }, + 'state-success-subtle': { light: colorBrands['success-100'], dark: colorBrands['success-500'] }, + 'state-success-bold': { light: colorBrands['success-500'], dark: colorBrands['success-200'] }, - 'info-subtle': { light: colorBrands['info-100'], dark: colorBrands['info-500'] }, - 'info-bold': { light: colorBrands['info-500'], dark: colorBrands['info-200'] }, + 'state-info-subtle': { light: colorBrands['info-100'], dark: colorBrands['info-500'] }, + 'state-info-bold': { light: colorBrands['info-500'], dark: colorBrands['info-200'] }, - 'warning-subtle': { light: colorBrands['warning-100'], dark: colorBrands['warning-500'] }, - 'warning-bold': { light: colorBrands['warning-500'], dark: colorBrands['warning-200'] }, + 'state-warning-subtle': { light: colorBrands['warning-100'], dark: colorBrands['warning-500'] }, + 'state-warning-bold': { light: colorBrands['warning-500'], dark: colorBrands['warning-200'] }, - 'danger-subtle': { light: colorBrands['danger-100'], dark: colorBrands['danger-800'] }, - 'danger-bold': { light: colorBrands['danger-500'], dark: colorBrands['danger-200'] }, + 'state-danger-subtle': { light: colorBrands['danger-100'], dark: colorBrands['danger-800'] }, + 'state-danger-bold': { light: colorBrands['danger-500'], dark: colorBrands['danger-200'] }, - disabled: { light: colorBrands['neutral-200'], dark: colorBrands['neutral-800'] }, + 'state-disabled': { light: colorBrands['neutral-200'], dark: colorBrands['neutral-800'] }, }; diff --git a/src/blocks/theme/semantics/semantics.switch.ts b/src/blocks/theme/semantics/semantics.switch.ts index 6bf08080c7..10868a8161 100644 --- a/src/blocks/theme/semantics/semantics.switch.ts +++ b/src/blocks/theme/semantics/semantics.switch.ts @@ -9,10 +9,13 @@ export const switchSemantics = { 'background-unselected': { light: colorBrands['neutral-300'], dark: colorBrands['neutral-800'] }, 'background-hover': { light: colorBrands['primary-500'], dark: colorBrands['primary-500'] }, 'background-focus': { light: colorBrands['primary-500'], dark: colorBrands['primary-600'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'icon-default': { light: colorPrimitives['white-100'], dark: colorPrimitives['white-100'] }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, 'stroke-focus': { light: colorBrands['primary-300'], dark: colorBrands['primary-500'] }, 'stroke-default': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, diff --git a/src/blocks/theme/semantics/semantics.text.ts b/src/blocks/theme/semantics/semantics.text.ts index 192693fd37..f59a2f9230 100644 --- a/src/blocks/theme/semantics/semantics.text.ts +++ b/src/blocks/theme/semantics/semantics.text.ts @@ -19,17 +19,17 @@ export const textSemantics = { // text states - 'success-subtle': { light: colorBrands['success-100'], dark: colorBrands['success-700'] }, - 'success-bold': { light: colorBrands['success-500'], dark: colorBrands['success-300'] }, + 'state-success-subtle': { light: colorBrands['success-100'], dark: colorBrands['success-700'] }, + 'state-success-bold': { light: colorBrands['success-500'], dark: colorBrands['success-300'] }, - 'info-subtle': { light: colorBrands['info-100'], dark: colorBrands['info-700'] }, - 'info-bold': { light: colorBrands['info-700'], dark: colorBrands['info-100'] }, + 'state-info-subtle': { light: colorBrands['info-100'], dark: colorBrands['info-700'] }, + 'state-info-bold': { light: colorBrands['info-700'], dark: colorBrands['info-100'] }, - 'warning-subtle': { light: colorBrands['warning-100'], dark: colorBrands['warning-700'] }, + 'state-warning-subtle': { light: colorBrands['warning-100'], dark: colorBrands['warning-700'] }, 'warning-bold': { light: colorBrands['warning-700'], dark: colorBrands['warning-100'] }, - 'danger-subtle': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, - 'danger-bold': { light: colorBrands['danger-700'], dark: colorBrands['danger-300'] }, + 'state-danger-subtle': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, + 'state-danger-bold': { light: colorBrands['danger-700'], dark: colorBrands['danger-300'] }, - disabled: { light: colorBrands['neutral-400'], dark: colorBrands['neutral-700'] }, + 'state-disabled': { light: colorBrands['neutral-400'], dark: colorBrands['neutral-700'] }, }; diff --git a/src/blocks/theme/semantics/semantics.textarea.ts b/src/blocks/theme/semantics/semantics.textarea.ts index 9a64015844..8948357c39 100644 --- a/src/blocks/theme/semantics/semantics.textarea.ts +++ b/src/blocks/theme/semantics/semantics.textarea.ts @@ -10,21 +10,30 @@ export const textAreaSemantics = { 'background-hover': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-pressed': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, 'background-focus': { light: colorPrimitives['white-100'], dark: colorBrands['neutral-800'] }, - 'background-disabled': { light: surfaceSemantics['disabled'].light, dark: surfaceSemantics['disabled'].dark }, + 'background-disabled': { + light: surfaceSemantics['state-disabled'].light, + dark: surfaceSemantics['state-disabled'].dark, + }, 'background-success': { light: colorBrands['success-100'], dark: colorBrands['success-200'] }, 'background-danger': { light: colorBrands['danger-100'], dark: colorBrands['danger-200'] }, 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, 'text-placeholder': { light: colorBrands['neutral-400'], dark: colorBrands['neutral-600'] }, 'text-secondary': { light: colorBrands['neutral-600'], dark: colorBrands['neutral-500'] }, - 'text-disabled': { light: textSemantics['disabled'].light, dark: textSemantics['disabled'].dark }, - 'text-success': { light: textSemantics['success-bold'].light, dark: textSemantics['success-subtle'].dark }, - 'text-danger': { light: textSemantics['danger-bold'].light, dark: textSemantics['danger-subtle'].dark }, + 'text-disabled': { light: textSemantics['state-disabled'].light, dark: textSemantics['state-disabled'].dark }, + 'text-success': { + light: textSemantics['state-success-bold'].light, + dark: textSemantics['state-success-subtle'].dark, + }, + 'text-danger': { light: textSemantics['state-danger-bold'].light, dark: textSemantics['state-danger-subtle'].dark }, 'icon-default': { light: iconSemantics['tertiary'].light, dark: iconSemantics['secondary'].dark }, - 'icon-disabled': { light: iconSemantics['disabled'].light, dark: iconSemantics['disabled'].dark }, - 'icon-success': { light: iconSemantics['success-bold'].light, dark: iconSemantics['success-subtle'].dark }, - 'icon-danger': { light: iconSemantics['danger-bold'].light, dark: iconSemantics['danger-subtle'].dark }, + 'icon-disabled': { light: iconSemantics['state-disabled'].light, dark: iconSemantics['state-disabled'].dark }, + 'icon-success': { + light: iconSemantics['state-success-bold'].light, + dark: iconSemantics['state-success-subtle'].dark, + }, + 'icon-danger': { light: iconSemantics['state-danger-bold'].light, dark: iconSemantics['state-danger-subtle'].dark }, 'stroke-default': { light: strokeSemantics['secondary'].light, dark: strokeSemantics['secondary'].dark }, 'stroke-hover': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, diff --git a/src/blocks/theme/semantics/semantics.toast.ts b/src/blocks/theme/semantics/semantics.toast.ts index 2fe99313dc..41cb839d57 100644 --- a/src/blocks/theme/semantics/semantics.toast.ts +++ b/src/blocks/theme/semantics/semantics.toast.ts @@ -7,10 +7,19 @@ import { textSemantics } from './semantics.text'; export const toastSemantics = { 'background-default': { light: surfaceSemantics['primary'].light, dark: surfaceSemantics['primary'].dark }, - 'background-success': { light: colorPrimitives['white-100'], dark: surfaceSemantics['success-bold'].dark }, - 'background-warning': { light: surfaceSemantics['danger-bold'].light, dark: surfaceSemantics['danger-bold'].dark }, - 'background-error': { light: surfaceSemantics['warning-bold'].light, dark: surfaceSemantics['warning-bold'].dark }, - 'background-info': { light: surfaceSemantics['info-bold'].light, dark: surfaceSemantics['info-bold'].dark }, + 'background-success': { light: colorPrimitives['white-100'], dark: surfaceSemantics['state-success-bold'].dark }, + 'background-warning': { + light: surfaceSemantics['state-danger-bold'].light, + dark: surfaceSemantics['state-danger-bold'].dark, + }, + 'background-error': { + light: surfaceSemantics['state-warning-bold'].light, + dark: surfaceSemantics['state-warning-bold'].dark, + }, + 'background-info': { + light: surfaceSemantics['state-info-bold'].light, + dark: surfaceSemantics['state-info-bold'].dark, + }, 'stroke-bg': { light: strokeSemantics['secondary'].light, dark: strokeSemantics['secondary'].dark }, diff --git a/src/blocks/tooltip/Tooltip.tsx b/src/blocks/tooltip/Tooltip.tsx index b3909431ef..6d3e7553d3 100644 --- a/src/blocks/tooltip/Tooltip.tsx +++ b/src/blocks/tooltip/Tooltip.tsx @@ -3,10 +3,9 @@ import styled from 'styled-components'; import * as RadixTooltip from '@radix-ui/react-tooltip'; import type { TooltipProps } from './Tooltip.types'; import { getTooltipPositionalCSS } from './Tooltip.utils'; -import { getBlocksColor } from 'blocks/Blocks.utils'; import { tooltipCSSPropsKeys } from './Tooltip.constants'; import { useIsVisible } from 'common'; -import { Text } from 'blocks/text'; +import { textVariants } from '../text'; const RadixTooltipContent = styled(RadixTooltip.Content).withConfig({ shouldForwardProp: (prop) => !tooltipCSSPropsKeys.includes(prop as keyof TooltipProps), @@ -19,8 +18,8 @@ const RadixTooltipContent = styled(RadixTooltip.Content).withConfig({ border-radius: var(--r3); font-family: var(--font-family); word-wrap: break-word; - color: ${getBlocksColor('light', 'white')}; - background-color: ${getBlocksColor('light', 'black')}; + color: var(--text-primary-inverse); + background-color: var(--surface-primary-inverse); /* Tooltip non-responsive styles */ width: ${({ width }) => width}; @@ -33,6 +32,24 @@ const RadixTooltipContent = styled(RadixTooltip.Content).withConfig({ ${(props) => props.css || ''}; `; +const StyledTitle = styled.span` + color: var(--text-primary-inverse); + font-family: var(--font-family); + font-size: ${textVariants['c-semibold'].fontSize}; + font-style: ${textVariants['c-semibold'].fontStyle}; + font-weight: ${textVariants['c-semibold'].fontWeight}; + line-height: ${textVariants['c-semibold'].lineHeight}; +`; + +const StyledDescription = styled.span` + color: var(--text-primary-inverse); + font-family: var(--font-family); + font-size: ${textVariants['c-regular'].fontSize}; + font-style: ${textVariants['c-regular'].fontStyle}; + font-weight: ${textVariants['c-regular'].fontWeight}; + line-height: ${textVariants['c-regular'].lineHeight}; +`; + const Tooltip: FC = ({ width = 'max-content', maxWidth = '274px', @@ -89,15 +106,8 @@ const Tooltip: FC = ({ overlay ) : ( <> - {title && {title}} - {description && ( - - {description} - - )} + {title && {title}} + {description && {description}} )} diff --git a/src/common/components/ContentLayout.tsx b/src/common/components/ContentLayout.tsx index 30a78d8853..f8e9ba4ba5 100644 --- a/src/common/components/ContentLayout.tsx +++ b/src/common/components/ContentLayout.tsx @@ -20,8 +20,8 @@ const ContentLayout: FC = ({ children }) => { justifyContent="center" alignSelf="center" maxWidth="1200px" - backgroundColor="transparent" - width="calc(100% - (var(--s4) * 2))" + backgroundColor="surface-transparent" + width="calc(100% - (var(--spacing-sm) * 2))" css={css` flex: initial; margin: 0 0 auto 0; diff --git a/src/components/chat/unlockProfile/UnlockProfile.tsx b/src/components/chat/unlockProfile/UnlockProfile.tsx index cbb75ac177..f655eaf043 100644 --- a/src/components/chat/unlockProfile/UnlockProfile.tsx +++ b/src/components/chat/unlockProfile/UnlockProfile.tsx @@ -117,7 +117,7 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps icon={ } diff --git a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx index 85403f7690..a6ddd22d03 100644 --- a/src/components/dropdowns/UpdateNotifSettingDropdown.tsx +++ b/src/components/dropdowns/UpdateNotifSettingDropdown.tsx @@ -152,7 +152,6 @@ const UpdateNotifSettingDropdownContainer: FC diff --git a/src/modules/claimGalxe/NFTSuccessModal.tsx b/src/modules/claimGalxe/NFTSuccessModal.tsx index 4aeef47c1a..8808b50f68 100644 --- a/src/modules/claimGalxe/NFTSuccessModal.tsx +++ b/src/modules/claimGalxe/NFTSuccessModal.tsx @@ -19,8 +19,8 @@ const NFTSuccessModal = ({ onClose }: ModalInnerComponentType) => { display="inline-flex" flexDirection="column" alignItems="center" - gap="s6" - padding="s3 s1 s6 s1" + gap="spacing-md" + padding="spacing-xs spacing-xxxs spacing-md spacing-xxxs" > { icon={ } onClick={() => { @@ -49,7 +49,6 @@ const NFTSuccessModal = ({ onClose }: ModalInnerComponentType) => { Join the exclusive Push alpha community for further updates! @@ -58,7 +57,7 @@ const NFTSuccessModal = ({ onClose }: ModalInnerComponentType) => { display="flex" alignItems="center" flexDirection="column" - gap="s3" + gap="spacing-xs" > { display="flex" alignItems="center" flexDirection="column" - gap="s6" + gap="spacing-md" > Push Alpha Community diff --git a/src/modules/dashboard/Dashboard.tsx b/src/modules/dashboard/Dashboard.tsx index 2b9473b746..72c4e5eb99 100644 --- a/src/modules/dashboard/Dashboard.tsx +++ b/src/modules/dashboard/Dashboard.tsx @@ -17,8 +17,8 @@ const Dashboard: FC = () => { @@ -31,7 +31,7 @@ const Dashboard: FC = () => { diff --git a/src/modules/dashboard/components/ChannelListItem.tsx b/src/modules/dashboard/components/ChannelListItem.tsx index d784bec044..b169ac8e55 100644 --- a/src/modules/dashboard/components/ChannelListItem.tsx +++ b/src/modules/dashboard/components/ChannelListItem.tsx @@ -79,16 +79,16 @@ const ChannelListItem: FC = ({ = ({ > {channelDetails?.name} {!!channelDetails?.verified_status && ( - + )} = ({ {formatSubscriberCount(channelDetails?.subscriber_count || 0)} subscribers diff --git a/src/modules/dashboard/components/ChannelTabsSection.tsx b/src/modules/dashboard/components/ChannelTabsSection.tsx index 940e08afc5..24642021ed 100644 --- a/src/modules/dashboard/components/ChannelTabsSection.tsx +++ b/src/modules/dashboard/components/ChannelTabsSection.tsx @@ -1,14 +1,9 @@ -// React and other libraries import { useEffect, useState } from 'react'; +import { css } from 'styled-components'; -//Hooks +import { Box, Text } from 'blocks'; import { useAccount } from 'hooks'; - -// Constants import { ChannelTabs } from '../Dashboard.types'; - -// Components -import { Box, Text } from 'blocks'; import { TrendingChannelsList } from './TrendingChannelsList'; import { SubscribedChannelsList } from './SubscribedChannelsList'; import { dahboardChannelTabs } from '../Dashboard.constants'; @@ -35,18 +30,19 @@ const ChannelTabsSection = () => { display="flex" flexDirection="column" width={{ ml: '100%', initial: '50%' }} - gap="s4" + gap="spacing-sm" > + {/* TODO: Use Tabs component here */} {dahboardChannelTabs?.map((channelTab, index) => { @@ -61,17 +57,21 @@ const ChannelTabsSection = () => { justifyContent="center" width={{ ll: '100%' }} alignItems="center" - padding="s2 s3" - borderRadius="r4" - backgroundColor={ - selectedChannelTab === channelTab.value ? { dark: 'gray-800', light: 'white' } : 'transparent' - } + padding="spacing-xxs spacing-xs" + borderRadius="radius-sm" onClick={() => setSelectedChannelTab(channelTab.value)} + css={css` + background-color: var( + --${selectedChannelTab === channelTab.value ? 'components-button-tertiary-background-inverse' : 'surface-transparent'} + ); + `} > {channelTab?.label} @@ -84,11 +84,11 @@ const ChannelTabsSection = () => { display="flex" flexDirection="column" overflow="hidden auto" - borderRadius="r6" + borderRadius="radius-md" minHeight="285px" maxHeight="285px" - border={{ light: '1px solid gray-200', dark: '1px solid gray-800' }} - padding="s2 s4" + border="border-sm solid stroke-secondary" + padding="spacing-xxs spacing-sm" > {selectedChannelTab === 'trending' && } {selectedChannelTab === 'subscribed' && } diff --git a/src/modules/dashboard/components/ChannelVariantsSection.tsx b/src/modules/dashboard/components/ChannelVariantsSection.tsx index cf07800a6a..0a33e60642 100644 --- a/src/modules/dashboard/components/ChannelVariantsSection.tsx +++ b/src/modules/dashboard/components/ChannelVariantsSection.tsx @@ -12,11 +12,11 @@ export type ChannelVariantsSectionProps = {}; const ChannelVariantsSection: FC = () => { return ( @@ -25,10 +25,10 @@ const ChannelVariantsSection: FC = () => { display="flex" flexDirection="column" width={{ ml: '100%', initial: '50%' }} - gap="s6" + gap="spacing-md" > Recommended Chats diff --git a/src/modules/dashboard/components/DashboardHeader.tsx b/src/modules/dashboard/components/DashboardHeader.tsx index 9b297ca9d9..3d6a3510cc 100644 --- a/src/modules/dashboard/components/DashboardHeader.tsx +++ b/src/modules/dashboard/components/DashboardHeader.tsx @@ -15,17 +15,17 @@ const DashboardHeader: FC = ({ setSubHeaderVisibility, sho flexDirection="row" display="flex" justifyContent="space-between" - margin={showSubHeader ? 's0' : 's0 s0 s4 s0'} + margin={showSubHeader ? 'spacing-none' : 'spacing-none spacing-none spacing-sm spacing-none'} > 👋 GM! Welcome to Push. @@ -41,7 +41,7 @@ const DashboardHeader: FC = ({ setSubHeaderVisibility, sho icon={ } > @@ -50,7 +50,7 @@ const DashboardHeader: FC = ({ setSubHeaderVisibility, sho icon={ } > diff --git a/src/modules/dashboard/components/DashboardSubHeader.tsx b/src/modules/dashboard/components/DashboardSubHeader.tsx index e811ee97fb..01c44b7573 100644 --- a/src/modules/dashboard/components/DashboardSubHeader.tsx +++ b/src/modules/dashboard/components/DashboardSubHeader.tsx @@ -1,4 +1,3 @@ - // React + Web3 Essentials import { FC } from 'react'; @@ -6,9 +5,18 @@ import { FC } from 'react'; import { useBlocksTheme } from 'blocks/Blocks.hooks'; // Components -import { Box, ChatDark, ChatIllustration, Communication, CommunicationDark, Notification, NotificationDark, Text } from 'blocks'; +import { + Box, + ChatDark, + ChatIllustration, + Communication, + CommunicationDark, + Notification, + NotificationDark, + Text, +} from 'blocks'; -export type DashboardSubHeaderProps = {} +export type DashboardSubHeaderProps = {}; const DashboardSubHeader: FC = () => { const { mode } = useBlocksTheme(); @@ -17,20 +25,22 @@ const DashboardSubHeader: FC = () => { - {mode === 'dark' ? : } - + Your communication super app for web3 & blockchain. @@ -38,12 +48,15 @@ const DashboardSubHeader: FC = () => { {mode === 'dark' ? : } - + Subscribe and get notifications from your favorite protocols. @@ -51,16 +64,18 @@ const DashboardSubHeader: FC = () => { {mode === 'dark' ? : } - + Send and receive chats. Join vibrant communities. - ); }; diff --git a/src/modules/dashboard/components/EmptyChannelList.tsx b/src/modules/dashboard/components/EmptyChannelList.tsx index 8449d6443f..1dd8e7fbc6 100644 --- a/src/modules/dashboard/components/EmptyChannelList.tsx +++ b/src/modules/dashboard/components/EmptyChannelList.tsx @@ -13,24 +13,24 @@ const EmptyChannelList: FC = ({ heading, subHeading }) => display="flex" flexDirection="column" alignItems="center" - gap="s4" - margin="s9 s0 s0 s0" + gap="spacing-sm" + margin="spacing-xl spacing-none spacing-none spacing-none" > {heading && ( {heading} @@ -39,7 +39,7 @@ const EmptyChannelList: FC = ({ heading, subHeading }) => {subHeading} diff --git a/src/modules/dashboard/components/FeaturedChannels.tsx b/src/modules/dashboard/components/FeaturedChannels.tsx index ac46034837..4629d4765d 100644 --- a/src/modules/dashboard/components/FeaturedChannels.tsx +++ b/src/modules/dashboard/components/FeaturedChannels.tsx @@ -22,26 +22,19 @@ const FeaturedChannels: FC = () => { return ( - {showMobileAndTabletView ? ( - - + ) : ( - + )} - ); }; diff --git a/src/modules/dashboard/components/FeaturedChannelsList.tsx b/src/modules/dashboard/components/FeaturedChannelsList.tsx index 28e6f27bfa..964215c8a5 100644 --- a/src/modules/dashboard/components/FeaturedChannelsList.tsx +++ b/src/modules/dashboard/components/FeaturedChannelsList.tsx @@ -25,14 +25,13 @@ const FeaturedChannelsList: FC = ({ featuredChannelsL const CarouselOptions: EmblaOptionsType = { slidesToScroll: isTablet || isXsLaptop ? 2 : 3, - align: 'start' + align: 'start', }; const [emblaRef, emblaApi] = useEmblaCarousel(CarouselOptions); - const { prevBtnDisabled, nextBtnDisabled, onPrevButtonClick, onNextButtonClick } = useFeaturedChannelsCarouselButtons( - emblaApi - ); + const { prevBtnDisabled, nextBtnDisabled, onPrevButtonClick, onNextButtonClick } = + useFeaturedChannelsCarouselButtons(emblaApi); return ( <> @@ -40,30 +39,40 @@ const FeaturedChannelsList: FC = ({ featuredChannelsL display="flex" justifyContent="space-between" flexDirection={{ tb: 'column' }} - gap={{ tb: 's3' }} - width='100%' + gap={{ tb: 'spacing-xs' }} + width="100%" > - - + Featured Notification Channels - + View All - + {/* Previous Button */} } > @@ -71,7 +80,7 @@ const FeaturedChannelsList: FC = ({ featuredChannelsL {/* Next button */} } > @@ -87,7 +96,7 @@ const FeaturedChannelsList: FC = ({ featuredChannelsL ref={emblaRef} > = (props) => { = (props) => { = (props) => { = (props) => { > {channelDetails?.name} @@ -161,7 +161,7 @@ const FeaturedChannelsListItem: FC = (props) => { )} @@ -186,7 +186,7 @@ const FeaturedChannelsListItem: FC = (props) => { > {formatSubscriberCount(channelDetails?.subscriber_count)} subscribers @@ -199,7 +199,7 @@ const FeaturedChannelsListItem: FC = (props) => { > {channelDetails?.info} diff --git a/src/modules/dashboard/components/FeaturedChannelsMobileViewList.tsx b/src/modules/dashboard/components/FeaturedChannelsMobileViewList.tsx index 2f7b6bfd88..bd5d0f9b09 100644 --- a/src/modules/dashboard/components/FeaturedChannelsMobileViewList.tsx +++ b/src/modules/dashboard/components/FeaturedChannelsMobileViewList.tsx @@ -39,12 +39,12 @@ const FeaturedChannelsMobileViewList: FC = display="flex" justifyContent="space-between" flexDirection={{ tb: 'column' }} - gap={{ tb: 's3' }} - alignSelf='baseline' + gap={{ tb: 'spacing-xs' }} + alignSelf="baseline" > Featured Notification Channels @@ -53,13 +53,13 @@ const FeaturedChannelsMobileViewList: FC = display="flex" flexDirection="row" alignItems="center" - gap="s4" + gap="spacing-sm" > View All @@ -72,7 +72,7 @@ const FeaturedChannelsMobileViewList: FC = {/* Previous Button */} } > @@ -80,7 +80,7 @@ const FeaturedChannelsMobileViewList: FC = {/* Next button */} } > @@ -97,7 +97,7 @@ const FeaturedChannelsMobileViewList: FC = ref={emblaRef} > = css={css` flex: 0 0 100%; `} - gap="s6" + gap="spacing-md" display="flex" flexDirection="column" > diff --git a/src/modules/dashboard/components/RecommendedChatListItem.tsx b/src/modules/dashboard/components/RecommendedChatListItem.tsx index a98e51c3e1..9c0bac9aa6 100644 --- a/src/modules/dashboard/components/RecommendedChatListItem.tsx +++ b/src/modules/dashboard/components/RecommendedChatListItem.tsx @@ -19,7 +19,7 @@ const RecommendedChatListItem: FC = ({ chat }) => > @@ -30,13 +30,13 @@ const RecommendedChatListItem: FC = ({ chat }) => > {chat?.payload?.chatParticipant} {chat?.payload?.chatMsg?.messageContent} diff --git a/src/modules/dashboard/components/RecommendedChatsList.tsx b/src/modules/dashboard/components/RecommendedChatsList.tsx index 46f277e3c0..f7036bad2d 100644 --- a/src/modules/dashboard/components/RecommendedChatsList.tsx +++ b/src/modules/dashboard/components/RecommendedChatsList.tsx @@ -10,10 +10,10 @@ const RecommendedChatsList = () => { {recommendedChatList.map((item, index) => { return ( diff --git a/src/modules/dashboard/components/RewardsSection.tsx b/src/modules/dashboard/components/RewardsSection.tsx index e8542444f1..5ee4a95b8e 100644 --- a/src/modules/dashboard/components/RewardsSection.tsx +++ b/src/modules/dashboard/components/RewardsSection.tsx @@ -8,9 +8,9 @@ const RewardsSection = () => { return ( { display="flex" flexDirection={{ ml: 'column' }} alignItems="center" - gap="s3" + gap="spacing-xs" > { return ( Verified By: { > { flexDirection="column" alignItems="center" > - Complete Verification + + Complete Verification + Continue to complete the verification process. diff --git a/src/modules/pointsVault/components/PointsVaultApprovedList.tsx b/src/modules/pointsVault/components/PointsVaultApprovedList.tsx index 5fbf2fe284..77828e9522 100644 --- a/src/modules/pointsVault/components/PointsVaultApprovedList.tsx +++ b/src/modules/pointsVault/components/PointsVaultApprovedList.tsx @@ -58,7 +58,7 @@ const PointsVaultApprovedList = ({ query }: PointsVaultApprovedListProps) => { return ( @@ -73,7 +73,7 @@ const PointsVaultApprovedList = ({ query }: PointsVaultApprovedListProps) => { hasMore={hasMoreData} loader={ {status !== 'COMPLETED' && ( diff --git a/src/modules/pointsVault/components/PointsVaultPendingList.tsx b/src/modules/pointsVault/components/PointsVaultPendingList.tsx index 132c0730e9..96b16ae3a7 100644 --- a/src/modules/pointsVault/components/PointsVaultPendingList.tsx +++ b/src/modules/pointsVault/components/PointsVaultPendingList.tsx @@ -66,7 +66,7 @@ const PointsVaultPendingList = ({ query }: PointsVaultPendingListProps) => { return ( @@ -81,7 +81,7 @@ const PointsVaultPendingList = ({ query }: PointsVaultPendingListProps) => { hasMore={hasMoreData} loader={ { return ( @@ -73,7 +73,7 @@ const PointsVaultRejectedList = ({ query }: PointsVaultRejectedListProps) => { hasMore={hasMoreData} loader={ = () => { {heading} {heading} diff --git a/src/modules/rewards/components/DashboardSection.tsx b/src/modules/rewards/components/DashboardSection.tsx index f01270a5e1..c04384e5d7 100644 --- a/src/modules/rewards/components/DashboardSection.tsx +++ b/src/modules/rewards/components/DashboardSection.tsx @@ -34,11 +34,11 @@ const DashboardSection: FC = ({ onGetStarted }) => { Dashboard @@ -47,7 +47,7 @@ const DashboardSection: FC = ({ onGetStarted }) => { = ({ onGetStarted }) => { return ( = ({ onGetStarted width="-webkit-fill-available" display="flex" flexDirection={{ tb: 'column', initial: 'row' }} - gap={{ tb: 's4' }} + gap={{ tb: 'spacing-sm' }} alignItems={{ tb: 'stretch', initial: 'center' }} justifyContent="space-between" > @@ -44,14 +44,14 @@ const DashboardSectionHeader: FC = ({ onGetStarted > Earn Rewards for Exploring! Push Points are the new way to prove that you belong to the Push community and access to some cool surprises in the future. diff --git a/src/modules/rewards/components/DashboardSectionPoints.tsx b/src/modules/rewards/components/DashboardSectionPoints.tsx index c2465a4be0..7e3febeeb7 100644 --- a/src/modules/rewards/components/DashboardSectionPoints.tsx +++ b/src/modules/rewards/components/DashboardSectionPoints.tsx @@ -36,10 +36,10 @@ const DashboardSectionPoints: FC = ({ width="-webkit-fill-available" display="flex" flexDirection="column" - padding="s6" - borderRadius="r6" - gap="s3" - border={{ light: '1px solid gray-200', dark: '1px solid gray-800' }} + padding="spacing-md" + borderRadius="radius-md" + gap="spacing-xs" + border="border-sm solid stroke-secondary" minHeight={{ tb: '115px', initial: '125px' }} justifyContent="space-between" > @@ -52,7 +52,7 @@ const DashboardSectionPoints: FC = ({ {title} @@ -65,16 +65,16 @@ const DashboardSectionPoints: FC = ({ onClick={refetch} > } + defaultBackground="surface-brand-subtle" + hoverBackground="surface-brand-subtle" + padding="spacing-xxxs" + borderRadius="radius-sm" + icon={} > - + {isFetching ? 'Updating...' : 'Update'} @@ -88,7 +88,7 @@ const DashboardSectionPoints: FC = ({ {isWalletConnected && ( {points !== undefined ? points?.toLocaleString() : '0'} @@ -98,7 +98,7 @@ const DashboardSectionPoints: FC = ({ {!isWalletConnected && ( 0 @@ -109,7 +109,7 @@ const DashboardSectionPoints: FC = ({ {points && points > 0 && rank != null ? ( {rank > 0 && `Rank #${rank}`} @@ -120,7 +120,7 @@ const DashboardSectionPoints: FC = ({ {usersInvited && usersInvited > 0 ? ( {usersInvited > 1 ? `${usersInvited} Users Invited` : `${usersInvited} User Invited`} diff --git a/src/modules/rewards/components/LeaderBoardList.tsx b/src/modules/rewards/components/LeaderBoardList.tsx index 0f3446e85c..4d6fb5c546 100644 --- a/src/modules/rewards/components/LeaderBoardList.tsx +++ b/src/modules/rewards/components/LeaderBoardList.tsx @@ -34,7 +34,7 @@ const LeaderBoardList: FC = () => { ) : ( !!leaderboardList.length && ( @@ -50,7 +50,7 @@ const LeaderBoardList: FC = () => { hasMore={hasMoreData} loader={ { > RANK USER TOTAL POINTS diff --git a/src/modules/rewards/components/LeaderBoardListItem.tsx b/src/modules/rewards/components/LeaderBoardListItem.tsx index f2839559d0..b86d35ed21 100644 --- a/src/modules/rewards/components/LeaderBoardListItem.tsx +++ b/src/modules/rewards/components/LeaderBoardListItem.tsx @@ -4,8 +4,6 @@ import { FC, useContext } from 'react'; // Third-party libraries import { css } from 'styled-components'; import BlockiesSvg from 'blockies-react-svg'; -//Hooks -import { useBlocksTheme } from 'blocks/Blocks.hooks'; //Components import { Box, Skeleton, Text } from 'blocks'; @@ -29,7 +27,6 @@ export type LeaderboardListItemProps = { }; const LeaderboardListItem: FC = ({ rank, address, points, isLoading }) => { - const { mode } = useBlocksTheme(); const { web3NameList }: AppContextType = useContext(AppContext)!; useResolveWeb3Name(address); @@ -43,15 +40,14 @@ const LeaderboardListItem: FC = ({ rank, address, poin display="flex" justifyContent="space-between" alignItems="center" - // TODO: Fix ds-blocks css={css` - border-bottom: 1px solid var(--${mode === 'dark' ? 'gray-800' : 'gray-200'}); + border-bottom: var(--border-sm) solid var(--stroke-secondary); `} > = ({ rank, address, poin > {rank > 0 && rank} = ({ rank, address, poin {displayName} {displayName} @@ -112,14 +108,14 @@ const LeaderboardListItem: FC = ({ rank, address, poin {points?.toLocaleString()} {points?.toLocaleString()} diff --git a/src/modules/rewards/components/LeaderBoardSection.tsx b/src/modules/rewards/components/LeaderBoardSection.tsx index 094efcfdb7..68be038e4d 100644 --- a/src/modules/rewards/components/LeaderBoardSection.tsx +++ b/src/modules/rewards/components/LeaderBoardSection.tsx @@ -12,20 +12,20 @@ const LeaderBoardSection: FC = () => { Leaderboard Leaderboard diff --git a/src/modules/rewards/components/LeaderboardNullState.tsx b/src/modules/rewards/components/LeaderboardNullState.tsx index ad08856b24..fdfe62be76 100644 --- a/src/modules/rewards/components/LeaderboardNullState.tsx +++ b/src/modules/rewards/components/LeaderboardNullState.tsx @@ -28,25 +28,25 @@ const LeaderBoardNullState: FC = ({ flexDirection="column" alignItems="center" justifyContent="center" - gap="s4" - padding="s15" + gap="spacing-sm" + padding="spacing-xxxl" height="200px" > {heading && ( {heading} @@ -55,7 +55,7 @@ const LeaderBoardNullState: FC = ({ {subHeading} diff --git a/src/modules/rewards/components/ReferralSection.tsx b/src/modules/rewards/components/ReferralSection.tsx index 0cf9af2818..e2b9d35773 100644 --- a/src/modules/rewards/components/ReferralSection.tsx +++ b/src/modules/rewards/components/ReferralSection.tsx @@ -14,7 +14,7 @@ import { walletToCAIP10 } from 'helpers/w2w'; import { getPreviewBasePath } from '../../../../basePath'; // components -import { Box, Button, Copy, Text, Referral, Skeleton } from 'blocks'; +import { Box, Button, Copy, Text, Referral } from 'blocks'; export type ReferralSectionProps = { handleUnlockProfile: () => void; @@ -43,33 +43,33 @@ const ReferralSection: FC = ({ handleUnlockProfile }) => { Onboard Users on Push.
Earn Points.
Earn +12% of any Points your invites earn, and +2% of any Points your invite’s invites earn. @@ -79,25 +79,27 @@ const ReferralSection: FC = ({ handleUnlockProfile }) => { {isWalletConnected && userDetails && ( {baseUrl}/points?ref={userDetails?.userId} diff --git a/src/modules/rewards/components/RewardsActivitiesList.tsx b/src/modules/rewards/components/RewardsActivitiesList.tsx index e78a563aae..e7dd947931 100644 --- a/src/modules/rewards/components/RewardsActivitiesList.tsx +++ b/src/modules/rewards/components/RewardsActivitiesList.tsx @@ -50,7 +50,7 @@ const RewardsActivitiesList: FC = () => { hasMore={hasMoreData} loader={ = ({ userId, @@ -58,7 +58,7 @@ const RewardsActivitiesListItem: FC = ({ userId, = ({ userId, = ({ userId, {activity.activityDesc} @@ -107,7 +107,7 @@ const RewardsActivitiesListItem: FC = ({ userId, display="flex" minWidth="200px" flexDirection="row" - gap="s2" + gap="spacing-xxs" alignItems="center" > = ({ userId, /> {activity.points?.toLocaleString()} Points @@ -145,21 +145,21 @@ const RewardsActivitiesListItem: FC = ({ userId, {(errorMessage || usersSingleActivity?.status === 'REJECTED') && ( {errorMessage || 'Verification Rejected. Please contact the Push team over discord.'} @@ -168,22 +168,22 @@ const RewardsActivitiesListItem: FC = ({ userId, {usersSingleActivity?.status === 'PENDING' && ( Verification Pending: Expected completion within 24-72 hours. diff --git a/src/modules/rewards/components/RewardsActivitiesSection.tsx b/src/modules/rewards/components/RewardsActivitiesSection.tsx index 86c9648499..79468cc705 100644 --- a/src/modules/rewards/components/RewardsActivitiesSection.tsx +++ b/src/modules/rewards/components/RewardsActivitiesSection.tsx @@ -6,11 +6,11 @@ const RewardsActivitiesSection = () => { Activities diff --git a/src/modules/rewards/components/RewardsActivityTitle.tsx b/src/modules/rewards/components/RewardsActivityTitle.tsx index f17b304fca..a28565e482 100644 --- a/src/modules/rewards/components/RewardsActivityTitle.tsx +++ b/src/modules/rewards/components/RewardsActivityTitle.tsx @@ -14,23 +14,49 @@ const RewardsActivityTitle: FC = ({ activityTitle, is const { preText, url, linkedText, postText } = extractedTitle; return ( - - {preText} - - + + + {preText} + + + {linkedText} - {postText} + + {' '} + {postText} + ); } else { - return - - {activityTitle} - - + return ( + + + {activityTitle} + + + ); } }; diff --git a/src/modules/rewards/components/RewardsTabs.tsx b/src/modules/rewards/components/RewardsTabs.tsx index 4f2fd9e544..f4ab8a58a2 100644 --- a/src/modules/rewards/components/RewardsTabs.tsx +++ b/src/modules/rewards/components/RewardsTabs.tsx @@ -4,8 +4,6 @@ import { css } from 'styled-components'; import { rewardsTabsList } from '../Rewards.constants'; -import { useBlocksTheme } from 'blocks/Blocks.hooks'; - import { Box, Text } from 'blocks'; import { RewardsTabs as RewardsTabsType } from '../Rewards.types'; @@ -16,39 +14,41 @@ export type RewardsTabsProps = { }; const RewardsTabs: FC = ({ activeTab, handleSetActiveTab }) => { - const { mode } = useBlocksTheme(); + // TODO: Use tab component return ( {rewardsTabsList.map((tab) => ( handleSetActiveTab(tab.value)} css={css` margin-bottom: -1px; - border-bottom: ${tab.value === activeTab ? '2px solid var(--pink-400)' : '0px'}; + border-bottom: ${tab.value === activeTab ? 'var(--border-md) solid var(--stroke-brand-medium)' : '0px'}; `} > {tab.label} {tab.label} diff --git a/src/modules/rewards/components/RewardsTabsContainer.tsx b/src/modules/rewards/components/RewardsTabsContainer.tsx index ce0308712e..caa311e9bf 100644 --- a/src/modules/rewards/components/RewardsTabsContainer.tsx +++ b/src/modules/rewards/components/RewardsTabsContainer.tsx @@ -16,17 +16,16 @@ export type RewardsTabsContainerProps = { const RewardsTabsContainer: FC = ({ activeTab, handleSetActiveTab }) => { return ( {userDetails && userDetails?.totalPoints > 0 ? userDetails?.totalPoints?.toLocaleString() : ''}
{userDetails && userDetails?.totalPoints > 0 ? userDetails?.totalPoints?.toLocaleString() : ''} @@ -237,7 +237,7 @@ function Header({ isDarkMode, darkModeToggle }) { {headerTag && !error && !isSnapPage && ( From da29ab493c9db4a965dfcf29ad334c28338d0fef Mon Sep 17 00:00:00 2001 From: Abhishek <77395788+abhishek-01k@users.noreply.github.com> Date: Fri, 19 Jul 2024 19:30:47 +0530 Subject: [PATCH 15/31] Removed Signing Push User from yield Farming V1 (#1760) --- src/components/yield/YieldPoolCard.tsx | 38 ++++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/components/yield/YieldPoolCard.tsx b/src/components/yield/YieldPoolCard.tsx index d36fae1eea..e8b2df8154 100644 --- a/src/components/yield/YieldPoolCard.tsx +++ b/src/components/yield/YieldPoolCard.tsx @@ -5,7 +5,6 @@ import { ethers } from 'ethers'; // External Packages import styled, { useTheme } from 'styled-components'; import { MdCheckCircle, MdError } from 'react-icons/md'; -import { useSelector } from 'react-redux'; // Internal Compoonents import useToast from 'hooks/useToast'; @@ -26,7 +25,6 @@ import { SkeletonLine, SpanV2, } from 'components/reusables/SharedStylingV2'; -import { AppContext } from 'contexts/AppContext'; // Internal Configs import { abis, addresses } from 'config/index.js'; @@ -41,7 +39,8 @@ const YieldPoolCard = ({ tokenAddress, setActiveTab, }: any) => { - const { account, provider, wallet } = useAccount(); + const { account, provider, wallet, isWalletConnected, connect } = useAccount(); + const [txInProgressWithdraw, setTxInProgressWithdraw] = useState(false); const [txInProgressClaimRewards, setTxInProgressClaimRewards] = useState(false); @@ -52,11 +51,6 @@ const YieldPoolCard = ({ const [unstakeErrorMessage, setUnstakeErrorMessage] = useState(null); const [withdrawErrorMessage, setWithdrawErrorMessage] = useState(null); - const { userPushSDKInstance } = useSelector((state: any) => { - return state.user; - }); - const { handleConnectWalletAndEnableProfile } = useContext(AppContext); - const [filled, setFilled] = useState(0); const yieldFarmToast = useToast(); @@ -64,8 +58,8 @@ const YieldPoolCard = ({ const theme = useTheme(); const massClaimRewardsTokensAll = async () => { - if (!userPushSDKInstance.signer) { - handleConnectWalletAndEnableProfile({ wallet }); + if (!isWalletConnected) { + connect(); return; } @@ -152,11 +146,13 @@ const YieldPoolCard = ({ }; const withdrawTokens = async () => { - if (!userPushSDKInstance.signer) { - handleConnectWalletAndEnableProfile({ wallet }); + + if (!isWalletConnected) { + connect(); return; } + if (txInProgressWithdraw) { return; } @@ -218,7 +214,7 @@ const YieldPoolCard = ({ }).catch((err) => { yieldFarmToast.showMessageToast({ toastTitle: 'Error', - toastMessage: `Transaction Cancelled!`, + toastMessage: `Transaction Cancelled! ${err.message}`, toastType: 'ERROR', getToastIcon: (size) => ( { - if (!userPushSDKInstance.signer) { - handleConnectWalletAndEnableProfile({ wallet }); + if (!isWalletConnected) { + connect(); return; } @@ -456,8 +452,8 @@ const YieldPoolCard = ({ }; const depositLpToken = async (tx, withdrawAmount, totalTxnSteps) => { - if (!userPushSDKInstance.signer) { - handleConnectWalletAndEnableProfile({ wallet }); + if (!isWalletConnected) { + connect(); return; } @@ -509,8 +505,8 @@ const YieldPoolCard = ({ }; const depositPushToken = async (tx, withdrawAmount, totalTxnSteps) => { - if (!userPushSDKInstance.signer) { - handleConnectWalletAndEnableProfile({ wallet }); + if (!isWalletConnected) { + connect(); return; } @@ -613,7 +609,7 @@ const YieldPoolCard = ({ {PoolStats ? ( <> @@ -650,7 +646,7 @@ const YieldPoolCard = ({ {PoolStats ? ( <> From e413024812625d0a91afae46cd662d66a041f5e1 Mon Sep 17 00:00:00 2001 From: Kolade Date: Tue, 23 Jul 2024 07:06:35 +0100 Subject: [PATCH 16/31] comment out base changes (#1762) --- src/components/Faucets.tsx | 15 ++++----- src/components/VerifyAlias.tsx | 9 +++--- src/config/config-dev.js | 18 ++++++----- src/config/config-prod.js | 18 ++++++----- src/config/config-staging.js | 18 ++++++----- src/connectors/chains.ts | 26 ++++++++-------- src/helpers/CaipHelper.ts | 5 ++- src/helpers/UtilityHelper.ts | 52 +++++++++++++++++--------------- src/hooks/useInactiveListener.ts | 4 +-- 9 files changed, 91 insertions(+), 74 deletions(-) diff --git a/src/components/Faucets.tsx b/src/components/Faucets.tsx index b4670d35dc..af9e49d396 100644 --- a/src/components/Faucets.tsx +++ b/src/components/Faucets.tsx @@ -88,13 +88,14 @@ const Faucets = () => { function: () => {}, link: 'https://cyber-testnet.testnets.rollbridge.app/', }, - { - id: '84532', - value: 'Base Sepolia', - title: 'Base Sepolia Faucet', - function: () => {}, - link: 'https://www.alchemy.com/faucets/base-sepolia', - }, + // comment base + // { + // id: '84532', + // value: 'Base Sepolia', + // title: 'Base Sepolia Faucet', + // function: () => {}, + // link: 'https://www.alchemy.com/faucets/base-sepolia', + // }, ]; // render diff --git a/src/components/VerifyAlias.tsx b/src/components/VerifyAlias.tsx index e4bf974646..852d01a085 100644 --- a/src/components/VerifyAlias.tsx +++ b/src/components/VerifyAlias.tsx @@ -70,10 +70,11 @@ const VerifyAlias = ({ aliasEthAccount, setAliasVerified }) => { label: 'Cyber ETH', url: 'https://cyber-testnet.testnets.rollbridge.app/', }, - 84532: { - label: 'Base Sepolia', - url: 'https://www.alchemy.com/faucets/base-sepolia', - }, + // comment base + // 84532: { + // label: 'Base Sepolia', + // url: 'https://www.alchemy.com/faucets/base-sepolia', + // }, }; const checkAlias = async () => { diff --git a/src/config/config-dev.js b/src/config/config-dev.js index dd655d20c2..bd301d5395 100644 --- a/src/config/config-dev.js +++ b/src/config/config-dev.js @@ -32,7 +32,8 @@ export const config = { 421614, // arbitrum testnet 123, // fuse testnet 111557560, // Cyber testnet - 84532, //base sepolia + // comment base + // 84532, //base sepolia ], /** @@ -183,11 +184,12 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber-testnet.alt.technology/', commAddress: '0x9cb3bd7550B5c92baA056Fc0F08132f49508145F', }, - 84532: { - label: 'Base Sepolia', - name: 'BASE_TESTNET', - chainid: 84532, - rpcUrl: 'https://sepolia.base.org/', - commAddress: '0x9cb3bd7550B5c92baA056Fc0F08132f49508145F', - }, + // comment base + // 84532: { + // label: 'Base Sepolia', + // name: 'BASE_TESTNET', + // chainid: 84532, + // rpcUrl: 'https://sepolia.base.org/', + // commAddress: '0x9cb3bd7550B5c92baA056Fc0F08132f49508145F', + // }, }; diff --git a/src/config/config-prod.js b/src/config/config-prod.js index ef744b5776..3f88ffd085 100644 --- a/src/config/config-prod.js +++ b/src/config/config-prod.js @@ -31,7 +31,8 @@ export const config = { 1101, // polygon zkevm mainnet 122, // fuse mainnet 7560, // Cyber mainnet - 8453, //base mainnet + // comment base + // 8453, //base ma innet ], /** @@ -176,11 +177,12 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber.alt.technology/', commAddress: '0xb3971BCef2D791bc4027BbfedFb47319A4AAaaAa', }, - 8453: { - label: 'Base Mainnet', - name: 'BASE_MAINNET', - chainid: 8453, - rpcUrl: 'https://mainnet.base.org/', - commAddress: '0xb3971BCef2D791bc4027BbfedFb47319A4AAaaAa', - }, + // comment base + // 8453: { + // label: 'Base Mainnet', + // name: 'BASE_MAINNET', + // chainid: 8453, + // rpcUrl: 'https://mainnet.base.org/', + // commAddress: '0xb3971BCef2D791bc4027BbfedFb47319A4AAaaAa', + // }, }; diff --git a/src/config/config-staging.js b/src/config/config-staging.js index 2cc4e92893..8047c3a67e 100644 --- a/src/config/config-staging.js +++ b/src/config/config-staging.js @@ -33,7 +33,8 @@ export const config = { 421614, // arbitrum testnet 123, // fuse testnet 111557560, // Cyber testnet - 84532, //base sepolia + // comment base + // 84532, //base sepolia ], /** @@ -180,11 +181,12 @@ export const CHAIN_DETAILS = { rpcUrl: 'https://cyber-testnet.alt.technology/', commAddress: '0x6e489B7af21cEb969f49A90E481274966ce9D74d', }, - 84532: { - label: 'Base Sepolia', - name: 'BASE_TESTNET', - chainid: 84532, - rpcUrl: 'https://sepolia.base.org/', - commAddress: '0x6e489B7af21cEb969f49A90E481274966ce9D74d', - }, + // comment base + // 84532: { + // label: 'Base Sepolia', + // name: 'BASE_TESTNET', + // chainid: 84532, + // rpcUrl: 'https://sepolia.base.org/', + // commAddress: '0x6e489B7af21cEb969f49A90E481274966ce9D74d', + // }, }; diff --git a/src/connectors/chains.ts b/src/connectors/chains.ts index 7f55ab2b43..fa0b0ba049 100644 --- a/src/connectors/chains.ts +++ b/src/connectors/chains.ts @@ -130,12 +130,13 @@ export const MAINNET_CHAINS: ChainConfig = { nativeCurrency: ETH, blockExplorerUrls: ['https://cyberscan.co/'], }, - 8453: { - name: 'Base Mainnet', - urls: ['https://mainnet.base.org/'], - nativeCurrency: ETH, - blockExplorerUrls: ['https://basescan.org/'], - }, + // comment base + // 8453: { + // name: 'Base Mainnet', + // urls: ['https://mainnet.base.org/'], + // nativeCurrency: ETH, + // blockExplorerUrls: ['https://basescan.org/'], + // }, }; export const TESTNET_CHAINS: ChainConfig = { @@ -198,12 +199,13 @@ export const TESTNET_CHAINS: ChainConfig = { nativeCurrency: ETH, blockExplorerUrls: ['https://testnet.cyberscan.co/'], }, - 84532: { - name: 'Base Sepolia', - urls: ['https://sepolia.base.org/'], - nativeCurrency: ETH, - blockExplorerUrls: ['https://sepolia-explorer.base.org/'], - }, + // comment base + // 84532: { + // name: 'Base Sepolia', + // urls: ['https://sepolia.base.org/'], + // nativeCurrency: ETH, + // blockExplorerUrls: ['https://sepolia-explorer.base.org/'], + // }, }; export const CHAINS: ChainConfig = { diff --git a/src/helpers/CaipHelper.ts b/src/helpers/CaipHelper.ts index 2762d75abf..3bbf5d1f27 100644 --- a/src/helpers/CaipHelper.ts +++ b/src/helpers/CaipHelper.ts @@ -2,9 +2,12 @@ import { appConfig } from '../config/index.js'; export const Eip155EnabledIds: Array = [ - 1, 56, 137, 10, 1101, 42161, 11155111, 97, 80002, 11155420, 2442, 421614, 122, 123, 111557560, 7560, 84532, 8453, + 1, 56, 137, 10, 1101, 42161, 11155111, 97, 80002, 11155420, 2442, 421614, 122, 123, 111557560, 7560, ]; +// comment base +// 84532, 8453, + // Types type CAIPProps = { chainId: number; diff --git a/src/helpers/UtilityHelper.ts b/src/helpers/UtilityHelper.ts index 246356be92..2eed133f32 100644 --- a/src/helpers/UtilityHelper.ts +++ b/src/helpers/UtilityHelper.ts @@ -19,8 +19,7 @@ const UtilityHelper = { chainId === 10 || chainId === 42161 || chainId === 122 || - chainId === 7560 || - chainId === 8453 + chainId === 7560 ) { return true; } @@ -63,8 +62,9 @@ export const MaskedAliasChannels: { 123: {}, 111557560: {}, 7560: {}, - 8453: {}, - 84532: {}, + // comment base + // 8453: {}, + // 84532: {}, }; export const findObject = (data: any, parentArray: any[], property: string): boolean => { @@ -129,8 +129,9 @@ export const networkName = { 123: 'Fuse Testnet', 111557560: 'Cyber Testnet', 7560: 'Cyber Mainnet', - 8453: 'Base Mainnet', - 84532: 'Base Sepolia', + // comment base + // 8453: 'Base Mainnet', + // 84532: 'Base Sepolia', }; export const chainNameBackendStandard = { @@ -156,8 +157,9 @@ export const aliasChainIdToChainName = { 123: 'FUSE', 111557560: 'CYBERCONNECT', 7560: 'CYBERCONNECT', - 8453: 'BASE', - 84532: 'BASE', + // comment base + // 8453: 'BASE', + // 84532: 'BASE', }; export const aliasChainIdsMapping = { @@ -266,20 +268,21 @@ export const NETWORK_DETAILS = { rpcUrls: ['https://cyber.alt.technology/'], blockExplorerUrls: [' https://.cyberscan.co/'], }, - BASE_TESTNET: { - chainId: utils.hexValue(84532), - chainName: 'Base Testnet', - nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, - rpcUrls: ['https://sepolia.base.org/'], - blockExplorerUrls: ['https://sepolia-explorer.base.org/'], - }, - BASE_MAINNET: { - chainId: utils.hexValue(8453), - chainName: 'Base Mainnet', - nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, - rpcUrls: ['https://mainnet.base.org/'], - blockExplorerUrls: ['https://basescan.org/'], - }, + // comment base + // BASE_TESTNET: { + // chainId: utils.hexValue(84532), + // chainName: 'Base Testnet', + // nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, + // rpcUrls: ['https://sepolia.base.org/'], + // blockExplorerUrls: ['https://sepolia-explorer.base.org/'], + // }, + // BASE_MAINNET: { + // chainId: utils.hexValue(8453), + // chainName: 'Base Mainnet', + // nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 }, + // rpcUrls: ['https://mainnet.base.org/'], + // blockExplorerUrls: ['https://basescan.org/'], + // }, }; export const CORE_CHAIN_ID: number = appConfig.coreContractChain; @@ -304,8 +307,9 @@ export const LOGO_FROM_CHAIN_ID: { 123: 'Fuse.svg', 111557560: 'Cyber.svg', 7560: 'Cyber.svg', - 8453: 'Base.svg', - 84532: 'Base.svg', + // comment base + // 8453: 'Base.svg', + // 84532: 'Base.svg', }; export type getAliasResponseType = { diff --git a/src/hooks/useInactiveListener.ts b/src/hooks/useInactiveListener.ts index d351042ca2..f6f7b110cc 100644 --- a/src/hooks/useInactiveListener.ts +++ b/src/hooks/useInactiveListener.ts @@ -16,9 +16,9 @@ export function useInactiveListener() { if (appConfig.coreContractChain === 42) return 'Unsupported Network, please connect to the Ethereum Kovan network or Polygon Amoy network'; else if (appConfig.coreContractChain === 11155111) - return 'Unsupported Network, please connect to the Ethereum Sepolia, Polygon Amoy, BNB testnet, Optimism Sepolia, Arbitrum Sepolia, Base Sepolia or Polygon zkEVM testnet'; + return 'Unsupported Network, please connect to the Ethereum Sepolia, Polygon Amoy, BNB testnet, Optimism Sepolia, Arbitrum Sepolia or Polygon zkEVM testnet'; else - return 'Unsupported Network, please connect to the Ethereum, Polygon, BNB, Optimism, Arbitrum, Base or Polygon zkEVM Mainnet'; + return 'Unsupported Network, please connect to the Ethereum, Polygon, BNB, Optimism, Arbitrum or Polygon zkEVM Mainnet'; }; useEffect(() => { From 4dee47990f5f2f1c2fe4f5e9b913f45eb3044396 Mon Sep 17 00:00:00 2001 From: Kolade Date: Wed, 24 Jul 2024 10:47:27 +0100 Subject: [PATCH 17/31] UserPushSDKInstance returns null randomly on dapp (#1763) * add ref * update useeffect * use usestate --- src/App.tsx | 15 +- yarn.lock | 1068 +++++++++++++++++++++++++++------------------------ 2 files changed, 571 insertions(+), 512 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 1de8e6ec04..e582479e46 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ // React + Web3 Essentials -import { FC, useContext, useEffect, useMemo, useState } from 'react'; +import { FC, useContext, useEffect, useMemo, useRef, useState } from 'react'; // External Packages import * as dotenv from 'dotenv'; @@ -196,6 +196,7 @@ export default function App() { const { pgpPvtKey } = useContext(AppContext); const { sidebarCollapsed, setSidebarCollapsed } = useContext(GlobalContext); + const [hasMounted, setHasMounted] = useState(false); const updateOnboardTheme = useUpdateTheme(); const { userPushSDKInstance } = useSelector((state: any) => { @@ -218,14 +219,22 @@ export default function App() { setcurrentTime(now); }, []); - useEffect(() => { - if (!account) return; + const resetState = () => { dispatch(resetSpamSlice()); dispatch(resetNotificationsSlice()); dispatch(resetCanSendSlice()); dispatch(resetChannelCreationSlice()); dispatch(resetAdminSlice()); dispatch(resetUserSlice()); + }; + + useEffect(() => { + if (!hasMounted) { + // do componentDidMount logic + setHasMounted(true); + if (!account) return; + resetState(); + } }, [account]); // Initialize Theme diff --git a/yarn.lock b/yarn.lock index 1f71c8a44b..72e8c92697 100644 --- a/yarn.lock +++ b/yarn.lock @@ -698,22 +698,22 @@ __metadata: languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/babel-plugin@npm:11.11.0" +"@emotion/babel-plugin@npm:^11.12.0": + version: 11.12.0 + resolution: "@emotion/babel-plugin@npm:11.12.0" dependencies: "@babel/helper-module-imports": "npm:^7.16.7" "@babel/runtime": "npm:^7.18.3" - "@emotion/hash": "npm:^0.9.1" - "@emotion/memoize": "npm:^0.8.1" - "@emotion/serialize": "npm:^1.1.2" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/serialize": "npm:^1.2.0" babel-plugin-macros: "npm:^3.1.0" convert-source-map: "npm:^1.5.0" escape-string-regexp: "npm:^4.0.0" find-root: "npm:^1.1.0" source-map: "npm:^0.5.7" stylis: "npm:4.2.0" - checksum: 10/8de017666838fc06b1a961d7a49b4e6dc0c83dbb064ea33512bae056594f0811a87e3242ef90fa2aa49fc080fab1cc7af536e7aee9398eaca7a1fc020d2dd527 + checksum: 10/fe6f4522ea2b61ef4214dd0b0f3778aad9c18434b47e50ae5091af226526bf305455c313065826a090682520c9462c151d4df62ec128f14671d3125afc05b148 languageName: node linkType: hard @@ -729,16 +729,16 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/cache@npm:11.11.0" +"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.13.0": + version: 11.13.0 + resolution: "@emotion/cache@npm:11.13.0" dependencies: - "@emotion/memoize": "npm:^0.8.1" - "@emotion/sheet": "npm:^1.2.2" - "@emotion/utils": "npm:^1.2.1" - "@emotion/weak-memoize": "npm:^0.3.1" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.0" + "@emotion/weak-memoize": "npm:^0.4.0" stylis: "npm:4.2.0" - checksum: 10/ef29756247dafb87168b4ffb76ee60feb06b8a1016323ecb1d3ba8aed3f4300ca10049bedbfe83aa11e0d81e616c328002a9d50020ebb3af6e4f5337a785c1fe + checksum: 10/20a3207600cceb0ddc490fbf6c449c73af1cfe6bea01fcf452d2a00a73fd5d8ce2e7b04ff869289e94fa5c528571618bce48d1dd39820d56de38f1e8de314c5d languageName: node linkType: hard @@ -776,10 +776,10 @@ __metadata: languageName: node linkType: hard -"@emotion/hash@npm:^0.9.1": - version: 0.9.1 - resolution: "@emotion/hash@npm:0.9.1" - checksum: 10/716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 +"@emotion/hash@npm:^0.9.2": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 10/379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 languageName: node linkType: hard @@ -792,7 +792,7 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:1.2.2, @emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.2.2": +"@emotion/is-prop-valid@npm:1.2.2": version: 1.2.2 resolution: "@emotion/is-prop-valid@npm:1.2.2" dependencies: @@ -801,6 +801,15 @@ __metadata: languageName: node linkType: hard +"@emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.3.0": + version: 1.3.0 + resolution: "@emotion/is-prop-valid@npm:1.3.0" + dependencies: + "@emotion/memoize": "npm:^0.9.0" + checksum: 10/9b395dd9734fa88e24aa5adeef90ba86564d29c85d07a18cd39fbd06fbe597a5008a335a6147088de9f0533dbb3691786c8e10e6eaab5c7d960634833a054005 + languageName: node + linkType: hard + "@emotion/memoize@npm:0.7.4": version: 0.7.4 resolution: "@emotion/memoize@npm:0.7.4" @@ -822,24 +831,31 @@ __metadata: languageName: node linkType: hard +"@emotion/memoize@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/memoize@npm:0.9.0" + checksum: 10/038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 + languageName: node + linkType: hard + "@emotion/react@npm:^11.8.2": - version: 11.11.4 - resolution: "@emotion/react@npm:11.11.4" + version: 11.13.0 + resolution: "@emotion/react@npm:11.13.0" dependencies: "@babel/runtime": "npm:^7.18.3" - "@emotion/babel-plugin": "npm:^11.11.0" - "@emotion/cache": "npm:^11.11.0" - "@emotion/serialize": "npm:^1.1.3" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" - "@emotion/utils": "npm:^1.2.1" - "@emotion/weak-memoize": "npm:^0.3.1" + "@emotion/babel-plugin": "npm:^11.12.0" + "@emotion/cache": "npm:^11.13.0" + "@emotion/serialize": "npm:^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.1.0" + "@emotion/utils": "npm:^1.4.0" + "@emotion/weak-memoize": "npm:^0.4.0" hoist-non-react-statics: "npm:^3.3.1" peerDependencies: react: ">=16.8.0" peerDependenciesMeta: "@types/react": optional: true - checksum: 10/e7da3a1ddc1d72a4179010bdfd17423c13b1a77bf83a8b18271e919fd382d08c62dc2313ed5347acfd1ef85bb1bae8932597647a986e8a1ea1462552716cd495 + checksum: 10/3dd2b3ffac51f0fa67ef3cb85d4064fd7ddc1212b587e3b328a1eade47024690175518d63c4cbabf28afa07e29187136b26d646e395158f6574fa6321a0b68f9 languageName: node linkType: hard @@ -856,16 +872,16 @@ __metadata: languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3, @emotion/serialize@npm:^1.1.4": - version: 1.1.4 - resolution: "@emotion/serialize@npm:1.1.4" +"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.0": + version: 1.3.0 + resolution: "@emotion/serialize@npm:1.3.0" dependencies: - "@emotion/hash": "npm:^0.9.1" - "@emotion/memoize": "npm:^0.8.1" - "@emotion/unitless": "npm:^0.8.1" - "@emotion/utils": "npm:^1.2.1" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.9.0" + "@emotion/utils": "npm:^1.4.0" csstype: "npm:^3.0.2" - checksum: 10/11fc4f960226778e9a5f86310b739703986d13b2de3e89a16d788126ce312b2c8c174a2947c9bfc80cb124b331c36feeac44193f81150616d94b1ba19a92d70a + checksum: 10/3ab17aa0dabdc77d5d573ef07df63e91e778c0637f4b7f690fde46ab0007496c8dfbf32d2836d3b22ac2ba2d8c58570da51092ba7ff068d4d790147de2352465 languageName: node linkType: hard @@ -876,10 +892,10 @@ __metadata: languageName: node linkType: hard -"@emotion/sheet@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/sheet@npm:1.2.2" - checksum: 10/cc46b20ef7273dc28de889927ae1498f854be2890905745fcc3154fbbacaa54df1e28c3d89ff3339c2022782c78933f51955bb950d105d5a219576db1eadfb7a +"@emotion/sheet@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/sheet@npm:1.4.0" + checksum: 10/8ac6e9bf6b373a648f26ae7f1c24041038524f4c72f436f4f8c4761c665e58880c3229d8d89b1f7a4815dd8e5b49634d03e60187cb6f93097d7f7c1859e869d5 languageName: node linkType: hard @@ -912,22 +928,22 @@ __metadata: linkType: hard "@emotion/styled@npm:^11.8.1": - version: 11.11.5 - resolution: "@emotion/styled@npm:11.11.5" + version: 11.13.0 + resolution: "@emotion/styled@npm:11.13.0" dependencies: "@babel/runtime": "npm:^7.18.3" - "@emotion/babel-plugin": "npm:^11.11.0" - "@emotion/is-prop-valid": "npm:^1.2.2" - "@emotion/serialize": "npm:^1.1.4" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" - "@emotion/utils": "npm:^1.2.1" + "@emotion/babel-plugin": "npm:^11.12.0" + "@emotion/is-prop-valid": "npm:^1.3.0" + "@emotion/serialize": "npm:^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.1.0" + "@emotion/utils": "npm:^1.4.0" peerDependencies: "@emotion/react": ^11.0.0-rc.0 react: ">=16.8.0" peerDependenciesMeta: "@types/react": optional: true - checksum: 10/a936787ef80d73066840391522d88280424de0abb56bec83d17e14bdc5a515e77e343dd171f7caae1405462e3f71815b5480dcc4e1eff5e8ff4a020f5c39341e + checksum: 10/5463a0f15fc12a9e20340f52df49461e948c3ae7e2dd763db0ff937b0b96dd4e82eed85cd15e24621efb3b097a095b88b01d60f50cf6f38fe3ab7db6e77f9615 languageName: node linkType: hard @@ -945,19 +961,26 @@ __metadata: languageName: node linkType: hard -"@emotion/unitless@npm:0.8.1, @emotion/unitless@npm:^0.8.1": +"@emotion/unitless@npm:0.8.1": version: 0.8.1 resolution: "@emotion/unitless@npm:0.8.1" checksum: 10/918f73c46ac0b7161e3c341cc07d651ce87e31ab1695e74b12adb7da6bb98dfbff8c69cf68a4e40d9eb3d820ca055dc1267aeb3007927ce88f98b885bf729b63 languageName: node linkType: hard -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": - version: 1.0.1 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" +"@emotion/unitless@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/unitless@npm:0.9.0" + checksum: 10/242754aa2f7368b5c2a5dbe61bf0a2bb0bfb4de091fe2388282f8c014c0796d0ca166b1639cf4f5f0e57e59258b622e7946a2e976ed5a56e06a5a306ca25adca + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.1.0": + version: 1.1.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.1.0" peerDependencies: react: ">=16.8.0" - checksum: 10/7d7ead9ba3f615510f550aea67815281ec5a5487de55aafc250f820317afc1fd419bd9e9e27602a0206ec5c152f13dc6130bccad312c1036706c584c65d66ef7 + checksum: 10/33a10f44a873b3f5ccd2a1a3d13c2f34ed628f5a2be1ccf28540a86535a14d3a930afcbef209d48346a22ec60ff48f43c86ee9c846b9480d23a55a17145da66c languageName: node linkType: hard @@ -968,10 +991,10 @@ __metadata: languageName: node linkType: hard -"@emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: 10/472fa529c64a13edff80aa11698092e8841c1ffb5001c739d84eb9d0fdd6d8e1cd1848669310578ccfa6383b8601132eca54f8749fca40af85d21fdfc9b776c4 +"@emotion/utils@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/utils@npm:1.4.0" + checksum: 10/e4cdb51819db01fec21c3e35a1391900c9e7f3ac1e7ecb419c8e408464830cd7ef6e1a116381cbfe3fb1039406fb7ed35f16a1575d502c92bc9f81bc13a3ee5a languageName: node linkType: hard @@ -982,10 +1005,10 @@ __metadata: languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.1": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: 10/b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 +"@emotion/weak-memoize@npm:^0.4.0": + version: 0.4.0 + resolution: "@emotion/weak-memoize@npm:0.4.0" + checksum: 10/db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 languageName: node linkType: hard @@ -1884,18 +1907,18 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics-compat@npm:0.2.11": - version: 0.2.11 - resolution: "@firebase/analytics-compat@npm:0.2.11" +"@firebase/analytics-compat@npm:0.2.12": + version: 0.2.12 + resolution: "@firebase/analytics-compat@npm:0.2.12" dependencies: - "@firebase/analytics": "npm:0.10.5" + "@firebase/analytics": "npm:0.10.6" "@firebase/analytics-types": "npm:0.8.2" "@firebase/component": "npm:0.6.8" "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/843b9cef7d724ce72c63d9e8eca267abb3a7286d0c6a8de32cd3b66fcb8563fe8ae60bed7c07761aad7ef37fca425e2c2f7535691177ea7d8c184b6037f0b564 + checksum: 10/a3141dfaf24666cee30033b67f7a659f7e9279ee4144bfec2d258d252a8def0d72d73518b03c0425162a5419689287ef125bb8215c17c1fb4d7ca604e254a535 languageName: node linkType: hard @@ -1906,26 +1929,27 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics@npm:0.10.5": - version: 0.10.5 - resolution: "@firebase/analytics@npm:0.10.5" +"@firebase/analytics@npm:0.10.6": + version: 0.10.6 + resolution: "@firebase/analytics@npm:0.10.6" dependencies: "@firebase/component": "npm:0.6.8" "@firebase/installations": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" "@firebase/util": "npm:1.9.7" + safevalues: "npm:0.6.0" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/fb17b6b5bd2c8b41bc42409a60806fd7504e8c255f9e518a73b3f60dc9b92fdb5a48171a1699980475ca57626bcada1014d34e7829719585813b4a1edea2eb2d + checksum: 10/07d4778ba0566418955223f0cebb1acf91ecc0792f8749ff92df84c1930c94c330f052a20a352cf64eebe44f57afd81a5f8175d8ffacf1f6adec1f2e230c3bc7 languageName: node linkType: hard -"@firebase/app-check-compat@npm:0.3.12": - version: 0.3.12 - resolution: "@firebase/app-check-compat@npm:0.3.12" +"@firebase/app-check-compat@npm:0.3.13": + version: 0.3.13 + resolution: "@firebase/app-check-compat@npm:0.3.13" dependencies: - "@firebase/app-check": "npm:0.8.5" + "@firebase/app-check": "npm:0.8.6" "@firebase/app-check-types": "npm:0.5.2" "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" @@ -1933,7 +1957,7 @@ __metadata: tslib: "npm:^2.1.0" peerDependencies: "@firebase/app-compat": 0.x - checksum: 10/b4bd4282ee7e3c1d269d1d9ddc97d41fd84fc8c7e76c1f74c034297cef9a11d89002a88e46d96472d4cc61a4f37df7d5882a86ff120738b87c9732e01d2a9e64 + checksum: 10/2228accc13f78a8ee8a5cefad96b394355976ba2893fc603091234aeb03a522c6e5d7ecb44325574e43f79f44d4a3eb135fbc26bea5ea58643e3673316469294 languageName: node linkType: hard @@ -1951,30 +1975,31 @@ __metadata: languageName: node linkType: hard -"@firebase/app-check@npm:0.8.5": - version: 0.8.5 - resolution: "@firebase/app-check@npm:0.8.5" +"@firebase/app-check@npm:0.8.6": + version: 0.8.6 + resolution: "@firebase/app-check@npm:0.8.6" dependencies: "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" "@firebase/util": "npm:1.9.7" + safevalues: "npm:0.6.0" tslib: "npm:^2.1.0" peerDependencies: "@firebase/app": 0.x - checksum: 10/3d66e8802dde4b6d0e064afcb4571c0d1d84661e5bf0e5dfdf9f6b544bcf5fee3930a5b94fcf4ea8be5f117bcfb9fb9905d4fbe7f887faa5e5eb25ca7cf37042 + checksum: 10/227bca93b8d7f04564a332501da78f9ffb0fdaaaf2fd766217414d6be900c542718d163392a2e10be41be3863ad73a946b43fe5dadb25b8283a151e389ca9ef6 languageName: node linkType: hard -"@firebase/app-compat@npm:0.2.36": - version: 0.2.36 - resolution: "@firebase/app-compat@npm:0.2.36" +"@firebase/app-compat@npm:0.2.37": + version: 0.2.37 + resolution: "@firebase/app-compat@npm:0.2.37" dependencies: - "@firebase/app": "npm:0.10.6" + "@firebase/app": "npm:0.10.7" "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" "@firebase/util": "npm:1.9.7" tslib: "npm:^2.1.0" - checksum: 10/340e72056d9b420298db6ac0097e019471ff63e70e1b58b2de862ebf1ec83357f683c3a0c7a0364bc703e1fc24e40767ade0532b8b223dfc9503f865040901ca + checksum: 10/f73a5b3b06c480e17d95ca2685b02d4f44bf4a6a772bce06efbfdbf88ee4d489dc0e7fabf0f12172dd68160deedb5415134aab36d3f620892044142a7ec8084b languageName: node linkType: hard @@ -1985,16 +2010,16 @@ __metadata: languageName: node linkType: hard -"@firebase/app@npm:0.10.6": - version: 0.10.6 - resolution: "@firebase/app@npm:0.10.6" +"@firebase/app@npm:0.10.7": + version: 0.10.7 + resolution: "@firebase/app@npm:0.10.7" dependencies: "@firebase/component": "npm:0.6.8" "@firebase/logger": "npm:0.4.2" "@firebase/util": "npm:1.9.7" idb: "npm:7.1.1" tslib: "npm:^2.1.0" - checksum: 10/ac1d79cd62d7f90a481545b6fc0495c08f5611d54b52314f41cd27c4fe47f578a908073ee97c6f8395b88130cde2b7db0bfdf5d5324e750778c9689e1cd3275e + checksum: 10/34680a2b33dfdd1013ded0185edb959142e08ea32269c144495574dcf7c75f5cf7c0f21f38add03e232d75180d36f0a4ce3bd39b2e83fa47fd8905f9fb9f88b2 languageName: node linkType: hard @@ -2413,11 +2438,11 @@ __metadata: linkType: hard "@floating-ui/core@npm:^1.5.3, @floating-ui/core@npm:^1.6.0": - version: 1.6.4 - resolution: "@floating-ui/core@npm:1.6.4" + version: 1.6.5 + resolution: "@floating-ui/core@npm:1.6.5" dependencies: - "@floating-ui/utils": "npm:^0.2.4" - checksum: 10/589430cbff4bac90b9b891e2c94c57dc113d39ac163552f547d9e4c7d21f09997b9d33e82ec717759caee678c47f845f14a3f28df6f029fcfcf3ad803ba4eb7c + "@floating-ui/utils": "npm:^0.2.5" + checksum: 10/946eccfc16d0eea2bb62bd8cee12211a1d2614968d541966ecd9b6d40f66f097391020ce109c8503676c14ec67f304414e5fecff324ac8950121574010c009e9 languageName: node linkType: hard @@ -2432,12 +2457,12 @@ __metadata: linkType: hard "@floating-ui/dom@npm:^1.0.0": - version: 1.6.7 - resolution: "@floating-ui/dom@npm:1.6.7" + version: 1.6.8 + resolution: "@floating-ui/dom@npm:1.6.8" dependencies: "@floating-ui/core": "npm:^1.6.0" - "@floating-ui/utils": "npm:^0.2.4" - checksum: 10/a6a42bfd243c311f6040043808a6549c1db45fa36138b81cb1e615170d61fd2daf4f37accc1df3e0189405d97e3d71b12de39879c9d58ccf181c982b69cf6cf9 + "@floating-ui/utils": "npm:^0.2.5" + checksum: 10/ebfc92b7a08addc1952d497174a197db80278d3701da7d7dedd3e1533daa80b12b7de02c19408de3f951195a3247f2f5c3cc10807071147e3193bbef469e90a5 languageName: node linkType: hard @@ -2453,10 +2478,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.4": - version: 0.2.4 - resolution: "@floating-ui/utils@npm:0.2.4" - checksum: 10/7662d7a4ae39c0287e026f666297a3d28c80e588251c8c59ff66938a0aead47d380bbb9018629bd63a98f399c3919ec689d5448a5c48ffc176d545ddef705df1 +"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.5": + version: 0.2.5 + resolution: "@floating-ui/utils@npm:0.2.5" + checksum: 10/08df715c2a3bfa9d757347df0b38c89a3bfa92b0a32ff67d3d713960c2e72c202e22a2b220aacadbde5451ac2bd4c10411a73a8ed3707ded792f0182592eb01f languageName: node linkType: hard @@ -3338,16 +3363,16 @@ __metadata: languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.16.2": - version: 5.16.2 - resolution: "@mui/core-downloads-tracker@npm:5.16.2" - checksum: 10/da87713a710dcfc1b214a3179beb440b1129042549506c25f6df74c0d16f7cc48af9e18b8b5ce2ac72adc141bd18e0a88eb67000dabdc3b8c05231f7279d5384 +"@mui/core-downloads-tracker@npm:^5.16.4": + version: 5.16.4 + resolution: "@mui/core-downloads-tracker@npm:5.16.4" + checksum: 10/e1be17bfcfc5e50d42eff8ca8660469c0e20f70bd5148183e8a8d66da12c420f86e097b68d09561055c2d6e4f93f6650ba65a30522a997da9cd9a08d09a54bbc languageName: node linkType: hard "@mui/icons-material@npm:^5.8.4": - version: 5.16.2 - resolution: "@mui/icons-material@npm:5.16.2" + version: 5.16.4 + resolution: "@mui/icons-material@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" peerDependencies: @@ -3357,19 +3382,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/b08be67822bdb7c005ed139a51cf3dd54d38bfa5f4f83c9032ffeb35d9d532792a5b4793a55eb9559bcb608f43e8a82c894387552cd5504c280d2f4e621d8626 + checksum: 10/6f163af896ad0c60d3c5c539d8a68b407c6bd1203184129a6b72d4b911ff8bc9a92448cfb6aaf5a23f46a810224e172321dfa37089f07a4d04dded4a87546d8e languageName: node linkType: hard "@mui/material@npm:^5.5.0": - version: 5.16.2 - resolution: "@mui/material@npm:5.16.2" + version: 5.16.4 + resolution: "@mui/material@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/core-downloads-tracker": "npm:^5.16.2" - "@mui/system": "npm:^5.16.2" + "@mui/core-downloads-tracker": "npm:^5.16.4" + "@mui/system": "npm:^5.16.4" "@mui/types": "npm:^7.2.15" - "@mui/utils": "npm:^5.16.2" + "@mui/utils": "npm:^5.16.4" + "@popperjs/core": "npm:^2.11.8" "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" @@ -3389,16 +3415,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/4fe16de6af8368ffe8591a5aa22ea71eec3a29f092c61537b33026da6f852ae9f2e4b44c6f9f5e0c2e8891931bcf3c92512e6b11038db2e698cd57da89f8d5e7 + checksum: 10/a7f4b9a54c89265b63afa52fd017781fc180d26bf79cf6b8091a40954485ce427a089cef79e64ed3acda35666ad09aee8423afed7674d957aa2437ac76a65d67 languageName: node linkType: hard -"@mui/private-theming@npm:^5.16.2": - version: 5.16.2 - resolution: "@mui/private-theming@npm:5.16.2" +"@mui/private-theming@npm:^5.16.4": + version: 5.16.4 + resolution: "@mui/private-theming@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/utils": "npm:^5.16.2" + "@mui/utils": "npm:^5.16.4" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -3406,13 +3432,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/87647371ce594803b49b39eb5ae1cf62bd3dc93a8309811826e3edf362a80207e08fcbc363ce715ad7fca1c561158b852504ebd6b3df0dd381a3cb3fa2a943ce + checksum: 10/dec90e407d1f81803e1dd1c094cec99491b35617d3e83bcfa53cbf05ceef84c88106d6bc8a7cfc71b39f9b9b773124eb4bd229364ccccb9b3c8af3bc9db9c70a languageName: node linkType: hard -"@mui/styled-engine@npm:^5.16.2": - version: 5.16.2 - resolution: "@mui/styled-engine@npm:5.16.2" +"@mui/styled-engine@npm:^5.16.4": + version: 5.16.4 + resolution: "@mui/styled-engine@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" "@emotion/cache": "npm:^11.11.0" @@ -3427,19 +3453,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10/3e700a20542903c80c870b92b0a03170e6a800887cfae1c31892bd1f9c94291981157e8457e4cd82316c1af590b0d6811d111a551f591586bc7b18c88e1b50fd + checksum: 10/56f4c9a2adb6e6793d37635ec095f2303c9c7d48c607a18899c2fa4d2a186fa5dc87d6ced2c9586009b147ac435a9525514fe7d09b0133a44c2d4ab026f1a841 languageName: node linkType: hard -"@mui/system@npm:^5.16.2": - version: 5.16.2 - resolution: "@mui/system@npm:5.16.2" +"@mui/system@npm:^5.16.4": + version: 5.16.4 + resolution: "@mui/system@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/private-theming": "npm:^5.16.2" - "@mui/styled-engine": "npm:^5.16.2" + "@mui/private-theming": "npm:^5.16.4" + "@mui/styled-engine": "npm:^5.16.4" "@mui/types": "npm:^7.2.15" - "@mui/utils": "npm:^5.16.2" + "@mui/utils": "npm:^5.16.4" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -3455,7 +3481,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/51a9fce00ca128b4ecebd9ce2999d450f455a4090f8d7031823603e1eddd8e6bed2e69617bf24a7b3923ad2641503b73db3bec7e4754868154b6ac27bee1508c + checksum: 10/f007467adf4d60d16d1b9c9d4c40f41b8871f21905eb412e306cd49fc7f6a1a9c7b74d850f95dda2a8abebb8a16916816e596897ba55793ea97426ff9dbc77b4 languageName: node linkType: hard @@ -3471,9 +3497,9 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.16.2": - version: 5.16.2 - resolution: "@mui/utils@npm:5.16.2" +"@mui/utils@npm:^5.16.4": + version: 5.16.4 + resolution: "@mui/utils@npm:5.16.4" dependencies: "@babel/runtime": "npm:^7.23.9" "@types/prop-types": "npm:^15.7.12" @@ -3486,7 +3512,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/ef67136dc82bb797448ea1ddef5bcab7f8d2d4ab635b8a8ef0cc74ab81a01a0a98c915c3e1f3ec33f64ba5fe43b86f26740dd949432b90bc607e0cf05cdd72f3 + checksum: 10/d29516544dd3fa95757c658cf1b4cd4e3f16615c208ce5b45080b8ce7f993c7e6974a04a64797897c9220eb9582b0f596a13b976df404b1c34398842f4f06a2d languageName: node linkType: hard @@ -3884,7 +3910,7 @@ __metadata: languageName: node linkType: hard -"@popperjs/core@npm:^2.4.4": +"@popperjs/core@npm:^2.11.8, @popperjs/core@npm:^2.4.4": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" checksum: 10/ddd16090cde777aaf102940f05d0274602079a95ad9805bd20bc55dcc7c3a2ba1b99dd5c73e5cc2753c3d31250ca52a67d58059459d7d27debb983a9f552936c @@ -5160,125 +5186,133 @@ __metadata: languageName: node linkType: hard -"@react-spring/animated@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/animated@npm:9.7.3" +"@react-spring/animated@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/animated@npm:9.7.4" dependencies: - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/75c427e810b05ef508ac81695e3410619bcc8b8b87e232eb6fa05a91155bb6a558b324937fcaacb9b2002fdffb557de97ee5f6f6b226c53f5f356f62559f89a1 + checksum: 10/b7f5f598686bd16765c78c1fc3d2b421d1a79cf6fa65b04b8bb0913630634c135e0d617915dcc8834a0874b63d24f3bc640d1a14741e9b1ed2825456978afd2f languageName: node linkType: hard -"@react-spring/core@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/core@npm:9.7.3" +"@react-spring/core@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/core@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/91102271531eae8fc146b8847ae6dbc03ebfbab5816529b9bfdd71e6d922ea07361fcbc57b404de57dac2f719246876f94539c04e2f314b3c767ad33d8d4f984 + checksum: 10/1f30907e94a128c01ff38c807c9bbca2fb61562864279efb29ceef6e6b288722555a3050c9d9e1fa31e1d707619e24de19cda7f44de38da40a63c8fdec7e0fa5 languageName: node linkType: hard -"@react-spring/konva@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/konva@npm:9.7.3" +"@react-spring/konva@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/konva@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/core": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: konva: ">=2.6" react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-konva: ^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0 - checksum: 10/e6cc925fb74abfeea6247bd92232d764f671b51cf2aa0b7dd09eb134bf24230b968bc9f9bb0cf63bedaedf95d85fc5a0eb79b757213fa9e7cabf0d2dee4e82b1 + checksum: 10/92c01dd7287aab01228cc01756ef89024052a35d4c8b310211451f4d1bc8f6d0308b0ea6b9aa5fe89603c98b81f26d60c0e60adf097e355a235fe707e391813f languageName: node linkType: hard -"@react-spring/native@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/native@npm:9.7.3" +"@react-spring/native@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/native@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/core": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: - react: ^16.8.0 || >=17.0.0 || >=18.0.0 + react: 16.8.0 || >=17.0.0 || >=18.0.0 react-native: ">=0.58" - checksum: 10/df78b2f660aa30166f0fdd860b958df0d53ad4ad229b7f5357d3cd7945351e79b0a722761c9e2a482a15856021bebf458cd0a815860bbe1b8d64e72051c87c23 + checksum: 10/a1bc63a127dc07ace266e03fb6a5acac806c4744a88e8f7a325e5b6f7cbb21bc0a92e5d2e5a11d8fce9a1a28c39c9a1421cdae603b10c2ce6cae6691e7c9d4ee + languageName: node + linkType: hard + +"@react-spring/rafz@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/rafz@npm:9.7.4" + checksum: 10/57a36e6d6bb4743214de70c8a36924e0753bd48a4c320a9cd47d4fb5f7591e88e3ac4ad635e38c9733a449fe97e51aa88fb1acbe39b5b931a06c8c448fa30930 languageName: node linkType: hard -"@react-spring/shared@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/shared@npm:9.7.3" +"@react-spring/shared@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/shared@npm:9.7.4" dependencies: - "@react-spring/types": "npm:~9.7.3" + "@react-spring/rafz": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/76e44fe8ad63c83861a8453e26d085c69a40f0e5865ca2af7d2fecacb030e59ebe6db5f8e7ef8b1a6b6e193cc3c1c6fd3d5172b10bf216b205844e6d3e90e860 + checksum: 10/c011371e8437905234e27c0811f06064021ed8f59424018835c507dec07ff22c770ab2674302743e30542ad4d8788fa1b81b9b40e094fc3ccd434323e6140907 languageName: node linkType: hard -"@react-spring/three@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/three@npm:9.7.3" +"@react-spring/three@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/three@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/core": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: "@react-three/fiber": ">=6.0" react: ^16.8.0 || ^17.0.0 || ^18.0.0 three: ">=0.126" - checksum: 10/7fde4d5cea2ad7b4e15089c0464799b857662a5a97537fc85f82ee7777f187945f32cf70c4609111a4557e46dbe475d1328325841a8825c0f5ded21ea49d7599 + checksum: 10/56b7ecf70ea799b8e069df2bea86b809b2f8e613f4f4aa35c2f02f0da8aba5f62332573d71cac5e63a4ca57a643237aa12dabd2af54df2c27cbd0a82bfea538f languageName: node linkType: hard -"@react-spring/types@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/types@npm:9.7.3" - checksum: 10/fcaf5fe02ae3e56a07f340dd5a0a17e9c283ff7deab8b6549ff513ef2f5ad57e0218d448b5331e422cfa739b40f0de3511e7b3f3e73ae8690496cda5bb984854 +"@react-spring/types@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/types@npm:9.7.4" + checksum: 10/25a9a6816a3e0ab4e06f2ac66b68bfd9e2bf844c6ea30133711be85c11693a4e2b74f0ce3c60356848d9096530a748cbe84e556fa342b92ce320f4d8a21e208c languageName: node linkType: hard -"@react-spring/web@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/web@npm:9.7.3" +"@react-spring/web@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/web@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/core": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/65c71e28ef1197d2afdc053d776b6bd1db6b5558d50849d78c7fc665c3ed1bbd08850fabfceba2223f8660915301aaea18588ebee2429e7b6de99a2640335bbe + checksum: 10/1813c87d92b8d8500cf5e302d2b051aaaa79f25438f79ba4cd8d2ddb17c1667566c88fbff05a5d589f16d0ba74660de1b684de4c6402fdd2f679edace6c7050c languageName: node linkType: hard -"@react-spring/zdog@npm:~9.7.3": - version: 9.7.3 - resolution: "@react-spring/zdog@npm:9.7.3" +"@react-spring/zdog@npm:~9.7.4": + version: 9.7.4 + resolution: "@react-spring/zdog@npm:9.7.4" dependencies: - "@react-spring/animated": "npm:~9.7.3" - "@react-spring/core": "npm:~9.7.3" - "@react-spring/shared": "npm:~9.7.3" - "@react-spring/types": "npm:~9.7.3" + "@react-spring/animated": "npm:~9.7.4" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/shared": "npm:~9.7.4" + "@react-spring/types": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-zdog: ">=1.0" zdog: ">=1.0" - checksum: 10/26f2f61f7829f2bd394b5688c9a6bf110430c4f6ade45ae52dcc53f95451c4d99a6c6c6c649366a66edbde710777121c97926904c1952224c8d445ab8a3a9f7d + checksum: 10/99397263f1b5cf7fba0a5da25e344c2b115f2fe17afb4874af42ee22b8c1a6d6d64ae8c4fa5152378916c01c16df40252c317c71b157ac8aa84f6b9694644e53 languageName: node linkType: hard @@ -5302,10 +5336,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.17.1": - version: 1.17.1 - resolution: "@remix-run/router@npm:1.17.1" - checksum: 10/5efc598626cd81688ac26e0abd08204b980831ead8cd2c4b8a27e0c169ee4777fc609fa289c093b93efc3a1e335304698c6961276c2309348444ec7209836c83 +"@remix-run/router@npm:1.18.0": + version: 1.18.0 + resolution: "@remix-run/router@npm:1.18.0" + checksum: 10/f878cf246b94368f431a51363f1d33dc35ad11cb910d930476d988825b024a152de87a7f74f0891c3e7182228f892c7f64f94409aae27084c320338dee82caa1 languageName: node linkType: hard @@ -5353,114 +5387,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.1" +"@rollup/rollup-android-arm-eabi@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-android-arm64@npm:4.18.1" +"@rollup/rollup-android-arm64@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-android-arm64@npm:4.19.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.18.1" +"@rollup/rollup-darwin-arm64@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.19.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-darwin-x64@npm:4.18.1" +"@rollup/rollup-darwin-x64@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.19.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.1" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.1" +"@rollup/rollup-linux-arm-musleabihf@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.1" +"@rollup/rollup-linux-arm64-gnu@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.1" +"@rollup/rollup-linux-arm64-musl@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.1" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.1" +"@rollup/rollup-linux-riscv64-gnu@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.1" +"@rollup/rollup-linux-s390x-gnu@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.1" +"@rollup/rollup-linux-x64-gnu@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.1" +"@rollup/rollup-linux-x64-musl@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.1" +"@rollup/rollup-win32-arm64-msvc@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.1" +"@rollup/rollup-win32-ia32-msvc@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.18.1": - version: 4.18.1 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.1" +"@rollup/rollup-win32-x64-msvc@npm:4.19.0": + version: 4.19.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6032,90 +6066,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-darwin-arm64@npm:1.6.13" +"@swc/core-darwin-arm64@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-darwin-arm64@npm:1.7.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-darwin-x64@npm:1.6.13" +"@swc/core-darwin-x64@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-darwin-x64@npm:1.7.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.13" +"@swc/core-linux-arm-gnueabihf@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-linux-arm64-gnu@npm:1.6.13" +"@swc/core-linux-arm64-gnu@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-linux-arm64-musl@npm:1.6.13" +"@swc/core-linux-arm64-musl@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-linux-x64-gnu@npm:1.6.13" +"@swc/core-linux-x64-gnu@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-linux-x64-musl@npm:1.6.13" +"@swc/core-linux-x64-musl@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-linux-x64-musl@npm:1.7.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-win32-arm64-msvc@npm:1.6.13" +"@swc/core-win32-arm64-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-win32-ia32-msvc@npm:1.6.13" +"@swc/core-win32-ia32-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.6.13": - version: 1.6.13 - resolution: "@swc/core-win32-x64-msvc@npm:1.6.13" +"@swc/core-win32-x64-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.100": - version: 1.6.13 - resolution: "@swc/core@npm:1.6.13" - dependencies: - "@swc/core-darwin-arm64": "npm:1.6.13" - "@swc/core-darwin-x64": "npm:1.6.13" - "@swc/core-linux-arm-gnueabihf": "npm:1.6.13" - "@swc/core-linux-arm64-gnu": "npm:1.6.13" - "@swc/core-linux-arm64-musl": "npm:1.6.13" - "@swc/core-linux-x64-gnu": "npm:1.6.13" - "@swc/core-linux-x64-musl": "npm:1.6.13" - "@swc/core-win32-arm64-msvc": "npm:1.6.13" - "@swc/core-win32-ia32-msvc": "npm:1.6.13" - "@swc/core-win32-x64-msvc": "npm:1.6.13" +"@swc/core@npm:^1.7.0": + version: 1.7.0 + resolution: "@swc/core@npm:1.7.0" + dependencies: + "@swc/core-darwin-arm64": "npm:1.7.0" + "@swc/core-darwin-x64": "npm:1.7.0" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.0" + "@swc/core-linux-arm64-gnu": "npm:1.7.0" + "@swc/core-linux-arm64-musl": "npm:1.7.0" + "@swc/core-linux-x64-gnu": "npm:1.7.0" + "@swc/core-linux-x64-musl": "npm:1.7.0" + "@swc/core-win32-arm64-msvc": "npm:1.7.0" + "@swc/core-win32-ia32-msvc": "npm:1.7.0" + "@swc/core-win32-x64-msvc": "npm:1.7.0" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.9" peerDependencies: @@ -6144,7 +6178,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/ccb9c11d5f2e8371f17fca33f7d702433684013fce685d0db06f0b3a6064db476b1c4378bb8f1e9d12841338fc745a6aed056137443cb370d4238b6f4fc5405c + checksum: 10/01a64b708c066e0fdc7f1dedebde25c273da51758bdb29ecdec1a7e57456f58d6216dfff43a05c7fa917a88d939327f9ae248bc3480ab18bcf4bad8e0bedba42 languageName: node linkType: hard @@ -6156,11 +6190,11 @@ __metadata: linkType: hard "@swc/types@npm:^0.1.9": - version: 0.1.9 - resolution: "@swc/types@npm:0.1.9" + version: 0.1.12 + resolution: "@swc/types@npm:0.1.12" dependencies: "@swc/counter": "npm:^0.1.3" - checksum: 10/c67ee0480b7d71c20764c5d99addebc1aacd4aed218f56143fa946132a93ff3e11bdea913c628ad992acf78c4d1fe69e65bb4fd2b81d8006a2edf94661d2fbce + checksum: 10/92dbbc70cd068ea30fb6fbdc1ae8599d6c058a5d09b2923d6e4e24fab5ad7c86a19dd01f349a8e03e300a9321e06911a24df18303b40e307fbd4109372cef2ef languageName: node linkType: hard @@ -6198,17 +6232,17 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.51.1": - version: 5.51.1 - resolution: "@tanstack/query-core@npm:5.51.1" - checksum: 10/6f37cc960218d2e49ea392f36e6586ade632e4306a8a1ca4f80940b4b73022e82f8bdd0aa3f9ff6e10a9106bc1d608cbba432fd32eb73295942ed6e20771d48b +"@tanstack/query-core@npm:5.51.9": + version: 5.51.9 + resolution: "@tanstack/query-core@npm:5.51.9" + checksum: 10/263f64a2e9448cc412fa9f29b0b77af1a5eeb66ecba6965548d4be97b7e99cca0dd194992b686426745030240764846d9d7e39e43d3ed64b97afb47f3a9661d7 languageName: node linkType: hard -"@tanstack/query-devtools@npm:5.51.1": - version: 5.51.1 - resolution: "@tanstack/query-devtools@npm:5.51.1" - checksum: 10/660d7ed8072c296d281548db5ff06745750a28c7e1c3153d936733725cd1e8174255f923518e0267b72ce3712895315b11f93b92bede652992e0cc665078e2ef +"@tanstack/query-devtools@npm:5.51.9": + version: 5.51.9 + resolution: "@tanstack/query-devtools@npm:5.51.9" + checksum: 10/ffc19f1a9b16edbb99dc8ef4fb00f6cbc6ac39d0fbdb7976d5b849005d8f1eb80081449bfe379fd1eb8a0aa1a0357b014b822a8f32a9d57644fbb14fb039d8fd languageName: node linkType: hard @@ -6222,14 +6256,14 @@ __metadata: linkType: hard "@tanstack/react-query-devtools@npm:^5.44.0": - version: 5.51.1 - resolution: "@tanstack/react-query-devtools@npm:5.51.1" + version: 5.51.11 + resolution: "@tanstack/react-query-devtools@npm:5.51.11" dependencies: - "@tanstack/query-devtools": "npm:5.51.1" + "@tanstack/query-devtools": "npm:5.51.9" peerDependencies: - "@tanstack/react-query": ^5.51.1 + "@tanstack/react-query": ^5.51.11 react: ^18 || ^19 - checksum: 10/d04383c72e4faa8945ded06e25fb9c9bcef4468a7fc1e76289bccc41ddd5d548a33b1ff264b2470ebc0c4e2c3c753dec2274b227f0207c5300ff7b6ff4bb096d + checksum: 10/2a868370db70ef37ce9185c8d1d01f837ffb15bb3c304ef3eab9261e7de07c67e8a5b09264ffbbd2c650bd33a790f80c3d0be67d528d66cab31718d31081b2d7 languageName: node linkType: hard @@ -6264,13 +6298,13 @@ __metadata: linkType: hard "@tanstack/react-query@npm:^5.44.0": - version: 5.51.1 - resolution: "@tanstack/react-query@npm:5.51.1" + version: 5.51.11 + resolution: "@tanstack/react-query@npm:5.51.11" dependencies: - "@tanstack/query-core": "npm:5.51.1" + "@tanstack/query-core": "npm:5.51.9" peerDependencies: react: ^18.0.0 - checksum: 10/0f97d0b55c4a7017f741da1c451e3d3ff99a9a4de8bb7d76d987c243d5cc1e6fdd649afe9bc9d3c4b4ec2df212c9c77dec8d82b8ad823772637972e98798857e + checksum: 10/e840eb5f90fb6ec1693f98be651c5fa55a2885930015a2bf1f8699def596293eac79df8b3335e31b87af0a189d40597d35986379c930faf3496fc5061861d988 languageName: node linkType: hard @@ -6616,11 +6650,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.14.10 - resolution: "@types/node@npm:20.14.10" + version: 20.14.11 + resolution: "@types/node@npm:20.14.11" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/672892cf94d0d95cf052f11271990686a0fd204cd1e5fe7a4ef240e5315e06711765dc47b9ec98627d3adac18b8c92bb7e2d8db21d18faa20bc3e3203a143e79 + checksum: 10/344e1ce1ed16c86ed1c4209ab4d1de67db83dd6b694a6fabe295c47144dde2c58dabddae9f39a0a2bdd246e95f8d141ccfe848e464884b48b8918df4f7788025 languageName: node linkType: hard @@ -7466,66 +7500,66 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.31": - version: 3.4.31 - resolution: "@vue/compiler-core@npm:3.4.31" +"@vue/compiler-core@npm:3.4.33": + version: 3.4.33 + resolution: "@vue/compiler-core@npm:3.4.33" dependencies: "@babel/parser": "npm:^7.24.7" - "@vue/shared": "npm:3.4.31" + "@vue/shared": "npm:3.4.33" entities: "npm:^4.5.0" estree-walker: "npm:^2.0.2" source-map-js: "npm:^1.2.0" - checksum: 10/1d83dd8c995984a0e7d80faaaa68956bbaadf01bb7cc07f29c5ebcf6aa5eeb2fa88db9d1a4aeb47f8b0b78eda7cc49688108b7fb5ac581eb5584ab59115dc99c + checksum: 10/91580713a537687244891f56671a1db356517088a715d745a68a4021799d4a0ff69de7b265f4f4f4ab82d24f5a08b62a2c0844d8cb557d6936b5fef154d791f1 languageName: node linkType: hard -"@vue/compiler-dom@npm:3.4.31": - version: 3.4.31 - resolution: "@vue/compiler-dom@npm:3.4.31" +"@vue/compiler-dom@npm:3.4.33": + version: 3.4.33 + resolution: "@vue/compiler-dom@npm:3.4.33" dependencies: - "@vue/compiler-core": "npm:3.4.31" - "@vue/shared": "npm:3.4.31" - checksum: 10/5f58557222a8fd9c043e7bf3e00a273691c6e070ac5c87874a628387ece0dec5ed950070d538852264cdb2ecc4d7fb9e7d79d37bf2db05e0474c44e2083c2fbe + "@vue/compiler-core": "npm:3.4.33" + "@vue/shared": "npm:3.4.33" + checksum: 10/3003393487f800c4f2978cc248c285efc9e1f984a7e8f1ff36146bc26a5914c6978e1e8305cf0ee1103c7bae1202259c02a51a0bf069772af5f125724c055cdf languageName: node linkType: hard "@vue/compiler-sfc@npm:^3.4.27": - version: 3.4.31 - resolution: "@vue/compiler-sfc@npm:3.4.31" + version: 3.4.33 + resolution: "@vue/compiler-sfc@npm:3.4.33" dependencies: "@babel/parser": "npm:^7.24.7" - "@vue/compiler-core": "npm:3.4.31" - "@vue/compiler-dom": "npm:3.4.31" - "@vue/compiler-ssr": "npm:3.4.31" - "@vue/shared": "npm:3.4.31" + "@vue/compiler-core": "npm:3.4.33" + "@vue/compiler-dom": "npm:3.4.33" + "@vue/compiler-ssr": "npm:3.4.33" + "@vue/shared": "npm:3.4.33" estree-walker: "npm:^2.0.2" magic-string: "npm:^0.30.10" - postcss: "npm:^8.4.38" + postcss: "npm:^8.4.39" source-map-js: "npm:^1.2.0" - checksum: 10/87dcddecfcfedb01603c08ee66286c7703a0ec76e89e5ba06b18c5309480ff7ffa7ff062585213de00527dd96995720a57f8fec8b6ea9b5851db1c72afa7baee + checksum: 10/af59aca33af931f5f1af4e92cd04c1b87cd722368f617b62bcdd7e8f132db1253f22e003c64e089b8caafd756c190a54d0bf42a2218dc9369b00985302de3914 languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.4.31": - version: 3.4.31 - resolution: "@vue/compiler-ssr@npm:3.4.31" +"@vue/compiler-ssr@npm:3.4.33": + version: 3.4.33 + resolution: "@vue/compiler-ssr@npm:3.4.33" dependencies: - "@vue/compiler-dom": "npm:3.4.31" - "@vue/shared": "npm:3.4.31" - checksum: 10/88470b9cc4b19a541f2c65946db5d60883507ba438dea4538906e7845abba4562ed7f1d277664cdbb5507d6c62fc138c17fd65e9dcfd7a68ce081c6e762df515 + "@vue/compiler-dom": "npm:3.4.33" + "@vue/shared": "npm:3.4.33" + checksum: 10/347a5faac078018dfead2cc04e88ec37d82850815607b6a758a5d497b96f906d8cae69c055feced79b56f7d1615888b5e311a1dace306bdef2cf1a516c3a7e86 languageName: node linkType: hard -"@vue/shared@npm:3.4.31": - version: 3.4.31 - resolution: "@vue/shared@npm:3.4.31" - checksum: 10/ec11ba892b6f6f078fd620e5a2c16d57935f69e7a3dbae20c18e79c70e1bc89fa6d463d5fcbb220f54e9e4122dbc0bb04024059afecd6acf6b182d3c071e3c3a +"@vue/shared@npm:3.4.33": + version: 3.4.33 + resolution: "@vue/shared@npm:3.4.33" + checksum: 10/0cb9f1c4841f3da14ee9bab0a0fb169ddf1a1979b1aa70a4c7b6279e7fc7e5296c7c63f56bbdb1f43e4264aab3d7daa3e2355905caf727cf5f9088f99dd1a8c4 languageName: node linkType: hard -"@walletconnect/core@npm:2.13.3": - version: 2.13.3 - resolution: "@walletconnect/core@npm:2.13.3" +"@walletconnect/core@npm:2.14.0": + version: 2.14.0 + resolution: "@walletconnect/core@npm:2.14.0" dependencies: "@walletconnect/heartbeat": "npm:1.2.2" "@walletconnect/jsonrpc-provider": "npm:1.0.14" @@ -7538,13 +7572,13 @@ __metadata: "@walletconnect/relay-auth": "npm:1.0.4" "@walletconnect/safe-json": "npm:1.0.2" "@walletconnect/time": "npm:1.0.2" - "@walletconnect/types": "npm:2.13.3" - "@walletconnect/utils": "npm:2.13.3" + "@walletconnect/types": "npm:2.14.0" + "@walletconnect/utils": "npm:2.14.0" events: "npm:3.3.0" isomorphic-unfetch: "npm:3.1.0" lodash.isequal: "npm:4.5.0" uint8arrays: "npm:3.1.0" - checksum: 10/176ca2f4e3d66e71e1e4a73fbc9361cd2332e067c0428697def02ed5599ea5be595aa9e26294b56d0668f2976b127440788f83b2698f41f599ba8447b18de07e + checksum: 10/1612c0da3a2f843f0bf65f903e627026cbcfaf4c517a3f2eed1d90ba42d4ab4d97216b1e2ba817417558a095e645f90961326356be9b4be5ad53c524ae2be26f languageName: node linkType: hard @@ -7558,20 +7592,20 @@ __metadata: linkType: hard "@walletconnect/ethereum-provider@npm:^2.10.1, @walletconnect/ethereum-provider@npm:^2.13.0": - version: 2.13.3 - resolution: "@walletconnect/ethereum-provider@npm:2.13.3" + version: 2.14.0 + resolution: "@walletconnect/ethereum-provider@npm:2.14.0" dependencies: "@walletconnect/jsonrpc-http-connection": "npm:1.0.8" "@walletconnect/jsonrpc-provider": "npm:1.0.14" "@walletconnect/jsonrpc-types": "npm:1.0.4" "@walletconnect/jsonrpc-utils": "npm:1.0.8" "@walletconnect/modal": "npm:2.6.2" - "@walletconnect/sign-client": "npm:2.13.3" - "@walletconnect/types": "npm:2.13.3" - "@walletconnect/universal-provider": "npm:2.13.3" - "@walletconnect/utils": "npm:2.13.3" + "@walletconnect/sign-client": "npm:2.14.0" + "@walletconnect/types": "npm:2.14.0" + "@walletconnect/universal-provider": "npm:2.14.0" + "@walletconnect/utils": "npm:2.14.0" events: "npm:3.3.0" - checksum: 10/18b96e572db46957d4f0372ac8608b60e09032b2fc41fffdb8bd0f250b0062e2cb8b0fa349076ffb1e3f6ef9af582ac233f0f7b932d4985439538f042fd57929 + checksum: 10/d2db655603ce2c9bb83000eafd0d77dd8de6879997afcd1a5a70539c05c4863ed08ae637dcb90c208176b19b620545ca365e9f11899cfadc9dbce7ed1fc4d093 languageName: node linkType: hard @@ -7741,20 +7775,20 @@ __metadata: languageName: node linkType: hard -"@walletconnect/sign-client@npm:2.13.3": - version: 2.13.3 - resolution: "@walletconnect/sign-client@npm:2.13.3" +"@walletconnect/sign-client@npm:2.14.0": + version: 2.14.0 + resolution: "@walletconnect/sign-client@npm:2.14.0" dependencies: - "@walletconnect/core": "npm:2.13.3" + "@walletconnect/core": "npm:2.14.0" "@walletconnect/events": "npm:1.0.1" "@walletconnect/heartbeat": "npm:1.2.2" "@walletconnect/jsonrpc-utils": "npm:1.0.8" "@walletconnect/logger": "npm:2.1.2" "@walletconnect/time": "npm:1.0.2" - "@walletconnect/types": "npm:2.13.3" - "@walletconnect/utils": "npm:2.13.3" + "@walletconnect/types": "npm:2.14.0" + "@walletconnect/utils": "npm:2.14.0" events: "npm:3.3.0" - checksum: 10/a48c4ad8457f61746500e23703ef402851bad8ba3277d05ed316c7a6d6ae16277f5c1845ecfd7d4fc9673b311d60cdeaefb2d1f58aa6c13ba04283ffba6e717e + checksum: 10/2e95feae093cace1d8230296f802b62fc267d360850b8c5d5558bdc5b53087ed758f0e3935353a7e10d4b4f3e04bcfb4bf2b3cdbf212d05903ceb4e76f6a67cb languageName: node linkType: hard @@ -7767,9 +7801,9 @@ __metadata: languageName: node linkType: hard -"@walletconnect/types@npm:2.13.3": - version: 2.13.3 - resolution: "@walletconnect/types@npm:2.13.3" +"@walletconnect/types@npm:2.14.0": + version: 2.14.0 + resolution: "@walletconnect/types@npm:2.14.0" dependencies: "@walletconnect/events": "npm:1.0.1" "@walletconnect/heartbeat": "npm:1.2.2" @@ -7777,30 +7811,30 @@ __metadata: "@walletconnect/keyvaluestorage": "npm:1.1.1" "@walletconnect/logger": "npm:2.1.2" events: "npm:3.3.0" - checksum: 10/8fffcbde3f142208cc28868c2eaa2dc03a6f9c5396c0d1af089fc5173e7005b3d8dd6bf1a86e9e2fd721008cc612a7ea31df24d421b3a0eb10ee33bcdd42b6cd + checksum: 10/02ffe6b97eeb7af35cb5234241f170751463ca60852dbff494a9b0bf942a224b4b58500f3ff3cd5074fda2d6bc32a9113ee99fd639bc5d66b7e0b223951e150c languageName: node linkType: hard -"@walletconnect/universal-provider@npm:2.13.3": - version: 2.13.3 - resolution: "@walletconnect/universal-provider@npm:2.13.3" +"@walletconnect/universal-provider@npm:2.14.0": + version: 2.14.0 + resolution: "@walletconnect/universal-provider@npm:2.14.0" dependencies: "@walletconnect/jsonrpc-http-connection": "npm:1.0.8" "@walletconnect/jsonrpc-provider": "npm:1.0.14" "@walletconnect/jsonrpc-types": "npm:1.0.4" "@walletconnect/jsonrpc-utils": "npm:1.0.8" "@walletconnect/logger": "npm:2.1.2" - "@walletconnect/sign-client": "npm:2.13.3" - "@walletconnect/types": "npm:2.13.3" - "@walletconnect/utils": "npm:2.13.3" + "@walletconnect/sign-client": "npm:2.14.0" + "@walletconnect/types": "npm:2.14.0" + "@walletconnect/utils": "npm:2.14.0" events: "npm:3.3.0" - checksum: 10/fa4dd53bb304fd3694db3b9e42def1fb06327d62d0d4e3ab7cd2123e4411caedf490ee38bd75cc66a1e91f5cb10855bc87f89a2016fb3325d41c0d7259e29869 + checksum: 10/f72702acc797e7fe7bef1fbe31004050e149536c8b5b1071390edd247e1324334cf002ad82815febf8586393008cf84b341f2d6ff3d137af4bad2f2c82ba0fe8 languageName: node linkType: hard -"@walletconnect/utils@npm:2.13.3": - version: 2.13.3 - resolution: "@walletconnect/utils@npm:2.13.3" +"@walletconnect/utils@npm:2.14.0": + version: 2.14.0 + resolution: "@walletconnect/utils@npm:2.14.0" dependencies: "@stablelib/chacha20poly1305": "npm:1.0.1" "@stablelib/hkdf": "npm:1.0.1" @@ -7810,13 +7844,13 @@ __metadata: "@walletconnect/relay-api": "npm:1.0.10" "@walletconnect/safe-json": "npm:1.0.2" "@walletconnect/time": "npm:1.0.2" - "@walletconnect/types": "npm:2.13.3" + "@walletconnect/types": "npm:2.14.0" "@walletconnect/window-getters": "npm:1.0.1" "@walletconnect/window-metadata": "npm:1.0.1" detect-browser: "npm:5.3.0" query-string: "npm:7.1.3" uint8arrays: "npm:3.1.0" - checksum: 10/9e8e5ab5819e4ae4abe3d504c58631eae20e52abc96c2f763f1a05f8cfac23a327e498a76c44b37c0c1c83714e953322f67c59c67e94f8a3e785e7aed1127175 + checksum: 10/a0e63763e5ac6391fd458a466c0f1b25247633fe3b7866fed7efc39b6399406f68ad353c49c091cdf718a8ce1be9d7eeaee8146c9ea2c32470bb716d3c73c0b6 languageName: node linkType: hard @@ -9592,9 +9626,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001154, caniuse-lite@npm:^1.0.30001640": - version: 1.0.30001642 - resolution: "caniuse-lite@npm:1.0.30001642" - checksum: 10/8d80ea82be453ae0fdfea8766d82740a4945c1b99189650f29bfc458d4e235d7e99027a8f8bc5a4228d8c4457ba896315284b0703f300353ad5f09d8e693de10 + version: 1.0.30001643 + resolution: "caniuse-lite@npm:1.0.30001643" + checksum: 10/dddbda29fa24fbc435873309c71070461cbfc915d9bce3216180524c20c5637b2bee1a14b45972e9ac19e1fdf63fba3f63608b9e7d68de32f5ee1953c8c69e05 languageName: node linkType: hard @@ -10099,9 +10133,9 @@ __metadata: linkType: hard "cookie-es@npm:^1.1.0": - version: 1.1.0 - resolution: "cookie-es@npm:1.1.0" - checksum: 10/cb7124904629118656326e4af9ef2e88f451454ae008c22569f1df2ca93325edc6bac2f92b432d189c54184d5a90a3b2c8cdbd0a8ee7f32f0eb2f8e2d145feb2 + version: 1.2.1 + resolution: "cookie-es@npm:1.2.1" + checksum: 10/805cf5f6c6205f9e3cfaa1d62227f7b7a8ec146e10c5c06378b5c918798911eaa83e8e219a79c4a57374f1a2ee8491ea399a19d26cbfe856e2b350b628350b4f languageName: node linkType: hard @@ -10711,7 +10745,7 @@ __metadata: languageName: node linkType: hard -"defu@npm:^6.1.3, defu@npm:^6.1.4": +"defu@npm:^6.1.4": version: 6.1.4 resolution: "defu@npm:6.1.4" checksum: 10/aeffdb47300f45b4fdef1c5bd3880ac18ea7a1fd5b8a8faf8df29350ff03bf16dd34f9800205cab513d476e4c0a3783aa0cff0a433aff0ac84a67ddc4c8a2d64 @@ -11191,9 +11225,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.3.585, electron-to-chromium@npm:^1.4.820": - version: 1.4.828 - resolution: "electron-to-chromium@npm:1.4.828" - checksum: 10/5962877ab1239f93683729b07403ffa89559aad358b863d11f40edbc073a79414238296a628bc602a07eedcf41e9fa01b4a84d6813237dfeb4183b0e387b6136 + version: 1.4.832 + resolution: "electron-to-chromium@npm:1.4.832" + checksum: 10/795eaae1a445283dea93ffd6e2482a794405191bcf30710b0350808e79befdd1f14fc7aed13359cf68d90e24cad93bd7c0965d011293ae183326b54915dd0319 languageName: node linkType: hard @@ -11243,8 +11277,8 @@ __metadata: linkType: hard "elliptic@npm:^6.4.0, elliptic@npm:^6.4.1, elliptic@npm:^6.5.2, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4, elliptic@npm:^6.5.5": - version: 6.5.5 - resolution: "elliptic@npm:6.5.5" + version: 6.5.6 + resolution: "elliptic@npm:6.5.6" dependencies: bn.js: "npm:^4.11.9" brorand: "npm:^1.1.0" @@ -11253,7 +11287,7 @@ __metadata: inherits: "npm:^2.0.4" minimalistic-assert: "npm:^1.0.1" minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 10/5444b4f18e0c0fdfa14de26f69f7dbc44c78a211e91825823d698dcc91071ef1a3954d87730f364183fc83b0a86d8affed864e347da2e549bdcead3b46de126f + checksum: 10/09377ec924fdb37775d63e5d7e5ebb2845842e6f08880b68265b1108863e968970c4a4e1c43df622078c8262417deec9a04aeb9d34e8d09a9693e19b5454e1df languageName: node linkType: hard @@ -11265,30 +11299,30 @@ __metadata: linkType: hard "embla-carousel-react@npm:^8.1.6": - version: 8.1.6 - resolution: "embla-carousel-react@npm:8.1.6" + version: 8.1.7 + resolution: "embla-carousel-react@npm:8.1.7" dependencies: - embla-carousel: "npm:8.1.6" - embla-carousel-reactive-utils: "npm:8.1.6" + embla-carousel: "npm:8.1.7" + embla-carousel-reactive-utils: "npm:8.1.7" peerDependencies: react: ^16.8.0 || ^17.0.1 || ^18.0.0 - checksum: 10/a8c724c396f8f26d190943c778fd1a29706bd597a0f85b4d8133c5e25e6e651fb30dbc3be0a71b3d58b9698904ae1043052cbea0c4aa23f9a63f3d1205e4a128 + checksum: 10/623a903e04d4707dabb8e7ce18b326be610b0394eb9237a78c738477c945f32fee4b5a3681289227080ace467a037ea5fabdae2f36cc8c02a9e5afc0e421308a languageName: node linkType: hard -"embla-carousel-reactive-utils@npm:8.1.6": - version: 8.1.6 - resolution: "embla-carousel-reactive-utils@npm:8.1.6" +"embla-carousel-reactive-utils@npm:8.1.7": + version: 8.1.7 + resolution: "embla-carousel-reactive-utils@npm:8.1.7" peerDependencies: - embla-carousel: 8.1.6 - checksum: 10/1524006c5adb3115b7ad5b70c3a857a4a5110c283eb1baaf92db16873736b1543737901b54e7210014f9cfb6d85a9a6771fc702c90192f13781effed7071bc26 + embla-carousel: 8.1.7 + checksum: 10/ad6b24dca37e7918dae32cc490e2fdcfa2ccbbc9f3059c7c76fd3b0ce8e5e2d6e9aa5fcd5338a20cf6908ae7dffeeec7547c798acda8bb7011ddfbb148a6f965 languageName: node linkType: hard -"embla-carousel@npm:8.1.6": - version: 8.1.6 - resolution: "embla-carousel@npm:8.1.6" - checksum: 10/739a112c45b218755d747487b07e182ab137b9e2f262600cf6f0296e4a83a67b442da8fc0b9672219086ff3a0671aa3cdf0a171ebb0d620f2c9264ceaf5752d7 +"embla-carousel@npm:8.1.7": + version: 8.1.7 + resolution: "embla-carousel@npm:8.1.7" + checksum: 10/9721d494c35a576254eb69d3d6cc6dea320a335ffd45dd1c71be54af29e5d2db616777d3808affad209cc4c5a1e488a0f2fc641ef8df83ea0f28c9720bf2c464 languageName: node linkType: hard @@ -11814,11 +11848,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.6": - version: 0.4.8 - resolution: "eslint-plugin-react-refresh@npm:0.4.8" + version: 0.4.9 + resolution: "eslint-plugin-react-refresh@npm:0.4.9" peerDependencies: eslint: ">=7" - checksum: 10/f502cd803a43dac83db43a924defe543a3ed57b545a4b5a9fc74c578c05903ffcb4f2988848b8d02672cf9443e390ef831ba5a1577f64617b68b3746229172b4 + checksum: 10/4a8fad22270ff2bba86bc34973228334194739b3b64dab0a13e35f1a55f8e0a66ab8861520c86f3acc3ecb3701c5bb68eca9f1f8f8a6144c17ef511ab07e02bc languageName: node linkType: hard @@ -12637,15 +12671,15 @@ __metadata: linkType: hard "firebase@npm:^10.12.2": - version: 10.12.3 - resolution: "firebase@npm:10.12.3" - dependencies: - "@firebase/analytics": "npm:0.10.5" - "@firebase/analytics-compat": "npm:0.2.11" - "@firebase/app": "npm:0.10.6" - "@firebase/app-check": "npm:0.8.5" - "@firebase/app-check-compat": "npm:0.3.12" - "@firebase/app-compat": "npm:0.2.36" + version: 10.12.4 + resolution: "firebase@npm:10.12.4" + dependencies: + "@firebase/analytics": "npm:0.10.6" + "@firebase/analytics-compat": "npm:0.2.12" + "@firebase/app": "npm:0.10.7" + "@firebase/app-check": "npm:0.8.6" + "@firebase/app-check-compat": "npm:0.3.13" + "@firebase/app-compat": "npm:0.2.37" "@firebase/app-types": "npm:0.9.2" "@firebase/auth": "npm:1.7.5" "@firebase/auth-compat": "npm:0.5.10" @@ -12667,7 +12701,7 @@ __metadata: "@firebase/storage-compat": "npm:0.3.9" "@firebase/util": "npm:1.9.7" "@firebase/vertexai-preview": "npm:0.0.3" - checksum: 10/9fd3d72b9c9c0dc9b4fbce1902b06457c847afb426931c3432e9d10fafcdc80c172d86307e5a75864608fbb6e4af13f727b2222a4b9fcb0244fe5b054f1e907d + checksum: 10/4a8b380b858ef6d546547c3c2764af070aa2262231a55951c71c307c9d2c70569e4f3d1e0cb3f0212f08b805989f0eb32b5cb70516b281583a59e19b3e7976aa languageName: node linkType: hard @@ -13804,7 +13838,7 @@ __metadata: languageName: node linkType: hard -"inline-style-prefixer@npm:^7.0.0": +"inline-style-prefixer@npm:^7.0.1": version: 7.0.1 resolution: "inline-style-prefixer@npm:7.0.1" dependencies: @@ -14240,11 +14274,11 @@ __metadata: linkType: hard "is-core-module@npm:^2.13.0": - version: 2.14.0 - resolution: "is-core-module@npm:2.14.0" + version: 2.15.0 + resolution: "is-core-module@npm:2.15.0" dependencies: hasown: "npm:^2.0.2" - checksum: 10/1e0d1a16cb3a94746f6a28db09ccab4562860c94c74bacedb3a6729736d61cfb97001d2052f9622637aa7ea8e0643a3f0f4f16965c70ba6ce30a8ccfe8074af8 + checksum: 10/70e962543e5d3a97c07cb29144a86792d545a21f28e67da5401d85878a0193d46fbab8d97bc3ca680e2778705dca66e7b6ca840c493497a27ca0e8c5f3ac3d1d languageName: node linkType: hard @@ -16568,9 +16602,9 @@ __metadata: linkType: hard "multiformats@npm:^13.0.0, multiformats@npm:^13.1.0": - version: 13.1.3 - resolution: "multiformats@npm:13.1.3" - checksum: 10/5568213caf73a9cd189afae61b0d8ca4d3175507ee50fa64a8931b7617f4ea9bf076da6fdbe78131151e5d9d48207dcd4ce56863a93d39b3f56d158e2d856daa + version: 13.2.0 + resolution: "multiformats@npm:13.2.0" + checksum: 10/59cd64eddeabf04c9f10ac209f43a55af355e0c38276523c9e23c86ba6f5626248ee2c7a1b0bf55d89e026dbce4d72cb21b260a3b4e95041b4536d5a023c7beb languageName: node linkType: hard @@ -16688,22 +16722,22 @@ __metadata: languageName: node linkType: hard -"nano-css@npm:^5.6.1": - version: 5.6.1 - resolution: "nano-css@npm:5.6.1" +"nano-css@npm:^5.6.2": + version: 5.6.2 + resolution: "nano-css@npm:5.6.2" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.4.15" css-tree: "npm:^1.1.2" csstype: "npm:^3.1.2" fastest-stable-stringify: "npm:^2.0.2" - inline-style-prefixer: "npm:^7.0.0" + inline-style-prefixer: "npm:^7.0.1" rtl-css-js: "npm:^1.16.1" stacktrace-js: "npm:^2.0.2" stylis: "npm:^4.3.0" peerDependencies: react: "*" react-dom: "*" - checksum: 10/d4e5e3c9fdfc09f494852c75ae5320373dfa84e24f82b7d6ff45928205763ec7780446e3e10af98398409bd4bf1acebc1f987570592b2bc68b9c0997ad089f73 + checksum: 10/6ed9f36957b19fc2dcf1644a853030cce70775bec3fed596cab9156063d522d5cb52cb1479117e4390acbe45b69321c9eb33915d96414aabaf09bff40497bb4a languageName: node linkType: hard @@ -16888,7 +16922,7 @@ __metadata: languageName: node linkType: hard -"node-fetch-native@npm:^1.6.1, node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3": +"node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3, node-fetch-native@npm:^1.6.4": version: 1.6.4 resolution: "node-fetch-native@npm:1.6.4" checksum: 10/39c4c6d0c2a4bed1444943e1647ad0d79eb6638cf159bc37dffeafd22cffcf6a998e006aa1f3dd1d9d2258db7d78dee96b44bee4ba0bbaf0440ed348794f2543 @@ -16973,9 +17007,9 @@ __metadata: linkType: hard "node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 10/0f7607ec7db5ef1dc616899a5f24ae90c869b6a54c2d4f36ff6d84a282ab9343c7ff3ca3670fe4669171bb1e8a9b3e286e1ef1c131f09a83d70554f855d54f24 + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e languageName: node linkType: hard @@ -17837,7 +17871,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.38, postcss@npm:^8.4.39": +"postcss@npm:^8.4.39": version: 8.4.39 resolution: "postcss@npm:8.4.39" dependencies: @@ -18917,26 +18951,26 @@ __metadata: linkType: hard "react-router-dom@npm:^6.9.0": - version: 6.24.1 - resolution: "react-router-dom@npm:6.24.1" + version: 6.25.1 + resolution: "react-router-dom@npm:6.25.1" dependencies: - "@remix-run/router": "npm:1.17.1" - react-router: "npm:6.24.1" + "@remix-run/router": "npm:1.18.0" + react-router: "npm:6.25.1" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 10/98eeeec3d36695b3d6d8000d8373ba3cefa9afc49ee44f646f3b721e8b47a80f5ce3737ad1f752cccf19caf01e370918750a4bc86a06a99e491731b454d5ec55 + checksum: 10/583a0907156f8f0687817e2cd6fa2678284729fc9cf883acb0bc0a4ade1f76fc68dd771258f6b30a2fdc378a5608b973f7ecb1f7fc752295ad4eba8b2f156a82 languageName: node linkType: hard -"react-router@npm:6.24.1": - version: 6.24.1 - resolution: "react-router@npm:6.24.1" +"react-router@npm:6.25.1": + version: 6.25.1 + resolution: "react-router@npm:6.25.1" dependencies: - "@remix-run/router": "npm:1.17.1" + "@remix-run/router": "npm:1.18.0" peerDependencies: react: ">=16.8" - checksum: 10/18ac968171dee286a2f067dc8568faf73c759f833e88e09f1b34ff6e9376d1fd5eade8697a86be83093225956b256b398d935ce2f681c1bf711fb3c058c19839 + checksum: 10/3bfb9754cff279cabcb247f13e66315d02333dae7e251fa8975d0e5cf68ee61793ad040594d2d490a5c995efc542739e7ef80462a69bd3209f64c69086fc7786 languageName: node linkType: hard @@ -18953,19 +18987,19 @@ __metadata: linkType: hard "react-spring@npm:^9.0.0-rc.3": - version: 9.7.3 - resolution: "react-spring@npm:9.7.3" + version: 9.7.4 + resolution: "react-spring@npm:9.7.4" dependencies: - "@react-spring/core": "npm:~9.7.3" - "@react-spring/konva": "npm:~9.7.3" - "@react-spring/native": "npm:~9.7.3" - "@react-spring/three": "npm:~9.7.3" - "@react-spring/web": "npm:~9.7.3" - "@react-spring/zdog": "npm:~9.7.3" + "@react-spring/core": "npm:~9.7.4" + "@react-spring/konva": "npm:~9.7.4" + "@react-spring/native": "npm:~9.7.4" + "@react-spring/three": "npm:~9.7.4" + "@react-spring/web": "npm:~9.7.4" + "@react-spring/zdog": "npm:~9.7.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/f763fb64b16b59b7b98816b88898d1697906aebd0d9067bdb2af61d2522b3a313d1117e139e75e39f0cd438e1d110956cfb3573bdefb5516ffba3e7aa618d87e + checksum: 10/d37f10a14fb186b69d7e0a171d64584e89cef25b0b99044f209fa77eb3544300814071023401a3d3e6fee59a55a6db1713deee4db8091a55af8d33508e20b882 languageName: node linkType: hard @@ -19109,8 +19143,8 @@ __metadata: linkType: hard "react-use@npm:^17.3.2": - version: 17.5.0 - resolution: "react-use@npm:17.5.0" + version: 17.5.1 + resolution: "react-use@npm:17.5.1" dependencies: "@types/js-cookie": "npm:^2.2.6" "@xobotyi/scrollbar-width": "npm:^1.9.5" @@ -19118,7 +19152,7 @@ __metadata: fast-deep-equal: "npm:^3.1.3" fast-shallow-equal: "npm:^1.0.0" js-cookie: "npm:^2.2.1" - nano-css: "npm:^5.6.1" + nano-css: "npm:^5.6.2" react-universal-interface: "npm:^0.6.2" resize-observer-polyfill: "npm:^1.5.1" screenfull: "npm:^5.1.0" @@ -19129,7 +19163,7 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 10/5d81fe0902303d3ed7810cdd56c6cae12b08124a3d4fcbfa3924327105b81447b039ea9d6aff20aac3c13999f949000870a7a2fa29fe20ed844ac26606462fa0 + checksum: 10/2da403a9949dbd964b9b8e20dcd354db66b7f7d5ca1f42572fbcdb06bd49ee828c295be4912cb87abc163d1b54820bb8c5fa85314a16c4579d9e30bf9cbd5759 languageName: node linkType: hard @@ -19562,25 +19596,25 @@ __metadata: linkType: hard "rollup@npm:^4.13.0": - version: 4.18.1 - resolution: "rollup@npm:4.18.1" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.18.1" - "@rollup/rollup-android-arm64": "npm:4.18.1" - "@rollup/rollup-darwin-arm64": "npm:4.18.1" - "@rollup/rollup-darwin-x64": "npm:4.18.1" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.1" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.1" - "@rollup/rollup-linux-arm64-gnu": "npm:4.18.1" - "@rollup/rollup-linux-arm64-musl": "npm:4.18.1" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.1" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.1" - "@rollup/rollup-linux-s390x-gnu": "npm:4.18.1" - "@rollup/rollup-linux-x64-gnu": "npm:4.18.1" - "@rollup/rollup-linux-x64-musl": "npm:4.18.1" - "@rollup/rollup-win32-arm64-msvc": "npm:4.18.1" - "@rollup/rollup-win32-ia32-msvc": "npm:4.18.1" - "@rollup/rollup-win32-x64-msvc": "npm:4.18.1" + version: 4.19.0 + resolution: "rollup@npm:4.19.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.19.0" + "@rollup/rollup-android-arm64": "npm:4.19.0" + "@rollup/rollup-darwin-arm64": "npm:4.19.0" + "@rollup/rollup-darwin-x64": "npm:4.19.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.19.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.19.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.19.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.19.0" + "@rollup/rollup-linux-x64-musl": "npm:4.19.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.19.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.19.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.19.0" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -19620,7 +19654,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/7a5f110d216e8599dc3cb11cf570316d989abae00785d99c2bcb6027287fe60d2eaed70e457d88a036622e7fc67e8db6e730d3c784aa90a258bd4c020676ad44 + checksum: 10/a5f56e60d160e727f372fb0b0adbab03c1e5b858df7af62e626459687e6510d5b9685e4badef50bb6ffd916eaf53c1684a8e12ae959dacb8e6930c77a00a0f19 languageName: node linkType: hard @@ -19733,6 +19767,13 @@ __metadata: languageName: node linkType: hard +"safevalues@npm:0.6.0": + version: 0.6.0 + resolution: "safevalues@npm:0.6.0" + checksum: 10/b0ad6307e08047c4e2f9c3feb3158c5d75dbc5a54fac1719e6bd10e2a78af33f32b1b43187aff8ad7d4472075bdc3f2a60595bf40260e80883c9c1b77af7fe52 + languageName: node + linkType: hard + "sax@npm:>=0.6.0": version: 1.4.1 resolution: "sax@npm:1.4.1" @@ -19904,11 +19945,11 @@ __metadata: linkType: hard "semver@npm:^7.3.5, semver@npm:^7.6.0": - version: 7.6.2 - resolution: "semver@npm:7.6.2" + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 10/296b17d027f57a87ef645e9c725bff4865a38dfc9caf29b26aa084b85820972fbe7372caea1ba6857162fa990702c6d9c1d82297cecb72d56c78ab29070d2ca2 + checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 languageName: node linkType: hard @@ -20606,8 +20647,8 @@ __metadata: linkType: hard "styled-components@npm:>=5, styled-components@npm:^6.1.0": - version: 6.1.11 - resolution: "styled-components@npm:6.1.11" + version: 6.1.12 + resolution: "styled-components@npm:6.1.12" dependencies: "@emotion/is-prop-valid": "npm:1.2.2" "@emotion/unitless": "npm:0.8.1" @@ -20621,7 +20662,7 @@ __metadata: peerDependencies: react: ">= 16.8.0" react-dom: ">= 16.8.0" - checksum: 10/6813bba73ad706998a903793da2c903a6a64e487b2167d26cc3d55a850637a31becab1ce43fa072f9aba4f6074ec5a914dd4696e9ba2548e6c4873436f4ca632 + checksum: 10/b0bcba70921f99b6d30a63ba4311b09a04da4c9c9213bc711a436bff8607387c61e588e9953897d3c99399e85dc5f1d7ab78482920bc6a610a1f883d8eb9bce8 languageName: node linkType: hard @@ -20845,8 +20886,8 @@ __metadata: linkType: hard "terser@npm:^5.26.0": - version: 5.31.2 - resolution: "terser@npm:5.31.2" + version: 5.31.3 + resolution: "terser@npm:5.31.3" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -20854,7 +20895,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10/dab8d0a7e2845f14535433795aa8dcf1b80a33e75749f5dbd67ee97aa66c1dec37191afa46dd88dad8472c9ff0bf16a812dd4388cb30d8675a6a95a7ead0421b + checksum: 10/7f66d93a1157f66f5eda16515ed45e6eb485d3c4acbc46e78a5e62922f5b4643d9212abc586f791021fafc71563a93475a986c52f4270a5e0b3ee50a70507d9e languageName: node linkType: hard @@ -21233,9 +21274,9 @@ __metadata: linkType: hard "type-fest@npm:^4.18.2": - version: 4.21.0 - resolution: "type-fest@npm:4.21.0" - checksum: 10/a4dc074b25239fff4062495c58554dcec15845622d753092d2bf24fc3b1c49f85805ed74f151976d666056ff122b3a5a988e85226575b7fbbc8e92d2db210137 + version: 4.22.1 + resolution: "type-fest@npm:4.22.1" + checksum: 10/f0cef35c98c34577d94dd36b4baa6544cd6977bdee47d95fad1d970ca3b61c1bb0ab8aac66bab6e1e387b1f2821727675743282f1a8680da54adc1a5625f3d66 languageName: node linkType: hard @@ -21316,9 +21357,9 @@ __metadata: linkType: hard "ufo@npm:^1.4.0, ufo@npm:^1.5.3": - version: 1.5.3 - resolution: "ufo@npm:1.5.3" - checksum: 10/2b30dddd873c643efecdb58cfe457183cd4d95937ccdacca6942c697b87a2c578232c25a5149fda85436696bf0fdbc213bf2b220874712bc3e58c0fb00a2c950 + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: 10/a885ed421e656aea6ca64e9727b8118a9488715460b6f1a0f0427118adfe2f2830fe7c1d5bd9c5c754a332e6807516551cd663ea67ce9ed6a4e3edc739916335 languageName: node linkType: hard @@ -21427,15 +21468,15 @@ __metadata: linkType: hard "unenv@npm:^1.9.0": - version: 1.9.0 - resolution: "unenv@npm:1.9.0" + version: 1.10.0 + resolution: "unenv@npm:1.10.0" dependencies: consola: "npm:^3.2.3" - defu: "npm:^6.1.3" + defu: "npm:^6.1.4" mime: "npm:^3.0.0" - node-fetch-native: "npm:^1.6.1" - pathe: "npm:^1.1.1" - checksum: 10/7b5e0f139f69ebb9d2822abc84903eccb5655bacc00a26cc3be260f25b3d84b5e19418503e038c7bf4bcc67c4f8ebcab7d55736f7eddf7a3948a311176b1d000 + node-fetch-native: "npm:^1.6.4" + pathe: "npm:^1.1.2" + checksum: 10/23198e150fd3b4db4d7abe444b75ee05a0d36768bd6d94a6aaf5dca830db82e707ccc0f6cca22671327b62c5cd85ada08d4665bf7652afec9de0bdc7a4546249 languageName: node linkType: hard @@ -21784,6 +21825,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" + bin: + uuid: dist/bin/uuid + checksum: 10/35aa60614811a201ff90f8ca5e9ecb7076a75c3821e17f0f5ff72d44e36c2d35fcbc2ceee9c4ac7317f4cc41895da30e74f3885e30313bee48fda6338f250538 + languageName: node + linkType: hard + "uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" @@ -21944,15 +21994,15 @@ __metadata: linkType: hard "vite-plugin-top-level-await@npm:^1.4.1": - version: 1.4.1 - resolution: "vite-plugin-top-level-await@npm:1.4.1" + version: 1.4.2 + resolution: "vite-plugin-top-level-await@npm:1.4.2" dependencies: "@rollup/plugin-virtual": "npm:^3.0.2" - "@swc/core": "npm:^1.3.100" - uuid: "npm:^9.0.1" + "@swc/core": "npm:^1.7.0" + uuid: "npm:^10.0.0" peerDependencies: vite: ">=2.8" - checksum: 10/68c82f5fa2e860ebe0867337ced237042127a03ec367cfeadb890dc20f623811263bac59a1afeac8b9ac7c11501752ded03cd035ac75c35d20531a7e42f096a7 + checksum: 10/40a0ebb9a7e4e5bdb95b796f2fa14a3d76eb6e7e098d1d16a9d0ad87e74b8379b52515888fb90e2688d351e89732f6fe6c12bafaed22495b1cc0735812748991 languageName: node linkType: hard From 823fb4f3112ad2ebf4c7757768f4e609fc8e491a Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:15:01 +0530 Subject: [PATCH 18/31] Improve mobile navbar view (#1737) * chore: improve mobile navbar view * chore: fix css at 1024px * chore: fix sidebar media queries --- src/App.tsx | 4 +- src/components/ChainIndicator.tsx | 8 +-- src/structure/Header.tsx | 108 ++++++++++++++++-------------- 3 files changed, 62 insertions(+), 58 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index e582479e46..0e2ed2946f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -472,7 +472,7 @@ const LeftBarContainer = styled.div` position: fixed; // position: absolute; - @media (max-width: 992px) { + @media (max-width: 1024px) { display: none; } `; @@ -484,7 +484,7 @@ const ContentContainer = styled.div` width: calc(100% - ${(props) => props.leftBarWidth}px); margin: 0px 0px 0px ${(props) => props.leftBarWidth}px; - @media (max-width: 992px) { + @media (max-width: 1024px) { margin: 0px; } `; diff --git a/src/components/ChainIndicator.tsx b/src/components/ChainIndicator.tsx index c55fc865c5..c3d773df5f 100644 --- a/src/components/ChainIndicator.tsx +++ b/src/components/ChainIndicator.tsx @@ -126,7 +126,7 @@ const Container = styled.button` flex-direction: row; align-items: center; display: flex; - @media (max-width: 992px) { + @media (max-width: 1024px) { width: 100%; margin-right: 20px; } @@ -160,7 +160,7 @@ const CurrentChain = styled(SpanV2)` pointer: hand; } - @media (max-width: 992px) { + @media (max-width: 1024px) { width: 100%; justify-content: space-between; border: none; @@ -186,7 +186,7 @@ const ChainName = styled(H3)` letter-spacing: normal; cursor: pointer; - @media (max-width: 992px) { + @media (max-width: 1024px) { display: flex; } `; @@ -223,7 +223,7 @@ const DropdownItem = styled(Item)` right: 0rem; z-index: 10; - @media (max-width: 992px) { + @media (max-width: 1024px) { right: 0.9rem; top: 3.5rem; } diff --git a/src/structure/Header.tsx b/src/structure/Header.tsx index e70431ceec..d884ee9884 100644 --- a/src/structure/Header.tsx +++ b/src/structure/Header.tsx @@ -9,14 +9,14 @@ import { DarkModeSwitch } from 'react-toggle-dark-mode'; import styled, { useTheme } from 'styled-components'; // Internal Components -import { Box, Link, Text, Star, Lozenge, RewardsBell, Button } from 'blocks'; +import { Box, Link, Text, Star, Lozenge, RewardsBell } from 'blocks'; import { LOADER_SPINNER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; import Spinner from 'components/reusables/spinners/SpinnerUnit'; import { ErrorContext } from 'contexts/ErrorContext'; import { NavigationContext } from 'contexts/NavigationContext'; import Profile from 'primaries/Profile'; -import { Button as IButton, Item, ItemH, Section, Span } from 'primaries/SharedStyling'; +import { Item, ItemH, Section, Span } from 'primaries/SharedStyling'; import PushLogoDark from '../assets/pushDark.svg'; import PushLogoLight from '../assets/pushLight.svg'; @@ -216,7 +216,21 @@ function Header({ isDarkMode, darkModeToggle }) { */} - + + + + )} - +
+ } > - + - - - - + + {isActive && !showLoginControls && !error && ( + + )} - {isActive && !showLoginControls && !error && ( - - )} {isActive && !error && ( - - - setShowNavBar((prev) => !prev)} - size={30} - color={theme.headerIconsBg} - /> - - + + setShowNavBar((prev) => !prev)} + size={30} + color={theme.headerIconsBg} + /> + )} Date: Thu, 25 Jul 2024 15:22:35 +0530 Subject: [PATCH 19/31] DApp-1727 blocks/modal (#1765) * update changes * add props type * update version and remove on dash * modal in progress * modal implemented * reverted dashboard component * removed curropted file --------- Co-authored-by: corlard3y --- package.json | 1 + src/blocks/Blocks.utils.ts | 14 ++ src/blocks/index.ts | 1 + src/blocks/modal/AlertModal.tsx | 108 ++++++++++++ src/blocks/modal/Modal.constants.ts | 23 +++ src/blocks/modal/Modal.tsx | 154 ++++++++++++++++++ src/blocks/modal/Modal.types.ts | 7 + src/blocks/modal/index.ts | 2 + src/blocks/theme/colors/colors.semantics.ts | 4 + src/blocks/theme/semantics/semantics.modal.ts | 25 +++ src/modules/dashboard/Dashboard.tsx | 2 +- .../dashboard/components/DashboardHeader.tsx | 2 +- yarn.lock | 3 +- 13 files changed, 343 insertions(+), 3 deletions(-) create mode 100644 src/blocks/modal/AlertModal.tsx create mode 100644 src/blocks/modal/Modal.constants.ts create mode 100644 src/blocks/modal/Modal.tsx create mode 100644 src/blocks/modal/Modal.types.ts create mode 100644 src/blocks/modal/index.ts create mode 100644 src/blocks/theme/semantics/semantics.modal.ts diff --git a/package.json b/package.json index b3d0375438..1e2d39d5ef 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "@pushprotocol/restapi": "1.7.23", "@pushprotocol/socket": "0.5.3", "@pushprotocol/uiweb": "1.4.2", + "@radix-ui/react-dialog": "^1.1.1", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.1", diff --git a/src/blocks/Blocks.utils.ts b/src/blocks/Blocks.utils.ts index 3f60aa64ca..1b86463e34 100644 --- a/src/blocks/Blocks.utils.ts +++ b/src/blocks/Blocks.utils.ts @@ -11,6 +11,8 @@ import { BlocksRadiusType, } from './Blocks.types'; import { radiusRegex, spacingRegex } from './Blocks.constants'; +import { textVariants, TextVariants } from './text'; +import { ThemeColors } from './theme/Theme.types'; /** * @param propName @@ -161,3 +163,15 @@ export const getBlocksBorderRadius = (radius?: BlocksRadiusType) => { return result; }; + +export const getTextVariantStyles = (variant: TextVariants, color: ThemeColors) => css` + color: var(--${color}); + font-family: var(--font-family); + font-size: ${textVariants[variant].fontSize}; + font-style: ${textVariants[variant].fontStyle}; + font-weight: ${textVariants[variant].fontWeight}; + line-height: ${textVariants[variant].lineHeight}; + letter-spacing: ${textVariants[variant].letterSpacing}; + text-transform: ${textVariants[variant].textTransform}; + margin: var(--spacing-none); +`; diff --git a/src/blocks/index.ts b/src/blocks/index.ts index ecb30db71f..31b014d08c 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -5,6 +5,7 @@ export { HoverableSVG, type HoverableSVGProps } from './hoverableSVG'; export { Link, type LinkProps } from './link'; export { Lozenge, type LozengeProps } from './lozenge'; export { Menu, type MenuProps, MenuItem, type MenuItemComponentProps } from './menu'; +export { Modal, type ModalProps, modal } from './modal'; export { Separator, type SeparatorProps } from './separator'; export { Skeleton, type SkeletonProps } from './skeleton'; export { Tabs, type TabsProps, type TabItem } from './tabs'; diff --git a/src/blocks/modal/AlertModal.tsx b/src/blocks/modal/AlertModal.tsx new file mode 100644 index 0000000000..b71465f255 --- /dev/null +++ b/src/blocks/modal/AlertModal.tsx @@ -0,0 +1,108 @@ +import { FC } from 'react'; +import ReactDOM from 'react-dom/client'; +import styled from 'styled-components'; +import { getTextVariantStyles } from '../Blocks.utils'; +import { ThemeColors } from '../theme/Theme.types'; +import { Modal, ModalProps } from './Modal'; +import { AlertModalTypes, ModalSize, ShowAlertModalConfig } from './Modal.types'; +import { alertModalIcon } from './Modal.constants'; + +export type AlertModalProps = { + description: string; + title: string; + type: AlertModalTypes; +} & Omit; + +const Container = styled.div<{ iconColor: ThemeColors; size: ModalSize }>` + display: flex; + padding: var(--spacing-none); + align-items: flex-start; + gap: var(--spacing-xxxs); + margin-top: ${({ size }) => (size === 'small' ? '-24px' : '-28px')}; + + [role='img'] { + color: var(--${({ iconColor }) => iconColor}); + } +`; + +const TextContainer = styled.div` + display: flex; + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xxxs); + flex: 1 0 0; +`; + +const Title = styled.p<{ size: ModalSize }>` + ${({ size }) => { + const variant = size === 'small' ? 'h5-semibold' : size === 'medium' ? 'h4-semibold' : 'h3-semibold'; + return getTextVariantStyles(variant, 'components-modal-text-default'); + }} +`; + +const Description = styled.div<{ size: ModalSize }>` + ${({ size }) => { + const variant = size === 'small' ? 'bes-regular' : size === 'medium' ? 'bs-regular' : 'bm-regular'; + return getTextVariantStyles(variant, 'components-modal-text-secondary'); + }} +`; + +const AlertModal: FC = ({ description, title, type, size = 'small', ...restProps }) => { + const Icon = alertModalIcon[type].icon; + return ( + + + + + {title} + {description} + + + + ); +}; + +const renderModal = (props: AlertModalProps) => { + const div = document.createElement('div'); + document.body.appendChild(div); + + const root = ReactDOM.createRoot(div); + + const handleClose = () => { + root.unmount(); + document.body.removeChild(div); + if (props.onClose) props.onClose(); + }; + + root.render( + + ); +}; + +const showModal = (type: AlertModalTypes, config: ShowAlertModalConfig) => { + renderModal({ + ...config, + isOpen: true, + type, + onClose: () => {}, + }); +}; + +const modal = { + info: (config: ShowAlertModalConfig) => showModal('info', config), + success: (config: ShowAlertModalConfig) => showModal('success', config), + error: (config: ShowAlertModalConfig) => showModal('error', config), + warning: (config: ShowAlertModalConfig) => showModal('warning', config), +}; + +export { modal }; diff --git a/src/blocks/modal/Modal.constants.ts b/src/blocks/modal/Modal.constants.ts new file mode 100644 index 0000000000..6f4c9425e8 --- /dev/null +++ b/src/blocks/modal/Modal.constants.ts @@ -0,0 +1,23 @@ +import { FC } from 'react'; +import { IconProps, InfoFilled, TickCircleFilled, WarningCircleFilled } from '../icons'; +import { AlertModalTypes } from './Modal.types'; +import { ThemeColors } from 'blocks/theme/Theme.types'; + +export const alertModalIcon: Record; color: ThemeColors }> = { + error: { + icon: InfoFilled, + color: 'components-modal-icon-error', + }, + info: { + icon: InfoFilled, + color: 'components-modal-icon-info', + }, + success: { + icon: TickCircleFilled, + color: 'components-modal-icon-success', + }, + warning: { + icon: WarningCircleFilled, + color: 'components-modal-icon-warning', + }, +}; diff --git a/src/blocks/modal/Modal.tsx b/src/blocks/modal/Modal.tsx new file mode 100644 index 0000000000..71ddb3af6b --- /dev/null +++ b/src/blocks/modal/Modal.tsx @@ -0,0 +1,154 @@ +import { FC, ReactNode } from 'react'; +import * as Dialog from '@radix-ui/react-dialog'; +import styled from 'styled-components'; +import { Button, ButtonProps } from '../button'; +import { Back, Cross } from '../icons'; +import { ModalSize } from './Modal.types'; + +type ButtonAlignment = 'end' | 'center'; + +export type ModalProps = { + acceptButtonProps?: ButtonProps; + buttonAlignment?: ButtonAlignment; + cancelButtonProps?: ButtonProps | null; + children: ReactNode; + closeOnOverlayClick?: boolean; + isOpen: boolean; + onBack?: () => void; + onClose: () => void; + size?: ModalSize; +}; + +const Overlay = styled(Dialog.Overlay)` + background: var(--surface-glass-bold); + backdrop-filter: blur(calc(var(--blur-lg) / 2)); + position: fixed; + inset: 0; + z-index: 1000; +`; + +const ContentContainer = styled(Dialog.Content)<{ size: ModalSize }>` + display: flex; + border-radius: var(--radius-sm); + border: var(--border-sm) solid var(--stroke-secondary); + background: var(--components-modal-background-default); + padding: var(--spacing-${({ size }) => (size === 'small' ? 'xs' : 'sm')}); + flex-direction: column; + align-items: flex-start; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + min-width: 300px; + width: ${({ size }) => (size === 'small' ? '360px' : size === 'medium' ? '500px' : '700px')}; + gap: var(--spacing-sm); + z-index: 1100; +`; + +const ContentChildren = styled.div<{ size: ModalSize }>` + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 0 0; + padding-top: var(--spacing-${({ size }) => (size === 'small' ? 'xxs' : 'xs')}); +`; + +const HeaderContainer = styled.div` + position: relative; + width: 100%; +`; + +const BackButton = styled.div` + cursor: pointer; + color: var(--components-modal-icon-default); + padding: var(--spacing-none); + position: absolute; + left: 0; + top: 0; +`; + +const CloseButton = styled.div` + background-color: var(--surface-transparent); + cursor: pointer; + color: var(--components-modal-icon-default); + padding: var(--spacing-none); + position: absolute; + right: 0; + top: 0; +`; + +const ButtonsContainer = styled.div<{ buttonAlignment: ButtonAlignment }>` + display: flex; + padding: var(--spacing-xxs); + justify-content: center; + align-items: center; + gap: var(--spacing-xs); + align-self: ${({ buttonAlignment }) => (buttonAlignment === 'end' ? 'flex-end' : 'center')}; +`; + +const Modal: FC = ({ + acceptButtonProps, + closeOnOverlayClick = false, + buttonAlignment = 'center', + cancelButtonProps = { children: 'Cancel', onClick: () => onClose() }, + children, + isOpen, + onBack, + onClose, + size = 'medium', +}) => { + const handleOverlayClick = () => { + if (closeOnOverlayClick) { + onClose(); + } + }; + + const iconSize = size === 'small' ? 16 : 24; + return ( + + + + e.preventDefault()} + > + + {onBack && ( + + + + )} + + + + + {children} + + {cancelButtonProps && ( + + )} + + + + + + ); +}; + +export { Modal }; diff --git a/src/blocks/modal/Modal.types.ts b/src/blocks/modal/Modal.types.ts new file mode 100644 index 0000000000..a37b86079f --- /dev/null +++ b/src/blocks/modal/Modal.types.ts @@ -0,0 +1,7 @@ +import { AlertModalProps } from './AlertModal'; + +export type AlertModalTypes = 'error' | 'info' | 'success' | 'warning'; + +export type ShowAlertModalConfig = Omit; + +export type ModalSize = 'small' | 'medium' | 'large'; diff --git a/src/blocks/modal/index.ts b/src/blocks/modal/index.ts new file mode 100644 index 0000000000..403c495f26 --- /dev/null +++ b/src/blocks/modal/index.ts @@ -0,0 +1,2 @@ +export * from './Modal'; +export * from './AlertModal'; diff --git a/src/blocks/theme/colors/colors.semantics.ts b/src/blocks/theme/colors/colors.semantics.ts index 747dbaf480..09d3f2c7f8 100644 --- a/src/blocks/theme/colors/colors.semantics.ts +++ b/src/blocks/theme/colors/colors.semantics.ts @@ -10,6 +10,7 @@ import { checkboxSemantics } from '../semantics/semantics.checkbox'; import { dropdownSemantics } from '../semantics/semantics.dropdown'; import { iconSemantics } from '../semantics/semantics.icon'; import { inputSemantics } from '../semantics/semantics.input'; +import { modalSemantics } from '../semantics/semantics.modal'; import { radioSemantics } from '../semantics/semantics.radio'; import { skeletonSemantics } from '../semantics/semantics.skeleton'; import { strokeSemantics } from '../semantics/semantics.stroke'; @@ -32,6 +33,7 @@ type SemanticKeys = { dropdown: 'components-dropdown'; icon: 'icon'; input: 'components-inputs'; + modal: 'components-modal'; radio: 'components-radio-button'; surface: 'surface'; stroke: 'stroke'; @@ -54,6 +56,7 @@ export const semanticKeys: SemanticKeys = { dropdown: 'components-dropdown', icon: 'icon', input: 'components-inputs', + modal: 'components-modal', radio: 'components-radio-button', surface: 'surface', stroke: 'stroke', @@ -76,6 +79,7 @@ export const colorSemantics = { [semanticKeys.dropdown]: dropdownSemantics, [semanticKeys.icon]: iconSemantics, [semanticKeys.input]: inputSemantics, + [semanticKeys.modal]: modalSemantics, [semanticKeys.radio]: radioSemantics, [semanticKeys.surface]: surfaceSemantics, [semanticKeys.stroke]: strokeSemantics, diff --git a/src/blocks/theme/semantics/semantics.modal.ts b/src/blocks/theme/semantics/semantics.modal.ts new file mode 100644 index 0000000000..e29fe2c0f5 --- /dev/null +++ b/src/blocks/theme/semantics/semantics.modal.ts @@ -0,0 +1,25 @@ +import { colorPrimitives } from '../colors/colors.primitives'; +import { iconSemantics } from './semantics.icon'; +import { strokeSemantics } from './semantics.stroke'; +import { surfaceSemantics } from './semantics.surface'; +import { textSemantics } from './semantics.text'; + +export const modalSemantics = { + 'background-default': { light: surfaceSemantics['primary'].light, dark: surfaceSemantics['primary'].dark }, + + 'stroke-bg': { light: strokeSemantics['secondary'].light, dark: strokeSemantics['secondary'].dark }, + + 'text-default': { + light: textSemantics['primary'].light, + dark: textSemantics['primary'].dark, + }, + 'text-secondary': { light: textSemantics['tertiary'].light, dark: textSemantics['tertiary'].dark }, + 'text-link': { light: colorPrimitives['pink-700'], dark: colorPrimitives['pink-400'] }, + + 'icon-success': { light: colorPrimitives['green-400'], dark: colorPrimitives['green-300'] }, + 'icon-error': { light: colorPrimitives['red-700'], dark: colorPrimitives['red-600'] }, + 'icon-warning': { light: colorPrimitives['yellow-400'], dark: colorPrimitives['yellow-300'] }, + 'icon-info': { light: colorPrimitives['blue-600'], dark: colorPrimitives['blue-500'] }, + 'icon-default': { light: iconSemantics['primary'].light, dark: iconSemantics['primary'].dark }, + 'icon-secondary': { light: iconSemantics['secondary'].light, dark: iconSemantics['secondary'].dark }, +}; diff --git a/src/modules/dashboard/Dashboard.tsx b/src/modules/dashboard/Dashboard.tsx index 72c4e5eb99..02c8424864 100644 --- a/src/modules/dashboard/Dashboard.tsx +++ b/src/modules/dashboard/Dashboard.tsx @@ -6,7 +6,7 @@ import { Box } from 'blocks'; import { DashboardSubHeader } from './components/DashboardSubHeader'; import { FeaturedChannels } from './components/FeaturedChannels'; import { ChannelVariantsSection } from './components/ChannelVariantsSection'; -import DashboardHeader from './components/DashboardHeader'; +import { DashboardHeader } from './components/DashboardHeader'; export type DashboardProps = {}; diff --git a/src/modules/dashboard/components/DashboardHeader.tsx b/src/modules/dashboard/components/DashboardHeader.tsx index 3d6a3510cc..aea0a34808 100644 --- a/src/modules/dashboard/components/DashboardHeader.tsx +++ b/src/modules/dashboard/components/DashboardHeader.tsx @@ -60,4 +60,4 @@ const DashboardHeader: FC = ({ setSubHeaderVisibility, sho ); }; -export default DashboardHeader; +export { DashboardHeader }; diff --git a/yarn.lock b/yarn.lock index 72e8c92697..227062d438 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4244,7 +4244,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dialog@npm:^1.0.4": +"@radix-ui/react-dialog@npm:^1.0.4, @radix-ui/react-dialog@npm:^1.1.1": version: 1.1.1 resolution: "@radix-ui/react-dialog@npm:1.1.1" dependencies: @@ -18204,6 +18204,7 @@ __metadata: "@pushprotocol/restapi": "npm:1.7.23" "@pushprotocol/socket": "npm:0.5.3" "@pushprotocol/uiweb": "npm:1.4.2" + "@radix-ui/react-dialog": "npm:^1.1.1" "@radix-ui/react-dropdown-menu": "npm:^2.1.1" "@radix-ui/react-switch": "npm:^1.1.0" "@radix-ui/react-tooltip": "npm:^1.1.1" From 9410e4051021c0c58d71915f1f912a1b351c271a Mon Sep 17 00:00:00 2001 From: Monalisha Mishra <42746736+mishramonalisha76@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:29:51 +0530 Subject: [PATCH 20/31] fixed the text in dashboard (#1766) --- src/modules/dashboard/components/EmptyChannelList.tsx | 2 +- src/modules/dashboard/components/RewardsSection.tsx | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/dashboard/components/EmptyChannelList.tsx b/src/modules/dashboard/components/EmptyChannelList.tsx index 1dd8e7fbc6..ff7a3729a4 100644 --- a/src/modules/dashboard/components/EmptyChannelList.tsx +++ b/src/modules/dashboard/components/EmptyChannelList.tsx @@ -39,7 +39,7 @@ const EmptyChannelList: FC = ({ heading, subHeading }) => {subHeading} diff --git a/src/modules/dashboard/components/RewardsSection.tsx b/src/modules/dashboard/components/RewardsSection.tsx index 5ee4a95b8e..caf85dfd38 100644 --- a/src/modules/dashboard/components/RewardsSection.tsx +++ b/src/modules/dashboard/components/RewardsSection.tsx @@ -28,6 +28,7 @@ const RewardsSection = () => { Complete Tasks on Push. Earn Push Points and Unlock Rewards. @@ -35,6 +36,7 @@ const RewardsSection = () => { variant="h5-semibold" display={{ ml: 'block', dp: 'none' }} textAlign="center" + color="text-on-light-bg" > Complete Tasks on Push. Earn Push Points and Unlock Rewards.
From 7049cb88bfd514f9a919a2b8b1dc4aad073dd113 Mon Sep 17 00:00:00 2001 From: rohitmalhotra1420 Date: Fri, 26 Jul 2024 12:35:58 +0530 Subject: [PATCH 21/31] removed duplicate display --- src/structure/Header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/Header.tsx b/src/structure/Header.tsx index d884ee9884..daa73cb099 100644 --- a/src/structure/Header.tsx +++ b/src/structure/Header.tsx @@ -305,7 +305,7 @@ function Header({ isDarkMode, darkModeToggle }) { {isActive && !error && ( From d912a625d87997464eb159175075596d4be2138c Mon Sep 17 00:00:00 2001 From: rohitmalhotra1420 Date: Fri, 26 Jul 2024 12:36:35 +0530 Subject: [PATCH 22/31] removed curropted file --- src/blocks/dropdown/Dropdown.utils.tsx | 35 -------------------------- 1 file changed, 35 deletions(-) delete mode 100644 src/blocks/dropdown/Dropdown.utils.tsx diff --git a/src/blocks/dropdown/Dropdown.utils.tsx b/src/blocks/dropdown/Dropdown.utils.tsx deleted file mode 100644 index e726e923f2..0000000000 --- a/src/blocks/dropdown/Dropdown.utils.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { DropdownPosition } from './Dropdown.types'; -import { DropdownMenuContentProps } from '@radix-ui/react-dropdown-menu'; - -export const getDropdownPositionalCSS = (dropdownPosition: DropdownPosition) => { - let style: { - align: DropdownMenuContentProps['align']; - side: DropdownMenuContentProps['side']; - } = { - align: 'center', - side: 'bottom', - }; - - switch (dropdownPosition) { - case 'top': - style = { - align: 'center', - side: 'top', - }; - break; - case 'left': - style = { - align: 'center', - side: 'left', - }; - break; - case 'right': - style = { - align: 'center', - side: 'right', - }; - break; - } - - return style; -}; From fd2b3d5ff19a9a715ee6a88013716cbb8e9574d6 Mon Sep 17 00:00:00 2001 From: Rohit Malhotra Date: Tue, 30 Jul 2024 15:05:20 +0530 Subject: [PATCH 23/31] DApp-1690 dashboard analytics with stakingpools (#1780) * implemented the UI part * in progress * staking pools in progress * completed dashboard analytics and pools section * reverted logging * fixed the formatting * type fixes done --- src/blocks/box/Box.constants.ts | 1 + src/blocks/box/Box.types.ts | 3 + src/blocks/box/Box.utils.ts | 1 + src/blocks/icons/components/ArrowUpRight.tsx | 51 + src/blocks/icons/index.ts | 2 + .../illustrations/components/EarnOnPush.tsx | 1006 +++++++++++++++++ src/blocks/illustrations/index.ts | 2 + src/common/hooks/index.ts | 1 + src/common/hooks/usePushStakingStats.ts | 119 ++ src/modules/dashboard/Dashboard.tsx | 14 +- .../components/AnalyticsOverview.tsx | 63 ++ .../dashboard/components/StakingPools.tsx | 228 ++++ src/queries/baseURL.ts | 2 + src/queries/hooks/analytics/index.ts | 3 + .../hooks/analytics/useGetSubscriberCount.ts | 12 + .../hooks/analytics/useSentMessageCount.ts | 12 + .../analytics/useSentNotificationCount.ts | 12 + src/queries/hooks/index.ts | 1 + .../getSentNotificationCountModelCreator.ts | 22 + .../getSubscriberCountModelCreator.ts | 56 + src/queries/models/analytics/index.ts | 2 + src/queries/queryKeys.ts | 3 + .../services/analytics/getSentMessageCount.ts | 8 + .../analytics/getSentNotificationCount.ts | 15 + .../services/analytics/getSubscriberCount.ts | 18 + src/queries/services/analytics/index.ts | 3 + src/queries/services/index.ts | 1 + src/queries/types/analytics.ts | 31 + yarn.lock | 746 ++++++------ 29 files changed, 2043 insertions(+), 395 deletions(-) create mode 100644 src/blocks/icons/components/ArrowUpRight.tsx create mode 100644 src/blocks/illustrations/components/EarnOnPush.tsx create mode 100644 src/common/hooks/usePushStakingStats.ts create mode 100644 src/modules/dashboard/components/AnalyticsOverview.tsx create mode 100644 src/modules/dashboard/components/StakingPools.tsx create mode 100644 src/queries/hooks/analytics/index.ts create mode 100644 src/queries/hooks/analytics/useGetSubscriberCount.ts create mode 100644 src/queries/hooks/analytics/useSentMessageCount.ts create mode 100644 src/queries/hooks/analytics/useSentNotificationCount.ts create mode 100644 src/queries/models/analytics/getSentNotificationCountModelCreator.ts create mode 100644 src/queries/models/analytics/getSubscriberCountModelCreator.ts create mode 100644 src/queries/models/analytics/index.ts create mode 100644 src/queries/services/analytics/getSentMessageCount.ts create mode 100644 src/queries/services/analytics/getSentNotificationCount.ts create mode 100644 src/queries/services/analytics/getSubscriberCount.ts create mode 100644 src/queries/services/analytics/index.ts create mode 100644 src/queries/types/analytics.ts diff --git a/src/blocks/box/Box.constants.ts b/src/blocks/box/Box.constants.ts index 74f87e6c95..2950c54707 100644 --- a/src/blocks/box/Box.constants.ts +++ b/src/blocks/box/Box.constants.ts @@ -23,5 +23,6 @@ export const boxRestrictedCSSPropKeys: (keyof BoxCSSProps | keyof ModeProp)[] = 'minWidth', 'overflow', 'padding', + 'textAlign', 'width', ]; diff --git a/src/blocks/box/Box.types.ts b/src/blocks/box/Box.types.ts index 76f27318a8..4f4181b02c 100644 --- a/src/blocks/box/Box.types.ts +++ b/src/blocks/box/Box.types.ts @@ -38,6 +38,8 @@ export type BoxResponsiveProps = { minWidth?: ResponsiveProp; /* Sets padding css property */ padding?: ResponsiveProp; + /* Sets text-align css property */ + textAlign?: ResponsiveProp; /* Sets width css property */ width?: ResponsiveProp; }; @@ -90,6 +92,7 @@ export type BoxResponsiveCSSProperties = | 'max-width' | 'min-width' | 'padding' + | 'text-align' | 'width'; export type BoxResponsivePropValues = ValueOf; diff --git a/src/blocks/box/Box.utils.ts b/src/blocks/box/Box.utils.ts index 3d93690b57..42341d3c17 100644 --- a/src/blocks/box/Box.utils.ts +++ b/src/blocks/box/Box.utils.ts @@ -15,6 +15,7 @@ const getBoxResponsiveCSSProperties = (props: BoxResponsiveProps): BoxResponsive { propName: 'max-width', prop: props.maxWidth }, { propName: 'min-width', prop: props.minWidth }, { propName: 'padding', prop: props.padding }, + { propName: 'text-align', prop: props.textAlign }, { propName: 'width', prop: props.width }, ]; diff --git a/src/blocks/icons/components/ArrowUpRight.tsx b/src/blocks/icons/components/ArrowUpRight.tsx new file mode 100644 index 0000000000..fa04fd86e5 --- /dev/null +++ b/src/blocks/icons/components/ArrowUpRight.tsx @@ -0,0 +1,51 @@ +import { FC } from 'react'; +import { IconWrapper } from '../IconWrapper'; +import { IconProps } from '../Icons.types'; + +const ArrowUpRight: FC = (allProps) => { + const { svgProps: props, ...restProps } = allProps; + return ( + + + + + + + + + + + + } + {...restProps} + /> + ); +}; + +export default ArrowUpRight; diff --git a/src/blocks/icons/index.ts b/src/blocks/icons/index.ts index dbf5c774f8..92a4875b36 100644 --- a/src/blocks/icons/index.ts +++ b/src/blocks/icons/index.ts @@ -5,6 +5,8 @@ export { default as Add } from './components/Add'; export { default as AddEmoji } from './components/AddEmoji'; +export { default as ArrowUpRight } from './components/ArrowUpRight'; + export { default as Asterisk } from './components/Asterisk'; export { default as Back } from './components/Back'; diff --git a/src/blocks/illustrations/components/EarnOnPush.tsx b/src/blocks/illustrations/components/EarnOnPush.tsx new file mode 100644 index 0000000000..1485281117 --- /dev/null +++ b/src/blocks/illustrations/components/EarnOnPush.tsx @@ -0,0 +1,1006 @@ +import { FC } from 'react'; +import { IllustrationWrapper } from '../IllustrationWrapper'; +import { IllustrationProps } from '../Illustrations.types'; + +const EarnOnPush: FC = (allProps) => { + const { svgProps: props, ...restProps } = allProps; + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + {...restProps} + /> + ); +}; + +export default EarnOnPush; diff --git a/src/blocks/illustrations/index.ts b/src/blocks/illustrations/index.ts index 6e0636a6e1..c5f8cc965b 100644 --- a/src/blocks/illustrations/index.ts +++ b/src/blocks/illustrations/index.ts @@ -9,6 +9,8 @@ export { default as CommunicationDark } from './components/CommunicationDark'; export { default as Discord } from './components/Discord'; +export { default as EarnOnPush } from './components/EarnOnPush'; + export { default as Ethereum } from './components/Ethereum'; export { default as PushAlpha } from './components/PushAlpha'; diff --git a/src/common/hooks/index.ts b/src/common/hooks/index.ts index cda13d59f8..871bdf7d48 100644 --- a/src/common/hooks/index.ts +++ b/src/common/hooks/index.ts @@ -1 +1,2 @@ export { useIsVisible } from './useIsVisible'; +export { usePushStakingStats } from './usePushStakingStats'; diff --git a/src/common/hooks/usePushStakingStats.ts b/src/common/hooks/usePushStakingStats.ts new file mode 100644 index 0000000000..4439c3242a --- /dev/null +++ b/src/common/hooks/usePushStakingStats.ts @@ -0,0 +1,119 @@ +import { useState, useCallback, useEffect } from 'react'; +import { ethers } from 'ethers'; +import { abis, addresses, appConfig } from 'config'; +import { useAccount } from 'hooks'; +import YieldFarmingDataStoreV2 from 'singletons/YieldFarmingDataStoreV2'; + +// TODO: Fix this hook in future +export const usePushStakingStats = () => { + const { provider, account, chainId } = useAccount(); + + const [pushToken, setPushToken] = useState(); + const [staking, setStaking] = useState(); + const [yieldFarmingLP, setYieldFarmingLP] = useState(); + const [pushCoreV2, setPushCoreV2] = useState(); + const [uniswapV2Router02Instance, setUniswapV2Router02Instance] = useState(); + + const [poolStats, setPoolStats] = useState(null); + const [lpPoolStats, setLpPoolStats] = useState(null); + const [userDataLP, setUserDataLP] = useState(null); + const [userDataPush, setUserDataPush] = useState(null); + const [pushPoolStats, setPushPoolStats] = useState(null); + + const library = provider?.getSigner(account); + + const getPoolStats = useCallback(async () => { + // @ts-expect-error + const poolStats = await YieldFarmingDataStoreV2.getInstance().getPoolStats(provider); + + setPoolStats({ ...poolStats }); + }, [staking, pushToken, pushCoreV2, yieldFarmingLP, uniswapV2Router02Instance, provider]); + + const getLpPoolStats = useCallback(async () => { + // @ts-expect-error + const poolStats = await YieldFarmingDataStoreV2.getInstance().getPoolStats(provider); + + // @ts-expect-error + const lpPoolStats = await YieldFarmingDataStoreV2.getInstance().getLPPoolStats(poolStats); + + setLpPoolStats({ ...lpPoolStats }); + }, [staking, pushToken, pushCoreV2, yieldFarmingLP, uniswapV2Router02Instance, provider]); + + const getUserDataLP = useCallback(async () => { + // @ts-expect-error + const userDataLP = await YieldFarmingDataStoreV2.getInstance().getUserDataLP(); + + setUserDataLP({ ...userDataLP }); + }, [staking, pushToken, pushCoreV2, yieldFarmingLP, uniswapV2Router02Instance]); + + const getUserDataPush = useCallback(async () => { + // @ts-expect-error + const [pushPoolStats, userDataPush] = await YieldFarmingDataStoreV2.getInstance().getUserDataPUSH(provider); + + setPushPoolStats({ ...pushPoolStats }); + setUserDataPush({ ...userDataPush }); + }, [staking, pushToken, pushCoreV2, yieldFarmingLP, uniswapV2Router02Instance, provider]); + + //initiate the YieldFarmV2 data store here + useEffect(() => { + if (chainId !== appConfig.coreContractChain && chainId !== appConfig.mainnetCoreContractChain) { + return; + } + + setLpPoolStats(null); + setUserDataLP(null); + setPushPoolStats(null); + setUserDataPush(null); + + let staking = new ethers.Contract(addresses.stakingV2, abis.stakingV2, library); + let pushToken = new ethers.Contract(addresses.pushToken, abis.pushToken, library); + let pushCoreV2 = new ethers.Contract(addresses.pushCoreV2, abis.pushCoreV2, library); + let yieldFarmingLP = new ethers.Contract(addresses.yieldFarmLP, abis.yieldFarming, library); + let uniswapV2Router02Instance = new ethers.Contract(addresses.uniswapV2Router02, abis.uniswapV2Router02, library); + + setStaking(staking); + setPushToken(pushToken); + setPushCoreV2(pushCoreV2); + setYieldFarmingLP(yieldFarmingLP); + setUniswapV2Router02Instance(uniswapV2Router02Instance); + + if (!!(library && account)) { + var signer = provider?.getSigner(account); + + let staking = new ethers.Contract(addresses.stakingV2, abis.stakingV2, signer); + let pushToken = new ethers.Contract(addresses.pushToken, abis.pushToken, signer); + let pushCoreV2 = new ethers.Contract(addresses.pushCoreV2, abis.pushCoreV2, signer); + let yieldFarmingLP = new ethers.Contract(addresses.yieldFarmLP, abis.yieldFarming, signer); + let uniswapV2Router02Instance = new ethers.Contract(addresses.uniswapV2Router02, abis.uniswapV2Router02, signer); + + setStaking(staking); + setPushToken(pushToken); + setPushCoreV2(pushCoreV2); + setYieldFarmingLP(yieldFarmingLP); + setUniswapV2Router02Instance(uniswapV2Router02Instance); + } + + // @ts-expect-error + YieldFarmingDataStoreV2.getInstance().init( + account, + staking, + pushToken, + pushCoreV2, + yieldFarmingLP, + uniswapV2Router02Instance + ); + + getPoolStats(); + getUserDataLP(); + getLpPoolStats(); + getUserDataPush(); + }, [account, chainId]); + + return { + poolStats, + lpPoolStats, + userDataLP, + userDataPush, + pushPoolStats, + }; +}; diff --git a/src/modules/dashboard/Dashboard.tsx b/src/modules/dashboard/Dashboard.tsx index 02c8424864..b3f6db8f5a 100644 --- a/src/modules/dashboard/Dashboard.tsx +++ b/src/modules/dashboard/Dashboard.tsx @@ -3,10 +3,12 @@ import { FC, useState } from 'react'; // Components import { Box } from 'blocks'; -import { DashboardSubHeader } from './components/DashboardSubHeader'; -import { FeaturedChannels } from './components/FeaturedChannels'; +import { AnalyticsOverview } from './components/AnalyticsOverview'; import { ChannelVariantsSection } from './components/ChannelVariantsSection'; import { DashboardHeader } from './components/DashboardHeader'; +import { DashboardSubHeader } from './components/DashboardSubHeader'; +import { FeaturedChannels } from './components/FeaturedChannels'; +import { StakingPools } from './components/StakingPools'; export type DashboardProps = {}; @@ -35,6 +37,14 @@ const Dashboard: FC = () => { > + + + +
); diff --git a/src/modules/dashboard/components/AnalyticsOverview.tsx b/src/modules/dashboard/components/AnalyticsOverview.tsx new file mode 100644 index 0000000000..f151379a64 --- /dev/null +++ b/src/modules/dashboard/components/AnalyticsOverview.tsx @@ -0,0 +1,63 @@ +import { FC } from 'react'; +import { Box, Skeleton, Text } from 'blocks'; +import { useGetSubscriberCount, useSentMessageCount, useSentNotificationCount } from 'queries'; + +export type AnalyticsOverviewProps = {}; + +const StatsContainer: FC<{ title: string; stats: number; isLoading: boolean }> = ({ title, stats, isLoading }) => { + return ( + + {title} + + {stats.toLocaleString()} + + + ); +}; + +const AnalyticsOverview: FC = () => { + const { data: notificationCount, isLoading: loadingNotificationCount } = useSentNotificationCount(); + + const { data: subscriberCount, isLoading: loadingSubscriberCount } = useGetSubscriberCount(); + + const { data: messageCount, isLoading: loadingMessageCount } = useSentMessageCount(); + + return ( + + Analytics Overview + + + + + ); +}; + +export { AnalyticsOverview }; diff --git a/src/modules/dashboard/components/StakingPools.tsx b/src/modules/dashboard/components/StakingPools.tsx new file mode 100644 index 0000000000..16bdeeccb5 --- /dev/null +++ b/src/modules/dashboard/components/StakingPools.tsx @@ -0,0 +1,228 @@ +import { FC } from 'react'; +import { css } from 'styled-components'; +import { ArrowUpRight, Box, Button, EarnOnPush, Link, PushLogo, Skeleton, Text } from 'blocks'; +import { usePushStakingStats } from 'common'; +import { formatTokens } from 'helpers/StakingHelper'; + +export type StakingPoolsProps = {}; + +const StakingPools: FC = () => { + const { poolStats, pushPoolStats } = usePushStakingStats(); + + return ( + + + + Staking Pools + + Stake to support network decentralization and earn staking rewards every epoch. + + + + + Total Value Locked + + {`$${Number(poolStats?.totalValueLocked.toFixed(2)).toLocaleString()}`} + + + + Rewards Paid + + + {poolStats?.pushRewardsDistributed && poolStats?.totalDistributedAmount + ? `${Math.min( + formatTokens(poolStats?.pushRewardsDistributed), + formatTokens(poolStats?.totalDistributedAmount) + ).toLocaleString()}` + : 0} + + + + + + + + + + + + + Push Fee Staking Pool + + Stake any amount of PUSH to receive rewards and a slice of the fees earned by the protocol. + + + + + + + ~{pushPoolStats?.stakingAPR.toLocaleString()}% + + + + APR + Fees + + + + + + $ + {pushPoolStats?.totalStakedAmount && poolStats?.pushPrice + ? ( + formatTokens(pushPoolStats?.totalStakedAmount) * poolStats?.pushPrice.toFixed(2) + ).toLocaleString() + : 0} + + + + Staked + + + + + + + + + + + + + Earn & Grow with Push. + + + Earn rewards on fees earned by the protocol. Stake to earn. + + + + + + Learn More + + + + + + + + ); +}; + +export { StakingPools }; + +// infographic diff --git a/src/queries/baseURL.ts b/src/queries/baseURL.ts index 0044c37e34..961f354b19 100644 --- a/src/queries/baseURL.ts +++ b/src/queries/baseURL.ts @@ -19,3 +19,5 @@ export const getRewardsBaseURL = () => { return `https://us-east1-push-dev-apps.cloudfunctions.net/helloWorld`; } }; + +export const analyticsBaseURL = 'https://backend.epns.io/apis/v1'; diff --git a/src/queries/hooks/analytics/index.ts b/src/queries/hooks/analytics/index.ts new file mode 100644 index 0000000000..444e99e855 --- /dev/null +++ b/src/queries/hooks/analytics/index.ts @@ -0,0 +1,3 @@ +export * from './useSentMessageCount'; +export * from './useSentNotificationCount'; +export * from './useGetSubscriberCount'; diff --git a/src/queries/hooks/analytics/useGetSubscriberCount.ts b/src/queries/hooks/analytics/useGetSubscriberCount.ts new file mode 100644 index 0000000000..ab8306b35a --- /dev/null +++ b/src/queries/hooks/analytics/useGetSubscriberCount.ts @@ -0,0 +1,12 @@ +import { useQuery } from '@tanstack/react-query'; +import { subscriberCount } from '../../queryKeys'; +import { getSubscriberCount } from '../../services'; + +export const useGetSubscriberCount = () => { + return useQuery({ + queryKey: [subscriberCount], + queryFn: getSubscriberCount, + staleTime: Infinity, + refetchOnWindowFocus: false, + }); +}; diff --git a/src/queries/hooks/analytics/useSentMessageCount.ts b/src/queries/hooks/analytics/useSentMessageCount.ts new file mode 100644 index 0000000000..784b739f9d --- /dev/null +++ b/src/queries/hooks/analytics/useSentMessageCount.ts @@ -0,0 +1,12 @@ +import { useQuery } from '@tanstack/react-query'; +import { sentMessageCount } from '../../queryKeys'; +import { getSentMessageCount } from '../../services'; + +export const useSentMessageCount = () => { + return useQuery({ + queryKey: [sentMessageCount], + queryFn: getSentMessageCount, + staleTime: Infinity, + refetchOnWindowFocus: false, + }); +}; diff --git a/src/queries/hooks/analytics/useSentNotificationCount.ts b/src/queries/hooks/analytics/useSentNotificationCount.ts new file mode 100644 index 0000000000..0b2e85aa3c --- /dev/null +++ b/src/queries/hooks/analytics/useSentNotificationCount.ts @@ -0,0 +1,12 @@ +import { useQuery } from '@tanstack/react-query'; +import { sentNotificationCount } from '../../queryKeys'; +import { getSentNotificationCount } from '../../services'; + +export const useSentNotificationCount = () => { + return useQuery({ + queryKey: [sentNotificationCount], + queryFn: getSentNotificationCount, + staleTime: Infinity, + refetchOnWindowFocus: false, + }); +}; diff --git a/src/queries/hooks/index.ts b/src/queries/hooks/index.ts index fdcb1f07a9..d93c238ddb 100644 --- a/src/queries/hooks/index.ts +++ b/src/queries/hooks/index.ts @@ -2,3 +2,4 @@ export * from './channels'; export * from './user'; export * from './rewards'; export * from './pointsVault'; +export * from './analytics'; diff --git a/src/queries/models/analytics/getSentNotificationCountModelCreator.ts b/src/queries/models/analytics/getSentNotificationCountModelCreator.ts new file mode 100644 index 0000000000..c17fd389ca --- /dev/null +++ b/src/queries/models/analytics/getSentNotificationCountModelCreator.ts @@ -0,0 +1,22 @@ +// TODO: Fix this in future. This should be handled on backend. + +import { NotificationCountResponse } from '../../types/analytics'; + +export const getNotificationCountModelCreator = (response: NotificationCountResponse): number => { + const notifictionAnalyticsData = response.notificationAnalytics; + + let total = 0; + + notifictionAnalyticsData.forEach((item) => { + for (let key in item) { + if (key === 'date') { + continue; + } else { + // @ts-expect-error + total += item[key]?.notification; + } + } + }); + + return total; +}; diff --git a/src/queries/models/analytics/getSubscriberCountModelCreator.ts b/src/queries/models/analytics/getSubscriberCountModelCreator.ts new file mode 100644 index 0000000000..9f95654951 --- /dev/null +++ b/src/queries/models/analytics/getSubscriberCountModelCreator.ts @@ -0,0 +1,56 @@ +// TODO: Fix this logic. This should be handled on backend + +import { SubscriberCountResponse } from '../../types/analytics'; + +export default function getDatesArray({ start, end, interval }: { start: Date; end: Date; interval: number }) { + for (var dateArray: Date[] = [], dt = new Date(start); dt <= new Date(end); dt.setDate(dt.getDate() + interval)) { + dateArray.push(new Date(dt)); + } + + const date = dateArray[dateArray.length - 1]; + if (new Date(date).getDate() !== new Date(end).getDate()) { + dateArray.push(new Date(end)); + } + + return dateArray; +} + +export const getSubscriberCountModelCreator = ( + response: SubscriberCountResponse, + dates: { start: Date; end: Date } +): number => { + const subscriberAnalyticsData = response?.subscriberAnalytics; + let totalSubscribers = 0; + const dateArray = getDatesArray({ + start: dates.start, + end: dates.end, + interval: 1, + }); + + let subscriberArray: { date: string; subscribers: number }[] = []; + for (let i = 0; i < subscriberAnalyticsData?.length; i++) { + let total = 0, + dat = ''; + for (let key in subscriberAnalyticsData[i]) { + if (key === 'date') { + dat = subscriberAnalyticsData[i][key]; + } else { + // @ts-expect-error + total += subscriberAnalyticsData[i][key].subscriber; + } + } + subscriberArray.push({ date: dat, subscribers: total }); + } + + for (let i = 0; i < dateArray.length; i++) { + for (let j = 0; j < subscriberArray.length; j++) { + if (new Date(subscriberArray[j].date).toDateString() === new Date(dateArray[i]).toDateString()) { + totalSubscribers += subscriberArray[j].subscribers; + + break; + } + } + } + + return totalSubscribers; +}; diff --git a/src/queries/models/analytics/index.ts b/src/queries/models/analytics/index.ts new file mode 100644 index 0000000000..a5acaae5af --- /dev/null +++ b/src/queries/models/analytics/index.ts @@ -0,0 +1,2 @@ +export * from './getSentNotificationCountModelCreator'; +export * from './getSubscriberCountModelCreator'; diff --git a/src/queries/queryKeys.ts b/src/queries/queryKeys.ts index 2bcd343398..72a41c3b43 100644 --- a/src/queries/queryKeys.ts +++ b/src/queries/queryKeys.ts @@ -19,3 +19,6 @@ export const userTwitterDetails = 'userTwitterDetails'; export const pointsVaultSearch = 'pointsVaultSearch'; export const approveVaultUser = 'approveVaultUser'; export const rejectVaultUser = 'rejectVaultUser'; +export const sentMessageCount = 'sentMessageCount'; +export const sentNotificationCount = 'sentNotificationCount'; +export const subscriberCount = 'subscriberCount'; diff --git a/src/queries/services/analytics/getSentMessageCount.ts b/src/queries/services/analytics/getSentMessageCount.ts new file mode 100644 index 0000000000..ffaa7a7bfd --- /dev/null +++ b/src/queries/services/analytics/getSentMessageCount.ts @@ -0,0 +1,8 @@ +import axios from 'axios'; +import { analyticsBaseURL } from 'queries/baseURL'; + +export const getSentMessageCount = () => + axios({ + method: 'GET', + url: `${analyticsBaseURL}/analytics/chat/chats`, + }).then((response) => response.data.totalMessages as number); diff --git a/src/queries/services/analytics/getSentNotificationCount.ts b/src/queries/services/analytics/getSentNotificationCount.ts new file mode 100644 index 0000000000..6efa9e01d2 --- /dev/null +++ b/src/queries/services/analytics/getSentNotificationCount.ts @@ -0,0 +1,15 @@ +import axios from 'axios'; +import { analyticsBaseURL } from 'queries/baseURL'; +import { getNotificationCountModelCreator } from 'queries/models/analytics'; + +export const getSentNotificationCount = () => + axios({ + method: 'GET', + url: `${analyticsBaseURL}/analytics/notification`, + params: { + startDate: new Date('2022-01-01'), + endDate: new Date(), + channel: 'All', + source: 'All', + }, + }).then((response) => getNotificationCountModelCreator(response.data)); diff --git a/src/queries/services/analytics/getSubscriberCount.ts b/src/queries/services/analytics/getSubscriberCount.ts new file mode 100644 index 0000000000..09da91f417 --- /dev/null +++ b/src/queries/services/analytics/getSubscriberCount.ts @@ -0,0 +1,18 @@ +import axios from 'axios'; +import { analyticsBaseURL } from 'queries/baseURL'; +import { getSubscriberCountModelCreator } from 'queries/models/analytics'; + +export const getSubscriberCount = () => { + const start = new Date('2022-01-01'); + const end = new Date(); + return axios({ + method: 'GET', + url: `${analyticsBaseURL}/analytics/subscriber`, + params: { + startDate: start, + endDate: end, + channel: 'All', + source: 'All', + }, + }).then((response) => getSubscriberCountModelCreator(response.data, { start, end })); +}; diff --git a/src/queries/services/analytics/index.ts b/src/queries/services/analytics/index.ts new file mode 100644 index 0000000000..92fc9d7514 --- /dev/null +++ b/src/queries/services/analytics/index.ts @@ -0,0 +1,3 @@ +export * from './getSentMessageCount'; +export * from './getSentNotificationCount'; +export * from './getSubscriberCount'; diff --git a/src/queries/services/index.ts b/src/queries/services/index.ts index fdcb1f07a9..d93c238ddb 100644 --- a/src/queries/services/index.ts +++ b/src/queries/services/index.ts @@ -2,3 +2,4 @@ export * from './channels'; export * from './user'; export * from './rewards'; export * from './pointsVault'; +export * from './analytics'; diff --git a/src/queries/types/analytics.ts b/src/queries/types/analytics.ts new file mode 100644 index 0000000000..879f6030dc --- /dev/null +++ b/src/queries/types/analytics.ts @@ -0,0 +1,31 @@ +type EntityKey = `eip155${number}`; + +export type NotificationCountResponse = { + channelDetails: { + [key: string]: { + channel: string; + icon: string; + name: string; + }; + }; + notificationAnalytics: { + [K in EntityKey]: { + notification: number; + }; + } & { date: string }[]; +}; + +export type SubscriberCountResponse = { + channelDetails: { + [key: string]: { + channel: string; + icon: string; + name: string; + }; + }; + subscriberAnalytics: { + [K in EntityKey]: { + subscriber: number; + }; + } & { date: string }[]; +}; diff --git a/yarn.lock b/yarn.lock index 227062d438..0662177df7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,9 +109,9 @@ __metadata: linkType: hard "@babel/compat-data@npm:^7.24.8": - version: 7.24.9 - resolution: "@babel/compat-data@npm:7.24.9" - checksum: 10/fcdbf3dd978305880f06ae20a23f4f68a8eddbe64fc5d2fbc98dfe4cdf15c174cff41e3a8eb9d935f9f3a68d3a23fa432044082ee9768a2ed4b15f769b8f6853 + version: 7.25.0 + resolution: "@babel/compat-data@npm:7.25.0" + checksum: 10/35cb500c85084bc09d4385134c64cb0030df750c502e1d78d674e7b059c3e545286e3449163b3812e94098096982f5162f72fb13afd2d2161f4da5076cf2194e languageName: node linkType: hard @@ -138,15 +138,15 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.5, @babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9": - version: 7.24.10 - resolution: "@babel/generator@npm:7.24.10" +"@babel/generator@npm:^7.24.5, @babel/generator@npm:^7.24.9, @babel/generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" dependencies: - "@babel/types": "npm:^7.24.9" + "@babel/types": "npm:^7.25.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^2.5.1" - checksum: 10/c2491fb7d985527a165546cbcf9e5f6a2518f2a968c7564409c012acce1019056b21e67a152af89b3f4d4a295ca2e75a1a16858152f750efbc4b5087f0cb7253 + checksum: 10/de3ce2ae7aa0c9585260556ca5a81ce2ce6b8269e3260d7bb4e47a74661af715184ca6343e9906c22e4dd3eed5ce39977dfaf6cded4d2d8968fa096c7cf66697 languageName: node linkType: hard @@ -172,34 +172,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-environment-visitor@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/079d86e65701b29ebc10baf6ed548d17c19b808a07aa6885cc141b690a78581b180ee92b580d755361dc3b16adf975b2d2058b8ce6c86675fcaf43cf22f2f7c6 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-function-name@npm:7.24.7" - dependencies: - "@babel/template": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/2ceb3d9b2b35a0fc4100fc06ed7be3bc38f03ff0bf128ff0edbc0cc7dd842967b1496fc70b5c616c747d7711c2b87e7d025c8888f48740631d6148a9d3614f85 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-hoist-variables@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/6cfdcf2289cd12185dcdbdf2435fa8d3447b797ac75851166de9fc8503e2fd0021db6baf8dfbecad3753e582c08e6a3f805c8d00cbed756060a877d705bd8d8d - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" @@ -211,17 +183,16 @@ __metadata: linkType: hard "@babel/helper-module-transforms@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/helper-module-transforms@npm:7.24.9" + version: 7.25.0 + resolution: "@babel/helper-module-transforms@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" "@babel/helper-module-imports": "npm:^7.24.7" "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/eaed9cb93edb11626758f76bfb482f9c3b6583f6756813c5ef849d6d52bbe7c2cb39f61646758e860732d14c2588b60eb4e2af78d7751450649a8d3d7ca41697 + checksum: 10/c1668f96d13815780b7e146faff67061d24f16c16e923894bfa2eb0cd8c051ece49e0e41bdcaba9660a744a6ee496b7de0c92f205961c0dba710b851a805477f languageName: node linkType: hard @@ -242,15 +213,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-split-export-declaration@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/ff04a3071603c87de0d6ee2540b7291ab36305b329bd047cdbb6cbd7db335a12f9a77af1cf708779f75f13c4d9af46093c00b34432e50b2411872c658d1a2e5e - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-string-parser@npm:7.24.8" @@ -273,12 +235,12 @@ __metadata: linkType: hard "@babel/helpers@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helpers@npm:7.24.8" + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" dependencies: - "@babel/template": "npm:^7.24.7" - "@babel/types": "npm:^7.24.8" - checksum: 10/61c08a2baa87382a87c7110e9b5574c782603e247b7e6267769ee0e8b7b54b70ff05f16466f05bb318622b7ac28e79b449edff565abf5adcb1adb1b0f42fee9c + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/4fcb8167eba9853e30b8b235b81b923ef7b707396b0e23d7a4fa3e811729506755576cb9ec736e8b92cf19e5a1ec61e83d182904d8e6a0953803c6bebc2e1592 languageName: node linkType: hard @@ -294,12 +256,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.5, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/parser@npm:7.24.8" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.5, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.24.8, @babel/parser@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/parser@npm:7.25.0" bin: parser: ./bin/babel-parser.js - checksum: 10/e44b8327da46e8659bc9fb77f66e2dc4364dd66495fb17d046b96a77bf604f0446f1e9a89cf2f011d78fc3f5cdfbae2e9e0714708e1c985988335683b2e781ef + checksum: 10/1860179256b5e04259a1d567dc43470306757f51c515bedd6fc92dc5f8b4c4a6582c0b1f89a90fd4e981430195b727348d50c890b21c7eb84871248884771aaf languageName: node linkType: hard @@ -337,12 +299,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.24.8 - resolution: "@babel/runtime-corejs3@npm:7.24.8" + version: 7.25.0 + resolution: "@babel/runtime-corejs3@npm:7.25.0" dependencies: core-js-pure: "npm:^3.30.2" regenerator-runtime: "npm:^0.14.0" - checksum: 10/e07fed9800e00eff1f7189d4ab03b52966b183e21b68c99e8e474028d4a19f1239391e54eef19fde5a30e81fa7d6a048add89f88e23f02770fa13f009d05fa03 + checksum: 10/639f73b7fa9288c28520cc3c214177e6d159dceae4570bf666b216b5cf1e20a9aa73ed374c43269081d9cbcb1a3ff5743e3fb8479999e6507d18c7ac13112c2f languageName: node linkType: hard @@ -356,51 +318,48 @@ __metadata: linkType: hard "@babel/runtime@npm:>=7.17.0, @babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.24.8 - resolution: "@babel/runtime@npm:7.24.8" + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10/e6f335e472a8a337379effc15815dd0eddf6a7d0c00b50deb4f9e9585819b45431d0ff3c2d3d0fa58c227a9b04dcc4a85e7245fb57493adb2863b5208c769cbd + checksum: 10/6870e9e0e9125075b3aeba49a266f442b10820bfc693019eb6c1785c5a0edbe927e98b8238662cdcdba17842107c040386c3b69f39a0a3b217f9d00ffe685b27 languageName: node linkType: hard -"@babel/template@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/template@npm:7.24.7" +"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/5975d404ef51cf379515eb0f80b115981d0b9dff5539e53a47516644abb8c83d7559f5b083eb1d4977b20d8359ebb2f911ccd4f729143f8958fdc465f976d843 + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 languageName: node linkType: hard -"@babel/traverse@npm:^7.24.5, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.4.5": - version: 7.24.8 - resolution: "@babel/traverse@npm:7.24.8" +"@babel/traverse@npm:^7.24.5, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.4.5": + version: 7.25.1 + resolution: "@babel/traverse@npm:7.25.1" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.24.8" - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/helper-hoist-variables": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" - "@babel/parser": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/47d8ecf8cfff58fe621fc4d8454b82c97c407816d8f9c435caa0c849ea7c357b91119a06f3c69f21a0228b5d06ac0b44f49d1f78cff032d6266317707f1fe615 + checksum: 10/319397a4d32c76c28dba8d446ed3297df6c910e086ee766fb8d2024051bd1d6fbcb74718035c3d9cfd54c7aaa2f1eb48e404b9caac400fe065657071287f927e languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.8.3": - version: 7.24.9 - resolution: "@babel/types@npm:7.24.9" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.9, @babel/types@npm:^7.25.0, @babel/types@npm:^7.8.3": + version: 7.25.0 + resolution: "@babel/types@npm:7.25.0" dependencies: "@babel/helper-string-parser": "npm:^7.24.8" "@babel/helper-validator-identifier": "npm:^7.24.7" to-fast-properties: "npm:^2.0.0" - checksum: 10/21873a08a124646824aa230de06af52149ab88206dca59849dcb3003990a6306ec2cdaa4147ec1127c0cfc5f133853cfc18f80d7f6337b6662a3c378ed565f15 + checksum: 10/07bd6079e64a8c4038367188390b7e51403fe8b43ff7cf651154ce3202c733cda6616bab9f866b89a2b740b640b9fbab37c5b5c94cc18ec9f9b348dadfa73dff languageName: node linkType: hard @@ -730,15 +689,15 @@ __metadata: linkType: hard "@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.13.0": - version: 11.13.0 - resolution: "@emotion/cache@npm:11.13.0" + version: 11.13.1 + resolution: "@emotion/cache@npm:11.13.1" dependencies: "@emotion/memoize": "npm:^0.9.0" "@emotion/sheet": "npm:^1.4.0" "@emotion/utils": "npm:^1.4.0" "@emotion/weak-memoize": "npm:^0.4.0" stylis: "npm:4.2.0" - checksum: 10/20a3207600cceb0ddc490fbf6c449c73af1cfe6bea01fcf452d2a00a73fd5d8ce2e7b04ff869289e94fa5c528571618bce48d1dd39820d56de38f1e8de314c5d + checksum: 10/090c8ad2e5b23f1b3a95e94f1f0554a40ed1dcd844c9d31629a68ff824eff40f32d1362f67aefa440ee0aabd5a8cabcc76870fd6d77144d3ff251bdcdf1420b9 languageName: node linkType: hard @@ -2942,8 +2901,8 @@ __metadata: linkType: hard "@libp2p/interface@npm:^1.0.0": - version: 1.6.1 - resolution: "@libp2p/interface@npm:1.6.1" + version: 1.6.2 + resolution: "@libp2p/interface@npm:1.6.2" dependencies: "@multiformats/multiaddr": "npm:^12.2.3" it-pushable: "npm:^3.2.3" @@ -2951,7 +2910,7 @@ __metadata: multiformats: "npm:^13.1.0" progress-events: "npm:^1.0.0" uint8arraylist: "npm:^2.4.8" - checksum: 10/c4eb96a916f64c563f17bd208f38a4054d873be32bb11f44d32f54c917cd2e10c3039ce2ea1e6c1ad938781eac01242cc343b3b6d626e34ae0405a89933b52aa + checksum: 10/a98b216f0386b55b2f3eeeb112802426b402187f684af79279d58815c2d373abb85ae0ad452bd6157d8f116d65e802741495d109f32e44c3a5545d586ce4dc68 languageName: node linkType: hard @@ -3363,16 +3322,16 @@ __metadata: languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.16.4": - version: 5.16.4 - resolution: "@mui/core-downloads-tracker@npm:5.16.4" - checksum: 10/e1be17bfcfc5e50d42eff8ca8660469c0e20f70bd5148183e8a8d66da12c420f86e097b68d09561055c2d6e4f93f6650ba65a30522a997da9cd9a08d09a54bbc +"@mui/core-downloads-tracker@npm:^5.16.5": + version: 5.16.5 + resolution: "@mui/core-downloads-tracker@npm:5.16.5" + checksum: 10/2f0812bf38ffa99f96e0615bd8cb03557e661cc7908d490bee89479594c8143211bcd37cba7694171d9cd488abc8f186c84c68488d5f1e38749b9619ba960d50 languageName: node linkType: hard "@mui/icons-material@npm:^5.8.4": - version: 5.16.4 - resolution: "@mui/icons-material@npm:5.16.4" + version: 5.16.5 + resolution: "@mui/icons-material@npm:5.16.5" dependencies: "@babel/runtime": "npm:^7.23.9" peerDependencies: @@ -3382,19 +3341,19 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/6f163af896ad0c60d3c5c539d8a68b407c6bd1203184129a6b72d4b911ff8bc9a92448cfb6aaf5a23f46a810224e172321dfa37089f07a4d04dded4a87546d8e + checksum: 10/be90e941b07c92bf7b08938b2b8735575b2b1beee3c19b9d6272813310c457faab7152f395805b681dcde5f7b5f9825bb1f5e2fa7120b501f222201d74eeaa08 languageName: node linkType: hard "@mui/material@npm:^5.5.0": - version: 5.16.4 - resolution: "@mui/material@npm:5.16.4" + version: 5.16.5 + resolution: "@mui/material@npm:5.16.5" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/core-downloads-tracker": "npm:^5.16.4" - "@mui/system": "npm:^5.16.4" + "@mui/core-downloads-tracker": "npm:^5.16.5" + "@mui/system": "npm:^5.16.5" "@mui/types": "npm:^7.2.15" - "@mui/utils": "npm:^5.16.4" + "@mui/utils": "npm:^5.16.5" "@popperjs/core": "npm:^2.11.8" "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.1.0" @@ -3415,16 +3374,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/a7f4b9a54c89265b63afa52fd017781fc180d26bf79cf6b8091a40954485ce427a089cef79e64ed3acda35666ad09aee8423afed7674d957aa2437ac76a65d67 + checksum: 10/60e92bb55ca07da2b9559843ce6890ffd3c5e43d5aed78c9e25dfc518b79b0ee4319cd32586e9591cc1c0c9db44470f6b6b1befee0d1d89559e9a1dd9e934f1d languageName: node linkType: hard -"@mui/private-theming@npm:^5.16.4": - version: 5.16.4 - resolution: "@mui/private-theming@npm:5.16.4" +"@mui/private-theming@npm:^5.16.5": + version: 5.16.5 + resolution: "@mui/private-theming@npm:5.16.5" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/utils": "npm:^5.16.4" + "@mui/utils": "npm:^5.16.5" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -3432,7 +3391,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/dec90e407d1f81803e1dd1c094cec99491b35617d3e83bcfa53cbf05ceef84c88106d6bc8a7cfc71b39f9b9b773124eb4bd229364ccccb9b3c8af3bc9db9c70a + checksum: 10/f4a2b7aea6b959dec7ba70fff1c28603b69e7474b814aa4d972bf5bbfe67f528518fcfa72889d64b0eda9ac58ca8cf43743cd28d65b11ef4359441b2380f8b58 languageName: node linkType: hard @@ -3457,15 +3416,15 @@ __metadata: languageName: node linkType: hard -"@mui/system@npm:^5.16.4": - version: 5.16.4 - resolution: "@mui/system@npm:5.16.4" +"@mui/system@npm:^5.16.5": + version: 5.16.5 + resolution: "@mui/system@npm:5.16.5" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/private-theming": "npm:^5.16.4" + "@mui/private-theming": "npm:^5.16.5" "@mui/styled-engine": "npm:^5.16.4" "@mui/types": "npm:^7.2.15" - "@mui/utils": "npm:^5.16.4" + "@mui/utils": "npm:^5.16.5" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -3481,7 +3440,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/f007467adf4d60d16d1b9c9d4c40f41b8871f21905eb412e306cd49fc7f6a1a9c7b74d850f95dda2a8abebb8a16916816e596897ba55793ea97426ff9dbc77b4 + checksum: 10/07a3c11c317385a21713b0f90a47ca9e55cb30b8326a496880d2db6c1677ffc48611182da997b79306d93dadbc30caa5a89fe0cd5b8c3332542a7281cb43333c languageName: node linkType: hard @@ -3497,11 +3456,12 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.16.4": - version: 5.16.4 - resolution: "@mui/utils@npm:5.16.4" +"@mui/utils@npm:^5.16.5": + version: 5.16.5 + resolution: "@mui/utils@npm:5.16.5" dependencies: "@babel/runtime": "npm:^7.23.9" + "@mui/types": "npm:^7.2.15" "@types/prop-types": "npm:^15.7.12" clsx: "npm:^2.1.1" prop-types: "npm:^15.8.1" @@ -3512,7 +3472,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/d29516544dd3fa95757c658cf1b4cd4e3f16615c208ce5b45080b8ce7f993c7e6974a04a64797897c9220eb9582b0f596a13b976df404b1c34398842f4f06a2d + checksum: 10/be2dbc2b6b213eebb99c50c22e2261b217c26d7f77aee0e6701ea978d1f73b69548f8b961d2087402e600deb281f35dbcb280c1484b2d92081efda3c51e7cd89 languageName: node linkType: hard @@ -5387,114 +5347,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.0" +"@rollup/rollup-android-arm-eabi@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-android-arm64@npm:4.19.0" +"@rollup/rollup-android-arm64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-android-arm64@npm:4.19.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.19.0" +"@rollup/rollup-darwin-arm64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.19.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.19.0" +"@rollup/rollup-darwin-x64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.19.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.0" +"@rollup/rollup-linux-arm64-musl@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.0" +"@rollup/rollup-linux-x64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.0" +"@rollup/rollup-linux-x64-musl@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.0" +"@rollup/rollup-win32-x64-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6066,92 +6026,92 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-darwin-arm64@npm:1.7.0" +"@swc/core-darwin-arm64@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-darwin-arm64@npm:1.7.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-darwin-x64@npm:1.7.0" +"@swc/core-darwin-x64@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-darwin-x64@npm:1.7.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.0" +"@swc/core-linux-arm-gnueabihf@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.0" +"@swc/core-linux-arm64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.0" +"@swc/core-linux-arm64-musl@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.0" +"@swc/core-linux-x64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-linux-x64-musl@npm:1.7.0" +"@swc/core-linux-x64-musl@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-linux-x64-musl@npm:1.7.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.0" +"@swc/core-win32-arm64-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.0" +"@swc/core-win32-ia32-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.0": - version: 1.7.0 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.0" +"@swc/core-win32-x64-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.7.0": - version: 1.7.0 - resolution: "@swc/core@npm:1.7.0" - dependencies: - "@swc/core-darwin-arm64": "npm:1.7.0" - "@swc/core-darwin-x64": "npm:1.7.0" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.0" - "@swc/core-linux-arm64-gnu": "npm:1.7.0" - "@swc/core-linux-arm64-musl": "npm:1.7.0" - "@swc/core-linux-x64-gnu": "npm:1.7.0" - "@swc/core-linux-x64-musl": "npm:1.7.0" - "@swc/core-win32-arm64-msvc": "npm:1.7.0" - "@swc/core-win32-ia32-msvc": "npm:1.7.0" - "@swc/core-win32-x64-msvc": "npm:1.7.0" + version: 1.7.3 + resolution: "@swc/core@npm:1.7.3" + dependencies: + "@swc/core-darwin-arm64": "npm:1.7.3" + "@swc/core-darwin-x64": "npm:1.7.3" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.3" + "@swc/core-linux-arm64-gnu": "npm:1.7.3" + "@swc/core-linux-arm64-musl": "npm:1.7.3" + "@swc/core-linux-x64-gnu": "npm:1.7.3" + "@swc/core-linux-x64-musl": "npm:1.7.3" + "@swc/core-win32-arm64-msvc": "npm:1.7.3" + "@swc/core-win32-ia32-msvc": "npm:1.7.3" + "@swc/core-win32-x64-msvc": "npm:1.7.3" "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.9" + "@swc/types": "npm:^0.1.12" peerDependencies: "@swc/helpers": "*" dependenciesMeta: @@ -6178,7 +6138,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/01a64b708c066e0fdc7f1dedebde25c273da51758bdb29ecdec1a7e57456f58d6216dfff43a05c7fa917a88d939327f9ae248bc3480ab18bcf4bad8e0bedba42 + checksum: 10/e2cf5203522f8c4d23e36c7c025d82eb91cb22dbf901f71fd864255f5fffb2d4a715fdcc6ea7edac09c6be84b426cea9bc4998c3a5192f990ada18609401ad4f languageName: node linkType: hard @@ -6189,7 +6149,7 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.9": +"@swc/types@npm:^0.1.12": version: 0.1.12 resolution: "@swc/types@npm:0.1.12" dependencies: @@ -6232,17 +6192,17 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.51.9": - version: 5.51.9 - resolution: "@tanstack/query-core@npm:5.51.9" - checksum: 10/263f64a2e9448cc412fa9f29b0b77af1a5eeb66ecba6965548d4be97b7e99cca0dd194992b686426745030240764846d9d7e39e43d3ed64b97afb47f3a9661d7 +"@tanstack/query-core@npm:5.51.15": + version: 5.51.15 + resolution: "@tanstack/query-core@npm:5.51.15" + checksum: 10/66d319e29891a1bcb8c3800ad69e11941d8aff64687dd3e042e1f6ccc73917d47bdab4dc04d3d7536211a5ff9f4e7e9b0b47d4f438f44db0d0a7d4d91a1ccc02 languageName: node linkType: hard -"@tanstack/query-devtools@npm:5.51.9": - version: 5.51.9 - resolution: "@tanstack/query-devtools@npm:5.51.9" - checksum: 10/ffc19f1a9b16edbb99dc8ef4fb00f6cbc6ac39d0fbdb7976d5b849005d8f1eb80081449bfe379fd1eb8a0aa1a0357b014b822a8f32a9d57644fbb14fb039d8fd +"@tanstack/query-devtools@npm:5.51.15": + version: 5.51.15 + resolution: "@tanstack/query-devtools@npm:5.51.15" + checksum: 10/0df6ff8237f4cf4ec288cfdac2d83bae1b79d96ef705dc9d2edcbf8f1f85699f65007f2b18ff329788ae10e348daaa3c28a00de34f219c3377cfa0c03393aed8 languageName: node linkType: hard @@ -6256,14 +6216,14 @@ __metadata: linkType: hard "@tanstack/react-query-devtools@npm:^5.44.0": - version: 5.51.11 - resolution: "@tanstack/react-query-devtools@npm:5.51.11" + version: 5.51.15 + resolution: "@tanstack/react-query-devtools@npm:5.51.15" dependencies: - "@tanstack/query-devtools": "npm:5.51.9" + "@tanstack/query-devtools": "npm:5.51.15" peerDependencies: - "@tanstack/react-query": ^5.51.11 + "@tanstack/react-query": ^5.51.15 react: ^18 || ^19 - checksum: 10/2a868370db70ef37ce9185c8d1d01f837ffb15bb3c304ef3eab9261e7de07c67e8a5b09264ffbbd2c650bd33a790f80c3d0be67d528d66cab31718d31081b2d7 + checksum: 10/ae38a21455529d7365e534e4216828092571b967799911125d23f11880c9166c8788144b82192336480afc33142459cf4dce7b492e123a92078dc8e41d964251 languageName: node linkType: hard @@ -6298,13 +6258,13 @@ __metadata: linkType: hard "@tanstack/react-query@npm:^5.44.0": - version: 5.51.11 - resolution: "@tanstack/react-query@npm:5.51.11" + version: 5.51.15 + resolution: "@tanstack/react-query@npm:5.51.15" dependencies: - "@tanstack/query-core": "npm:5.51.9" + "@tanstack/query-core": "npm:5.51.15" peerDependencies: react: ^18.0.0 - checksum: 10/e840eb5f90fb6ec1693f98be651c5fa55a2885930015a2bf1f8699def596293eac79df8b3335e31b87af0a189d40597d35986379c930faf3496fc5061861d988 + checksum: 10/637a79951d35f9bc28eb6667f4d7936436e80b2e51377cce3dafe83a21ba65575272036e980f6bf755b5b4b4cde2e35cddb9c0d14c5ed9a83a15b68372fced72 languageName: node linkType: hard @@ -6521,12 +6481,12 @@ __metadata: linkType: hard "@types/eslint@npm:*": - version: 8.56.10 - resolution: "@types/eslint@npm:8.56.10" + version: 9.6.0 + resolution: "@types/eslint@npm:9.6.0" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 10/0cdd914b944ebba51c35827d3ef95bc3e16eb82b4c2741f6437fa57cdb00a4407c77f89c220afe9e4c9566982ec8a0fb9b97c956ac3bd4623a3b6af32eed8424 + checksum: 10/39fc797c671ec9c9184802b4974748cf45ee1b11d7aaaaede44426abcafd07ec7c18eb090e8f5b3387b51637ce3fdf54499472d8dd58a928f0d005cbacb573b4 languageName: node linkType: hard @@ -6650,11 +6610,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.14.11 - resolution: "@types/node@npm:20.14.11" + version: 22.0.0 + resolution: "@types/node@npm:22.0.0" dependencies: - undici-types: "npm:~5.26.4" - checksum: 10/344e1ce1ed16c86ed1c4209ab4d1de67db83dd6b694a6fabe295c47144dde2c58dabddae9f39a0a2bdd246e95f8d141ccfe848e464884b48b8918df4f7788025 + undici-types: "npm:~6.11.1" + checksum: 10/7142a13ef1f884fde38f1e1499cbebcfe72755e8cb8657c4cb1ba1c2c91a3ae8656a72eb6e0a7d8189b0124c23c30e7c115324375d9c593435166da7a292e80e languageName: node linkType: hard @@ -6881,14 +6841,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.2.0": - version: 7.16.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.16.1" + version: 7.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.16.1" - "@typescript-eslint/type-utils": "npm:7.16.1" - "@typescript-eslint/utils": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/type-utils": "npm:7.17.0" + "@typescript-eslint/utils": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -6899,44 +6859,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/fddbfe461f85d10ee3967b89efa3c704806074af6806833f982915b21754567a98c5a486627174cc6b0ac4cb5f1282865d64ae251a5cbf6dbbbe191d0268520a + checksum: 10/f3caba81b7ea4d1b4b097b3de1c51054424ad3d5e37f7af7df64f1c29b6448c535b61e0956f76bfa450b38917923f919a9bab081224c2b5577596caffa6e288a languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.2.0": - version: 7.16.1 - resolution: "@typescript-eslint/parser@npm:7.16.1" + version: 7.17.0 + resolution: "@typescript-eslint/parser@npm:7.17.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.16.1" - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/typescript-estree": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/typescript-estree": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/7af36bacc2c38e9fb367edf886a04fde292ff28b49adfc3f4fc0dd456364c5e18444346112ae52557f2f32fe2e5abd144b87b4db89b6960b4957d69a9d390f91 + checksum: 10/91971e5d95fec798a456ec72d9d67c28eee72d0d1c52e682dbff2eef134e149799f69324ea8d42bd2cfa290eec763073b26fb343ce0632e4fa64c3b8a854d124 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/scope-manager@npm:7.16.1" +"@typescript-eslint/scope-manager@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/scope-manager@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" - checksum: 10/57ce02c2624e49988b01666b3e13d1adb44ab78f2dafc47a56800d57bff624779b348928a905393fa5f2cce94a5844173ab81f32b81f0bb2897f10bbaf9cab6a + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" + checksum: 10/aec72538a92d8a82ca39f60c34b0d0e00f2f8fb74f584aee90b6d1ef28f30a415b507f28aa27a536898992ad4b9b5af58671c743cd50439b21e67bee03a59c88 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/type-utils@npm:7.16.1" +"@typescript-eslint/type-utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/type-utils@npm:7.17.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.16.1" - "@typescript-eslint/utils": "npm:7.16.1" + "@typescript-eslint/typescript-estree": "npm:7.17.0" + "@typescript-eslint/utils": "npm:7.17.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -6944,23 +6904,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/38a72a3de8a2c3455d19e6d43e67ac6e1dc23e93b2d84571282b0323fadadcab33df1a89787c76fc99e45514e41a08bc9f5cb51287a7da48f56c64b512a3269b + checksum: 10/1405c626cd59a1fb29b897d22dce0b2f5b793e5d1cba228a119e58e7392c385c9131c332e744888b7d6ad41eee0abbd8099651664cafaed24229da2cd768e032 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/types@npm:7.16.1" - checksum: 10/cfb48821ffb5a5307e67ce05b9ec2f4775c560dc53011e313d4fa75d033e0130ce0d364ac92ad3634d325c16a889ddc3201e8a742217c73be8d34385da85620b +"@typescript-eslint/types@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/types@npm:7.17.0" + checksum: 10/92e571f794f51a1f110714a9de661f9a76781c8c3e53d8fe025a88be947ae30d1c18964083467db31001ce7910f1a1459b8f6b039c270bdb6d1de47eba5dfa7f languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.16.1" +"@typescript-eslint/typescript-estree@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/visitor-keys": "npm:7.17.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -6970,31 +6930,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/7f88176f2d25779ec2d40df4c6bd0a26aa41494ee0302d4895b4d0cb4e284385c1e218ac2ad67ed90b5e1bf82b78b8aa4b903b5906fbf7101b08c409ce778e9c + checksum: 10/419c4ad3b470ea4d654c414bbc66269ba7a6504e10bf2a2a87f9214aad4358b670f60e89ae7e4b2a24fa7c0c4542ebdd3711b8964917c026a5eef27d861e23fb languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/utils@npm:7.16.1" +"@typescript-eslint/utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/utils@npm:7.17.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.16.1" - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/typescript-estree": "npm:7.16.1" + "@typescript-eslint/scope-manager": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/typescript-estree": "npm:7.17.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/b3c279d706ff1b3a0002c8e0f0fcf559b63f4296e218199a25863054bda5b28d5a7ab6ad4ad1d0b7fa2c6cd9f2d0dcd7f784c3f75026fae7b58846695481ec45 + checksum: 10/44d6bfcda4b03a7bec82939dd975579f40705cf4128e40f747bf96b81e8fae0c384434999334a9ac42990e2864266c8067ca0e4b27d736ce2f6b8667115f7a1d languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.16.1" +"@typescript-eslint/visitor-keys@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.17.0" dependencies: - "@typescript-eslint/types": "npm:7.16.1" + "@typescript-eslint/types": "npm:7.17.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/f5088d72b6ca48f4e525b7b5d6c6c9254d0d039d2959fd91200691218e8ac8f3e56287ec8bc411a79609e9d85ed5fc6c4f7d2edd80fadf734aeb6f6bfc833322 + checksum: 10/a8bef372e212baab67ec4e074a8b4983348fc554874d40d1fc22c10ce2693609cdef4a215391e8b428a67b3e2dcbda12d821b4ed668394b0b001ba03a08c5145 languageName: node linkType: hard @@ -7098,8 +7058,8 @@ __metadata: linkType: hard "@uniswap/smart-order-router@npm:^3.16.25": - version: 3.35.12 - resolution: "@uniswap/smart-order-router@npm:3.35.12" + version: 3.36.1 + resolution: "@uniswap/smart-order-router@npm:3.36.1" dependencies: "@eth-optimism/sdk": "npm:^3.2.2" "@types/brotli": "npm:^1.3.4" @@ -7128,7 +7088,7 @@ __metadata: stats-lite: "npm:^2.2.0" peerDependencies: jsbi: ^3.2.0 - checksum: 10/81ac98b8e89f3ad2ba84bfefee942bd1ff17b6b3aa3b82f6a4e02d8d07b81bdd535741d780f60c5029aa5fa963f5322746be9d212939422f7434e1a5d49d8dd0 + checksum: 10/756552b11daa9751fdf579913aeed3ac982efd4b217f8009b173d7be87224e7ee961c23a655de42a3ff731c4b5dda42ce6e20a86416b5864f4e890753c43d9d2 languageName: node linkType: hard @@ -7500,60 +7460,60 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.33": - version: 3.4.33 - resolution: "@vue/compiler-core@npm:3.4.33" +"@vue/compiler-core@npm:3.4.34": + version: 3.4.34 + resolution: "@vue/compiler-core@npm:3.4.34" dependencies: "@babel/parser": "npm:^7.24.7" - "@vue/shared": "npm:3.4.33" + "@vue/shared": "npm:3.4.34" entities: "npm:^4.5.0" estree-walker: "npm:^2.0.2" source-map-js: "npm:^1.2.0" - checksum: 10/91580713a537687244891f56671a1db356517088a715d745a68a4021799d4a0ff69de7b265f4f4f4ab82d24f5a08b62a2c0844d8cb557d6936b5fef154d791f1 + checksum: 10/e140981415e06558043bacfcfb3c23c09e6b37ea49240266f7a5d028bc9b7d21c6c60a06ea32bb32ffb9da34f53e8e4c01a64d503f0cf8769e7646ee938dd42f languageName: node linkType: hard -"@vue/compiler-dom@npm:3.4.33": - version: 3.4.33 - resolution: "@vue/compiler-dom@npm:3.4.33" +"@vue/compiler-dom@npm:3.4.34": + version: 3.4.34 + resolution: "@vue/compiler-dom@npm:3.4.34" dependencies: - "@vue/compiler-core": "npm:3.4.33" - "@vue/shared": "npm:3.4.33" - checksum: 10/3003393487f800c4f2978cc248c285efc9e1f984a7e8f1ff36146bc26a5914c6978e1e8305cf0ee1103c7bae1202259c02a51a0bf069772af5f125724c055cdf + "@vue/compiler-core": "npm:3.4.34" + "@vue/shared": "npm:3.4.34" + checksum: 10/4a6944bc2386034faac1be7beb8f0e364b49432bde807162a95debac273a30b7294af4476f438fffb0d07470dfc236091cef2aa404fe08f433059f0ae947f9fb languageName: node linkType: hard "@vue/compiler-sfc@npm:^3.4.27": - version: 3.4.33 - resolution: "@vue/compiler-sfc@npm:3.4.33" + version: 3.4.34 + resolution: "@vue/compiler-sfc@npm:3.4.34" dependencies: "@babel/parser": "npm:^7.24.7" - "@vue/compiler-core": "npm:3.4.33" - "@vue/compiler-dom": "npm:3.4.33" - "@vue/compiler-ssr": "npm:3.4.33" - "@vue/shared": "npm:3.4.33" + "@vue/compiler-core": "npm:3.4.34" + "@vue/compiler-dom": "npm:3.4.34" + "@vue/compiler-ssr": "npm:3.4.34" + "@vue/shared": "npm:3.4.34" estree-walker: "npm:^2.0.2" magic-string: "npm:^0.30.10" postcss: "npm:^8.4.39" source-map-js: "npm:^1.2.0" - checksum: 10/af59aca33af931f5f1af4e92cd04c1b87cd722368f617b62bcdd7e8f132db1253f22e003c64e089b8caafd756c190a54d0bf42a2218dc9369b00985302de3914 + checksum: 10/fb4538edde853d71e13189956a8ad1cf82ef9ad8880ce4c6c6396213950b9c259224015d32420d4a1907100a27ab1c9374d89f73013fbcf7afd6395cb594b37b languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.4.33": - version: 3.4.33 - resolution: "@vue/compiler-ssr@npm:3.4.33" +"@vue/compiler-ssr@npm:3.4.34": + version: 3.4.34 + resolution: "@vue/compiler-ssr@npm:3.4.34" dependencies: - "@vue/compiler-dom": "npm:3.4.33" - "@vue/shared": "npm:3.4.33" - checksum: 10/347a5faac078018dfead2cc04e88ec37d82850815607b6a758a5d497b96f906d8cae69c055feced79b56f7d1615888b5e311a1dace306bdef2cf1a516c3a7e86 + "@vue/compiler-dom": "npm:3.4.34" + "@vue/shared": "npm:3.4.34" + checksum: 10/509138d4aceec73ba48aca7aac97b8bf2708e629004183293b2fcbfacbe125cdfc421e0e8f6dda2be9e5d7703d8a268ec2a92b35242daae997f10f5b67b34a77 languageName: node linkType: hard -"@vue/shared@npm:3.4.33": - version: 3.4.33 - resolution: "@vue/shared@npm:3.4.33" - checksum: 10/0cb9f1c4841f3da14ee9bab0a0fb169ddf1a1979b1aa70a4c7b6279e7fc7e5296c7c63f56bbdb1f43e4264aab3d7daa3e2355905caf727cf5f9088f99dd1a8c4 +"@vue/shared@npm:3.4.34": + version: 3.4.34 + resolution: "@vue/shared@npm:3.4.34" + checksum: 10/da4ff58fee19bd5e18fbadf6d744d7394d71c1b554f16cd7a690d80f6c19601ec17ec235595e3434a5a14f8c3b425c584b22f7f8d31afcd411d2c9ebaf63b8df languageName: node linkType: hard @@ -9681,8 +9641,8 @@ __metadata: linkType: hard "chai@npm:^4.3.10, chai@npm:^4.3.4": - version: 4.4.1 - resolution: "chai@npm:4.4.1" + version: 4.5.0 + resolution: "chai@npm:4.5.0" dependencies: assertion-error: "npm:^1.1.0" check-error: "npm:^1.0.3" @@ -9690,8 +9650,8 @@ __metadata: get-func-name: "npm:^2.0.2" loupe: "npm:^2.3.6" pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 10/c6d7aba913a67529c68dbec3673f94eb9c586c5474cc5142bd0b587c9c9ec9e5fbaa937e038ecaa6475aea31433752d5fabdd033b9248bde6ae53befcde774ae + type-detect: "npm:^4.1.0" + checksum: 10/cde341aee15b0a51559c7cfc20788dcfb4d586a498cfb93b937bb568fd45c777b73b1461274be6092b6bf868adb4e3a63f3fec13c89f7d8fb194f84c6fa42d5f languageName: node linkType: hard @@ -9961,9 +9921,9 @@ __metadata: linkType: hard "codeco@npm:^1.1.0": - version: 1.2.3 - resolution: "codeco@npm:1.2.3" - checksum: 10/98d8903305245c396bb746811bc14ebd4bd6c036858945eb1fe5aded23bbdaf81b7a06757358bf22ecaa743be790b38f2c5e7d7e77e5592284900835461ace5e + version: 1.3.4 + resolution: "codeco@npm:1.3.4" + checksum: 10/5a8b9a8308404532df78eddd74d2af4711dee02fb579c851281e52bc00ffc75b0903eda59826279b74dab7c632bdf3982abb5e3249bd855fbf8650ada112f649 languageName: node linkType: hard @@ -10133,9 +10093,9 @@ __metadata: linkType: hard "cookie-es@npm:^1.1.0": - version: 1.2.1 - resolution: "cookie-es@npm:1.2.1" - checksum: 10/805cf5f6c6205f9e3cfaa1d62227f7b7a8ec146e10c5c06378b5c918798911eaa83e8e219a79c4a57374f1a2ee8491ea399a19d26cbfe856e2b350b628350b4f + version: 1.2.2 + resolution: "cookie-es@npm:1.2.2" + checksum: 10/0fd742c11caa185928e450543f84df62d4b2c1fc7b5041196b57b7db04e1c6ac6585fb40e4f579a2819efefd2d6a9cbb4d17f71240d05f4dcd8f74ae81341a20 languageName: node linkType: hard @@ -10593,14 +10553,14 @@ __metadata: linkType: hard "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:~4.3.1, debug@npm:~4.3.2": - version: 4.3.5 - resolution: "debug@npm:4.3.5" + version: 4.3.6 + resolution: "debug@npm:4.3.6" dependencies: ms: "npm:2.1.2" peerDependenciesMeta: supports-color: optional: true - checksum: 10/cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2 + checksum: 10/d3adb9af7d57a9e809a68f404490cf776122acca16e6359a2702c0f462e510e91f9765c07f707b8ab0d91e03bad57328f3256f5082631cefb5393d0394d50fb7 languageName: node linkType: hard @@ -11225,9 +11185,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.3.585, electron-to-chromium@npm:^1.4.820": - version: 1.4.832 - resolution: "electron-to-chromium@npm:1.4.832" - checksum: 10/795eaae1a445283dea93ffd6e2482a794405191bcf30710b0350808e79befdd1f14fc7aed13359cf68d90e24cad93bd7c0965d011293ae183326b54915dd0319 + version: 1.5.2 + resolution: "electron-to-chromium@npm:1.5.2" + checksum: 10/5b397518bf3347e39935d1bf9ff3dd37064619783419c0cb6507c53812b3cea7b2cfd9c54664e6fc36aae28a29562af6339fa8e8fe165845355056ce3df63bde languageName: node linkType: hard @@ -11427,12 +11387,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.17.0": - version: 5.17.0 - resolution: "enhanced-resolve@npm:5.17.0" + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10/8f7bf71537d78e7d20a27363793f2c9e13ec44800c7c7830364a448f80a44994aa19d64beecefa1ab49e4de6f7fbe18cc0931dc449c115f02918ff5fcbe7705f + checksum: 10/e8e03cb7a4bf3c0250a89afbd29e5ec20e90ba5fcd026066232a0754864d7d0a393fa6fc0e5379314a6529165a1834b36731147080714459d98924520410d8f5 languageName: node linkType: hard @@ -12078,11 +12038,11 @@ __metadata: linkType: hard "ethereum-bloom-filters@npm:^1.0.6": - version: 1.1.0 - resolution: "ethereum-bloom-filters@npm:1.1.0" + version: 1.2.0 + resolution: "ethereum-bloom-filters@npm:1.2.0" dependencies: "@noble/hashes": "npm:^1.4.0" - checksum: 10/fb50448d024723f5817d7fce7d11ed22921b36f2b14b6102fe553721cf073b07f5f0f32ceef1a2a4520b426e5d9cac217b76f5bc8af4b82b4036c2d14b907836 + checksum: 10/86556762d0dff5d90e67fb5c76202b1258dc7de19f1dd537a339cf199094df0fc9f0f69a15bd2d6fe672a3ba4615b2493e53c72230b724d10c0d2daae7363936 languageName: node linkType: hard @@ -16602,9 +16562,9 @@ __metadata: linkType: hard "multiformats@npm:^13.0.0, multiformats@npm:^13.1.0": - version: 13.2.0 - resolution: "multiformats@npm:13.2.0" - checksum: 10/59cd64eddeabf04c9f10ac209f43a55af355e0c38276523c9e23c86ba6f5626248ee2c7a1b0bf55d89e026dbce4d72cb21b260a3b4e95041b4536d5a023c7beb + version: 13.2.1 + resolution: "multiformats@npm:13.2.1" + checksum: 10/ac5ed01e61f7230a6375784c5b738164eae611e0cfcc5e06f1ddadc87a6b97ca28bf43d673577e9ad0fc9fd2277c8205f5b506160baf4caaa4b56bed567b9964 languageName: node linkType: hard @@ -17872,20 +17832,20 @@ __metadata: linkType: hard "postcss@npm:^8.4.39": - version: 8.4.39 - resolution: "postcss@npm:8.4.39" + version: 8.4.40 + resolution: "postcss@npm:8.4.40" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.1" source-map-js: "npm:^1.2.0" - checksum: 10/ad9c1add892c96433b9a5502878201ede4a20c4ce02d056251f61f8d9a3e5426dab3683fe5a086edfa78a1a19f2b4988c8cea02c5122136d29758cb5a17e2621 + checksum: 10/bdd01b55152e4be7b4a82b03dd22876e33ff6a038680d1b80a50405a5eccc10aff0f466a0e5e574bc476943b0ba120fbd5de7cde9f219bbf8efc011898f5f631 languageName: node linkType: hard "preact@npm:^10.16.0": - version: 10.22.1 - resolution: "preact@npm:10.22.1" - checksum: 10/53ec958c49e600dcdedbb2da27834aa9779115690c26d240a953558fdd32d7f8cb3b34f2ec7a7c029a8aec46a93680b0e4b5baa0592fae6d53c7932abda6c06e + version: 10.23.1 + resolution: "preact@npm:10.23.1" + checksum: 10/ab90545445e805005627f0cf5cbd505b553877a5fc98e7bad8e93a7e223b973d38c8fb3368f75bb60265d23fee98b7086c738bf8ee06b7ff8527fb0c00d0698f languageName: node linkType: hard @@ -18347,7 +18307,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.11.2": +"qs@npm:^6.12.3": version: 6.12.3 resolution: "qs@npm:6.12.3" dependencies: @@ -19597,25 +19557,25 @@ __metadata: linkType: hard "rollup@npm:^4.13.0": - version: 4.19.0 - resolution: "rollup@npm:4.19.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.19.0" - "@rollup/rollup-android-arm64": "npm:4.19.0" - "@rollup/rollup-darwin-arm64": "npm:4.19.0" - "@rollup/rollup-darwin-x64": "npm:4.19.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.19.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.19.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-x64-musl": "npm:4.19.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.19.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.19.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.19.0" + version: 4.19.1 + resolution: "rollup@npm:4.19.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.19.1" + "@rollup/rollup-android-arm64": "npm:4.19.1" + "@rollup/rollup-darwin-arm64": "npm:4.19.1" + "@rollup/rollup-darwin-x64": "npm:4.19.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.19.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.19.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-x64-musl": "npm:4.19.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.19.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.19.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.19.1" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -19655,7 +19615,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/a5f56e60d160e727f372fb0b0adbab03c1e5b858df7af62e626459687e6510d5b9685e4badef50bb6ffd916eaf53c1684a8e12ae959dacb8e6930c77a00a0f19 + checksum: 10/4e46275cb2280d999833c7a0c20a292a201281bff6ae9583673788a8125e2e2cc13238092fa1639dab220d864f92d91efcff07cca0d29d8dfded4839b100da51 languageName: node linkType: hard @@ -21253,10 +21213,10 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d +"type-detect@npm:^4.0.0, type-detect@npm:^4.1.0": + version: 4.1.0 + resolution: "type-detect@npm:4.1.0" + checksum: 10/e363bf0352427a79301f26a7795a27718624c49c576965076624eb5495d87515030b207217845f7018093adcbe169b2d119bb9b7f1a31a92bfbb1ab9639ca8dd languageName: node linkType: hard @@ -21275,9 +21235,9 @@ __metadata: linkType: hard "type-fest@npm:^4.18.2": - version: 4.22.1 - resolution: "type-fest@npm:4.22.1" - checksum: 10/f0cef35c98c34577d94dd36b4baa6544cd6977bdee47d95fad1d970ca3b61c1bb0ab8aac66bab6e1e387b1f2821727675743282f1a8680da54adc1a5625f3d66 + version: 4.23.0 + resolution: "type-fest@npm:4.23.0" + checksum: 10/c411dea83262f9a4453e09ff82e3ac729dd26afc2e68b7a9fe93dd633b1a2bf7bf2bf3e041676497ae8b8411266019b3add91d4fe34b926a82ba09eb41e9e52b languageName: node linkType: hard @@ -21320,22 +21280,22 @@ __metadata: linkType: hard "typescript@npm:^5.2.2": - version: 5.5.3 - resolution: "typescript@npm:5.5.3" + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/11a867312419ed497929aafd2f1d28b2cd41810a5eb6c6e9e169559112e9ea073d681c121a29102e67cd4478d0a4ae37a306a5800f3717f59c4337e6a9bd5e8d + checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f languageName: node linkType: hard "typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": - version: 5.5.3 - resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=b45daf" + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=b45daf" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/b61b8bb4b4d6a8a00f9d5f931f8c67070eed6ad11feabf4c41744a326987080bfc806a621596c70fbf2e5974eca3ed65bafeeeb22a078071bdfb51d8abd7c013 + checksum: 10/2c065f0ef81855eac25c9b658a3c9da65ffc005260c12854c2286f40f3667e1b1ecf8bdbdd37b59aa0397920378ce7900bff8cb32e0f1c7af6fd86efc676718c languageName: node linkType: hard @@ -21452,10 +21412,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd +"undici-types@npm:~6.11.1": + version: 6.11.1 + resolution: "undici-types@npm:6.11.1" + checksum: 10/bdee4c3d67626bf45f1502b817b96e328ff9c3c006ecafa3708bc39ba66d6cecc2d5d69d3148667bb833d3fb457c0e715bfeed0b7b6767fa4d3044f5c1036ba9 languageName: node linkType: hard @@ -21678,12 +21638,12 @@ __metadata: linkType: hard "url@npm:^0.11.0": - version: 0.11.3 - resolution: "url@npm:0.11.3" + version: 0.11.4 + resolution: "url@npm:0.11.4" dependencies: punycode: "npm:^1.4.1" - qs: "npm:^6.11.2" - checksum: 10/a3a5ba64d8afb4dda111355d94073a9754b88b1de4035554c398b75f3e4d4244d5e7ae9e4554f0d91be72efd416aedbb646fbb1f3dd4cacecca45ed6c9b75145 + qs: "npm:^6.12.3" + checksum: 10/e787d070f0756518b982a4653ef6cdf4d9030d8691eee2d483344faf2b530b71d302287fa63b292299455fea5075c502a5ad5f920cb790e95605847f957a65e4 languageName: node linkType: hard @@ -22024,8 +21984,8 @@ __metadata: linkType: hard "vite@npm:^5.2.7": - version: 5.3.4 - resolution: "vite@npm:5.3.4" + version: 5.3.5 + resolution: "vite@npm:5.3.5" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -22059,7 +22019,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/9eadb261be1f5f6335a67cb44a8803febd8b190202909385fd2ae7849991095ee13c5af914da53da48a421ee0901a8fedbb7519dc7d1b8ade3ea6e42bd9b2b39 + checksum: 10/5672dde4a969349d9cf90a9e43029c8489dfff60fb04d6a10717d6224553cf12283a8cace633fa80b006df6037f72d08a459a38bf8ea66cb19075d60fe159482 languageName: node linkType: hard From bbb96869c9ee0052d10d3fa2c46996afa202bed9 Mon Sep 17 00:00:00 2001 From: Kolade Date: Tue, 30 Jul 2024 11:01:49 +0100 Subject: [PATCH 24/31] Update Unlock profile Modal changes (#1778) * update unlock profile modal changes * fixed the modal --------- Co-authored-by: rohitmalhotra1420 --- src/blocks/modal/Modal.tsx | 23 +++--- .../chat/unlockProfile/UnlockProfile.tsx | 35 ++------ .../unlockProfile/UnlockProfileWrapper.tsx | 80 +++++++++---------- 3 files changed, 58 insertions(+), 80 deletions(-) diff --git a/src/blocks/modal/Modal.tsx b/src/blocks/modal/Modal.tsx index 71ddb3af6b..339ea89858 100644 --- a/src/blocks/modal/Modal.tsx +++ b/src/blocks/modal/Modal.tsx @@ -8,7 +8,7 @@ import { ModalSize } from './Modal.types'; type ButtonAlignment = 'end' | 'center'; export type ModalProps = { - acceptButtonProps?: ButtonProps; + acceptButtonProps?: ButtonProps | null; buttonAlignment?: ButtonAlignment; cancelButtonProps?: ButtonProps | null; children: ReactNode; @@ -50,6 +50,7 @@ const ContentChildren = styled.div<{ size: ModalSize }>` flex-direction: column; align-items: flex-start; flex: 1 0 0; + width: 100%; padding-top: var(--spacing-${({ size }) => (size === 'small' ? 'xxs' : 'xs')}); `; @@ -87,7 +88,7 @@ const ButtonsContainer = styled.div<{ buttonAlignment: ButtonAlignment }>` `; const Modal: FC = ({ - acceptButtonProps, + acceptButtonProps = { children: 'Accept' }, closeOnOverlayClick = false, buttonAlignment = 'center', cancelButtonProps = { children: 'Cancel', onClick: () => onClose() }, @@ -129,6 +130,7 @@ const Modal: FC = ({ {cancelButtonProps && ( )} - + {acceptButtonProps && ( + + )} diff --git a/src/components/chat/unlockProfile/UnlockProfile.tsx b/src/components/chat/unlockProfile/UnlockProfile.tsx index f655eaf043..95f24b841f 100644 --- a/src/components/chat/unlockProfile/UnlockProfile.tsx +++ b/src/components/chat/unlockProfile/UnlockProfile.tsx @@ -33,7 +33,6 @@ export enum PROFILESTATE { } // Interface - type UnlockProfileModalProps = { InnerComponentProps: { type: UNLOCK_PROFILE_TYPE | undefined; @@ -105,26 +104,6 @@ const UnlockProfile = ({ InnerComponentProps, onClose }: UnlockProfileModalProps return ( - {onClose && ( - - - } - /> - - )} - {/* Logo and Left Text */} { const Container = styled(ItemHV2)` flex-direction: column; align-items: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? 'center' : 'end')}; - width: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '450px' : 'inherit')}; - padding: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '16px' : '0px')}; + width: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '100%' : 'inherit')}; + padding: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '0px' : '0px')}; @media (${device.tablet}) { - width: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '320px' : 'inherit')}; - padding: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '12px' : '0px')}; + width: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '100%' : 'inherit')}; + padding: ${(props) => (props.type === UNLOCK_PROFILE_TYPE.MODAL ? '0px' : '0px')}; align-items: center; } `; diff --git a/src/components/chat/unlockProfile/UnlockProfileWrapper.tsx b/src/components/chat/unlockProfile/UnlockProfileWrapper.tsx index fe33fdde4c..a547d5fd6d 100644 --- a/src/components/chat/unlockProfile/UnlockProfileWrapper.tsx +++ b/src/components/chat/unlockProfile/UnlockProfileWrapper.tsx @@ -1,8 +1,8 @@ -import { ItemVV2 } from 'components/reusables/SharedStylingV2'; -import useModalBlur, { MODAL_POSITION } from 'hooks/useModalBlur'; -import { useEffect } from 'react'; +import { FC } from 'react'; import styled from 'styled-components'; +import { ItemVV2 } from 'components/reusables/SharedStylingV2'; import UnlockProfile from './UnlockProfile'; +import { Modal } from 'blocks'; export enum UNLOCK_PROFILE_TYPE { BOTTOM_BAR = 'bottombar', @@ -13,54 +13,50 @@ interface IntroContainerProps { type?: UNLOCK_PROFILE_TYPE; showConnectModal?: boolean; description?: string; - onClose?: () => void; + onClose: () => void; } const DEFAULT_PROPS = { type: UNLOCK_PROFILE_TYPE.MODAL, }; -const UnlockProfileWrapper = ({ +const UnlockProfileWrapper: FC = ({ type = DEFAULT_PROPS.type, - showConnectModal, + showConnectModal = false, description, onClose, -}: IntroContainerProps) => { - const { - isModalOpen: isProfileModalOpen, - showModal: showProfileModal, - ModalComponent: ProfileModalComponent, - } = useModalBlur(); - - useEffect(() => { - if (type === UNLOCK_PROFILE_TYPE.MODAL && showConnectModal) { - showProfileModal(); - } - }, [type, showConnectModal]); - - if (type === UNLOCK_PROFILE_TYPE.MODAL) { - return ( - - ); - } else { - return ( - - { + return ( + <> + {type === UNLOCK_PROFILE_TYPE.MODAL ? ( + - - ); - } + size="small" + acceptButtonProps={null} + cancelButtonProps={null} + > + + + ) : ( + + + + )} + + ); }; export default UnlockProfileWrapper; @@ -70,7 +66,6 @@ const Container = styled(ItemVV2)` border-radius: 24px; padding: 24px; align-items: center; - // overflow: hidden; backdrop-filter: blur(8px); &.bottombar { @@ -81,7 +76,6 @@ const Container = styled(ItemVV2)` width: auto; bottom: 0; flex-direction: row; - // overflow: hidden; border-top-left-radius: 0px; border-top-right-radius: 0px; } From 9d62bc63ce929cc274e27e4474a14953efc3a15d Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:38:29 +0530 Subject: [PATCH 25/31] feat: add alert ds component (#1781) * feat: add alert ds component * chore: update alert ds acc to review * chore: update component acc to review --- src/blocks/alert/Alert.tsx | 141 ++++++++++++++++++ src/blocks/alert/Alert.types.ts | 1 + src/blocks/alert/Alert.utils.ts | 38 +++++ src/blocks/alert/index.ts | 3 + src/blocks/index.ts | 1 + src/blocks/theme/colors/colors.semantics.ts | 4 + src/blocks/theme/semantics/semantics.alert.ts | 24 +++ 7 files changed, 212 insertions(+) create mode 100644 src/blocks/alert/Alert.tsx create mode 100644 src/blocks/alert/Alert.types.ts create mode 100644 src/blocks/alert/Alert.utils.ts create mode 100644 src/blocks/alert/index.ts create mode 100644 src/blocks/theme/semantics/semantics.alert.ts diff --git a/src/blocks/alert/Alert.tsx b/src/blocks/alert/Alert.tsx new file mode 100644 index 0000000000..bc51cfef1e --- /dev/null +++ b/src/blocks/alert/Alert.tsx @@ -0,0 +1,141 @@ +import type { FC } from 'react'; +import styled, { FlattenSimpleInterpolation } from 'styled-components'; + +import type { TransformedHTMLAttributes } from '../Blocks.types'; +import type { AlertVariant } from './Alert.types'; +import { alertVariants } from './Alert.utils'; +import { Cross } from 'blocks/icons'; +import { HoverableSVG } from 'blocks/hoverableSVG'; +import { getTextVariantStyles } from 'blocks/Blocks.utils'; + +export type AlertProps = { + /* Additional prop from styled components to apply custom css to Alert */ + css?: FlattenSimpleInterpolation; + /* Sets the variant of the alert */ + variant: AlertVariant; + /* Close function to be called on close button click */ + onClose?: () => void; + /* Retry function to be called on action button click */ + onAction?: () => void; + /* Text to be displayed on the action button */ + actionText?: string; + /* Boolean to set the visibility of the icon */ + showIcon?: boolean; + /* Header text for the alert */ + heading?: string; + /* Description text for the alert */ + description?: string; +} & TransformedHTMLAttributes; + +const StyledAlert = styled.div` + /* Common Alert CSS */ + + display: flex; + font-family: var(--font-family); + border-radius: var(--radius-sm); + justify-content: center; + white-space: nowrap; + padding: var(--spacing-xs); + justify-content: space-between; + ${({ variant }) => ` + border: var(--border-sm) solid var(--${alertVariants[variant].borderColor}); + background-color: var(--${alertVariants[variant].bgColor}); + `} + + /* Common icon css added through CSS class */ + .icon { + display: flex; + justify-content: center; + margin-right: var(--spacing-xxxs); + color: var(--${({ variant }) => alertVariants[variant].iconColor}); + } + + /* Custom CSS applied via styled component css prop */ + ${(props) => props.css || ''} +`; + +const StyledLink = styled.div<{ variant: AlertVariant }>` + /* Link CSS */ + text-decoration: none; + cursor: pointer; + color: var(--${({ variant }) => alertVariants[variant].ctaColor}); +`; + +const TextContainer = styled.div` + display: flex; + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xxxs); + flex: 1 0 0; +`; + +const RightContainer = styled.div` + display: flex; + gap: var(--spacing-xs, 12px); + align-items: center; + height: 24px; +`; + +const Heading = styled.p` + ${() => getTextVariantStyles('h5-semibold', 'components-alert-text-default')} +`; + +const Description = styled.p` + ${() => getTextVariantStyles('bs-regular', 'components-alert-text-body')} +`; + +const Alert: FC = ({ + description, + heading, + onClose, + onAction, + actionText = 'Try Again', + showIcon = true, + variant = 'info', + ...props +}) => { + const { icon: Icon } = alertVariants[variant]; + + return ( + + {showIcon && ( + + + + )} + + {heading && {heading}} + {description && {description}} + + + {onAction && ( + + {actionText} + + )} + {onClose && ( + + } + onClick={onClose} + /> + )} + + + ); +}; + +Alert.displayName = 'Alert'; + +export { Alert }; diff --git a/src/blocks/alert/Alert.types.ts b/src/blocks/alert/Alert.types.ts new file mode 100644 index 0000000000..2e0a42f4bf --- /dev/null +++ b/src/blocks/alert/Alert.types.ts @@ -0,0 +1 @@ +export type AlertVariant = 'success' | 'warning' | 'error' | 'info'; diff --git a/src/blocks/alert/Alert.utils.ts b/src/blocks/alert/Alert.utils.ts new file mode 100644 index 0000000000..be53753be6 --- /dev/null +++ b/src/blocks/alert/Alert.utils.ts @@ -0,0 +1,38 @@ +import { AlertVariant } from './Alert.types'; +import { IconProps, InfoFilled, TickCircleFilled, WarningCircleFilled } from '../icons'; +import { ThemeColors } from 'blocks/theme/Theme.types'; +import { FC } from 'react'; + +export const alertVariants: Record< + AlertVariant, + { icon: FC; iconColor: ThemeColors; borderColor: ThemeColors; bgColor: ThemeColors; ctaColor: ThemeColors } +> = { + success: { + icon: TickCircleFilled, + iconColor: 'components-alert-icon-success', + borderColor: 'components-alert-stroke-success', + bgColor: 'components-alert-background-success', + ctaColor: 'components-alert-text-cta-success', + }, + warning: { + icon: WarningCircleFilled, + iconColor: 'components-alert-icon-warning', + borderColor: 'components-alert-stroke-warning', + bgColor: 'components-alert-background-warning', + ctaColor: 'components-alert-text-cta-warning', + }, + info: { + icon: InfoFilled, + iconColor: 'components-alert-icon-info', + borderColor: 'components-alert-stroke-info', + bgColor: 'components-alert-background-info', + ctaColor: 'components-alert-text-cta-info', + }, + error: { + icon: WarningCircleFilled, + iconColor: 'components-alert-icon-error', + borderColor: 'components-alert-stroke-error', + bgColor: 'components-alert-background-error', + ctaColor: 'components-alert-text-cta-error', + }, +}; diff --git a/src/blocks/alert/index.ts b/src/blocks/alert/index.ts new file mode 100644 index 0000000000..cfb6dd88bb --- /dev/null +++ b/src/blocks/alert/index.ts @@ -0,0 +1,3 @@ +export * from './Alert'; +export * from './Alert.utils'; +export * from './Alert.types'; diff --git a/src/blocks/index.ts b/src/blocks/index.ts index 31b014d08c..b1f45024a0 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -1,3 +1,4 @@ +export { Alert, type AlertProps } from './alert'; export { Box, type BoxProps } from './box'; export { Button, type ButtonProps } from './button'; export { Dropdown, type DropdownProps } from './dropdown'; diff --git a/src/blocks/theme/colors/colors.semantics.ts b/src/blocks/theme/colors/colors.semantics.ts index 09d3f2c7f8..9c047713a9 100644 --- a/src/blocks/theme/colors/colors.semantics.ts +++ b/src/blocks/theme/colors/colors.semantics.ts @@ -1,3 +1,4 @@ +import { alertSemantics } from '../semantics/semantics.alert'; import { secondaryButtonSemantics, dangerButtonSemantics, @@ -23,6 +24,7 @@ import { tooltipSemantics } from '../semantics/semantics.tooltip'; // TODO: find a better way to do this in future type SemanticKeys = { + alert: 'components-alert'; buttonPrimary: 'components-button-primary'; buttonSecondary: 'components-button-secondary'; buttonTertiary: 'components-button-tertiary'; @@ -46,6 +48,7 @@ type SemanticKeys = { }; export const semanticKeys: SemanticKeys = { + alert: 'components-alert', buttonPrimary: 'components-button-primary', buttonSecondary: 'components-button-secondary', buttonTertiary: 'components-button-tertiary', @@ -69,6 +72,7 @@ export const semanticKeys: SemanticKeys = { }; export const colorSemantics = { + [semanticKeys.alert]: alertSemantics, [semanticKeys.buttonPrimary]: primaryButtonSemantics, [semanticKeys.buttonSecondary]: secondaryButtonSemantics, [semanticKeys.buttonTertiary]: tertiaryButtonSemantics, diff --git a/src/blocks/theme/semantics/semantics.alert.ts b/src/blocks/theme/semantics/semantics.alert.ts new file mode 100644 index 0000000000..7b9ab7bb79 --- /dev/null +++ b/src/blocks/theme/semantics/semantics.alert.ts @@ -0,0 +1,24 @@ +import { colorBrands } from '../colors/colors.brands'; +import { colorPrimitives } from '../colors/colors.primitives'; +import { textSemantics } from './semantics.text'; + +export const alertSemantics = { + 'text-default': { light: textSemantics['primary'].light, dark: textSemantics['primary'].dark }, + 'text-body': { light: textSemantics['tertiary'].light, dark: textSemantics['tertiary'].dark }, + 'icon-success': { light: colorBrands['success-500'], dark: colorBrands['success-300'] }, + 'icon-warning': { light: colorBrands['warning-700'], dark: colorBrands['warning-100'] }, + 'icon-error': { light: colorBrands['danger-600'], dark: colorBrands['danger-500'] }, + 'icon-info': { light: colorPrimitives['blue-700'], dark: colorPrimitives['blue-100'] }, + 'text-cta-success': { light: colorBrands['success-500'], dark: colorBrands['success-300'] }, + 'text-cta-warning': { light: colorBrands['warning-700'], dark: colorBrands['warning-100'] }, + 'text-cta-error': { light: colorBrands['danger-600'], dark: colorBrands['danger-500'] }, + 'text-cta-info': { light: colorPrimitives['blue-700'], dark: colorPrimitives['blue-100'] }, + 'background-success': { light: colorBrands['success-100'], dark: colorBrands['success-900'] }, + 'background-warning': { light: colorBrands['warning-100'], dark: colorBrands['warning-900'] }, + 'background-error': { light: colorBrands['danger-100'], dark: colorBrands['danger-900'] }, + 'background-info': { light: colorPrimitives['blue-100'], dark: colorPrimitives['blue-900'] }, + 'stroke-success': { light: colorBrands['success-300'], dark: colorBrands['success-700'] }, + 'stroke-warning': { light: colorBrands['warning-300'], dark: colorBrands['warning-700'] }, + 'stroke-error': { light: colorBrands['danger-300'], dark: colorBrands['danger-700'] }, + 'stroke-info': { light: colorPrimitives['blue-300'], dark: colorPrimitives['blue-700'] }, +}; From ff36a60a79bbb79bfc34ec652ea4f441e000240b Mon Sep 17 00:00:00 2001 From: Monalisha Mishra <42746736+mishramonalisha76@users.noreply.github.com> Date: Wed, 31 Jul 2024 18:47:27 +0530 Subject: [PATCH 26/31] Added spinner component (#1783) * added spinner component * added review changes * added correct variants * added the review comments * added the review comments --- src/blocks/index.ts | 1 + src/blocks/spinner/Spinner.tsx | 69 +++++++++++++++++++ src/blocks/spinner/Spinner.types.ts | 2 + src/blocks/spinner/Spinner.utils.ts | 28 ++++++++ src/blocks/spinner/index.ts | 1 + src/blocks/theme/colors/colors.semantics.ts | 4 ++ .../theme/semantics/semantics.spinner.ts | 7 ++ .../theme/variables/variables.borderSize.ts | 1 + 8 files changed, 113 insertions(+) create mode 100644 src/blocks/spinner/Spinner.tsx create mode 100644 src/blocks/spinner/Spinner.types.ts create mode 100644 src/blocks/spinner/Spinner.utils.ts create mode 100644 src/blocks/spinner/index.ts create mode 100644 src/blocks/theme/semantics/semantics.spinner.ts diff --git a/src/blocks/index.ts b/src/blocks/index.ts index b1f45024a0..e34c56e6ed 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -15,6 +15,7 @@ export { Tooltip, type TooltipProps } from './tooltip'; export { TextArea, type TextAreaProps } from './textarea'; export { TextInput } from './textInput'; export { ToggleSwitch } from './toggleSwtich'; +export { Spinner, type SpinnerProps } from './spinner'; export * from './Blocks.colors'; export * from './Blocks.types'; diff --git a/src/blocks/spinner/Spinner.tsx b/src/blocks/spinner/Spinner.tsx new file mode 100644 index 0000000000..913ea4acde --- /dev/null +++ b/src/blocks/spinner/Spinner.tsx @@ -0,0 +1,69 @@ +import React from 'react'; +import styled, { FlattenSimpleInterpolation, keyframes } from 'styled-components'; +import { SpinnerSize, SpinnerVariant } from './Spinner.types'; +import { getSpinnerSize, getSpinnerStrokeWidth } from './Spinner.utils'; + +export type SpinnerProps = { + /* Additional prop from styled components to apply custom css to Spinner */ + css?: FlattenSimpleInterpolation; + /* Sizes for the Spinner */ + size?: SpinnerSize; + /* Variants for the Spinner */ + variant?: SpinnerVariant; +}; + +const spin = keyframes` + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +`; + +const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSize; variant: SpinnerVariant }>` + position: relative; + animation: ${spin} 1s linear infinite; + border-radius: 50%; + ${({ size, variant }) => ` + border-width: var(--${getSpinnerStrokeWidth(size)}) ; + border-style: solid; + border-color: var(--components-spin-loader-spinner-${variant}) + transparent transparent transparent; + width: ${getSpinnerSize(size)}; + height: ${getSpinnerSize(size)}; + :before,:after { + content: ''; + width: var(--${getSpinnerStrokeWidth(size)}); + height: var(--${getSpinnerStrokeWidth(size)}); + border-radius: 50%; + background: var(--components-spin-loader-spinner-${variant}); + position: absolute; + } + :before { + top: 8.65%; + left: 10%; + } + :after { + top: 8.65%; + right: 10%; + } + `} + + /* Custom CSS applied via styled component css prop */ + ${(props) => props.css || ''}; +`; + +const Spinner: React.FC = ({ size = 'small', css, variant = 'primary' }) => { + return ( + + ); +}; + +Spinner.displayName = 'Spinner'; + +export { Spinner }; diff --git a/src/blocks/spinner/Spinner.types.ts b/src/blocks/spinner/Spinner.types.ts new file mode 100644 index 0000000000..c5d1f7f594 --- /dev/null +++ b/src/blocks/spinner/Spinner.types.ts @@ -0,0 +1,2 @@ +export type SpinnerSize = 'small' | 'medium' | 'large' | 'extraLarge'; +export type SpinnerVariant = 'primary' | 'secondary'; diff --git a/src/blocks/spinner/Spinner.utils.ts b/src/blocks/spinner/Spinner.utils.ts new file mode 100644 index 0000000000..a66c69c5e5 --- /dev/null +++ b/src/blocks/spinner/Spinner.utils.ts @@ -0,0 +1,28 @@ +import { SpinnerSize, SpinnerVariant } from './Spinner.types'; + +export const getSpinnerSize = (size: SpinnerSize) => { + switch (size) { + case 'small': + return '16px'; + case 'medium': + return '24px'; + case 'large': + return '32px'; + default: + return '48px'; + } +}; +export const getSpinnerStrokeWidth = (size: SpinnerSize) => { + switch (size) { + case 'small': + return 'border-sm'; + case 'medium': + return 'border-xmd'; + case 'large': + return 'border-md'; + case 'extraLarge': + return 'border-lg'; + default: + return 'border-xs'; + } +}; diff --git a/src/blocks/spinner/index.ts b/src/blocks/spinner/index.ts new file mode 100644 index 0000000000..b3294f39b1 --- /dev/null +++ b/src/blocks/spinner/index.ts @@ -0,0 +1 @@ +export { Spinner, type SpinnerProps } from './Spinner'; diff --git a/src/blocks/theme/colors/colors.semantics.ts b/src/blocks/theme/colors/colors.semantics.ts index 9c047713a9..a0900a7515 100644 --- a/src/blocks/theme/colors/colors.semantics.ts +++ b/src/blocks/theme/colors/colors.semantics.ts @@ -21,6 +21,7 @@ import { textSemantics } from '../semantics/semantics.text'; import { textAreaSemantics } from '../semantics/semantics.textarea'; import { toastSemantics } from '../semantics/semantics.toast'; import { tooltipSemantics } from '../semantics/semantics.tooltip'; +import { spinnerSemantics } from '../semantics/semantics.spinner'; // TODO: find a better way to do this in future type SemanticKeys = { @@ -45,6 +46,7 @@ type SemanticKeys = { toast: 'components-toast'; toggle: 'components-toggle-switch'; tooltip: 'components-tooltip'; + spinner: 'components-spin-loader'; }; export const semanticKeys: SemanticKeys = { @@ -69,6 +71,7 @@ export const semanticKeys: SemanticKeys = { toast: 'components-toast', toggle: 'components-toggle-switch', tooltip: 'components-tooltip', + spinner: 'components-spin-loader', }; export const colorSemantics = { @@ -93,4 +96,5 @@ export const colorSemantics = { [semanticKeys.toast]: toastSemantics, [semanticKeys.toggle]: switchSemantics, [semanticKeys.tooltip]: tooltipSemantics, + [semanticKeys.spinner]: spinnerSemantics, }; diff --git a/src/blocks/theme/semantics/semantics.spinner.ts b/src/blocks/theme/semantics/semantics.spinner.ts new file mode 100644 index 0000000000..7e58cac7eb --- /dev/null +++ b/src/blocks/theme/semantics/semantics.spinner.ts @@ -0,0 +1,7 @@ +import { colorBrands } from '../colors/colors.brands'; +import { surfaceSemantics } from './semantics.surface'; + +export const spinnerSemantics = { + 'spinner-primary': { light: colorBrands['primary-500'], dark: colorBrands['primary-500'] }, + 'spinner-secondary': { light: colorBrands['neutral-1000'], dark: colorBrands['neutral-100'] }, +}; diff --git a/src/blocks/theme/variables/variables.borderSize.ts b/src/blocks/theme/variables/variables.borderSize.ts index e2e5cd466b..574f3a4513 100644 --- a/src/blocks/theme/variables/variables.borderSize.ts +++ b/src/blocks/theme/variables/variables.borderSize.ts @@ -1,6 +1,7 @@ export const borderSizeVariables = { 'border-xs': '0.5px', 'border-sm': '1px', + 'border-xmd': '1.5px', 'border-md': '2px', 'border-lg': '3px', 'border-xl': '4px', From a530cbc4436b42cfb03c7fd6860753aec881a0bc Mon Sep 17 00:00:00 2001 From: Monalisha Mishra <42746736+mishramonalisha76@users.noreply.github.com> Date: Wed, 31 Jul 2024 18:59:47 +0530 Subject: [PATCH 27/31] Dapp 1767 spinner (#1786) * added spinner component * added review changes * added correct variants * added the review comments * added the review comments * fixed semantics --- src/blocks/spinner/Spinner.tsx | 6 +++--- src/blocks/spinner/Spinner.types.ts | 2 +- src/blocks/theme/colors/colors.semantics.ts | 4 ++-- src/blocks/theme/semantics/semantics.spinner.ts | 5 ++--- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/blocks/spinner/Spinner.tsx b/src/blocks/spinner/Spinner.tsx index 913ea4acde..a3eb71cc7b 100644 --- a/src/blocks/spinner/Spinner.tsx +++ b/src/blocks/spinner/Spinner.tsx @@ -28,7 +28,7 @@ const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSi ${({ size, variant }) => ` border-width: var(--${getSpinnerStrokeWidth(size)}) ; border-style: solid; - border-color: var(--components-spin-loader-spinner-${variant}) + border-color: var(--components-spinner-icon-${variant}) transparent transparent transparent; width: ${getSpinnerSize(size)}; height: ${getSpinnerSize(size)}; @@ -37,7 +37,7 @@ const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSi width: var(--${getSpinnerStrokeWidth(size)}); height: var(--${getSpinnerStrokeWidth(size)}); border-radius: 50%; - background: var(--components-spin-loader-spinner-${variant}); + background: var(--components-spinner-icon-${variant}); position: absolute; } :before { @@ -54,7 +54,7 @@ const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSi ${(props) => props.css || ''}; `; -const Spinner: React.FC = ({ size = 'small', css, variant = 'primary' }) => { +const Spinner: React.FC = ({ size = 'small', css, variant = 'default' }) => { return ( Date: Thu, 1 Aug 2024 19:12:12 +0530 Subject: [PATCH 28/31] fixed the prod dapp option visibility in header (#1789) --- src/primaries/Profile.tsx | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/primaries/Profile.tsx b/src/primaries/Profile.tsx index 674eacb08e..00ef6c43f3 100644 --- a/src/primaries/Profile.tsx +++ b/src/primaries/Profile.tsx @@ -8,7 +8,7 @@ import styled, { useTheme } from 'styled-components'; // Internal Compoonents import ProfileModal from 'components/ProfileModal'; import LoaderSpinner, { LOADER_TYPE } from 'components/reusables/loaders/LoaderSpinner'; -import { envUtil, shortenText } from 'helpers/UtilityHelper'; +import { EnvHelper, envUtil, shortenText } from 'helpers/UtilityHelper'; import { useAccount } from 'hooks'; import { useClickAway } from 'hooks/useClickAway'; import { useResolveWeb3Name } from 'hooks/useResolveWeb3Name'; @@ -63,14 +63,18 @@ const Profile = ({ isDarkMode }: { isDarkMode: boolean }) => { to: APP_PATHS.UserSettings, invertedIcon: getPublicAssetPath('svg/setting.svg'), }, - { - id: 'prodDapp', - value: '', - function: () => {}, - link: `https://${envUtil.prod}`, - title: 'Production dapp', - invertedIcon: getPublicAssetPath('prod.svg'), - }, + ...(EnvHelper.isProd + ? [] + : [ + { + id: 'prodDapp', + value: '', + function: () => {}, + link: `https://${envUtil.prod}`, + title: 'Production dapp', + invertedIcon: getPublicAssetPath('prod.svg'), + }, + ]), { id: 'disconnect', value: '', From 4c6ca21b5596cc45d7d9d25b6d9420470f913859 Mon Sep 17 00:00:00 2001 From: Monalisha Mishra <42746736+mishramonalisha76@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:54:48 +0530 Subject: [PATCH 29/31] Loading in button (#1788) * added loading colour * Update Dashboard.tsx * fixed review comments * Update Button.tsx * fixed the spinner and button * fixed the spinner and button --- src/blocks/button/Button.tsx | 24 +- src/blocks/button/Button.utils.ts | 220 +++++++++++------- src/blocks/icons/components/Ellipse.tsx | 27 +++ src/blocks/icons/index.ts | 2 + src/blocks/spinner/Spinner.tsx | 63 ++--- src/blocks/spinner/Spinner.utils.ts | 8 +- .../theme/semantics/semantics.button.ts | 6 + 7 files changed, 218 insertions(+), 132 deletions(-) create mode 100644 src/blocks/icons/components/Ellipse.tsx diff --git a/src/blocks/button/Button.tsx b/src/blocks/button/Button.tsx index 623c096a99..ceef6f8d60 100644 --- a/src/blocks/button/Button.tsx +++ b/src/blocks/button/Button.tsx @@ -4,6 +4,7 @@ import styled, { FlattenSimpleInterpolation } from 'styled-components'; import type { TransformedHTMLAttributes } from '../Blocks.types'; import type { ButtonSize, ButtonVariant } from './Button.types'; import { getButtonSizeStyles, getButtonVariantStyles } from './Button.utils'; +import { Spinner } from '../spinner'; export type ButtonProps = { /* Child react nodes rendered by Box */ @@ -26,6 +27,8 @@ export type ButtonProps = { variant?: ButtonVariant; /* Button takes the full width if enabled */ block?: boolean; + /* Button loading state */ + loading?: boolean; } & TransformedHTMLAttributes; const StyledButton = styled.button` @@ -44,9 +47,10 @@ const StyledButton = styled.button` align-items: center; justify-content: center; } - /* Button variant CSS styles */ - ${({ variant }) => getButtonVariantStyles(variant || 'primary')} + ${({ variant, loading }) => getButtonVariantStyles(variant || 'primary', loading!)} + + ${({ loading }) => loading && 'opacity: var(--opacity-80);'} /* Button and font size CSS styles */ ${({ iconOnly, size }) => getButtonSizeStyles({ iconOnly: !!iconOnly, size: size || 'medium' })} @@ -61,6 +65,9 @@ const StyledButton = styled.button` ${(props) => props.css || ''} `; +const SpinnerContainer = styled.div` + padding: 5px; +`; const Button = forwardRef( ( { @@ -69,6 +76,7 @@ const Button = forwardRef( size = 'medium', leadingIcon, trailingIcon, + loading = false, iconOnly, circular = false, children, @@ -77,20 +85,26 @@ const Button = forwardRef( ref ) => ( + {loading && ( + + + + )} {leadingIcon && {leadingIcon}} {!iconOnly && children} {trailingIcon && {trailingIcon}} - {iconOnly && !children && {iconOnly}} + {iconOnly && !loading && !children && {iconOnly}} ) ); diff --git a/src/blocks/button/Button.utils.ts b/src/blocks/button/Button.utils.ts index 80d5ba91b6..8dd243fb1b 100644 --- a/src/blocks/button/Button.utils.ts +++ b/src/blocks/button/Button.utils.ts @@ -1,72 +1,89 @@ import { FlattenSimpleInterpolation, css } from 'styled-components'; import { ButtonSize, ButtonVariant } from './Button.types'; -export const getButtonVariantStyles = (variant: ButtonVariant) => { +export const getButtonVariantStyles = (variant: ButtonVariant, loading: boolean) => { switch (variant) { case 'primary': { return ` - background-color: var(--components-button-primary-background-default); + background-color: var(--${ + loading ? 'components-button-primary-background-loading' : 'components-button-primary-background-default' + }); color: var(--components-button-primary-text-default); - - &:hover { - background-color: var(--components-button-primary-background-hover) - } - - &:active { - background-color: var(--components-button-primary-background-pressed); - } + ${ + !loading && + ` + &:hover { + background-color: var(--components-button-primary-background-hover) + } + &:active { + background-color: var(--components-button-primary-background-pressed); + } + ` + }; &:focus-visible { background-color: var(--components-button-primary-background-focus); border: var(--border-sm) solid var(--components-button-primary-stroke-focus); outline: none; } + ${ + !loading && + `&:disabled { + background-color: var(--components-button-primary-background-disabled); + color: var(--components-button-primary-text-disabled); + }` + }; - &:disabled { - background-color: var(--components-button-primary-background-disabled); - color: var(--components-button-primary-text-disabled); - } `; } case 'secondary': { return ` background-color: var(--components-button-secondary-background-default); color: var(--components-button-secondary-text-default); - - &:hover { - background-color: var(--components-button-secondary-background-hover); - } - - &:active { - background-color: var(--components-button-secondary-background-pressed); - } + ${ + !loading && + ` + &:hover { + background-color: var(--components-button-secondary-background-hover); + } + + &:active { + background-color: var(--components-button-secondary-background-pressed); + }` + }; &:focus-visible { background-color: var(--components-button-secondary-background-focus); border: var(--border-sm) solid var(--components-button-secondary-stroke-focus); outline: none; } - - &:disabled { - background-color: var(--components-button-secondary-background-disabled); - color: var(--components-button-secondary-text-disabled) - } + ${ + !loading && + `&:disabled { + background-color: var(--components-button-secondary-background-disabled); + color: var(--components-button-secondary-text-disabled); + };` + }; + `; } case 'tertiary': { return ` background-color: var(--components-button-tertiary-background-default); color: var(--components-button-tertiary-text-default); - - &:hover { - color: var(--components-button-tertiary-text-default); - background-color: var(--components-button-tertiary-background-hover); - } - - &:active { - background-color: var(--components-button-tertiary-background-pressed); - color: var(--components-button-secondary-text-default); - } + ${ + !loading && + ` + &:hover { + color: var(--components-button-tertiary-text-default); + background-color: var(--components-button-tertiary-background-hover); + } + + &:active { + background-color: var(--components-button-tertiary-background-pressed); + color: var(--components-button-secondary-text-default); + }` + }; &:focus-visible { border: var(--border-sm) solid var(--components-button-tertiary-stroke-focus); @@ -74,61 +91,73 @@ export const getButtonVariantStyles = (variant: ButtonVariant) => { color: var(--components-button-tertiary-text-default); outline: none; } - - &:disabled { - background-color: var(--components-button-tertiary-background-disabled); - color: var(--components-button-tertiary-text-disabled); - } + ${ + !loading && + `&:disabled { + background-color: var(--components-button-tertiary-background-disabled); + color: var(--components-button-tertiary-text-disabled); + }` + }; `; } case 'danger': { return ` background-color: var(--components-button-danger-background-default); color: var(--components-button-danger-text-default); - - &:hover { - background-color: var(--components-button-danger-background-hover); - } - - &:active { - background-color: var(--components-button-danger-background-pressed); - } + ${ + !loading && + ` + &:hover { + background-color: var(--components-button-danger-background-hover); + } + + &:active { + background-color: var(--components-button-danger-background-pressed); + }` + }; &:focus-visible { background-color: var(--components-button-danger-background-focus); border: var(--border-sm) solid var(--components-button-danger-stroke-focus); outline: none; } - - &:disabled { - background-color: var(--components-button-danger-background-disabled); - color: var(--components-button-danger-text-disabled); - } + ${ + !loading && + `&:disabled { + background-color: var(--components-button-danger-background-disabled); + color: var(--components-button-danger-text-disabled); + }` + }; `; } case 'dangerSecondary': { return ` background-color: var(--components-button-danger-secondary-background-default); color: var(--components-button-danger-secondary-text-default); - - &:hover { - background-color: var(--components-button-danger-secondary-background-hover); - } - - &:active { - background-color: var(--components-button-danger-secondary-background-pressed); - } + ${ + !loading && + ` + &:hover { + background-color: var(--components-button-danger-secondary-background-hover); + } + + &:active { + background-color: var(--components-button-danger-secondary-background-pressed); + }` + }; &:focus-visible { background-color: var(--components-button-danger-secondary-background-focus); border: var(--border-sm) solid var(--components-button-danger-secondary-stroke-focus); outline: none; } - - &:disabled { - background-color: var(--components-button-danger-secondary-background-disabled); - color:var(--components-button-danger-secondary-text-disabled); - } + ${ + !loading && + `&:disabled { + background-color: var(--components-button-danger-secondary-background-disabled); + color:var(--components-button-danger-secondary-text-disabled); + }` + }; `; } case 'outline': { @@ -137,27 +166,33 @@ export const getButtonVariantStyles = (variant: ButtonVariant) => { border: var(--border-sm) solid var(--components-button-outline-stroke-default); color: var(--components-button-outline-text-default); outline: none; - - &:hover { - border: var(--border-sm) solid var(--components-button-outline-stroke-hover); - background-color: var(--components-button-outline-background-hover); - } - - &:active { - border: var(--border-sm) solid var(--components-button-outline-stroke-pressed); - background-color: var(--components-button-outline-background-pressed); - } + ${ + !loading && + ` + &:hover { + border: var(--border-sm) solid var(--components-button-outline-stroke-hover); + background-color: var(--components-button-outline-background-hover); + } + + &:active { + border: var(--border-sm) solid var(--components-button-outline-stroke-pressed); + background-color: var(--components-button-outline-background-pressed); + }` + }; &:focus-visible { border: var(--border-sm) solid var(--components-button-outline-stroke-focus); background-color: var(--components-button-outline-background-focus); } - - &:disabled { - border: none; - background-color: var(--components-button-tertiary-background-disabled); - color: var(--components-button-outline-text-disabled); - } + + ${ + !loading && + `&:disabled { + border: none; + background-color: var(--components-button-tertiary-background-disabled); + color: var(--components-button-outline-text-disabled); + }` + }; `; } } @@ -202,6 +237,10 @@ export const getButtonSizeStyles = ({ width: 16px; height: 16px; } + [role='spinner'] { + width: 10.66px; + height: 10.66px; + } .icon-text > span { height: 16px; @@ -246,6 +285,10 @@ export const getButtonSizeStyles = ({ width: 24px; height: 24px; } + [role='spinner'] { + width: 16px; + height: 16px; + } .icon-text > span { height: 16px; @@ -291,6 +334,10 @@ export const getButtonSizeStyles = ({ width: 24px; height: 24px; } + [role='spinner'] { + width: 16px; + height: 16px; + } .icon-text > span { height: 24px; @@ -335,7 +382,10 @@ export const getButtonSizeStyles = ({ width: 32px; height: 32px; } - + [role='spinner'] { + width: 21.333px; + height: 21.333px; + } .icon-text > span { height: 24px; width: 24px; diff --git a/src/blocks/icons/components/Ellipse.tsx b/src/blocks/icons/components/Ellipse.tsx new file mode 100644 index 0000000000..9d96c0fa92 --- /dev/null +++ b/src/blocks/icons/components/Ellipse.tsx @@ -0,0 +1,27 @@ +import { FC } from 'react'; +import { IconWrapper } from '../IconWrapper'; +import { IconProps } from '../Icons.types'; + +const Ellipse: FC = (allProps) => { + const { svgProps: props, ...restProps } = allProps; + return ( + + + + } + {...restProps} + /> + ); +}; + +export default Ellipse; diff --git a/src/blocks/icons/index.ts b/src/blocks/icons/index.ts index 92a4875b36..e32de6ab91 100644 --- a/src/blocks/icons/index.ts +++ b/src/blocks/icons/index.ts @@ -41,6 +41,8 @@ export { default as Dashboard } from './components/Dashboard'; export { default as EditProfile } from './components/EditProfile'; +export { default as Ellipse } from './components/Ellipse'; + export { default as Envelope } from './components/Envelope'; export { default as ErrorFilled } from './components/ErrorFilled'; diff --git a/src/blocks/spinner/Spinner.tsx b/src/blocks/spinner/Spinner.tsx index a3eb71cc7b..9d93ec370d 100644 --- a/src/blocks/spinner/Spinner.tsx +++ b/src/blocks/spinner/Spinner.tsx @@ -1,7 +1,8 @@ import React from 'react'; import styled, { FlattenSimpleInterpolation, keyframes } from 'styled-components'; import { SpinnerSize, SpinnerVariant } from './Spinner.types'; -import { getSpinnerSize, getSpinnerStrokeWidth } from './Spinner.utils'; +import { getSpinnerSize } from './Spinner.utils'; +import { Ellipse } from '../icons'; export type SpinnerProps = { /* Additional prop from styled components to apply custom css to Spinner */ @@ -13,54 +14,40 @@ export type SpinnerProps = { }; const spin = keyframes` - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } + from { + transform:rotate(0deg); + } + to { + transform:rotate(360deg); + } `; -const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSize; variant: SpinnerVariant }>` - position: relative; - animation: ${spin} 1s linear infinite; - border-radius: 50%; - ${({ size, variant }) => ` - border-width: var(--${getSpinnerStrokeWidth(size)}) ; - border-style: solid; - border-color: var(--components-spinner-icon-${variant}) - transparent transparent transparent; - width: ${getSpinnerSize(size)}; - height: ${getSpinnerSize(size)}; - :before,:after { - content: ''; - width: var(--${getSpinnerStrokeWidth(size)}); - height: var(--${getSpinnerStrokeWidth(size)}); - border-radius: 50%; - background: var(--components-spinner-icon-${variant}); - position: absolute; - } - :before { - top: 8.65%; - left: 10%; - } - :after { - top: 8.65%; - right: 10%; - } - `} +const Container = styled.div<{ css?: FlattenSimpleInterpolation; size: SpinnerSize }>` + display: flex; + align-items: center; + justify-content: center; + animation-name: ${spin}; + animation-duration: 1s; + animation-iteration-count: infinite; + animation-timing-function: linear; + ${({ size }) => ` + width: ${getSpinnerSize(size)}px; + height: ${getSpinnerSize(size)}px; + `} /* Custom CSS applied via styled component css prop */ ${(props) => props.css || ''}; `; -const Spinner: React.FC = ({ size = 'small', css, variant = 'default' }) => { +const Spinner: React.FC = ({ size = 'small', css }) => { return ( + role="spinner" + > + + ); }; diff --git a/src/blocks/spinner/Spinner.utils.ts b/src/blocks/spinner/Spinner.utils.ts index a66c69c5e5..ebac408ae2 100644 --- a/src/blocks/spinner/Spinner.utils.ts +++ b/src/blocks/spinner/Spinner.utils.ts @@ -3,13 +3,13 @@ import { SpinnerSize, SpinnerVariant } from './Spinner.types'; export const getSpinnerSize = (size: SpinnerSize) => { switch (size) { case 'small': - return '16px'; + return 16; case 'medium': - return '24px'; + return 24; case 'large': - return '32px'; + return 32; default: - return '48px'; + return 48; } }; export const getSpinnerStrokeWidth = (size: SpinnerSize) => { diff --git a/src/blocks/theme/semantics/semantics.button.ts b/src/blocks/theme/semantics/semantics.button.ts index fd625cc34f..3ac4dda4e7 100644 --- a/src/blocks/theme/semantics/semantics.button.ts +++ b/src/blocks/theme/semantics/semantics.button.ts @@ -10,6 +10,7 @@ export const primaryButtonSemantics = { 'background-hover': { light: colorBrands['primary-400'], dark: colorBrands['primary-400'] }, 'background-pressed': { light: colorBrands['primary-800'], dark: colorBrands['primary-600'] }, 'background-focus': { light: colorBrands['primary-500'], dark: colorBrands['primary-400'] }, + 'background-loading': { light: colorBrands['primary-400'], dark: colorBrands['primary-400'] }, 'background-disabled': { light: surfaceSemantics['state-disabled'].light, dark: surfaceSemantics['state-disabled'].dark, @@ -29,6 +30,7 @@ export const secondaryButtonSemantics = { 'background-hover': { light: colorBrands['neutral-200'], dark: colorBrands['neutral-700'] }, 'background-pressed': { light: colorBrands['neutral-300'], dark: colorBrands['neutral-1000'] }, 'background-focus': { light: colorBrands['neutral-100'], dark: colorBrands['neutral-800'] }, + 'background-loading': { light: colorBrands['neutral-100'], dark: colorBrands['neutral-800'] }, 'background-disabled': { light: surfaceSemantics['state-disabled'].light, dark: surfaceSemantics['state-disabled'].dark, @@ -49,6 +51,7 @@ export const tertiaryButtonSemantics = { 'background-hover': { light: colorBrands['neutral-900'], dark: colorBrands['neutral-300'] }, 'background-pressed': { light: colorBrands['neutral-100'], dark: colorPrimitives['gray-1000'] }, 'background-focus': { light: colorBrands['neutral-1000'], dark: colorBrands['neutral-700'] }, + 'background-loading': { light: colorBrands['neutral-900'], dark: colorBrands['neutral-700'] }, 'background-disabled': { light: surfaceSemantics['state-disabled'].light, dark: surfaceSemantics['state-disabled'].dark, @@ -81,6 +84,7 @@ export const outlineButtonSemantics = { 'stroke-default': { light: strokeSemantics['tertiary'].light, dark: strokeSemantics['tertiary'].dark }, 'stroke-focus': { light: colorBrands['primary-300'], dark: colorBrands['primary-400'] }, + 'stroke-loading': { light: colorBrands['neutral-200'], dark: colorBrands['primary-400'] }, 'stroke-hover': { light: strokeSemantics['brand-subtle'].light, dark: strokeSemantics['secondary'].dark }, 'stroke-pressed': { light: colorBrands['neutral-600'], dark: colorBrands['neutral-300'] }, }; @@ -90,6 +94,7 @@ export const dangerButtonSemantics = { 'background-hover': { light: colorBrands['danger-500'], dark: colorBrands['danger-400'] }, 'background-pressed': { light: colorBrands['danger-800'], dark: colorBrands['danger-700'] }, 'background-focus': { light: colorBrands['danger-500'], dark: colorBrands['danger-400'] }, + 'background-loading': { light: colorBrands['danger-500'], dark: colorBrands['danger-400'] }, 'background-disabled': { light: surfaceSemantics['state-disabled'].light, dark: surfaceSemantics['state-disabled'].dark, @@ -109,6 +114,7 @@ export const dangerSecondaryButtonSemantics = { 'background-hover': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, 'background-pressed': { light: colorBrands['danger-500'], dark: colorBrands['danger-1000'] }, 'background-focus': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, + 'background-loading': { light: colorBrands['danger-100'], dark: colorBrands['danger-700'] }, 'background-disabled': { light: surfaceSemantics['state-disabled'].light, dark: surfaceSemantics['state-disabled'].dark, From a1d331b77e3da5200343858aede7c1717ae25387 Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Thu, 1 Aug 2024 22:06:21 +0530 Subject: [PATCH 30/31] Add progress bar to ds (#1787) * feat: add progress bar to ds * chore: update progress bar according to review --- src/blocks/index.ts | 1 + src/blocks/progressBar/ProgressBar.tsx | 41 +++++++++++++++++++ src/blocks/progressBar/ProgressBar.types.ts | 11 +++++ src/blocks/progressBar/ProgressBar.utils.ts | 4 ++ src/blocks/progressBar/index.ts | 3 ++ src/blocks/theme/colors/colors.semantics.ts | 4 ++ .../theme/semantics/semantics.progress-bar.ts | 6 +++ 7 files changed, 70 insertions(+) create mode 100644 src/blocks/progressBar/ProgressBar.tsx create mode 100644 src/blocks/progressBar/ProgressBar.types.ts create mode 100644 src/blocks/progressBar/ProgressBar.utils.ts create mode 100644 src/blocks/progressBar/index.ts create mode 100644 src/blocks/theme/semantics/semantics.progress-bar.ts diff --git a/src/blocks/index.ts b/src/blocks/index.ts index e34c56e6ed..2c3677f35f 100644 --- a/src/blocks/index.ts +++ b/src/blocks/index.ts @@ -7,6 +7,7 @@ export { Link, type LinkProps } from './link'; export { Lozenge, type LozengeProps } from './lozenge'; export { Menu, type MenuProps, MenuItem, type MenuItemComponentProps } from './menu'; export { Modal, type ModalProps, modal } from './modal'; +export { ProgressBar, type ProgressBarProps } from './progressBar'; export { Separator, type SeparatorProps } from './separator'; export { Skeleton, type SkeletonProps } from './skeleton'; export { Tabs, type TabsProps, type TabItem } from './tabs'; diff --git a/src/blocks/progressBar/ProgressBar.tsx b/src/blocks/progressBar/ProgressBar.tsx new file mode 100644 index 0000000000..e83c8c9630 --- /dev/null +++ b/src/blocks/progressBar/ProgressBar.tsx @@ -0,0 +1,41 @@ +import type { FC } from 'react'; +import styled, { FlattenSimpleInterpolation } from 'styled-components'; + +import type { ProgressBarProps } from './ProgressBar.types'; +import { getProgressWidthPercentage } from './ProgressBar.utils'; + +const StyledProgressBarContainer = styled.div<{ css?: FlattenSimpleInterpolation }>` + /* Default CSS */ + background-color: var(--components-progress-bar-background-default); + width: 100%; + height: 4px; + border-radius: var(--radius-xxs, 8px); + + /* Extra CSS prop */ + ${({ css }) => css || ''} +`; + +const StyledProgressBar = styled.div<{ width: string }>` + /* Default CSS */ + border-radius: var(--radius-xxs, 8px); + background-color: var(--components-progress-bar-background-progress); + height: 100%; + width: ${({ width }) => width}; + transition: width 0.3s ease; +`; + +const ProgressBar: FC = ({ progress, max = 100, ...rest }) => ( + + + +); + +ProgressBar.displayName = 'ProgressBar'; + +export { ProgressBar }; diff --git a/src/blocks/progressBar/ProgressBar.types.ts b/src/blocks/progressBar/ProgressBar.types.ts new file mode 100644 index 0000000000..5e6a3a805c --- /dev/null +++ b/src/blocks/progressBar/ProgressBar.types.ts @@ -0,0 +1,11 @@ +import { TransformedHTMLAttributes } from 'blocks/Blocks.types'; +import { FlattenSimpleInterpolation } from 'styled-components'; + +export type ProgressBarProps = { + /* Additional prop from styled components to apply custom css to ProgressBar */ + css?: FlattenSimpleInterpolation; + /* Progress value */ + progress: number; + /* Max value */ + max?: number; +} & TransformedHTMLAttributes; diff --git a/src/blocks/progressBar/ProgressBar.utils.ts b/src/blocks/progressBar/ProgressBar.utils.ts new file mode 100644 index 0000000000..cfa68752e3 --- /dev/null +++ b/src/blocks/progressBar/ProgressBar.utils.ts @@ -0,0 +1,4 @@ +export const getProgressWidthPercentage = (progress: number, total = 100) => { + const percentage = (progress / total) * 100; + return Math.min(Math.max(percentage, 0), 100); +}; diff --git a/src/blocks/progressBar/index.ts b/src/blocks/progressBar/index.ts new file mode 100644 index 0000000000..8b5ee6303b --- /dev/null +++ b/src/blocks/progressBar/index.ts @@ -0,0 +1,3 @@ +export * from './ProgressBar'; +export * from './ProgressBar.utils'; +export * from './ProgressBar.types'; diff --git a/src/blocks/theme/colors/colors.semantics.ts b/src/blocks/theme/colors/colors.semantics.ts index b67d850357..e3b36b8e36 100644 --- a/src/blocks/theme/colors/colors.semantics.ts +++ b/src/blocks/theme/colors/colors.semantics.ts @@ -12,6 +12,7 @@ import { dropdownSemantics } from '../semantics/semantics.dropdown'; import { iconSemantics } from '../semantics/semantics.icon'; import { inputSemantics } from '../semantics/semantics.input'; import { modalSemantics } from '../semantics/semantics.modal'; +import { progressBarSemantics } from '../semantics/semantics.progress-bar'; import { radioSemantics } from '../semantics/semantics.radio'; import { skeletonSemantics } from '../semantics/semantics.skeleton'; import { strokeSemantics } from '../semantics/semantics.stroke'; @@ -37,6 +38,7 @@ type SemanticKeys = { icon: 'icon'; input: 'components-inputs'; modal: 'components-modal'; + progressBar: 'components-progress-bar'; radio: 'components-radio-button'; surface: 'surface'; stroke: 'stroke'; @@ -62,6 +64,7 @@ export const semanticKeys: SemanticKeys = { icon: 'icon', input: 'components-inputs', modal: 'components-modal', + progressBar: 'components-progress-bar', radio: 'components-radio-button', surface: 'surface', stroke: 'stroke', @@ -87,6 +90,7 @@ export const colorSemantics = { [semanticKeys.icon]: iconSemantics, [semanticKeys.input]: inputSemantics, [semanticKeys.modal]: modalSemantics, + [semanticKeys.progressBar]: progressBarSemantics, [semanticKeys.radio]: radioSemantics, [semanticKeys.surface]: surfaceSemantics, [semanticKeys.stroke]: strokeSemantics, diff --git a/src/blocks/theme/semantics/semantics.progress-bar.ts b/src/blocks/theme/semantics/semantics.progress-bar.ts new file mode 100644 index 0000000000..a8cf42733d --- /dev/null +++ b/src/blocks/theme/semantics/semantics.progress-bar.ts @@ -0,0 +1,6 @@ +import { surfaceSemantics } from './semantics.surface'; + +export const progressBarSemantics = { + 'background-default': { light: surfaceSemantics['secondary'].light, dark: surfaceSemantics['secondary'].dark }, + 'background-progress': { light: surfaceSemantics['brand-medium'].light, dark: surfaceSemantics['brand-medium'].dark }, +}; From 7a1049ba7a22d16c329d1e416ea47a0d913df9fe Mon Sep 17 00:00:00 2001 From: Kalash Shah <81062983+kalashshah@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:21:01 +0530 Subject: [PATCH 31/31] fix: yield farming layouts and resize buttons to take full width (#1793) --- src/components/yield/YieldPushFeeV3.tsx | 5 +++++ src/components/yield/YieldUniswapV3.tsx | 6 ++++++ src/pages/YieldFarmingPageV2.tsx | 23 +++-------------------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/components/yield/YieldPushFeeV3.tsx b/src/components/yield/YieldPushFeeV3.tsx index 1d1aa61f7c..d6fdb01b90 100644 --- a/src/components/yield/YieldPushFeeV3.tsx +++ b/src/components/yield/YieldPushFeeV3.tsx @@ -702,6 +702,7 @@ const YieldPushFeeV3 = ({ userDataPush, getUserDataPush, PUSHPoolstats, getPUSHP