From 4881be7bfb089839a6a2bbdacbf1a19188802c84 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Thu, 17 Feb 2022 11:15:14 +0530 Subject: [PATCH 001/172] fix: api update for Radio --- src/components/primitives/Box/index.tsx | 12 +-- src/components/primitives/Radio/Radio.tsx | 29 ++++--- src/components/primitives/Radio/Radio.web.tsx | 78 ++++++------------- .../primitives/Radio/RadioGroup.tsx | 22 +++--- src/components/primitives/Radio/types.tsx | 9 ++- src/theme/components/radio.ts | 52 +++++++++---- src/utils/wrapStringChild.tsx | 16 ++++ 7 files changed, 112 insertions(+), 106 deletions(-) create mode 100644 src/utils/wrapStringChild.tsx diff --git a/src/components/primitives/Box/index.tsx b/src/components/primitives/Box/index.tsx index c9e4892d6..12f6b5302 100644 --- a/src/components/primitives/Box/index.tsx +++ b/src/components/primitives/Box/index.tsx @@ -1,8 +1,8 @@ import React, { memo, forwardRef } from 'react'; import { View } from 'react-native'; import { usePropsResolution } from '../../../hooks/useThemeProps'; -import Text from './../Text'; import { makeStyledComponent } from '../../../utils/styled'; +import { wrapStringChild } from '../../../utils/wrapStringChild'; import type { IBoxProps } from './types'; import { useSafeArea } from '../../../hooks/useSafeArea'; import { useNativeBaseConfig } from '../../../core/NativeBaseContext'; @@ -78,20 +78,21 @@ const Box = ({ children, ...props }: IBoxProps, ref: any) => { end={endObj} locations={lgrad.locations} > - {React.Children.map(children, (child) => + {/* {React.Children.map(children, (child) => typeof child === 'string' || typeof child === 'number' ? ( {child} ) : ( child ) - )} + )} */} + {wrapStringChild(children, _text)} ); } } return ( - {React.Children.map(children, (child) => { + {/* {React.Children.map(children, (child) => { return typeof child === 'string' || typeof child === 'number' || (child?.type === React.Fragment && @@ -101,7 +102,8 @@ const Box = ({ children, ...props }: IBoxProps, ref: any) => { ) : ( child ); - })} + })} */} + {wrapStringChild(children, _text)} ); }; diff --git a/src/components/primitives/Radio/Radio.tsx b/src/components/primitives/Radio/Radio.tsx index 73105d203..fb68d21b9 100644 --- a/src/components/primitives/Radio/Radio.tsx +++ b/src/components/primitives/Radio/Radio.tsx @@ -2,7 +2,9 @@ import React, { memo, forwardRef } from 'react'; import { Pressable, IPressableProps } from '../Pressable'; import { Center } from '../../composites/Center'; import Box from '../Box'; +import { HStack } from '../Stack'; import { usePropsResolution } from '../../../hooks/useThemeProps'; +import { wrapStringChild } from '../../../utils/wrapStringChild'; import type { IRadioProps } from './types'; import { useRadio } from '@react-native-aria/radio'; import { RadioContext } from './RadioGroup'; @@ -54,6 +56,8 @@ const RadioComponent = memo( onBlur, _interactionBox, _icon, + _stack, + _text, ...resolvedProps } = usePropsResolution( 'Radio', @@ -73,11 +77,14 @@ const RadioComponent = memo( } ); - const [layoutProps, nonLayoutProps] = extractInObject(resolvedProps, [ + const [, cleanInputProps] = extractInObject(inputProps, [ ...stylingProps.margin, ...stylingProps.layout, ...stylingProps.flexbox, ...stylingProps.position, + ...stylingProps.background, + ...stylingProps.padding, + ...stylingProps.border, '_text', ]); @@ -91,7 +98,7 @@ const RadioComponent = memo( return ( -
+
{/* Interaction Wrapper */} - + {/* radio */} -
+
{icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( @@ -134,8 +135,8 @@ const RadioComponent = memo(
{/* Label */} - {children} -
+ {wrapStringChild(children, _text)} +
); } @@ -168,8 +169,6 @@ const Radio = ( inputRef ); - // console.log('radio', radioState); - // eslint-disable-next-line react-hooks/exhaustive-deps const inputProps = React.useMemo(() => radioState.inputProps, [ radioState.inputProps.checked, diff --git a/src/components/primitives/Radio/Radio.web.tsx b/src/components/primitives/Radio/Radio.web.tsx index 3003822a4..2f5c47e67 100644 --- a/src/components/primitives/Radio/Radio.web.tsx +++ b/src/components/primitives/Radio/Radio.web.tsx @@ -1,7 +1,9 @@ import React, { memo, forwardRef } from 'react'; import Box from '../Box'; +import { HStack } from '../Stack'; import { Center } from '../../composites/Center'; import { usePropsResolution } from '../../../hooks/useThemeProps'; +import { wrapStringChild } from '../../../utils/wrapStringChild'; import type { IRadioProps } from './types'; import { mergeRefs } from './../../../utils'; import { useHover } from '@react-native-aria/interactions'; @@ -12,7 +14,6 @@ import { useFocusRing } from '@react-native-aria/focus'; import { CircleIcon } from '../Icon/Icons'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { combineContextAndProps, isEmptyObj } from '../../../utils'; -import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { useFormControlContext } from '../../composites/FormControl'; const RadioComponent = memo( @@ -36,29 +37,22 @@ const RadioComponent = memo( const { isHovered } = useHover({}, _ref); const mergedRefs = mergeRefs([_ref, wrapperRef]); const { focusProps, isFocusVisible } = useFocusRing(); - // const mergedWrapperRef = React.useMemo(() => mergeRefs([wrapperRef, _ref]), []); - const { _interactionBox, _icon, ...resolvedProps } = usePropsResolution( - 'Radio', - combinedProps, - { - isInvalid, - isReadOnly, - isFocusVisible: isFocusVisibleProp || isFocusVisible, - isDisabled, - isIndeterminate, - isChecked, - isHovered: isHoveredProp || isHovered, - } - ); - - const [layoutProps, nonLayoutProps] = extractInObject(resolvedProps, [ - ...stylingProps.margin, - ...stylingProps.layout, - ...stylingProps.flexbox, - ...stylingProps.position, - '_text', - ]); + const { + _interactionBox, + _icon, + _stack, + _text, + ...resolvedProps + } = usePropsResolution('Radio', combinedProps, { + isInvalid, + isReadOnly, + isFocusVisible: isFocusVisibleProp || isFocusVisible, + isDisabled, + isIndeterminate, + isChecked, + isHovered: isHoveredProp || isHovered, + }); // only calling below function when icon exist. const sizedIcon = () => @@ -68,41 +62,21 @@ const RadioComponent = memo( }); const component = ( - +
{/* Interaction Box */} {/* Radio */} -
+
{icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( @@ -110,17 +84,14 @@ const RadioComponent = memo( )}
- {children} -
+ {wrapStringChild(children, _text)} + ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - // console.log(inputProps, focusProps, ref); - // return null; - return ( radioState.inputProps, [ diff --git a/src/components/primitives/Radio/RadioGroup.tsx b/src/components/primitives/Radio/RadioGroup.tsx index e02253291..506d90988 100644 --- a/src/components/primitives/Radio/RadioGroup.tsx +++ b/src/components/primitives/Radio/RadioGroup.tsx @@ -1,5 +1,5 @@ import React, { memo, forwardRef } from 'react'; -import Box from '../Box'; +import { Stack } from '../Stack'; import { useFormControlContext } from '../../composites/FormControl'; import type { IRadioContext, IRadioGroupProps } from './types'; import { useRadioGroupState } from '@react-stately/radio'; @@ -9,17 +9,14 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; export const RadioContext = React.createContext( {} as IRadioContext ); -const RadioWrapper = React.memo((props: any) => { - // console.log('hello here group'); +const RadioWrapper = memo((props: any) => { return ( - - {props.children} - + ); }); const RadioGroup = ( - { size, colorScheme, _radio, ...props }: IRadioGroupProps, + { size, colorScheme, _radio, children, ...props }: IRadioGroupProps, ref: any ) => { const formControlContext = useFormControlContext(); @@ -52,13 +49,12 @@ const RadioGroup = ( return null; } - // return null; return ( - - - - - + + + {children} + + ); }; diff --git a/src/components/primitives/Radio/types.tsx b/src/components/primitives/Radio/types.tsx index 43e235cd4..f74831ee4 100644 --- a/src/components/primitives/Radio/types.tsx +++ b/src/components/primitives/Radio/types.tsx @@ -1,4 +1,5 @@ -import type { IBoxProps } from '../../primitives'; +import type { IStackProps } from '../../primitives/Stack'; +import type { IBoxProps } from '../../primitives/Box/types'; import type { IFormControlContext } from '../../composites'; import type { AccessibilityRole } from 'react-native'; import type { RadioGroupState } from '@react-stately/radio'; @@ -57,8 +58,12 @@ export interface IRadioProps extends IBoxProps { * Ref to be passed to Icon's wrapper Box */ wrapperRef?: any; + /** + * Props to be passed to the HStack used inside. + */ + _stack?: IStackProps; } -export interface IRadioGroupProps extends IBoxProps { +export interface IRadioGroupProps extends IStackProps { /** * The value of the radio group. */ diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index 9cb20022f..174e63d83 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -1,43 +1,45 @@ -import { mode, transparentize } from '../tools'; +import { mode } from '../tools'; const baseStyle = (props: Record) => { - const { colorScheme, theme } = props; + const { colorScheme } = props; return { borderWidth: 2, borderRadius: 'full', - p: '2px', + p: 0.5, borderColor: mode('muted.300', 'muted.600')(props), bg: mode('muted.50', 'muted.700')(props), // matching background color - _text: { - ml: 2, + + _stack: { + flexDirection: 'row', + alignItems: 'center', + space: 2, }, _interactionBox: { - position: 'absolute', - zIndex: -1, borderRadius: 'full', + size: 3, }, _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color }, _hover: { _interactionBox: { - bg: transparentize('muted.200', 0.3)(theme), + bg: 'muted.200:alpha.30', + size: 8, }, }, _focus: { _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + bg: `${colorScheme}.200:alpha.50`, + size: 8, }, }, _focusVisible: { _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + bg: `${colorScheme}.200:alpha.50`, + size: 8, }, }, _checked: { - _interactionBox: { - borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), - }, borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), }, _disabled: { @@ -48,22 +50,38 @@ const baseStyle = (props: Record) => { _icon: { bg: 'transparent', }, + _stack: { + opacity: '0.4', + }, }, _invalid: { borderColor: mode('error.600', 'error.400')(props), }, _pressed: { _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + bg: `${colorScheme}.200:alpha.50`, + size: 10, }, }, }; }; const sizes = { - lg: { _icon: { size: 4 }, _text: { fontSize: 'lg' } }, - md: { _icon: { size: 3 }, _text: { fontSize: 'md' } }, - sm: { _icon: { size: 2 }, _text: { fontSize: 'sm' } }, + lg: { + _icon: { size: 4 }, + // _interactionBox: { size: 5 }, + _text: { fontSize: 'lg' }, + }, + md: { + _icon: { size: 3 }, + // _interactionBox: { size: 16 }, + _text: { fontSize: 'md' }, + }, + sm: { + _icon: { size: 2 }, + // _interactionBox: { size: 3 }, + _text: { fontSize: 'sm' }, + }, }; const defaultProps = { diff --git a/src/utils/wrapStringChild.tsx b/src/utils/wrapStringChild.tsx new file mode 100644 index 000000000..dd8e1f145 --- /dev/null +++ b/src/utils/wrapStringChild.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import Text from '../components/primitives/Text'; + +export const wrapStringChild = (children: any, textProps: any) => { + return React.Children.map(children, (child) => { + return typeof child === 'string' || + typeof child === 'number' || + (child?.type === React.Fragment && + (typeof child.props?.children === 'string' || + typeof child.props?.children === 'number')) ? ( + {child} + ) : ( + child + ); + }); +}; From de2cd18a07476c3bb6c8a6af7c775e733704bf36 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Fri, 25 Feb 2022 14:31:37 +0530 Subject: [PATCH 002/172] feat: added a lower specificity area for props --- src/hooks/useThemeProps/propsFlattener.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/hooks/useThemeProps/propsFlattener.tsx b/src/hooks/useThemeProps/propsFlattener.tsx index 9a36476a3..161363fd1 100644 --- a/src/hooks/useThemeProps/propsFlattener.tsx +++ b/src/hooks/useThemeProps/propsFlattener.tsx @@ -8,8 +8,9 @@ const SPECIFICITY_55 = 55; const SPECIFICITY_50 = 50; const SPECIFICITY_40 = 40; const SPECIFICITY_30 = 30; +// SPECIFICITY_20 is being user for defferentiating between User Props and Theme Props. So any specificity less than SPECIFICITY_20 will be ovridable by user props. +const SPECIFICITY_20 = 20; const SPECIFICITY_10 = 10; -const SPECIFICITY_1 = 1; const specificityPrecedence = [ SPECIFICITY_110, SPECIFICITY_100, @@ -19,8 +20,8 @@ const specificityPrecedence = [ SPECIFICITY_50, SPECIFICITY_40, SPECIFICITY_30, + SPECIFICITY_20, SPECIFICITY_10, - SPECIFICITY_1, ]; const INITIAL_PROP_SPECIFICITY = { [SPECIFICITY_110]: 0, @@ -31,8 +32,8 @@ const INITIAL_PROP_SPECIFICITY = { [SPECIFICITY_55]: 0, [SPECIFICITY_40]: 0, [SPECIFICITY_30]: 0, + [SPECIFICITY_20]: 0, [SPECIFICITY_10]: 0, - [SPECIFICITY_1]: 0, }; const pseudoPropsMap = { @@ -208,7 +209,7 @@ const simplifyProps = ( ? { ...currentSpecificity } : { ...INITIAL_PROP_SPECIFICITY, - [SPECIFICITY_1]: priority, + [SPECIFICITY_20]: priority, }; if ( @@ -319,13 +320,6 @@ export const propsFlattener = ( const specificityMap = currentSpecificityMap || {}; - // STEP 1.a (if): Check weather it should be recursively resolved - // NOTE: (when true) recursively resolved it - // STEP 1.b (else if): Check specificty - // STEP 1.b.i: Check for pseudo props - // NOTE: (when true) Merge it. - // NOTE: (when false) Replace it. - simplifyProps( { props, From 100aaf166bdd748a50dbb62430fd81f87b3b4836 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Fri, 25 Feb 2022 18:07:57 +0530 Subject: [PATCH 003/172] feat: _important pseudo prop --- src/hooks/useThemeProps/propsFlattener.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/hooks/useThemeProps/propsFlattener.tsx b/src/hooks/useThemeProps/propsFlattener.tsx index 161363fd1..e5b5d509e 100644 --- a/src/hooks/useThemeProps/propsFlattener.tsx +++ b/src/hooks/useThemeProps/propsFlattener.tsx @@ -1,5 +1,6 @@ import merge from 'lodash.merge'; +const SPECIFICITY_1000 = 1000; const SPECIFICITY_110 = 110; const SPECIFICITY_100 = 100; const SPECIFICITY_70 = 70; @@ -12,6 +13,7 @@ const SPECIFICITY_30 = 30; const SPECIFICITY_20 = 20; const SPECIFICITY_10 = 10; const specificityPrecedence = [ + SPECIFICITY_1000, SPECIFICITY_110, SPECIFICITY_100, SPECIFICITY_70, @@ -24,6 +26,7 @@ const specificityPrecedence = [ SPECIFICITY_10, ]; const INITIAL_PROP_SPECIFICITY = { + [SPECIFICITY_1000]: 0, [SPECIFICITY_110]: 0, [SPECIFICITY_100]: 0, [SPECIFICITY_70]: 0, @@ -97,6 +100,10 @@ const pseudoPropsMap = { respondTo: 'isLoading', priority: SPECIFICITY_110, }, + _important: { + dependentOn: null, + priority: SPECIFICITY_1000, + }, } as const; type IPseudoPropsMap = typeof pseudoPropsMap; @@ -151,6 +158,8 @@ const shouldResolvePseudoProp = ({ } else if (pseudoPropsMap[property].dependentOn === 'state') { // @ts-ignore return state[pseudoPropsMap[property].respondTo]; + } else if (pseudoPropsMap[property].dependentOn === null) { + return true; } else { return false; } @@ -215,11 +224,13 @@ const simplifyProps = ( if ( // @ts-ignore state[pseudoPropsMap[property]?.respondTo] || - ['_dark', '_light', '_web', '_ios', '_android'].includes(property) + ['_dark', '_light', '_web', '_ios', '_android', '_important'].includes( + property + ) ) { // @ts-ignore if (shouldResolvePseudoProp({ property, state, platform, colormode })) { - // NOTE: Handling (state driven) props like _web, _ios, _android, _dark, _light, _disabled, _focus, _focusVisible, _hover, _pressed, _readOnly, _invalid, .... Only when they are true. + // NOTE: Handling (state driven) props like _important, _web, _ios, _android, _dark, _light, _disabled, _focus, _focusVisible, _hover, _pressed, _readOnly, _invalid, .... Only when they are true. if (process.env.NODE_ENV === 'development' && props.debug) { /* eslint-disable-next-line */ console.log( @@ -281,9 +292,6 @@ const simplifyProps = ( console.log(`%c ${property}`, 'color: #818cf8;', 'deleted'); } } else { - // specificityMap[property] = propertySpecity; - // flattenProps[property] = props[property]; - if (process.env.NODE_ENV === 'development' && props.debug) { /* eslint-disable-next-line */ console.log(`%c ${property}`, 'color: #818cf8;', 'cascaded'); From 279a66f10cfdfb856c63326f01e9aba2a17fbf46 Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 8 Mar 2022 13:08:22 +0530 Subject: [PATCH 004/172] added test cases for pseudo props --- .../useThemeProps/usePropsResolution.test.tsx | 113 ++++++++++++++++-- 1 file changed, 106 insertions(+), 7 deletions(-) diff --git a/src/hooks/useThemeProps/usePropsResolution.test.tsx b/src/hooks/useThemeProps/usePropsResolution.test.tsx index 756969dc4..d5d7fba20 100644 --- a/src/hooks/useThemeProps/usePropsResolution.test.tsx +++ b/src/hooks/useThemeProps/usePropsResolution.test.tsx @@ -522,13 +522,17 @@ describe('props resolution', () => { ); const inputElement = getByTestId('test'); - expect(inputElement.props.style.width).toBe('100%'); + expect(inputElement.props.style[0].width).toBe('100%'); expect(inputElement.props.placeholderTextColor).toBe( defaultTheme.colors.blueGray['400'] ); - expect(inputElement.props.style.marginLeft).toBe(defaultTheme.space['3']); - expect(inputElement.props.style.marginRight).toBe(defaultTheme.space['3']); + expect(inputElement.props.style[0].marginLeft).toBe( + defaultTheme.space['3'] + ); + expect(inputElement.props.style[0].marginRight).toBe( + defaultTheme.space['3'] + ); }); it('Input: color mode', () => { @@ -571,7 +575,9 @@ describe('props resolution', () => { ); const inputElement = getByTestId('test'); - expect(inputElement.props.style.fontSize).toBe(defaultTheme.fontSizes.sm); + expect(inputElement.props.style[0].fontSize).toBe( + defaultTheme.fontSizes.sm + ); }); it('Input: variant', () => { @@ -581,7 +587,7 @@ describe('props resolution', () => { ); const inputElement = getByTestId('test'); - expect(inputElement.props.style.borderBottomWidth).toBe(1); + expect(inputElement.props.style[0].borderBottomWidth).toBe(1); }); // it('Input: inputElements', () => { @@ -617,9 +623,11 @@ describe('props resolution', () => { ); const inputElement = getByTestId('test'); - expect(inputElement.props.style.borderBottomWidth).toBe(1); + expect(inputElement.props.style[0].borderBottomWidth).toBe(1); // as input of 'sm' size is mapped to 'xs' fontsize - expect(inputElement.props.style.fontSize).toBe(defaultTheme.fontSizes.xs); + expect(inputElement.props.style[0].fontSize).toBe( + defaultTheme.fontSizes.xs + ); }); // it('Input: inputElemets', () => { @@ -1158,6 +1166,97 @@ describe('props resolution', () => { expect(heading.props.style.lineHeight).toBe(37.5); expect(heading.props.style.letterSpacing).toBe(0.375); }); + + it('Pseudo props test: importatnt on Button', () => { + const newTheme = extendTheme({ + config: { initialColorMode: 'dark' }, + components: { + Button: { + baseStyle: { + _important: { + bg: 'green.400', + }, + }, + }, + }, + }); + const { getByTestId } = render( + + + + ); + const button = getByTestId('test'); + expect(button.props.style.backgroundColor).toBe( + defaultTheme.colors.green['400'] + ); + }); + + it('Pseudo props test: normal prop on light and dark', () => { + const newTheme = extendTheme({ + config: { initialColorMode: 'dark' }, + components: { + Button: { + baseStyle: { + _light: { + bg: 'green.700', + }, + _dark: { + bg: 'green.100', + }, + }, + }, + }, + }); + const { getByTestId } = render( + + + + ); + const button = getByTestId('test'); + expect(button.props.style.backgroundColor).toBe( + defaultTheme.colors.amber['500'] + ); + }); + + it('Pseudo props test: _important overrided', () => { + const newTheme = extendTheme({ + config: { initialColorMode: 'dark' }, + components: { + Button: { + baseStyle: { + _important: { + bg: 'green.400', + }, + }, + variants: { + solid: { + _important: { + bg: 'emerald.800', + _text: { + color: 'white', + }, + }, + }, + }, + }, + }, + }); + const { getByTestId } = render( + + + + ); + const button = getByTestId('test'); + expect(button.props.style.backgroundColor).toBe( + defaultTheme.colors.emerald['800'] + ); + }); }); // ========================================================= From c7e041d4cc99b210b5972b6a2f9eee1e2ef0da64 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 8 Mar 2022 19:22:13 +0530 Subject: [PATCH 005/172] feat: action sheet header theme --- src/theme/components/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/theme/components/index.ts b/src/theme/components/index.ts index 817f7c0e6..6ba7e154c 100644 --- a/src/theme/components/index.ts +++ b/src/theme/components/index.ts @@ -8,7 +8,7 @@ import { import { Actionsheet, ActionsheetContent, - // ActionsheetHeader, + ActionsheetHeader, // ActionsheetFooter, ActionsheetItem, } from './actionsheet'; @@ -112,7 +112,7 @@ export default { AccordionDetails, Actionsheet, ActionsheetContent, - // ActionsheetHeader, + ActionsheetHeader, // ActionsheetFooter, ActionsheetItem, Alert, From c24c52f7813fdd855e8dd1600adbc8aab27526db Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 8 Mar 2022 19:22:49 +0530 Subject: [PATCH 006/172] feat: decoupled actionsheet theme --- src/components/composites/Actionsheet/Actionsheet.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/composites/Actionsheet/Actionsheet.tsx b/src/components/composites/Actionsheet/Actionsheet.tsx index bded4fb16..f8aca915a 100644 --- a/src/components/composites/Actionsheet/Actionsheet.tsx +++ b/src/components/composites/Actionsheet/Actionsheet.tsx @@ -24,9 +24,6 @@ const Actionsheet = ( Date: Tue, 8 Mar 2022 19:24:23 +0530 Subject: [PATCH 007/172] feat: add _draggableArea, _dragArea --- .../Actionsheet/ActionsheetContent.tsx | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/composites/Actionsheet/ActionsheetContent.tsx b/src/components/composites/Actionsheet/ActionsheetContent.tsx index d497fb7d2..ed6580fe9 100644 --- a/src/components/composites/Actionsheet/ActionsheetContent.tsx +++ b/src/components/composites/Actionsheet/ActionsheetContent.tsx @@ -21,10 +21,12 @@ const Content = memo( }: any, ref: any ) => { - const { _dragIndicator, ...resolvedProps } = usePropsResolution( - 'ActionsheetContent', - props - ); + const { + _dragIndicator, + _draggableArea, + _dragArea, + ...resolvedProps + } = usePropsResolution('ActionsheetContent', props); const panResponder = React.useRef( PanResponder.create({ @@ -71,7 +73,11 @@ const Content = memo( {!hideDragIndicator ? ( <> {/* To increase the draggable area */} - + ) : null} @@ -80,13 +86,9 @@ const Content = memo( <> {/* Hack. Fix later. Add -2 negative margin to remove the padding added by ActionSheetContent */} From 2a605f32fa08740594a5c6a671ba65a333efba9b Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 8 Mar 2022 19:25:28 +0530 Subject: [PATCH 008/172] feat: add actionsheetheader, _draggableArea, _dragArea --- src/theme/components/actionsheet.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/theme/components/actionsheet.ts b/src/theme/components/actionsheet.ts index 1a0f47d5a..a8e3d67d2 100644 --- a/src/theme/components/actionsheet.ts +++ b/src/theme/components/actionsheet.ts @@ -3,6 +3,8 @@ import { mode } from '../tools'; export const Actionsheet = { defaultProps: { size: 'full', + justifyContent: 'flex-end', + animationPreset: 'slide', }, }; @@ -20,6 +22,16 @@ export const ActionsheetContent = { width: 10, borderRadius: 2, }, + _dragArea: { + pt: 3, + pb: 3, + mt: -2, + width: '100%', + alignItems: 'center', + }, + _draggableArea: { + py: 2, + }, }), }; @@ -45,3 +57,11 @@ export const ActionsheetItem = { variant: 'unstyled', }, }; + +// ActionsheetHeader +export const ActionsheetHeader = { + baseStyle: { + justifyContent: 'center', + alignItems: 'center', + }, +}; From 1b42e12fc619c969c1fd12ababeef916d6ab4fdd Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 8 Mar 2022 19:25:58 +0530 Subject: [PATCH 009/172] feat: decoupled actionsheet header theme --- .../composites/Actionsheet/ActionsheetHeader.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/components/composites/Actionsheet/ActionsheetHeader.tsx b/src/components/composites/Actionsheet/ActionsheetHeader.tsx index 9982f8388..0ba912f87 100644 --- a/src/components/composites/Actionsheet/ActionsheetHeader.tsx +++ b/src/components/composites/Actionsheet/ActionsheetHeader.tsx @@ -10,14 +10,7 @@ const ActionsheetHeader = (props: IActionsheetHeaderProps, ref?: any) => { if (useHasResponsiveProps(props)) { return null; } - return ( - - ); + return ; }; export default memo(forwardRef(ActionsheetHeader)); From b16d344e9dec335c9dee1e2dedd4fb76ac711476 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 8 Mar 2022 20:04:48 +0530 Subject: [PATCH 010/172] fix: radio checkbox theme decoupling --- src/components/primitives/Checkbox/Checkbox.tsx | 8 +------- .../primitives/Checkbox/Checkbox.web.tsx | 6 ------ .../primitives/Checkbox/CheckboxGroup.tsx | 4 +++- src/components/primitives/Radio/Radio.tsx | 2 +- src/components/primitives/Radio/Radio.web.tsx | 17 ++++------------- src/components/primitives/Radio/RadioGroup.tsx | 7 +++---- src/theme/components/checkbox-group.ts | 9 +++++++++ src/theme/components/checkbox.ts | 8 ++++++++ src/theme/components/index.ts | 4 ++++ src/theme/components/radio-group.ts | 9 +++++++++ src/theme/components/radio.ts | 8 +++++++- 11 files changed, 49 insertions(+), 33 deletions(-) create mode 100644 src/theme/components/checkbox-group.ts create mode 100644 src/theme/components/radio-group.ts diff --git a/src/components/primitives/Checkbox/Checkbox.tsx b/src/components/primitives/Checkbox/Checkbox.tsx index cabdc2795..76b7c85e5 100644 --- a/src/components/primitives/Checkbox/Checkbox.tsx +++ b/src/components/primitives/Checkbox/Checkbox.tsx @@ -185,13 +185,7 @@ const CheckboxComponent = React.memo(
{/* Interaction Wrapper */} - + {/* Checkbox */}
diff --git a/src/components/primitives/Checkbox/Checkbox.web.tsx b/src/components/primitives/Checkbox/Checkbox.web.tsx index 61d97d1af..d69606475 100644 --- a/src/components/primitives/Checkbox/Checkbox.web.tsx +++ b/src/components/primitives/Checkbox/Checkbox.web.tsx @@ -149,10 +149,6 @@ const CheckboxComponent = React.memo( {/* Interaction Box */} {/* Checkbox */}
diff --git a/src/components/primitives/Checkbox/CheckboxGroup.tsx b/src/components/primitives/Checkbox/CheckboxGroup.tsx index e42a43f18..ad7d0649d 100644 --- a/src/components/primitives/Checkbox/CheckboxGroup.tsx +++ b/src/components/primitives/Checkbox/CheckboxGroup.tsx @@ -5,6 +5,7 @@ import { useFormControlContext } from '../../composites/FormControl'; import type { ICheckboxGroupProps, ICheckboxContext } from './types'; import Box from '../Box'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { usePropsResolution } from '../../../hooks/useThemeProps'; export const CheckboxGroupContext = createContext( null @@ -14,6 +15,7 @@ function CheckboxGroup( { size, _checkbox, colorScheme, ...props }: ICheckboxGroupProps, ref?: any ) { + const resolvedProps = usePropsResolution('CheckboxGroup', props); const { children } = props; const state = useCheckboxGroupState(props); const { groupProps } = useCheckboxGroup( @@ -36,7 +38,7 @@ function CheckboxGroup( state, }} > - + {children} diff --git a/src/components/primitives/Radio/Radio.tsx b/src/components/primitives/Radio/Radio.tsx index fb68d21b9..165b63233 100644 --- a/src/components/primitives/Radio/Radio.tsx +++ b/src/components/primitives/Radio/Radio.tsx @@ -124,7 +124,7 @@ const RadioComponent = memo(
{/* Interaction Wrapper */} - + {/* radio */}
{icon && sizedIcon && isChecked ? ( diff --git a/src/components/primitives/Radio/Radio.web.tsx b/src/components/primitives/Radio/Radio.web.tsx index 2f5c47e67..eafe4e4ea 100644 --- a/src/components/primitives/Radio/Radio.web.tsx +++ b/src/components/primitives/Radio/Radio.web.tsx @@ -1,6 +1,6 @@ import React, { memo, forwardRef } from 'react'; import Box from '../Box'; -import { HStack } from '../Stack'; +import { Stack } from '../Stack'; import { Center } from '../../composites/Center'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { wrapStringChild } from '../../../utils/wrapStringChild'; @@ -62,19 +62,10 @@ const RadioComponent = memo( }); const component = ( - +
{/* Interaction Box */} - + {/* Radio */}
{icon && sizedIcon && isChecked ? ( @@ -85,7 +76,7 @@ const RadioComponent = memo(
{wrapStringChild(children, _text)} -
+ ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { diff --git a/src/components/primitives/Radio/RadioGroup.tsx b/src/components/primitives/Radio/RadioGroup.tsx index 506d90988..74b73a93b 100644 --- a/src/components/primitives/Radio/RadioGroup.tsx +++ b/src/components/primitives/Radio/RadioGroup.tsx @@ -5,14 +5,14 @@ import type { IRadioContext, IRadioGroupProps } from './types'; import { useRadioGroupState } from '@react-stately/radio'; import { useRadioGroup } from '@react-native-aria/radio'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { usePropsResolution } from '../../../hooks/useThemeProps'; export const RadioContext = React.createContext( {} as IRadioContext ); const RadioWrapper = memo((props: any) => { - return ( - - ); + const resolvedProps = usePropsResolution('RadioGroup', props); + return ; }); const RadioGroup = ( @@ -43,7 +43,6 @@ const RadioGroup = ( [] ); - // console.log(radioGroupState); //TODO: refactor for responsive prop if (useHasResponsiveProps({ ...props, size, colorScheme })) { return null; diff --git a/src/theme/components/checkbox-group.ts b/src/theme/components/checkbox-group.ts new file mode 100644 index 000000000..357a3f4dc --- /dev/null +++ b/src/theme/components/checkbox-group.ts @@ -0,0 +1,9 @@ +const baseStyle = () => { + return { + alignItems: 'flex-start', + }; +}; + +export default { + baseStyle, +}; diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index 6c493b1a9..f9846cb16 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -18,6 +18,14 @@ const baseStyle = (props: Record) => { _interactionBox: { position: 'absolute', borderRadius: 'full', + p: 5, + w: '100%', + h: '100%', + zIndex: -1, + _web: { + transition: 'height 200ms, width 200ms', + pointerEvents: 'none', + }, }, _hover: { _interactionBox: { diff --git a/src/theme/components/index.ts b/src/theme/components/index.ts index 817f7c0e6..3b26af4ea 100644 --- a/src/theme/components/index.ts +++ b/src/theme/components/index.ts @@ -24,6 +24,7 @@ import Button, { ButtonGroup } from './button'; import Card from './card'; import Center from './center'; import Checkbox from './checkbox'; +import CheckboxGroup from './checkbox-group'; import Box from './box'; import FlatList from './flatList'; import KeyboardAvoidingView from './keyboardAvoidingView'; @@ -76,6 +77,7 @@ import PinInput from './pin-input'; import Pressable from './pressable'; import Progress from './progress'; import Radio from './radio'; +import RadioGroup from './radio-group'; import { Skeleton, SkeletonText } from './skeleton'; import Spinner from './spinner'; import Stat from './stat'; @@ -133,6 +135,7 @@ export default { Card, Center, Checkbox, + CheckboxGroup, CircularProgress, Code, Container, @@ -182,6 +185,7 @@ export default { ...PopoverComponentTheme, Progress, Radio, + RadioGroup, ScaleFade, Select, SelectItem, diff --git a/src/theme/components/radio-group.ts b/src/theme/components/radio-group.ts new file mode 100644 index 000000000..357a3f4dc --- /dev/null +++ b/src/theme/components/radio-group.ts @@ -0,0 +1,9 @@ +const baseStyle = () => { + return { + alignItems: 'flex-start', + }; +}; + +export default { + baseStyle, +}; diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index 174e63d83..5b40af23a 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -10,13 +10,19 @@ const baseStyle = (props: Record) => { bg: mode('muted.50', 'muted.700')(props), // matching background color _stack: { - flexDirection: 'row', + direction: 'row', alignItems: 'center', space: 2, }, _interactionBox: { borderRadius: 'full', size: 3, + position: 'absolute', + zIndex: -1, + _web: { + transition: 'height 200ms, width 200ms', + pointerEvents: 'none', + }, }, _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color From db5423efe43e5b0deb0e80b95ed711723415ca57 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 9 Mar 2022 09:59:38 +0530 Subject: [PATCH 011/172] fix: aspectratio api --- .../composites/AspectRatio/index.tsx | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/src/components/composites/AspectRatio/index.tsx b/src/components/composites/AspectRatio/index.tsx index c623382ec..edcb8fa55 100644 --- a/src/components/composites/AspectRatio/index.tsx +++ b/src/components/composites/AspectRatio/index.tsx @@ -7,22 +7,22 @@ import type { IAspectRatioProps } from './types'; const AspectView = forwardRef((props: any, ref?: any) => { const [layout, setLayout] = React.useState(); - const inputStyle = [StyleSheet.flatten(props.style) || {}]; + const aspectViewStyle = [StyleSheet.flatten(props.style) || {}]; if (layout) { // @ts-ignore let { width = 0, height = 0 } = layout; if (width === 0) { - inputStyle.push({ width: height * props.aspectRatio, height }); + aspectViewStyle.push({ width: height * props.aspectRatio, height }); } else { - inputStyle.push({ width, height: width / props.aspectRatio }); + aspectViewStyle.push({ width, height: width / props.aspectRatio }); } } return ( setLayout(inLayout) } @@ -31,18 +31,13 @@ const AspectView = forwardRef((props: any, ref?: any) => { }); const AspectRatio = (props: IAspectRatioProps, ref?: any) => { - const { - style, - ratio, - children = <>, - ...resolvedProps - } = usePropsResolution( + const { ratio, children = <>, ...resolvedProps } = usePropsResolution( 'AspectRatio', props, {}, { resolveResponsively: ['ratio'] } ); - let computedStyle: ViewStyle | undefined = style; + let computedStyle: ViewStyle | undefined = resolvedProps.style; const newChildWithProps = React.cloneElement( children, { @@ -59,17 +54,15 @@ const AspectRatio = (props: IAspectRatioProps, ref?: any) => { // DOC: It uses a aspectRatio property of React Native and manually calculate on Web if (Platform.OS === 'web') { return ( - + {newChildWithProps} ); } else { - computedStyle = StyleSheet.flatten([style, { aspectRatio: ratio }]); + computedStyle = StyleSheet.flatten([ + { style: resolvedProps.style }, + { aspectRatio: ratio }, + ]); return ( {newChildWithProps} From f8a595fa0da4d0d0a456bb5ba26bba3be8daba60 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 9 Mar 2022 10:51:43 +0530 Subject: [PATCH 012/172] fix: progress api --- src/components/composites/Progress/index.tsx | 26 +++++++------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/components/composites/Progress/index.tsx b/src/components/composites/Progress/index.tsx index ab90a1d53..04cbb788e 100644 --- a/src/components/composites/Progress/index.tsx +++ b/src/components/composites/Progress/index.tsx @@ -58,6 +58,13 @@ const Progress = (props: IProgressProps, ref?: any) => { return null; } + let valueWidth = + value < max && value > min + ? ((value - min) / (max - min)) * 100 + : value > min + ? 100 + : 0; + return ( { accessibilityValue={{ min: min, max: max, - now: - value < max && value > min - ? ((value - min) / (max - min)) * 100 - : value > min - ? 100 - : 0, + now: valueWidth, }} > - min - ? ((value - min) / (max - min)) * 100 + '%' - : value > min - ? '100%' - : '0%' - } - > + {children} From 2782ccd4e7ed2b79cf086b5042f6ad6b26876cae Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:00:17 +0530 Subject: [PATCH 013/172] fix: remove Actionsheet Header --- src/theme/components/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/theme/components/index.ts b/src/theme/components/index.ts index 6ba7e154c..817f7c0e6 100644 --- a/src/theme/components/index.ts +++ b/src/theme/components/index.ts @@ -8,7 +8,7 @@ import { import { Actionsheet, ActionsheetContent, - ActionsheetHeader, + // ActionsheetHeader, // ActionsheetFooter, ActionsheetItem, } from './actionsheet'; @@ -112,7 +112,7 @@ export default { AccordionDetails, Actionsheet, ActionsheetContent, - ActionsheetHeader, + // ActionsheetHeader, // ActionsheetFooter, ActionsheetItem, Alert, From 289d34f6e92f9a8af930b82c306d0b6a80717be6 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:01:27 +0530 Subject: [PATCH 014/172] fix: change pseduo prop for actionsheet content --- src/theme/components/actionsheet.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/theme/components/actionsheet.ts b/src/theme/components/actionsheet.ts index a8e3d67d2..72d816daf 100644 --- a/src/theme/components/actionsheet.ts +++ b/src/theme/components/actionsheet.ts @@ -22,15 +22,17 @@ export const ActionsheetContent = { width: 10, borderRadius: 2, }, - _dragArea: { + _dragIndicatorWrapper: { pt: 3, pb: 3, mt: -2, width: '100%', alignItems: 'center', + collapsable: false, }, - _draggableArea: { + _dragIndicatorWrapperOffSet: { py: 2, + collapsable: false, }, }), }; @@ -57,11 +59,3 @@ export const ActionsheetItem = { variant: 'unstyled', }, }; - -// ActionsheetHeader -export const ActionsheetHeader = { - baseStyle: { - justifyContent: 'center', - alignItems: 'center', - }, -}; From c69a515a204e7faa5a28e9f587b5644c42da536e Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:01:56 +0530 Subject: [PATCH 015/172] fix: remove actionsheet header and footer --- .../composites/Actionsheet/index.tsx | 10 ++++------ .../composites/Actionsheet/types.tsx | 20 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/components/composites/Actionsheet/index.tsx b/src/components/composites/Actionsheet/index.tsx index 7683792ac..8e5d4d330 100644 --- a/src/components/composites/Actionsheet/index.tsx +++ b/src/components/composites/Actionsheet/index.tsx @@ -1,15 +1,15 @@ import ActionsheetMain from './Actionsheet'; import ActionsheetItem from './ActionsheetItem'; -import ActionsheetHeader from './ActionsheetHeader'; -import ActionsheetFooter from './ActionsheetFooter'; +// import ActionsheetHeader from './ActionsheetHeader'; +// import ActionsheetFooter from './ActionsheetFooter'; import ActionsheetContent from './ActionsheetContent'; import type { IActionsheetComponentType } from './types'; const ActionsheetTemp: any = ActionsheetMain; ActionsheetTemp.Content = ActionsheetContent; ActionsheetTemp.Item = ActionsheetItem; -ActionsheetTemp.Header = ActionsheetHeader; -ActionsheetTemp.Footer = ActionsheetFooter; +// ActionsheetTemp.Header = ActionsheetHeader; +// ActionsheetTemp.Footer = ActionsheetFooter; // To add typings const Actionsheet = ActionsheetTemp as IActionsheetComponentType; @@ -20,6 +20,4 @@ export type { IActionsheetProps, IActionsheetContentProps, IActionsheetItemProps, - IActionsheetHeaderProps, - IActionsheetFooterProps, } from './types'; diff --git a/src/components/composites/Actionsheet/types.tsx b/src/components/composites/Actionsheet/types.tsx index 29b15396f..f103e93d2 100644 --- a/src/components/composites/Actionsheet/types.tsx +++ b/src/components/composites/Actionsheet/types.tsx @@ -48,14 +48,14 @@ export type IActionsheetComponentType = (( props: IActionsheetItemProps & { ref?: MutableRefObject } ) => JSX.Element >; - Header: React.MemoExoticComponent< - ( - props: IActionsheetHeaderProps & { ref?: MutableRefObject } - ) => JSX.Element - >; - Footer: React.MemoExoticComponent< - ( - props: IActionsheetFooterProps & { ref?: MutableRefObject } - ) => JSX.Element - >; + // Header: React.MemoExoticComponent< + // ( + // props: IActionsheetHeaderProps & { ref?: MutableRefObject } + // ) => JSX.Element + // >; + // Footer: React.MemoExoticComponent< + // ( + // props: IActionsheetFooterProps & { ref?: MutableRefObject } + // ) => JSX.Element + // >; }; From 094c0a78aa725af19ae019a97d8668edfee216b5 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:02:27 +0530 Subject: [PATCH 016/172] fix: change pseudo props for actionsheet content --- .../composites/Actionsheet/ActionsheetContent.tsx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/components/composites/Actionsheet/ActionsheetContent.tsx b/src/components/composites/Actionsheet/ActionsheetContent.tsx index ed6580fe9..0e493912c 100644 --- a/src/components/composites/Actionsheet/ActionsheetContent.tsx +++ b/src/components/composites/Actionsheet/ActionsheetContent.tsx @@ -23,8 +23,8 @@ const Content = memo( ) => { const { _dragIndicator, - _draggableArea, - _dragArea, + _dragIndicatorWrapperOffSet, + _dragIndicatorWrapper, ...resolvedProps } = usePropsResolution('ActionsheetContent', props); @@ -75,8 +75,7 @@ const Content = memo( {/* To increase the draggable area */} ) : null} @@ -85,11 +84,7 @@ const Content = memo( {!hideDragIndicator ? ( <> {/* Hack. Fix later. Add -2 negative margin to remove the padding added by ActionSheetContent */} - + From d531acf9d86c4d72e55ed972c14d6b9c0b19fff1 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:04:48 +0530 Subject: [PATCH 017/172] fix: revert changes --- .../composites/Actionsheet/ActionsheetHeader.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/composites/Actionsheet/ActionsheetHeader.tsx b/src/components/composites/Actionsheet/ActionsheetHeader.tsx index 0ba912f87..9982f8388 100644 --- a/src/components/composites/Actionsheet/ActionsheetHeader.tsx +++ b/src/components/composites/Actionsheet/ActionsheetHeader.tsx @@ -10,7 +10,14 @@ const ActionsheetHeader = (props: IActionsheetHeaderProps, ref?: any) => { if (useHasResponsiveProps(props)) { return null; } - return ; + return ( + + ); }; export default memo(forwardRef(ActionsheetHeader)); From 55dfbb60505633abf48881195621e3a3e3457109 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 12:18:57 +0530 Subject: [PATCH 018/172] fix: alert dialog theme decoupling --- .../composites/AlertDialog/AlertDialog.tsx | 16 +++++++++------- .../AlertDialog/AlertDialogCloseButton.tsx | 6 ++++-- .../AlertDialog/AlertDialogContent.tsx | 4 ++-- src/components/composites/AlertDialog/index.tsx | 2 +- src/theme/components/alert-dialog.ts | 1 + 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialog.tsx b/src/components/composites/AlertDialog/AlertDialog.tsx index 36ba02519..8a51e16f6 100644 --- a/src/components/composites/AlertDialog/AlertDialog.tsx +++ b/src/components/composites/AlertDialog/AlertDialog.tsx @@ -27,16 +27,17 @@ const AlertDialog = ( backdropVisible = true, //@ts-ignore - internal purpose only animationPreset = 'fade', - ...rest }: IAlertDialogProps, ref: any ) => { const bottomInset = useKeyboardBottomInset(); - const { contentSize, _backdrop, ...restThemeProps } = usePropsResolution( - 'AlertDialog', - rest - ); + const { + contentSize, + _backdrop, + _child, + ...restThemeProps + } = usePropsResolution('AlertDialog', rest); const [visible, setVisible] = useControllableState({ value: isOpen, @@ -48,16 +49,17 @@ const AlertDialog = ( const handleClose = () => setVisible(false); - let child = ( + const child = ( {children} ); + //TODO: refactor for responsive prop if (useHasResponsiveProps(rest)) { return null; diff --git a/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx b/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx index 651acf4a7..f3ee1dc97 100644 --- a/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx +++ b/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx @@ -7,8 +7,10 @@ import type { IButtonProps } from '../../primitives/Button'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const AlertDialogCloseButton = (props: IButtonProps, ref?: any) => { - const newProps = usePropsResolution('AlertDialogCloseButton', props); - const { _icon, ...rest } = newProps; + const { _icon, ...rest } = usePropsResolution( + 'AlertDialogCloseButton', + props + ); const { handleClose } = React.useContext(AlertDialogContext); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { diff --git a/src/components/composites/AlertDialog/AlertDialogContent.tsx b/src/components/composites/AlertDialog/AlertDialogContent.tsx index 53e4f9589..d5e7735f6 100644 --- a/src/components/composites/AlertDialog/AlertDialogContent.tsx +++ b/src/components/composites/AlertDialog/AlertDialogContent.tsx @@ -5,7 +5,7 @@ import { AlertDialogContext } from './Context'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const AlertDialogContent = (props: IBoxProps, ref?: any) => { - const { ...newProps } = usePropsResolution('AlertDialogContent', props); + const newProps = usePropsResolution('AlertDialogContent', props); const { contentSize, initialFocusRef, @@ -13,7 +13,7 @@ const AlertDialogContent = (props: IBoxProps, ref?: any) => { handleClose, } = React.useContext(AlertDialogContext); React.useEffect(() => { - let finalRefVal = finalFocusRef ? finalFocusRef.current : null; + const finalRefVal = finalFocusRef ? finalFocusRef.current : null; if (initialFocusRef && initialFocusRef.current) { //@ts-ignore initialFocusRef.current.focus(); diff --git a/src/components/composites/AlertDialog/index.tsx b/src/components/composites/AlertDialog/index.tsx index 19ff6aa83..99b880760 100644 --- a/src/components/composites/AlertDialog/index.tsx +++ b/src/components/composites/AlertDialog/index.tsx @@ -6,7 +6,7 @@ import AlertDialogFooter from './AlertDialogFooter'; import AlertDialogHeader from './AlertDialogHeader'; import type { IAlertDialogComponentType } from './types'; -let AlertDialogTemp: any = AlertDialog; +const AlertDialogTemp: any = AlertDialog; AlertDialogTemp.Content = AlertDialogContent; AlertDialogTemp.CloseButton = AlertDialogCloseButton; diff --git a/src/theme/components/alert-dialog.ts b/src/theme/components/alert-dialog.ts index c16fb1bfd..6c6bdd30e 100644 --- a/src/theme/components/alert-dialog.ts +++ b/src/theme/components/alert-dialog.ts @@ -45,6 +45,7 @@ export const AlertDialog = { height: '100%', justifyContent: 'center', alignItems: 'center', + _child: { pointerEvents: 'box-none' }, }, sizes, defaultProps: { From 7f83494af8b2b1f1ed374f9ff1215f147d519252 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 12:31:52 +0530 Subject: [PATCH 019/172] fix: modal theme decoupling --- src/components/composites/Modal/Modal.tsx | 12 +++++++----- src/theme/components/modal.ts | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/components/composites/Modal/Modal.tsx b/src/components/composites/Modal/Modal.tsx index 55033b48d..0058ca3df 100644 --- a/src/components/composites/Modal/Modal.tsx +++ b/src/components/composites/Modal/Modal.tsx @@ -32,10 +32,12 @@ const Modal = ( ref: any ) => { const bottomInset = useKeyboardBottomInset(); - const { contentSize, _backdrop, ...resolvedProps } = usePropsResolution( - 'Modal', - rest - ); + const { + contentSize, + _backdrop, + _child, + ...resolvedProps + } = usePropsResolution('Modal', rest); const [visible, setVisible] = useControllableState({ value: isOpen, @@ -51,8 +53,8 @@ const Modal = ( {children} diff --git a/src/theme/components/modal.ts b/src/theme/components/modal.ts index 56dc723c9..96ad7ad1d 100644 --- a/src/theme/components/modal.ts +++ b/src/theme/components/modal.ts @@ -45,6 +45,7 @@ export const Modal = { height: '100%', justifyContent: 'center', alignItems: 'center', + _child: { pointerEvents: 'box-none' }, }, sizes, defaultProps: { From f86a63d5650650192ecb2a2272780d026394e11d Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 12:45:30 +0530 Subject: [PATCH 020/172] feat: decoupled theme for container --- src/components/composites/Container/index.tsx | 14 +++----------- src/theme/components/container.ts | 12 ++++++++++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/components/composites/Container/index.tsx b/src/components/composites/Container/index.tsx index cbce7d30c..9b8b0c3d0 100644 --- a/src/components/composites/Container/index.tsx +++ b/src/components/composites/Container/index.tsx @@ -4,23 +4,15 @@ import Box from '../../primitives/Box'; import type { IContainerProps } from './types'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const Container = ( - { children, centerContent, ...props }: IContainerProps, - ref?: any -) => { +const Container = ({ children, ...props }: IContainerProps, ref?: any) => { const resolvedProps = usePropsResolution('Container', props); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - + {children} ); diff --git a/src/theme/components/container.ts b/src/theme/components/container.ts index a107ad5af..b711bb841 100644 --- a/src/theme/components/container.ts +++ b/src/theme/components/container.ts @@ -1,5 +1,13 @@ -const baseStyle = { - maxWidth: '80%', +import type { Dict } from './../tools'; + +const baseStyle = (props: Dict) => { + const { centerContent } = props; + + return { + maxWidth: '80%', + alignItems: centerContent ? 'center' : 'flex-start', + _text: { textAlign: centerContent ? 'center' : 'left' }, + }; }; export default { From a42c43a6a4dd1d837b582358a4aeeb3587d093bc Mon Sep 17 00:00:00 2001 From: amars29 Date: Wed, 9 Mar 2022 14:49:23 +0530 Subject: [PATCH 021/172] descoupling Input component - 1 --- src/components/primitives/Input/Input.tsx | 15 ++++----------- src/components/primitives/Input/InputBase.tsx | 3 ++- src/theme/components/input.ts | 9 +++++++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/components/primitives/Input/Input.tsx b/src/components/primitives/Input/Input.tsx index 4adb61f8c..72866f3cd 100644 --- a/src/components/primitives/Input/Input.tsx +++ b/src/components/primitives/Input/Input.tsx @@ -1,5 +1,4 @@ import React, { memo, forwardRef } from 'react'; -import Box from '../Box'; import type { IInputProps } from './types'; import InputBase from './InputBase'; import { useFormControl } from '../../composites/FormControl'; @@ -8,6 +7,7 @@ import { useHover } from '@react-native-aria/interactions'; import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { mergeRefs } from '../../../utils'; +import { Stack } from '../Stack'; const Input = ( { isHovered: isHoveredProp, isFocused: isFocusedProp, ...props }: IInputProps, @@ -44,6 +44,7 @@ const Input = ( onFocus, onBlur, wrapperRef, + _stack, ...resolvedProps } = usePropsResolution( 'Input', @@ -79,15 +80,7 @@ const Input = ( } if (InputLeftElement || InputRightElement || leftElement || rightElement) { return ( - + {InputLeftElement || leftElement ? InputLeftElement || leftElement : null} @@ -113,7 +106,7 @@ const Input = ( {InputRightElement || rightElement ? InputRightElement || rightElement : null} - + ); } else { return ( diff --git a/src/components/primitives/Input/InputBase.tsx b/src/components/primitives/Input/InputBase.tsx index d6f77c0a7..aea5899a5 100644 --- a/src/components/primitives/Input/InputBase.tsx +++ b/src/components/primitives/Input/InputBase.tsx @@ -66,6 +66,7 @@ const InputBase = ( fontFamily, fontWeight, fontStyle, + webInputBase, ...resolvedProps } = usePropsResolution( 'Input', @@ -138,7 +139,7 @@ const InputBase = ( } : {})} ref={mergeRefs([ref, _ref, wrapperRef])} - style={Platform.OS === 'web' ? { outline: 'none' } : {}} + style={Platform.OS === 'web' ? webInputBase : {}} /> ); }; diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 2677d9241..03d9d6c59 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -50,6 +50,15 @@ const baseStyle = (props: Record) => { overflow: 'auto', lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height }, + webInputBase: { + outline: 'none', + }, + _stack: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + overflow: 'hidden', + }, }; }; From f2bbb952178faa59cc487666bf54bf04b9a09c0a Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 14:54:39 +0530 Subject: [PATCH 022/172] fix: decoupling changes --- src/components/primitives/Checkbox/Checkbox.web.tsx | 7 +------ src/components/primitives/Radio/Radio.tsx | 8 ++++---- src/components/primitives/Radio/Radio.web.tsx | 4 ++-- src/theme/components/checkbox.ts | 8 +++++++- src/theme/components/radio.ts | 4 ++++ 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/components/primitives/Checkbox/Checkbox.web.tsx b/src/components/primitives/Checkbox/Checkbox.web.tsx index d69606475..e284a942b 100644 --- a/src/components/primitives/Checkbox/Checkbox.web.tsx +++ b/src/components/primitives/Checkbox/Checkbox.web.tsx @@ -140,11 +140,7 @@ const CheckboxComponent = React.memo( const component = React.useMemo(() => { return ( - +
{/* Interaction Box */} - +
{/* Interaction Wrapper */} @@ -130,13 +130,13 @@ const RadioComponent = memo( {icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( - + )}
{/* Label */} {wrapStringChild(children, _text)} - +
); } diff --git a/src/components/primitives/Radio/Radio.web.tsx b/src/components/primitives/Radio/Radio.web.tsx index eafe4e4ea..6eff48cee 100644 --- a/src/components/primitives/Radio/Radio.web.tsx +++ b/src/components/primitives/Radio/Radio.web.tsx @@ -62,7 +62,7 @@ const RadioComponent = memo( }); const component = ( - +
{/* Interaction Box */} @@ -71,7 +71,7 @@ const RadioComponent = memo( {icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( - + )}
diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index f9846cb16..e79845814 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -10,7 +10,10 @@ const baseStyle = (props: Record) => { borderRadius: 'sm', borderColor: mode('muted.300', 'muted.600')(props), bg: mode('muted.50', 'muted.700')(props), // matching background color - + opacity: 1, + _web: { + cursor: 'pointer', + }, _text: { ml: 2, color: mode('darkText', 'lightText')(props), @@ -46,6 +49,9 @@ const baseStyle = (props: Record) => { _interactionBox: { bg: 'transparent', }, + _web: { + cursor: 'not-allowed', + }, opacity: 0.4, }, _pressed: { diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index 5b40af23a..e79af3d1b 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -13,6 +13,9 @@ const baseStyle = (props: Record) => { direction: 'row', alignItems: 'center', space: 2, + _web: { + cursor: props.isDisabled ? 'not-allowed' : 'pointer', + }, }, _interactionBox: { borderRadius: 'full', @@ -26,6 +29,7 @@ const baseStyle = (props: Record) => { }, _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color + opacity: props.isChecked ? 1 : 0, }, _hover: { _interactionBox: { From e95be874c9e1a7212e0170a3be7a95debcf222b1 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 9 Mar 2022 16:23:53 +0530 Subject: [PATCH 023/172] feat: decoupling of scalefade --- .../composites/Transitions/ScaleFade.tsx | 12 ++++-------- .../composites/Transitions/ScaleFade.tsx | 18 ++++-------------- .../composites/Transitions/types.tsx | 3 +++ src/theme/components/transitions.ts | 16 +++++++++++----- 4 files changed, 22 insertions(+), 27 deletions(-) diff --git a/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx b/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx index 003dc1450..1f1efa24b 100644 --- a/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx +++ b/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { PresenceTransition, Button, Center } from 'native-base'; +import { ScaleFade, Button, Center } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -8,15 +8,11 @@ export const Example = () => { - +
- ScaleFade + ScalableFade
-
+
); }; diff --git a/src/components/composites/Transitions/ScaleFade.tsx b/src/components/composites/Transitions/ScaleFade.tsx index 36d9dfbba..47c9acfa3 100644 --- a/src/components/composites/Transitions/ScaleFade.tsx +++ b/src/components/composites/Transitions/ScaleFade.tsx @@ -1,14 +1,11 @@ import React from 'react'; -import { useThemeProps } from '../../../hooks/useThemeProps'; import type { IScaleFadeProps } from './types'; import PresenceTransition from './PresenceTransition'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { usePropsResolution } from '../../../hooks/'; -const ScaleFade = ( - { children, style, ...props }: IScaleFadeProps, - ref?: any -) => { - const { in: animationState, duration, initialScale } = useThemeProps( +const ScaleFade = ({ children, ...props }: IScaleFadeProps, ref?: any) => { + const { in: animationState, ...resolvedProps } = usePropsResolution( 'ScaleFade', props ); @@ -18,14 +15,7 @@ const ScaleFade = ( } return ( - + {children} ); diff --git a/src/components/composites/Transitions/types.tsx b/src/components/composites/Transitions/types.tsx index 57f48ea46..ee7da2eb5 100644 --- a/src/components/composites/Transitions/types.tsx +++ b/src/components/composites/Transitions/types.tsx @@ -13,6 +13,9 @@ export type IScaleFadeProps = IBoxProps & { duration?: number; delay?: number; initialScale?: number; + initial?: ISupportedTransitions; + animate?: ITransitionStyleProps; + exit?: ITransitionStyleProps; }; export type ISlideProps = IBoxProps & { in?: boolean; diff --git a/src/theme/components/transitions.ts b/src/theme/components/transitions.ts index 1e8e56be2..51989bd0d 100644 --- a/src/theme/components/transitions.ts +++ b/src/theme/components/transitions.ts @@ -9,13 +9,19 @@ export const Fade = { }; //ScaleFade -const scaleFadeDefaultProps = { - duration: 500, - initialScale: 0.9, -}; +//Can be commented if not used anywhere else +// const scaleFadeDefaultProps = { +// duration: 500, +// initialScale: 0.9, +// }; +const scaleBaseStyle = { + initial: { opacity: 0, scale: 0.9 }, + animate: { opacity: 1, scale: 1, transition: 500 }, + exit: { opacity: 0, scale: 0.9, transition: 500 }, +}; export const ScaleFade = { - defaultProps: scaleFadeDefaultProps, + baseStyle: scaleBaseStyle, }; //Slide From f0426ce94332a1bb7f8f4d0afdbb7fecca89857b Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 9 Mar 2022 16:36:07 +0530 Subject: [PATCH 024/172] feat: decoupling of fade transition --- .../components/composites/Transitions/Fade.tsx | 10 +++------- src/components/composites/Transitions/Fade.tsx | 15 ++++----------- src/components/composites/Transitions/types.tsx | 3 +++ src/theme/components/transitions.ts | 15 ++++++++++----- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/example/storybook/stories/components/composites/Transitions/Fade.tsx b/example/storybook/stories/components/composites/Transitions/Fade.tsx index 03fc8e250..fea07ad8e 100644 --- a/example/storybook/stories/components/composites/Transitions/Fade.tsx +++ b/example/storybook/stories/components/composites/Transitions/Fade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Button, Center, PresenceTransition } from 'native-base'; +import { Button, Center, Fade } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -9,11 +9,7 @@ export const Example = () => { - +
{ > Fade
-
+
); }; diff --git a/src/components/composites/Transitions/Fade.tsx b/src/components/composites/Transitions/Fade.tsx index 797c40dee..8953869be 100644 --- a/src/components/composites/Transitions/Fade.tsx +++ b/src/components/composites/Transitions/Fade.tsx @@ -1,11 +1,11 @@ import React from 'react'; -import { useThemeProps } from '../../../hooks/useThemeProps'; import PresenceTransition from '../Transitions/PresenceTransition'; import type { IFadeProps } from './types'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { usePropsResolution } from '../../../hooks/'; -const Fade = ({ children, style, ...props }: IFadeProps, ref?: any) => { - const { in: animationState, entryDuration, exitDuration } = useThemeProps( +const Fade = ({ children, ...props }: IFadeProps, ref?: any) => { + const { in: animationState, ...resolvedProps } = usePropsResolution( 'Fade', props ); @@ -14,14 +14,7 @@ const Fade = ({ children, style, ...props }: IFadeProps, ref?: any) => { return null; } return ( - + {children} ); diff --git a/src/components/composites/Transitions/types.tsx b/src/components/composites/Transitions/types.tsx index ee7da2eb5..1402a370c 100644 --- a/src/components/composites/Transitions/types.tsx +++ b/src/components/composites/Transitions/types.tsx @@ -7,6 +7,9 @@ export type IFadeProps = IBoxProps & { entryDuration?: number; exitDuration?: number; delay?: number; + initial?: ISupportedTransitions; + animate?: ITransitionStyleProps; + exit?: ITransitionStyleProps; }; export type IScaleFadeProps = IBoxProps & { in?: boolean; diff --git a/src/theme/components/transitions.ts b/src/theme/components/transitions.ts index 51989bd0d..d4949e0e8 100644 --- a/src/theme/components/transitions.ts +++ b/src/theme/components/transitions.ts @@ -1,11 +1,16 @@ //Fade -const fadeDefaultProps = { - entryDuration: 500, - exitDuration: 500, -}; +// const fadeDefaultProps = { +// entryDuration: 500, +// exitDuration: 500, +// }; +export const fadeBaseStyle = { + initial: { opacity: 0 }, + animate: { opacity: 1, transition: { duration: 500 } }, + exit: { opacity: 0, transition: { duration: 500 } }, +}; export const Fade = { - defaultProps: fadeDefaultProps, + baseStyle: fadeBaseStyle, }; //ScaleFade From 2851054a239ddafdfb55cc66598b67dd5e5f10c6 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:39:25 +0530 Subject: [PATCH 025/172] feat: square theme --- src/theme/components/square.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/theme/components/square.ts diff --git a/src/theme/components/square.ts b/src/theme/components/square.ts new file mode 100644 index 000000000..eba78e2c4 --- /dev/null +++ b/src/theme/components/square.ts @@ -0,0 +1,13 @@ +import type { Dict } from './../tools'; + +const baseStyle = (props: Dict) => ({ + alignItems: 'center', + justifyContent: 'center', + size: props?.size, + height: props?.height, + width: props?.width, +}); + +export default { + baseStyle, +}; From c0d1d272132d30037608cc3cde524a94ed3be8dd Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:41:46 +0530 Subject: [PATCH 026/172] feat: circle theme --- src/theme/components/circle.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/theme/components/circle.ts diff --git a/src/theme/components/circle.ts b/src/theme/components/circle.ts new file mode 100644 index 000000000..b4beb66ad --- /dev/null +++ b/src/theme/components/circle.ts @@ -0,0 +1,12 @@ +const baseStyle = (props: any) => ({ + rounded: 'full', + alignItems: 'center', + justifyContent: 'center', + size: props?.size, + height: props?.height, + width: props?.width, +}); + +export default { + baseStyle, +}; From b735a4ff839934b01c7ce37086f6583f354a9df3 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:42:23 +0530 Subject: [PATCH 027/172] feat: add circle , square --- src/theme/components/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/theme/components/index.ts b/src/theme/components/index.ts index 817f7c0e6..fa464d79d 100644 --- a/src/theme/components/index.ts +++ b/src/theme/components/index.ts @@ -36,6 +36,7 @@ import Container from './container'; import HStack from './hstack'; import VStack from './vstack'; import Divider from './divider'; +import Circle from './circle'; import SimpleGrid from './simple-grid'; import { FormControl, @@ -93,6 +94,7 @@ import { TypeAheadSearchItem } from './typeahead'; import { Wrap } from './wrap'; import Flex from './flex'; import Stack from './stack'; +import Square from './square'; import View from './view'; import ZStack from './zstack'; import FAB from './fab'; @@ -132,6 +134,7 @@ export default { ButtonGroup, Card, Center, + Circle, Checkbox, CircularProgress, Code, @@ -195,6 +198,7 @@ export default { Slide, SlideFade, Spinner, + Square, Stack, Stat, Switch, From eea50c884be16a2c41388aae5f5069dc4ac6baff Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:45:06 +0530 Subject: [PATCH 028/172] fix: add box , decoupled theme --- src/components/composites/Center/Square.tsx | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/components/composites/Center/Square.tsx b/src/components/composites/Center/Square.tsx index 03f80ffa0..935b75e58 100644 --- a/src/components/composites/Center/Square.tsx +++ b/src/components/composites/Center/Square.tsx @@ -1,22 +1,17 @@ import React from 'react'; -import Center from './Center'; +import Box from '../../primitives/Box'; import type { ISquareProps } from './types'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { usePropsResolution } from '../../../hooks/useThemeProps'; + +const Square = ({ ...props }: ISquareProps) => { + const { ...resolvedProps } = usePropsResolution('Square', props); -const Square = ({ style, size, ...props }: ISquareProps) => { //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - return ( -
- ); + return ; }; export default React.memo(Square); From 2ed804ec2d57c2a76415f2c8261e7e46373c8ed0 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:45:38 +0530 Subject: [PATCH 029/172] fix: add box, decoupled circle theme --- src/components/composites/Center/Circle.tsx | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/components/composites/Center/Circle.tsx b/src/components/composites/Center/Circle.tsx index 4af19dca2..4d2b64a20 100644 --- a/src/components/composites/Center/Circle.tsx +++ b/src/components/composites/Center/Circle.tsx @@ -1,24 +1,17 @@ import React from 'react'; -import Center from './Center'; +import Box from '../../primitives/Box'; import type { ICircleProps } from './types'; +import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const Circle = ({ style, size, ...props }: ICircleProps, ref: any) => { +const Circle = (props: ICircleProps, ref: any) => { + const { ...resolvedProps } = usePropsResolution('Circle', props); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - return ( -
- ); + return ; }; export default React.memo(React.forwardRef(Circle)); From 9b28f44be4c2fbee4278791b1c60e339720f3e81 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 16:49:00 +0530 Subject: [PATCH 030/172] fix: props param --- src/components/composites/Center/Square.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/composites/Center/Square.tsx b/src/components/composites/Center/Square.tsx index 935b75e58..62635eb38 100644 --- a/src/components/composites/Center/Square.tsx +++ b/src/components/composites/Center/Square.tsx @@ -4,7 +4,7 @@ import type { ISquareProps } from './types'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { usePropsResolution } from '../../../hooks/useThemeProps'; -const Square = ({ ...props }: ISquareProps) => { +const Square = (props: ISquareProps) => { const { ...resolvedProps } = usePropsResolution('Square', props); //TODO: refactor for responsive prop From f384f7f90ec667f4fe76aba4c3d1ec927f10313b Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 16:56:30 +0530 Subject: [PATCH 031/172] fix: decoupling and added pseudo prop in select --- src/components/primitives/Select/Select.tsx | 21 ++++++--------------- src/components/primitives/Select/types.ts | 5 +++++ src/theme/components/select.ts | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/components/primitives/Select/Select.tsx b/src/components/primitives/Select/Select.tsx index f353eebff..4cb715d71 100644 --- a/src/components/primitives/Select/Select.tsx +++ b/src/components/primitives/Select/Select.tsx @@ -19,17 +19,6 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import type { ISelectItemProps } from './types'; import { Pressable } from '../Pressable'; -const unstyledSelecWebtStyles = { - appearance: 'none', - WebkitAppearance: 'none', - MozAppearance: 'none', - position: 'absolute', - width: '100%', - height: '100%', - opacity: 0, - zIndex: 1, -}; - export const SelectContext = React.createContext({ onValueChange: (() => {}) as any, selectedValue: null as any, @@ -79,6 +68,8 @@ const Select = ( optimized, customDropdownIconProps, _actionSheetContent, + _actionSheetBody, + unstyledSelecWebtStyles, ...resolvedProps } = usePropsResolution( 'Select', @@ -174,7 +165,6 @@ const Select = ( editable={false} focusable={false} isDisabled={isDisabled} - pointerEvents="none" /> ); @@ -233,10 +223,11 @@ const Select = ( {/* TODO: Replace ScrollVeiw with FlatList */} {optimized ? ( index.toString()} - renderItem={({ item }) => { + renderItem={({ item }: any) => { const isSelected = selectedValue === item.value; return ( ) : ( - + {children} diff --git a/src/components/primitives/Select/types.ts b/src/components/primitives/Select/types.ts index 126a843fd..073761249 100644 --- a/src/components/primitives/Select/types.ts +++ b/src/components/primitives/Select/types.ts @@ -4,6 +4,7 @@ import type { IActionsheetContentProps } from '../../composites/Actionsheet/type import type { MutableRefObject } from 'react'; import type { ResponsiveValue } from '../../../components/types'; import type { IColors } from '../../../theme/base/colors'; +import type { IFlatListProps } from 'src/components/basic/FlatList'; export interface ISelectProps extends IBoxProps { /** @@ -83,6 +84,10 @@ export interface ISelectProps extends IBoxProps { * props to be passed to underlying ActionSheet.Content. Select uses ActionSheet underneath. */ _actionSheetContent?: IActionsheetContentProps; + /** + * props to be passed to underlying Flatlist in ActionSheet.Content. + */ + _actionSheetBody?: IFlatListProps; /** * Ref to be attached to the Select wrapper */ diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index a0d4556ac..0e7d0b063 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -2,12 +2,25 @@ import { mode } from '../tools'; export const Select = { baseStyle: (props: Record) => { return { + unstyledSelecWebtStyles: { + appearance: 'none', + WebkitAppearance: 'none', + MozAppearance: 'none', + position: 'absolute', + width: '100%', + height: '100%', + opacity: 0, + zIndex: 1, + }, customDropdownIconProps: { size: '6', p: '1', pl: '0', color: 'trueGray.400', }, + _web: { + pointerEvents: 'none', + }, _disabled: { opacity: '80', bg: mode('muted.100', 'muted.700')(props), @@ -21,6 +34,9 @@ export const Select = { _hover: { bg: mode('gray.100', 'gray.700')(props), }, + _actionSheetBody: { + w: '100%', + }, _actionSheetContent: {}, }; }, From 1c327b6998629a862557b0138fcd60307bc53e1d Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 17:06:42 +0530 Subject: [PATCH 032/172] fix: add prop type --- src/theme/components/circle.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/theme/components/circle.ts b/src/theme/components/circle.ts index b4beb66ad..d722b73ed 100644 --- a/src/theme/components/circle.ts +++ b/src/theme/components/circle.ts @@ -1,4 +1,6 @@ -const baseStyle = (props: any) => ({ +import type { Dict } from './../tools'; + +const baseStyle = (props: Dict) => ({ rounded: 'full', alignItems: 'center', justifyContent: 'center', From eb254a0b329a9fb5f643d1e066817a47d287adef Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Wed, 9 Mar 2022 17:18:12 +0530 Subject: [PATCH 033/172] feat: added extend theme and top prop resolution feature --- src/components/primitives/TextArea/index.tsx | 25 ++++++++++++++++--- .../useThemeProps/usePropsResolution.tsx | 17 ++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/components/primitives/TextArea/index.tsx b/src/components/primitives/TextArea/index.tsx index e370220af..bafc1724a 100644 --- a/src/components/primitives/TextArea/index.tsx +++ b/src/components/primitives/TextArea/index.tsx @@ -2,6 +2,8 @@ import React, { memo, forwardRef } from 'react'; import { Input, IInputProps } from '../Input'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { useHover } from '@react-native-aria/interactions'; +import { mergeRefs } from '../../../utils'; export interface ITextAreaProps extends IInputProps { /** * Maps to react-native TextInput's numberOfLines. @@ -9,8 +11,18 @@ export interface ITextAreaProps extends IInputProps { totalLines?: number; } -const TextArea = ({ wrapperRef, ...props }: ITextAreaProps, ref: any) => { - const { totalLines, ...newProps } = usePropsResolution('TextArea', props); +const TextArea = ( + { wrapperRef, isDisabled, ...props }: ITextAreaProps, + ref: any +) => { + const _ref = React.useRef(null); + const { isHovered } = useHover({}, _ref); + const { totalLines, ...newProps } = usePropsResolution( + 'TextArea', + props, + { isHovered, isDisabled }, + { extendTheme: ['Input'] } + ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -18,9 +30,16 @@ const TextArea = ({ wrapperRef, ...props }: ITextAreaProps, ref: any) => { return ( { + // handleFocus(true, onFocus ? () => onFocus(e) : () => {}); + // }} + // onBlur={(e) => { + // handleFocus(false, onBlur ? () => onBlur(e) : () => {}); + // }} /> ); }; diff --git a/src/hooks/useThemeProps/usePropsResolution.tsx b/src/hooks/useThemeProps/usePropsResolution.tsx index 4196a5a6b..67fcdb455 100644 --- a/src/hooks/useThemeProps/usePropsResolution.tsx +++ b/src/hooks/useThemeProps/usePropsResolution.tsx @@ -133,12 +133,20 @@ export function usePropsResolution( resolveResponsively?: string[]; ignoreProps?: string[]; cascadePseudoProps?: boolean; + extendTheme?: string[]; } ) { const { theme } = useNativeBase(); - const componentTheme = + let componentTheme = config?.componentTheme ?? get(theme, `components.${component}`, {}); + if (config?.extendTheme) { + config?.extendTheme.map((componentName: string) => { + const currentTheme = get(theme, `components.${componentName}`, {}); + componentTheme = merge(componentTheme, currentTheme); + }); + } + if (process.env.NODE_ENV === 'development' && incomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -173,6 +181,12 @@ export function usePropsResolution( config ); + // Not Resolve theme props and pseudo props + if (incomingProps?.INTERNAL_notResolveThemeAndPseudoProps) { + delete incomingProps.INTERNAL_notResolveThemeAndPseudoProps; + return incomingProps; + } + if (process.env.NODE_ENV === 'development' && incomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -193,6 +207,7 @@ export const usePropsResolutionWithComponentTheme = ( resolveResponsively?: string[]; ignoreProps?: string[]; cascadePseudoProps?: boolean; + extendTheme?: string[]; } ) => { const modifiedPropsForSSR = useResponsiveSSRProps(incomingProps); From 2c7fe5b3cb7a31912cd6b66498d9aef9a0cec58a Mon Sep 17 00:00:00 2001 From: amars29 Date: Wed, 9 Mar 2022 17:31:31 +0530 Subject: [PATCH 034/172] Decoupling Slider --- src/components/primitives/Slider/Slider.tsx | 8 +------- src/components/primitives/Slider/SliderTrack.tsx | 10 +++++----- src/components/primitives/Slider/types.tsx | 2 ++ src/theme/components/slider.ts | 5 +++++ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/components/primitives/Slider/Slider.tsx b/src/components/primitives/Slider/Slider.tsx index 64d66cc5d..9b05b4788 100644 --- a/src/components/primitives/Slider/Slider.tsx +++ b/src/components/primitives/Slider/Slider.tsx @@ -97,13 +97,7 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { return ( - + {React.Children.map(props.children, (child, index) => { if (child.displayName === 'SliderThumb') { return React.cloneElement(child as React.ReactElement, { diff --git a/src/components/primitives/Slider/SliderTrack.tsx b/src/components/primitives/Slider/SliderTrack.tsx index 28cfcbfc8..b1620feb8 100644 --- a/src/components/primitives/Slider/SliderTrack.tsx +++ b/src/components/primitives/Slider/SliderTrack.tsx @@ -17,7 +17,7 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { isDisabled, } = React.useContext(SliderContext); - const resolvedProps = usePropsResolution( + const { _wrap, ...resolvedProps } = usePropsResolution( 'SliderTrack', { size: sliderSize, @@ -48,10 +48,10 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { ref={ref} {...trackProps} {...trackStyle} - paddingY={!isVertical ? '12px' : undefined} - paddingX={isVertical ? '12px' : undefined} - justifyContent="center" - alignItems="center" + paddingY={!isVertical ? '3' : undefined} + paddingX={isVertical ? '3' : undefined} + alignItems={_wrap.alignItems} + justifyContent={_wrap.justifyContent} > {children} diff --git a/src/components/primitives/Slider/types.tsx b/src/components/primitives/Slider/types.tsx index ba0bef8ff..fb004a596 100644 --- a/src/components/primitives/Slider/types.tsx +++ b/src/components/primitives/Slider/types.tsx @@ -59,6 +59,8 @@ export interface ISliderTrackProps extends IBoxProps { _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; + /** Wrapper style for SliderTrack */ + _wrap?: {}; } export interface ISliderTrackFilledProps diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index 34fca70f3..88750fe5c 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -6,6 +6,7 @@ export const SliderTrack = { bg: `${simplifiedColorScheme}.100`, borderRadius: 'lg', overflow: 'hidden', + _wrap: { alignItems: 'center', justifyContent: 'center' }, }; }, }; @@ -46,6 +47,10 @@ const sizes = { }; export const Slider = { + baseStyle: { + alignItems: 'center', + justifyContent: 'center', + }, defaultProps: { size: 'sm', }, From f371da378ee5be86482e774e3f789ad262722592 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 17:34:14 +0530 Subject: [PATCH 035/172] fix: pseudo props in checkbox --- src/components/primitives/Checkbox/Checkbox.tsx | 10 +++++++--- src/components/primitives/Checkbox/Checkbox.web.tsx | 12 +++++++++--- src/components/primitives/Checkbox/types.tsx | 5 +++++ src/components/primitives/Radio/types.tsx | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/components/primitives/Checkbox/Checkbox.tsx b/src/components/primitives/Checkbox/Checkbox.tsx index 76b7c85e5..5202cd24a 100644 --- a/src/components/primitives/Checkbox/Checkbox.tsx +++ b/src/components/primitives/Checkbox/Checkbox.tsx @@ -18,6 +18,7 @@ import { useIsPressed, } from '../../primitives/Pressable/Pressable'; import SizedIcon from './SizedIcon'; +import { Stack } from '../Stack'; const Checkbox = ( { @@ -113,7 +114,7 @@ const CheckboxComponent = React.memo( icon, _interactionBox, _icon, - // destructuring pressable props and passing it manually + _stack, onPress, onPressIn, onPressOut, @@ -142,6 +143,9 @@ const CheckboxComponent = React.memo( ...stylingProps.layout, ...stylingProps.flexbox, ...stylingProps.position, + ...stylingProps.background, + ...stylingProps.padding, + ...stylingProps.border, '_text', ]); @@ -182,7 +186,7 @@ const CheckboxComponent = React.memo( // focusRingProps.onBlur )} > - +
{/* Interaction Wrapper */} @@ -193,7 +197,7 @@ const CheckboxComponent = React.memo(
{/* Label */} {combinedProps.children} -
+ ); } diff --git a/src/components/primitives/Checkbox/Checkbox.web.tsx b/src/components/primitives/Checkbox/Checkbox.web.tsx index e284a942b..44de80fdc 100644 --- a/src/components/primitives/Checkbox/Checkbox.web.tsx +++ b/src/components/primitives/Checkbox/Checkbox.web.tsx @@ -15,6 +15,7 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { combineContextAndProps } from '../../../utils'; import SizedIcon from './SizedIcon'; +import { Stack } from '../Stack'; const Checkbox = ( { @@ -119,6 +120,7 @@ const CheckboxComponent = React.memo( icon, _interactionBox, _icon, + _stack, ...resolvedProps } = usePropsResolution('Checkbox', combinedProps, { isInvalid, @@ -135,12 +137,15 @@ const CheckboxComponent = React.memo( ...stylingProps.layout, ...stylingProps.flexbox, ...stylingProps.position, + ...stylingProps.background, + ...stylingProps.padding, + ...stylingProps.border, '_text', ]); const component = React.useMemo(() => { return ( - +
{/* Interaction Box */} {/* Label */} {resolvedProps?.children} - + ); }, [ _icon, + _stack, _interactionBox, icon, isChecked, isFocusVisible, isHovered, - layoutProps, nonLayoutProps, + layoutProps, isHoveredProp, isFocusVisibleProp, resolvedProps?.children, diff --git a/src/components/primitives/Checkbox/types.tsx b/src/components/primitives/Checkbox/types.tsx index e817da05e..ef907ff4b 100644 --- a/src/components/primitives/Checkbox/types.tsx +++ b/src/components/primitives/Checkbox/types.tsx @@ -5,6 +5,7 @@ import type { IFormControlContext } from '../../composites/FormControl'; import type { IBoxProps } from '../Box'; import type { IIconProps } from '../Icon'; import type { ResponsiveValue } from '../../../components/types'; +import type { IStackProps } from '../../primitives/Stack'; export type ICheckboxValue = string; @@ -115,6 +116,10 @@ export interface ICheckboxProps extends IBoxProps { * You can style interaction box around the checkbox using this. */ _interactionBox?: Omit; + /** + * Props to be passed to the Stack used inside. + */ + _stack?: IStackProps; /** * Function called when the state of the checkbox changes. */ diff --git a/src/components/primitives/Radio/types.tsx b/src/components/primitives/Radio/types.tsx index f74831ee4..383d5c412 100644 --- a/src/components/primitives/Radio/types.tsx +++ b/src/components/primitives/Radio/types.tsx @@ -59,7 +59,7 @@ export interface IRadioProps extends IBoxProps { */ wrapperRef?: any; /** - * Props to be passed to the HStack used inside. + * Props to be passed to the Stack used inside. */ _stack?: IStackProps; } From f6546b856775637781546237d39c943c7f59a01a Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 17:37:21 +0530 Subject: [PATCH 036/172] feat: add pseudo prop typings --- src/components/composites/Actionsheet/types.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/composites/Actionsheet/types.tsx b/src/components/composites/Actionsheet/types.tsx index f103e93d2..6a984afc3 100644 --- a/src/components/composites/Actionsheet/types.tsx +++ b/src/components/composites/Actionsheet/types.tsx @@ -28,7 +28,20 @@ export interface IActionsheetProps extends IBoxProps { } export interface IActionsheetContentProps - extends IBoxProps {} + extends IBoxProps { + /** + * Props applied on area above actionsheet content + */ + _dragIndicatorWrapperOffSet?: IBoxProps; + /** + * Props applied on area around drag indicator + */ + _dragIndicatorWrapper?: IBoxProps; + /** + * Props applied on drag indicator + */ + _dragIndicator?: IBoxProps; +} export interface IActionsheetFooterProps extends IBoxProps {} export interface IActionsheetHeaderProps From ba2fe2a96c1de1ab8cc82341921d2c9b6e6d4fca Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 9 Mar 2022 17:42:14 +0530 Subject: [PATCH 037/172] feat: decoupling slide and slidefade --- .../composites/Transitions/SlideFade.tsx | 35 +++++++++---------- .../composites/Transitions/Slide.tsx | 17 ++++----- src/theme/components/transitions.ts | 4 +++ 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/example/storybook/stories/components/composites/Transitions/SlideFade.tsx b/example/storybook/stories/components/composites/Transitions/SlideFade.tsx index 5086c50d5..66bbf4ba3 100644 --- a/example/storybook/stories/components/composites/Transitions/SlideFade.tsx +++ b/example/storybook/stories/components/composites/Transitions/SlideFade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { PresenceTransition, Box, Button, Center } from 'native-base'; +import { SlideFade, Box, Button, Center } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -8,24 +8,23 @@ export const Example = () => { - -
- SlideFade + +
+ + SlideFade +
- +
); }; diff --git a/src/components/composites/Transitions/Slide.tsx b/src/components/composites/Transitions/Slide.tsx index 31f6bf39e..32e0bdebe 100644 --- a/src/components/composites/Transitions/Slide.tsx +++ b/src/components/composites/Transitions/Slide.tsx @@ -1,10 +1,10 @@ import React, { forwardRef, memo } from 'react'; import Box from '../../primitives/Box'; -import { useThemeProps } from '../../../hooks/useThemeProps'; import type { ISlideProps } from './types'; import PresenceTransition from './PresenceTransition'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { Overlay } from '../../primitives/Overlay'; +import { usePropsResolution } from '../../../hooks/'; const holderStyle: any = { top: { @@ -31,10 +31,13 @@ const holderStyle: any = { export const Slide = memo( forwardRef(({ children, ...props }: ISlideProps, ref: any) => { - const { in: visible, placement, overlay, duration } = useThemeProps( - 'Slide', - props - ); + const { + in: visible, + placement, + overlay, + duration, + ...resolvedProps + } = usePropsResolution('Slide', props); const [containerOpacity, setContainerOpacity] = React.useState(0); const [size, setSize] = React.useState(0); const provideSize = (layoutSize: any) => { @@ -105,10 +108,8 @@ export const Slide = memo( ]} > provideSize(e.nativeEvent.layout)} > diff --git a/src/theme/components/transitions.ts b/src/theme/components/transitions.ts index d4949e0e8..170a9eb28 100644 --- a/src/theme/components/transitions.ts +++ b/src/theme/components/transitions.ts @@ -37,6 +37,10 @@ const slideDefaultProps = { }; export const Slide = { + baseStyle: { + h: '100%', + pointerEvents: 'box-none', + }, defaultProps: slideDefaultProps, }; From 15939461bd84725194ca5d6d3849a55f19cc5626 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 18:07:39 +0530 Subject: [PATCH 038/172] fix: added pseudo props for alert-dialog --- .../composites/AlertDialog/AlertDialog.tsx | 8 ++++++-- src/components/composites/AlertDialog/types.ts | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialog.tsx b/src/components/composites/AlertDialog/AlertDialog.tsx index 8a51e16f6..eeee385e8 100644 --- a/src/components/composites/AlertDialog/AlertDialog.tsx +++ b/src/components/composites/AlertDialog/AlertDialog.tsx @@ -25,7 +25,6 @@ const AlertDialog = ( isKeyboardDismissable = true, overlayVisible = true, backdropVisible = true, - //@ts-ignore - internal purpose only animationPreset = 'fade', ...rest }: IAlertDialogProps, @@ -36,6 +35,9 @@ const AlertDialog = ( contentSize, _backdrop, _child, + _backdropFade, + _fade, + _slide, ...restThemeProps } = usePropsResolution('AlertDialog', rest); @@ -84,6 +86,7 @@ const AlertDialog = ( entryDuration={200} in={visible} style={StyleSheet.absoluteFill} + {..._backdropFade} > {overlayVisible && backdropVisible && ( {animationPreset === 'slide' ? ( - + Date: Wed, 9 Mar 2022 18:27:24 +0530 Subject: [PATCH 039/172] feat: add spacer theme --- src/theme/components/flex.ts | 14 +++++++++++--- src/theme/components/index.ts | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/theme/components/flex.ts b/src/theme/components/flex.ts index e3fdeee6a..fbb4f6b3b 100644 --- a/src/theme/components/flex.ts +++ b/src/theme/components/flex.ts @@ -1,4 +1,12 @@ -const defaultProps = { flexDirection: 'column' }; -export default { - defaultProps, +export const Flex = { + baseStyle: { + display: 'flex', + flexDirection: 'column', + }, +}; + +export const Spacer = { + baseStyle: { + flexGrow: 1, + }, }; diff --git a/src/theme/components/index.ts b/src/theme/components/index.ts index 817f7c0e6..1a7777f3b 100644 --- a/src/theme/components/index.ts +++ b/src/theme/components/index.ts @@ -91,7 +91,7 @@ import { Fade, ScaleFade, Slide, SlideFade } from './transitions'; import { List, ListItem, ListIcon } from './list'; import { TypeAheadSearchItem } from './typeahead'; import { Wrap } from './wrap'; -import Flex from './flex'; +import { Flex, Spacer } from './flex'; import Stack from './stack'; import View from './view'; import ZStack from './zstack'; @@ -140,6 +140,7 @@ export default { Fade, FAB, Flex, + Spacer, FormControl, FormControlLabel, FormControlHelperText, From 448c3686755edf99b13a5fd1027463bf7192fe90 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 18:28:11 +0530 Subject: [PATCH 040/172] feat: spacer props resolution --- src/components/primitives/Flex/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/primitives/Flex/index.tsx b/src/components/primitives/Flex/index.tsx index e75842131..a01ce3d1b 100644 --- a/src/components/primitives/Flex/index.tsx +++ b/src/components/primitives/Flex/index.tsx @@ -23,9 +23,7 @@ const Flex = (props: IFlexProps, ref: any) => { return ( { //Spacer Component that adds space between components where it is placed export const Spacer = (props: any) => { - return ; + const { ...resolvedProps } = usePropsResolution('Spacer', props); + + return ; }; export type { IFlexProps }; From 9391bc80aa83668a2781c31c798cd9588fb1f30a Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 18:35:30 +0530 Subject: [PATCH 041/172] fix: added modal pseudo props --- .../composites/AlertDialog/AlertDialog.tsx | 2 +- .../composites/AlertDialog/AlertDialogBody.tsx | 18 ++++++++++++------ src/components/composites/AlertDialog/types.ts | 3 ++- src/components/composites/Modal/Modal.tsx | 10 +++++++--- src/components/composites/Modal/ModalBody.tsx | 11 +++++------ src/components/composites/Modal/types.ts | 13 +++++++++++++ 6 files changed, 40 insertions(+), 17 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialog.tsx b/src/components/composites/AlertDialog/AlertDialog.tsx index eeee385e8..91f90df9a 100644 --- a/src/components/composites/AlertDialog/AlertDialog.tsx +++ b/src/components/composites/AlertDialog/AlertDialog.tsx @@ -25,7 +25,7 @@ const AlertDialog = ( isKeyboardDismissable = true, overlayVisible = true, backdropVisible = true, - animationPreset = 'fade', + animationPreset, ...rest }: IAlertDialogProps, ref: any diff --git a/src/components/composites/AlertDialog/AlertDialogBody.tsx b/src/components/composites/AlertDialog/AlertDialogBody.tsx index 10243c46c..653ce7ae2 100644 --- a/src/components/composites/AlertDialog/AlertDialogBody.tsx +++ b/src/components/composites/AlertDialog/AlertDialogBody.tsx @@ -1,19 +1,25 @@ import React, { memo, forwardRef } from 'react'; import Box, { IBoxProps } from '../../primitives/Box'; import { usePropsResolution } from '../../../hooks'; -import { ScrollView } from 'react-native'; +import { ScrollView, IScrollViewProps } from '../../basic/ScrollView'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const AlertDialogBody = (props: IBoxProps, ref?: any) => { - const newProps = usePropsResolution('AlertDialogBody', props); +const AlertDialogBody = ( + { children, ...props }: IBoxProps & { _scrollview?: IScrollViewProps }, + ref?: any +) => { + const { _scrollview, ...resolvedProps } = usePropsResolution( + 'AlertDialogBody', + props + ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - - - {props.children} + + + {children} ); diff --git a/src/components/composites/AlertDialog/types.ts b/src/components/composites/AlertDialog/types.ts index 51d2d9834..698b9cdeb 100644 --- a/src/components/composites/AlertDialog/types.ts +++ b/src/components/composites/AlertDialog/types.ts @@ -74,7 +74,8 @@ export interface IAlertDialogProps extends IBoxProps { */ _slide?: ISlideProps; /** - * Prop applied to change Animation. + * Sets the animation type + * @default "fade" */ animationPreset?: 'slide' | 'fade'; } diff --git a/src/components/composites/Modal/Modal.tsx b/src/components/composites/Modal/Modal.tsx index 0058ca3df..3baf72e63 100644 --- a/src/components/composites/Modal/Modal.tsx +++ b/src/components/composites/Modal/Modal.tsx @@ -25,8 +25,7 @@ const Modal = ( isKeyboardDismissable = true, overlayVisible = true, backdropVisible = true, - //@ts-ignore - internal purpose only - animationPreset = 'fade', + animationPreset, ...rest }: IModalProps, ref: any @@ -36,6 +35,9 @@ const Modal = ( contentSize, _backdrop, _child, + _backdropFade, + _fade, + _slide, ...resolvedProps } = usePropsResolution('Modal', rest); @@ -89,6 +91,7 @@ const Modal = ( entryDuration={200} in={visible} style={StyleSheet.absoluteFill} + {..._backdropFade} > {overlayVisible && backdropVisible && ( {animationPreset === 'slide' ? ( - + { - const resolvedProps = usePropsResolution('ModalBody', props); + const { _scrollview, ...resolvedProps } = usePropsResolution( + 'ModalBody', + props + ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; diff --git a/src/components/composites/Modal/types.ts b/src/components/composites/Modal/types.ts index 37dac760c..b43b89c28 100644 --- a/src/components/composites/Modal/types.ts +++ b/src/components/composites/Modal/types.ts @@ -5,6 +5,7 @@ import type { MutableRefObject } from 'react'; import type { ResponsiveValue } from '../../../components/types'; import type { ISizes } from '../../../theme/base/sizes'; import type { IScrollViewProps } from '../../basic/ScrollView'; +import type { IFadeProps, ISlideProps } from '../Transitions'; export interface IModalProps extends IBoxProps { /** @@ -65,6 +66,18 @@ export interface IModalProps extends IBoxProps { * @default "fade" */ animationPreset?: 'fade' | 'slide'; + /** + * Props applied on Overlay Animation. + */ + _backdropFade?: IFadeProps; + /** + * Props applied on Child Fade Animation. + */ + _fade?: IFadeProps; + /** + * Props applied on Child Slide Animation. + */ + _slide?: ISlideProps; } export type IModalComponentType = (( From 8370d3fedf2e163073bfe1ff3ed37b2d4f3be263 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 9 Mar 2022 18:35:44 +0530 Subject: [PATCH 042/172] feat: decoupling of skeleton --- src/components/composites/Skeleton/Skeleton.tsx | 2 +- src/components/composites/Skeleton/SkeletonText.tsx | 6 +++--- src/components/composites/Skeleton/types.tsx | 5 +++++ src/theme/components/skeleton.ts | 5 ++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/components/composites/Skeleton/Skeleton.tsx b/src/components/composites/Skeleton/Skeleton.tsx index 2beaba2af..a9782516c 100644 --- a/src/components/composites/Skeleton/Skeleton.tsx +++ b/src/components/composites/Skeleton/Skeleton.tsx @@ -58,7 +58,7 @@ const Skeleton = (props: ISkeletonProps, ref: any) => { return resolvedProps.isLoaded ? ( children ) : ( - + ); diff --git a/src/components/composites/Skeleton/SkeletonText.tsx b/src/components/composites/Skeleton/SkeletonText.tsx index 1c2526292..241aa356e 100644 --- a/src/components/composites/Skeleton/SkeletonText.tsx +++ b/src/components/composites/Skeleton/SkeletonText.tsx @@ -1,6 +1,6 @@ import React, { memo, forwardRef } from 'react'; import { usePropsResolution } from '../../../hooks'; -import { VStack } from '../../primitives/Stack'; +import { Stack } from '../../primitives/Stack'; import Skeleton from './Skeleton'; import type { ISkeletonTextProps } from './types'; @@ -48,9 +48,9 @@ const SkeletonText = ( return isLoaded ? ( children ) : ( - + {computedChildren} - + ); }; diff --git a/src/components/composites/Skeleton/types.tsx b/src/components/composites/Skeleton/types.tsx index 157cc4720..95c88aff4 100644 --- a/src/components/composites/Skeleton/types.tsx +++ b/src/components/composites/Skeleton/types.tsx @@ -61,6 +61,11 @@ export interface ISkeletonTextProps extends IStackProps { * Stying for each line */ _line?: ISkeletonProps; + + /** + * Props to be passed to the Stack used inside. + */ + _stack?: IStackProps; } export type ISkeletonComponentType = (( diff --git a/src/theme/components/skeleton.ts b/src/theme/components/skeleton.ts index d97473879..0c4f77f60 100644 --- a/src/theme/components/skeleton.ts +++ b/src/theme/components/skeleton.ts @@ -5,7 +5,7 @@ export const Skeleton = { baseStyle: (props: Record) => { return { startColor: mode('muted.200', 'muted.600')(props), - endColor: 'transparent', + overflow: 'hidden', fadeDuration: 0.1, speed: 1.0, h: '10', @@ -27,6 +27,9 @@ export const SkeletonText = { h: 3, rounded: 'full', }, + _stack: { + flexDirection: 'column', + }, }; }, defaultProps: { From 21b2cf8b8b97b97c2c185ea67cf3f854aac182b0 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 9 Mar 2022 18:43:02 +0530 Subject: [PATCH 043/172] fix: added endcolor again --- src/theme/components/skeleton.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/theme/components/skeleton.ts b/src/theme/components/skeleton.ts index 0c4f77f60..b0aacc3b2 100644 --- a/src/theme/components/skeleton.ts +++ b/src/theme/components/skeleton.ts @@ -5,6 +5,7 @@ export const Skeleton = { baseStyle: (props: Record) => { return { startColor: mode('muted.200', 'muted.600')(props), + endColor: 'transparent', overflow: 'hidden', fadeDuration: 0.1, speed: 1.0, From 0d2212771eb7487311da38d950b3e1a2ba0c33a1 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 9 Mar 2022 18:48:36 +0530 Subject: [PATCH 044/172] fix: removed _child prop --- src/components/composites/AlertDialog/AlertDialog.tsx | 2 -- src/components/composites/Modal/Modal.tsx | 2 -- src/theme/components/alert-dialog.ts | 2 +- src/theme/components/modal.ts | 2 +- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialog.tsx b/src/components/composites/AlertDialog/AlertDialog.tsx index 91f90df9a..c13630d33 100644 --- a/src/components/composites/AlertDialog/AlertDialog.tsx +++ b/src/components/composites/AlertDialog/AlertDialog.tsx @@ -34,7 +34,6 @@ const AlertDialog = ( const { contentSize, _backdrop, - _child, _backdropFade, _fade, _slide, @@ -55,7 +54,6 @@ const AlertDialog = ( {children} diff --git a/src/components/composites/Modal/Modal.tsx b/src/components/composites/Modal/Modal.tsx index 3baf72e63..5bce88995 100644 --- a/src/components/composites/Modal/Modal.tsx +++ b/src/components/composites/Modal/Modal.tsx @@ -34,7 +34,6 @@ const Modal = ( const { contentSize, _backdrop, - _child, _backdropFade, _fade, _slide, @@ -55,7 +54,6 @@ const Modal = ( {children} diff --git a/src/theme/components/alert-dialog.ts b/src/theme/components/alert-dialog.ts index 6c6bdd30e..d60325eff 100644 --- a/src/theme/components/alert-dialog.ts +++ b/src/theme/components/alert-dialog.ts @@ -45,7 +45,7 @@ export const AlertDialog = { height: '100%', justifyContent: 'center', alignItems: 'center', - _child: { pointerEvents: 'box-none' }, + _web: { pointerEvents: 'box-none' }, }, sizes, defaultProps: { diff --git a/src/theme/components/modal.ts b/src/theme/components/modal.ts index 96ad7ad1d..0f776711d 100644 --- a/src/theme/components/modal.ts +++ b/src/theme/components/modal.ts @@ -45,7 +45,7 @@ export const Modal = { height: '100%', justifyContent: 'center', alignItems: 'center', - _child: { pointerEvents: 'box-none' }, + _web: { pointerEvents: 'box-none' }, }, sizes, defaultProps: { From a7e292dc00c72ec77915f3b1e20bf4271c8ce2b5 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 19:09:42 +0530 Subject: [PATCH 045/172] feat: _astrick pseudo prop --- .../composites/FormControl/FormControlLabel.tsx | 6 ++---- src/theme/components/form-control.ts | 12 ++++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/components/composites/FormControl/FormControlLabel.tsx b/src/components/composites/FormControl/FormControlLabel.tsx index fc7752cfd..25125a18c 100644 --- a/src/components/composites/FormControl/FormControlLabel.tsx +++ b/src/components/composites/FormControl/FormControlLabel.tsx @@ -14,7 +14,7 @@ const FormControlLabel = ( const formControlContext = useFormControlContext(); const combinedProps = combineContextAndProps(formControlContext, props); const _ref = React.useRef(null); - const { astrickColor, ...reslovedProps } = usePropsResolution( + const { _astrick, ...reslovedProps } = usePropsResolution( 'FormControlLabel', combinedProps, { @@ -32,7 +32,7 @@ const FormControlLabel = ( //@ts-ignore accessibilityRole: 'presentation', }} - color={astrickColor} + {..._astrick} > * @@ -51,8 +51,6 @@ const FormControlLabel = ( return ( ) => { return { + flexDirection: 'row', + justifyContent: 'flex-start', _text: { fontSize: 'sm', fontWeight: 'medium', }, - astrickColor: mode('danger.600', 'danger.300')(props), + _astrick: { + color: mode('danger.600', 'danger.300')(props), + }, mb: '2', mr: '3', }; From c20c03bfb8dbfc54e43fa8807850daec5bf242c7 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 19:10:09 +0530 Subject: [PATCH 046/172] feat: decoupled theme --- src/components/composites/FormControl/FormControl.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/composites/FormControl/FormControl.tsx b/src/components/composites/FormControl/FormControl.tsx index e3e4fdd9e..452749872 100644 --- a/src/components/composites/FormControl/FormControl.tsx +++ b/src/components/composites/FormControl/FormControl.tsx @@ -19,7 +19,7 @@ const FormControl = (props: IFormControlProps, ref: any) => { } return ( - + ); }; From 44d831e504c6384647aeae1c4e5ce8ce42fe0874 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 9 Mar 2022 19:17:15 +0530 Subject: [PATCH 047/172] feat: add _astrick typing for form control label --- src/components/composites/FormControl/types.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/composites/FormControl/types.tsx b/src/components/composites/FormControl/types.tsx index cc8cc8610..ae093db35 100644 --- a/src/components/composites/FormControl/types.tsx +++ b/src/components/composites/FormControl/types.tsx @@ -1,4 +1,4 @@ -import type { IBoxProps, IStackProps } from '../../primitives'; +import type { IBoxProps, IStackProps, ITextProps } from '../../primitives'; export interface IFormControlProps extends IBoxProps { /** @@ -37,6 +37,10 @@ export interface IFormControlLabelProps extends IFormControlProps { * Reflects the value of the 'for' content property. */ htmlFor?: string; + /** + * Props applied to astrick text + */ + _astrick?: ITextProps; } export interface IFormControlErrorMessageProps extends IFormControlProps { /** From 31d351c130d1c1875ac09c0741c77963e45a4f20 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Wed, 9 Mar 2022 20:23:26 +0530 Subject: [PATCH 048/172] feat: menu new internal props and overlay export --- src/components/composites/Backdrop/index.tsx | 6 ++-- src/components/composites/Menu/Menu.tsx | 20 ++++++++--- src/components/composites/Menu/MenuGroup.tsx | 2 ++ src/components/composites/Menu/MenuItem.tsx | 4 +-- .../composites/Menu/MenuItemOption.tsx | 33 +++++++++++-------- src/components/composites/Menu/types.ts | 28 ++++++++++++++++ src/components/primitives/Checkbox/types.tsx | 2 +- src/components/primitives/Overlay/Overlay.tsx | 2 +- src/components/primitives/index.ts | 2 +- src/index.tsx | 6 +++- src/theme/components/menu.ts | 17 +++++++++- 11 files changed, 93 insertions(+), 29 deletions(-) diff --git a/src/components/composites/Backdrop/index.tsx b/src/components/composites/Backdrop/index.tsx index 37b077acf..fc94e3acc 100644 --- a/src/components/composites/Backdrop/index.tsx +++ b/src/components/composites/Backdrop/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { memo } from 'react'; import { Pressable, IPressableProps } from '../../primitives/Pressable'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; @@ -22,8 +22,8 @@ const Backdrop = (props: IPressableProps) => { bg={props.bg || 'rgb(0, 0, 0)'} opacity={0.3} {...props} - > + /> ); }; -export default React.memo(Backdrop); +export default memo(Backdrop); diff --git a/src/components/composites/Menu/Menu.tsx b/src/components/composites/Menu/Menu.tsx index cdce6ed28..8f498b48b 100644 --- a/src/components/composites/Menu/Menu.tsx +++ b/src/components/composites/Menu/Menu.tsx @@ -36,7 +36,12 @@ const Menu = ( }, }); - const { transition, ...resolvedProps } = usePropsResolution('Menu', props); + const { + _overlay, + _presenceTransition, + _backdrop, + ...resolvedProps + } = usePropsResolution('Menu', props); const handleOpen = React.useCallback(() => { setIsOpen(true); }, [setIsOpen]); @@ -74,15 +79,20 @@ const Menu = ( return ( <> {updatedTrigger()} - - + + - + diff --git a/src/components/composites/Menu/MenuItem.tsx b/src/components/composites/Menu/MenuItem.tsx index c8d6f8d4d..884631d67 100644 --- a/src/components/composites/Menu/MenuItem.tsx +++ b/src/components/composites/Menu/MenuItem.tsx @@ -9,7 +9,7 @@ import { mergeRefs } from '../../../utils'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const MenuItem = ( - { children, isDisabled, onPress, style, textValue, ...props }: IMenuItemProps, + { children, isDisabled, onPress, textValue, ...props }: IMenuItemProps, ref: any ) => { const { closeOnSelect, onClose } = React.useContext(MenuContext); @@ -47,9 +47,7 @@ const MenuItem = ( {...menuItemProps} {...resolvedProps} ref={mergedRef} - style={style} disabled={isDisabled} - // TouchableHighlight doesn't announce disabled, even if disabled prop is set accessibilityState={{ disabled: isDisabled, }} diff --git a/src/components/composites/Menu/MenuItemOption.tsx b/src/components/composites/Menu/MenuItemOption.tsx index 8b73cb8e9..cb8676729 100644 --- a/src/components/composites/Menu/MenuItemOption.tsx +++ b/src/components/composites/Menu/MenuItemOption.tsx @@ -1,4 +1,4 @@ -import React, { forwardRef, memo } from 'react'; +import React, { forwardRef, memo, useContext } from 'react'; import { CheckIcon } from '../../primitives/Icon/Icons'; import Box from '../../primitives/Box'; import { usePropsResolution } from '../../../hooks/useThemeProps'; @@ -9,22 +9,29 @@ import { useMenuOptionItem } from './useMenu'; import { HStack } from '../../primitives/Stack'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const MenuItemOption = (props: IMenuItemOptionProps, ref: any) => { - const { value, children, onPress, ...resolvedProps } = usePropsResolution( - 'MenuItem', - props - ); - const { values, onChange, type }: IMenuOptionContextProps = React.useContext( +const MenuItemOption = ( + { value, ...props }: IMenuItemOptionProps, + ref: any +) => { + const { values, onChange, type }: IMenuOptionContextProps = useContext( MenuOptionContext ); + const isChecked = values.includes(value); + const menuOptionProps = useMenuOptionItem({ isChecked, type }); + const { + children, + onPress, + _icon, + _stack, + _text, + ...resolvedProps + } = usePropsResolution('MenuItem', props, { isChecked }); + const modifiedOnPress = (e: any) => { onChange(value); onPress && onPress(e); }; - const isChecked = values.includes(value); - const menuOptionProps = useMenuOptionItem({ isChecked, type }); - //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -37,9 +44,9 @@ const MenuItemOption = (props: IMenuItemOptionProps, ref: any) => { onPress={modifiedOnPress} ref={ref} > - - - {children} + + + {children} ); diff --git a/src/components/composites/Menu/types.ts b/src/components/composites/Menu/types.ts index 7b557d911..00ee9cbba 100644 --- a/src/components/composites/Menu/types.ts +++ b/src/components/composites/Menu/types.ts @@ -2,6 +2,10 @@ import type { ITextProps } from '../../primitives/Text'; import type { IBoxProps } from '../../primitives/Box'; import type { IPressableProps } from '../../primitives/Pressable'; import type { MutableRefObject } from 'react'; +import type { IPresenceTransitionProps } from '../Transitions/types'; +import type { IIconProps } from 'src/components/primitives/Icon'; +import type { IStackProps } from 'src/components/primitives/Stack'; +import type { IOverlayProps } from 'src/components/primitives/Overlay'; export interface IMenuProps extends IBoxProps { /** @@ -64,6 +68,18 @@ export interface IMenuProps extends IBoxProps { * @default true */ shouldFlip?: boolean; + /** + * Overlay related props can be passed in _overlay. + */ + _overlay?: IOverlayProps; + /** + * PresenceTransition related props can be passed in _presenceTransition. + */ + _presenceTransition?: IPresenceTransitionProps; + /** + * Backdrop related props can be passed in _backdrop. + */ + _backdrop?: IPressableProps; } export interface IMenuItemProps extends IPressableProps { @@ -90,6 +106,18 @@ export interface IMenuItemOptionProps extends IMenuItemProps { * Value of the Menu Item option. */ value: string | number; + /** + * Stack related props can be passed in _stack. + */ + _stack?: IStackProps; + /** + * Stack related props can be passed in _icon. + */ + _icon?: IIconProps; + /** + * Stack related props can be passed in _stack. + */ + _text?: ITextProps; } export interface IMenuGroupProps { /** diff --git a/src/components/primitives/Checkbox/types.tsx b/src/components/primitives/Checkbox/types.tsx index e817da05e..4b8f115c9 100644 --- a/src/components/primitives/Checkbox/types.tsx +++ b/src/components/primitives/Checkbox/types.tsx @@ -37,10 +37,10 @@ export interface ICheckboxProps extends IBoxProps { * If true, the checkbox will be indeterminate. This only affects the icon shown inside checkbox. */ isIndeterminate?: boolean; + // isFullWidth?: boolean; /** * If true, the checkbox will be disabled. */ - // isFullWidth?: boolean; isDisabled?: boolean; /** * If true, the checkbox is marked as invalid. diff --git a/src/components/primitives/Overlay/Overlay.tsx b/src/components/primitives/Overlay/Overlay.tsx index 2669ccb7a..d3fb6a563 100644 --- a/src/components/primitives/Overlay/Overlay.tsx +++ b/src/components/primitives/Overlay/Overlay.tsx @@ -6,7 +6,7 @@ import { Modal } from 'react-native'; import { useKeyboardDismissable } from '../../../hooks'; import { ExitAnimationContext } from './ExitAnimationContext'; -interface IOverlayProps { +export interface IOverlayProps { isOpen?: boolean; children?: any; // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front. diff --git a/src/components/primitives/index.ts b/src/components/primitives/index.ts index 956e12eff..f33ba3feb 100644 --- a/src/components/primitives/index.ts +++ b/src/components/primitives/index.ts @@ -68,4 +68,4 @@ export { VisuallyHidden } from './VisuallyHidden'; export { default as ZStack } from './ZStack'; export type { IZStackProps } from './ZStack'; -export { Overlay } from './Overlay'; +export { Overlay, IOverlayProps } from './Overlay'; diff --git a/src/index.tsx b/src/index.tsx index 2746f4404..df1ce344f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -171,6 +171,8 @@ import { IStackProps, ITextAreaProps, IZStackProps, + Overlay, + IOverlayProps, } from './components/primitives'; export * from './components/basic'; @@ -223,6 +225,7 @@ export { Container, Divider, Link, + Overlay, Pressable, Progress, Accordion, @@ -310,7 +313,7 @@ export type { IFormControlHelperTextProps, ISwitchProps, IFlexProps, - IWrapProps, + IOverlayProps, IPinInputProps, IPinInputFieldProps, IPressableProps, @@ -353,6 +356,7 @@ export type { ITextFieldProps, IScrollViewProps, IStackProps, + IWrapProps, }; export { StyledProps } from './theme'; diff --git a/src/theme/components/menu.ts b/src/theme/components/menu.ts index 1bcdb791e..dd209a38f 100644 --- a/src/theme/components/menu.ts +++ b/src/theme/components/menu.ts @@ -8,7 +8,7 @@ function baseStyle(props: Record) { borderWidth: 1, borderColor: mode(`coolGray.200`, `gray.600`)(props), borderRadius: 'sm', - transition: { + _presenceTransition: { initial: { opacity: 0, translateY: -10 }, animate: { opacity: 1, @@ -18,6 +18,10 @@ function baseStyle(props: Record) { exit: { opacity: 0, translateY: -10, transition: { duration: 150 } }, style: StyleSheet.absoluteFill, }, + _overlay: {}, + _backdrop: { + bg: 'transparent', + }, }; } @@ -41,6 +45,11 @@ export const MenuItem = { px: 3, py: 2, outlineWidth: Platform.OS === 'web' ? 0 : undefined, + _stack: { + alignItems: 'center', + px: 3, + space: 3, + }, _disabled: { _text: { color: mode('gray.400', 'gray.400')(props), @@ -55,6 +64,12 @@ export const MenuItem = { _icon: { size: 4, color: mode('gray.500', 'gray.100')(props), + opacity: 0, + }, + _checked: { + _icon: { + opacity: 1, + }, }, }), defaultProps: {}, From 60c1031d232c2662716f6811f6e49e8d98975189 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Wed, 9 Mar 2022 21:08:08 +0530 Subject: [PATCH 049/172] fix: popover fixes and theme sepration --- .../composites/Popover/PopoverArrow.tsx | 2 +- .../composites/Popover/PopoverBody.tsx | 11 ++++++----- .../composites/Popover/PopoverCloseButton.tsx | 14 ++++++-------- .../composites/Popover/PopoverContent.tsx | 1 - .../composites/Popover/PopoverHeader.tsx | 17 ++++------------- src/components/composites/Popper/Popper.tsx | 8 ++++---- src/theme/components/popover.ts | 3 +++ 7 files changed, 24 insertions(+), 32 deletions(-) diff --git a/src/components/composites/Popover/PopoverArrow.tsx b/src/components/composites/Popover/PopoverArrow.tsx index d932443fc..7c1d2d0f0 100644 --- a/src/components/composites/Popover/PopoverArrow.tsx +++ b/src/components/composites/Popover/PopoverArrow.tsx @@ -10,7 +10,7 @@ const PopoverArrow = React.forwardRef((props: IBoxProps, ref: any) => { if (useHasResponsiveProps(props)) { return null; } - return ; + return ; }); PopoverArrow.displayName = 'PopperArrow'; diff --git a/src/components/composites/Popover/PopoverBody.tsx b/src/components/composites/Popover/PopoverBody.tsx index 30cf5fe81..641e0e21c 100644 --- a/src/components/composites/Popover/PopoverBody.tsx +++ b/src/components/composites/Popover/PopoverBody.tsx @@ -1,24 +1,25 @@ import { usePropsResolution } from '../../../hooks'; -import React from 'react'; +import React, { useContext, memo, forwardRef, useEffect } from 'react'; import { default as Box, IBoxProps } from '../../primitives/Box'; import { PopoverContext } from './PopoverContext'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const PopoverBody = (props: IBoxProps, ref?: any) => { const resolvedProps = usePropsResolution('PopoverBody', props); - const { setBodyMounted, bodyId } = React.useContext(PopoverContext); + const { setBodyMounted, bodyId } = useContext(PopoverContext); - React.useEffect(() => { + useEffect(() => { setBodyMounted(true); return () => { setBodyMounted(false); }; }, [setBodyMounted]); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - return ; + return ; }; -export default React.memo(React.forwardRef(PopoverBody)); +export default memo(forwardRef(PopoverBody)); diff --git a/src/components/composites/Popover/PopoverCloseButton.tsx b/src/components/composites/Popover/PopoverCloseButton.tsx index f0d59582a..0b5467d87 100644 --- a/src/components/composites/Popover/PopoverCloseButton.tsx +++ b/src/components/composites/Popover/PopoverCloseButton.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { usePropsResolution } from '../../../hooks'; -import Box from '../../primitives/Box'; import { default as IconButton, IIconButtonProps } from '../IconButton'; import { CloseIcon } from '../../primitives/Icon/Icons'; import { PopoverContext } from './PopoverContext'; @@ -20,13 +19,12 @@ const PopoverCloseButton = ( return null; } return ( - - } - onPress={onClose} - /> - + } + onPress={onClose} + /> ); }; diff --git a/src/components/composites/Popover/PopoverContent.tsx b/src/components/composites/Popover/PopoverContent.tsx index 387e5bb2f..0fc76a302 100644 --- a/src/components/composites/Popover/PopoverContent.tsx +++ b/src/components/composites/Popover/PopoverContent.tsx @@ -80,7 +80,6 @@ export const PopoverContent = React.forwardRef( nativeID={popoverContentId} {...accessibilityProps} {...resolvedProps} - {...props} ref={ref} > {arrowElement} diff --git a/src/components/composites/Popover/PopoverHeader.tsx b/src/components/composites/Popover/PopoverHeader.tsx index 436ca672e..f9e35e03d 100644 --- a/src/components/composites/Popover/PopoverHeader.tsx +++ b/src/components/composites/Popover/PopoverHeader.tsx @@ -1,5 +1,4 @@ -import React, { memo, forwardRef } from 'react'; -import { Platform } from 'react-native'; +import React, { memo, forwardRef, useEffect, useContext } from 'react'; import { usePropsResolution } from '../../../hooks'; import { default as Box, IBoxProps } from '../../primitives/Box'; import { PopoverContext } from './PopoverContext'; @@ -7,9 +6,9 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const PopoverHeader = (props: IBoxProps, ref?: any) => { const resolvedProps = usePropsResolution('PopoverHeader', props); - const { setHeaderMounted, headerId } = React.useContext(PopoverContext); + const { setHeaderMounted, headerId } = useContext(PopoverContext); - React.useEffect(() => { + useEffect(() => { setHeaderMounted(true); return () => { setHeaderMounted(false); @@ -19,15 +18,7 @@ const PopoverHeader = (props: IBoxProps, ref?: any) => { if (useHasResponsiveProps(props)) { return null; } - return ( - - ); + return ; }; export default memo(forwardRef(PopoverHeader)); diff --git a/src/components/composites/Popper/Popper.tsx b/src/components/composites/Popper/Popper.tsx index 58c83507c..b498d8b81 100644 --- a/src/components/composites/Popper/Popper.tsx +++ b/src/components/composites/Popper/Popper.tsx @@ -71,7 +71,7 @@ const PopperContent = React.forwardRef( shouldOverlapWithTrigger, }); - let restElements: React.ReactNode[] = []; + const restElements: React.ReactNode[] = []; let arrowElement: React.ReactElement | null = null; React.useEffect(() => { @@ -182,7 +182,7 @@ const PopperArrow = React.forwardRef( [actualPlacement, height, width] ); - let triangleStyle: ViewStyle = React.useMemo( + const triangleStyle: ViewStyle = React.useMemo( () => ({ position: 'absolute', width, @@ -191,7 +191,7 @@ const PopperArrow = React.forwardRef( [width, height] ); - let arrowStyles = React.useMemo( + const arrowStyles = React.useMemo( () => [arrowProps.style, triangleStyle, additionalStyles, style], [triangleStyle, additionalStyles, arrowProps.style, style] ); @@ -210,7 +210,7 @@ const PopperArrow = React.forwardRef( ); const getArrowStyles = (props: IArrowStyles) => { - let additionalStyles: any = { + const additionalStyles: any = { transform: [], }; diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index d3c2a0116..c3f82c6cf 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -38,6 +38,9 @@ export const PopoverContent = { export const PopoverHeader = { baseStyle: (props: any) => ({ + _web: { + accessibilityRole: 'header', + }, py: '4', px: '3', borderBottomWidth: '1', From c695f58b172cb4edbd3b6dd834acb67166505758 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Thu, 10 Mar 2022 16:06:45 +0530 Subject: [PATCH 050/172] fix: _text in stack was not resolving --- src/components/primitives/Checkbox/Checkbox.tsx | 7 +++---- src/components/primitives/Checkbox/Checkbox.web.tsx | 12 ++++++------ src/components/primitives/Radio/Radio.tsx | 2 +- src/components/primitives/Radio/Radio.web.tsx | 2 +- src/theme/components/checkbox.ts | 8 ++++++++ src/theme/components/radio.ts | 1 - 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/components/primitives/Checkbox/Checkbox.tsx b/src/components/primitives/Checkbox/Checkbox.tsx index 5202cd24a..ab239ecf8 100644 --- a/src/components/primitives/Checkbox/Checkbox.tsx +++ b/src/components/primitives/Checkbox/Checkbox.tsx @@ -19,6 +19,7 @@ import { } from '../../primitives/Pressable/Pressable'; import SizedIcon from './SizedIcon'; import { Stack } from '../Stack'; +import { wrapStringChild } from '../../../utils/wrapStringChild'; const Checkbox = ( { @@ -115,6 +116,7 @@ const CheckboxComponent = React.memo( _interactionBox, _icon, _stack, + _text, onPress, onPressIn, onPressOut, @@ -143,9 +145,6 @@ const CheckboxComponent = React.memo( ...stylingProps.layout, ...stylingProps.flexbox, ...stylingProps.position, - ...stylingProps.background, - ...stylingProps.padding, - ...stylingProps.border, '_text', ]); @@ -196,7 +195,7 @@ const CheckboxComponent = React.memo(
{/* Label */} - {combinedProps.children} + {wrapStringChild(combinedProps.children, _text)}
); diff --git a/src/components/primitives/Checkbox/Checkbox.web.tsx b/src/components/primitives/Checkbox/Checkbox.web.tsx index 44de80fdc..6a2efa416 100644 --- a/src/components/primitives/Checkbox/Checkbox.web.tsx +++ b/src/components/primitives/Checkbox/Checkbox.web.tsx @@ -16,6 +16,7 @@ import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { combineContextAndProps } from '../../../utils'; import SizedIcon from './SizedIcon'; import { Stack } from '../Stack'; +import { wrapStringChild } from '../../../utils/wrapStringChild'; const Checkbox = ( { @@ -121,6 +122,7 @@ const CheckboxComponent = React.memo( _interactionBox, _icon, _stack, + _text, ...resolvedProps } = usePropsResolution('Checkbox', combinedProps, { isInvalid, @@ -137,15 +139,11 @@ const CheckboxComponent = React.memo( ...stylingProps.layout, ...stylingProps.flexbox, ...stylingProps.position, - ...stylingProps.background, - ...stylingProps.padding, - ...stylingProps.border, '_text', ]); - const component = React.useMemo(() => { return ( - +
{/* Interaction Box */}
{/* Label */} - {resolvedProps?.children} + {/* {resolvedProps?.children} */} + {wrapStringChild(resolvedProps?.children, _text)}
); }, [ _icon, _stack, + _text, _interactionBox, icon, isChecked, diff --git a/src/components/primitives/Radio/Radio.tsx b/src/components/primitives/Radio/Radio.tsx index df05b4e2f..3796bc753 100644 --- a/src/components/primitives/Radio/Radio.tsx +++ b/src/components/primitives/Radio/Radio.tsx @@ -130,7 +130,7 @@ const RadioComponent = memo( {icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( - + )}
diff --git a/src/components/primitives/Radio/Radio.web.tsx b/src/components/primitives/Radio/Radio.web.tsx index 6eff48cee..72ad75720 100644 --- a/src/components/primitives/Radio/Radio.web.tsx +++ b/src/components/primitives/Radio/Radio.web.tsx @@ -71,7 +71,7 @@ const RadioComponent = memo( {icon && sizedIcon && isChecked ? ( sizedIcon() ) : ( - + )}
diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index e79845814..f520b1aea 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -14,6 +14,14 @@ const baseStyle = (props: Record) => { _web: { cursor: 'pointer', }, + _stack: { + direction: 'row', + alignItems: 'center', + space: 2, + _web: { + cursor: props.isDisabled ? 'not-allowed' : 'pointer', + }, + }, _text: { ml: 2, color: mode('darkText', 'lightText')(props), diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index e79af3d1b..0c0303340 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -29,7 +29,6 @@ const baseStyle = (props: Record) => { }, _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color - opacity: props.isChecked ? 1 : 0, }, _hover: { _interactionBox: { From b5676d18e9be13ed3dfcd4f1742c5f0424342218 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Thu, 10 Mar 2022 17:41:23 +0530 Subject: [PATCH 051/172] feat: api improvement avatar, added vertical avatargroup support --- .../composites/Avatar/AvatarGroup.tsx | 2 +- src/components/composites/Avatar/Avatar.tsx | 24 +++------ src/components/composites/Avatar/Badge.tsx | 14 +---- src/components/composites/Avatar/Group.tsx | 53 +++++++++++-------- src/components/composites/Avatar/types.tsx | 19 +++++++ src/theme/components/avatar-badge.ts | 4 ++ src/theme/components/avatar-group.ts | 20 +++++-- src/theme/components/avatar.ts | 11 ++++ 8 files changed, 89 insertions(+), 58 deletions(-) diff --git a/example/storybook/stories/components/composites/Avatar/AvatarGroup.tsx b/example/storybook/stories/components/composites/Avatar/AvatarGroup.tsx index 9817b236b..56fdc11b7 100644 --- a/example/storybook/stories/components/composites/Avatar/AvatarGroup.tsx +++ b/example/storybook/stories/components/composites/Avatar/AvatarGroup.tsx @@ -4,7 +4,7 @@ import { Avatar, Center } from 'native-base'; export const Example = () => { return (
- + { const [error, setError] = React.useState(false); - const { _text, source, style, ...resolvedProps } = usePropsResolution( + const { _text, _image, source, ...resolvedProps } = usePropsResolution( 'Avatar', props ); @@ -14,42 +14,30 @@ const Avatar = ({ children, ...props }: IAvatarProps, ref: any) => { let Badge = <>; const remainingChildren: JSX.Element[] = []; // Pop Badge from children - React.Children.map(children, (child, key) => { + React.Children.map(children, (child) => { if ( typeof child?.type === 'object' && child?.type.displayName === 'AvatarBadge' ) { Badge = child; } else { - remainingChildren.push( - typeof child === 'string' || typeof child === 'number' ? ( - - {child} - - ) : ( - child - ) - ); + remainingChildren.push(child); } }); - const imageFitStyle: any = { height: '100%', width: '100%' }; //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - + {source && !error ? ( {'--'} { setError(true); }} + {..._image} ref={ref} /> ) : ( diff --git a/src/components/composites/Avatar/Badge.tsx b/src/components/composites/Avatar/Badge.tsx index 1450b2e1b..71740a2ac 100644 --- a/src/components/composites/Avatar/Badge.tsx +++ b/src/components/composites/Avatar/Badge.tsx @@ -6,22 +6,12 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const AvatarBadge = memo( forwardRef((props: IAvatarBadgeProps, ref?: any) => { - const { boxSize, ...newProps } = usePropsResolution('AvatarBadge', props); + const resolvedProps = usePropsResolution('AvatarBadge', props); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - return ( - - ); + return ; }) ); diff --git a/src/components/composites/Avatar/Group.tsx b/src/components/composites/Avatar/Group.tsx index ecf89fbeb..f8ffb1ed1 100644 --- a/src/components/composites/Avatar/Group.tsx +++ b/src/components/composites/Avatar/Group.tsx @@ -1,5 +1,5 @@ import React, { memo, forwardRef } from 'react'; -import Flex from '../../primitives/Flex'; +import Box from '../../primitives/Box'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import isNil from 'lodash.isnil'; import type { IAvatarGroupProps } from './types'; @@ -12,8 +12,9 @@ const getAvatarGroupChildren = ( children?: JSX.Element[] | JSX.Element, space?: number, max?: number, - plusAvatarBg?: string, - props?: any + _hiddenAvatarPlaceholder?: Object, + _avatar?: any, + isVertical?: Boolean ) => { let childrenArray: any = React.Children.toArray(children); let plusAvatars: number = 0; @@ -22,12 +23,13 @@ const getAvatarGroupChildren = ( childrenArray = childrenArray.slice(0, max); } const trailingChildren = childrenArray.slice(1); - const defaultProps = { - ml: space, + const spacingProps = { + ml: isVertical ? 0 : space, + mt: isVertical ? space : 0, }; return [ plusAvatars > 0 ? ( - + {'+ ' + plusAvatars} ) : null, @@ -38,8 +40,8 @@ const getAvatarGroupChildren = ( child, { key: `avatar-group-child-${index}`, - ...props, - ...defaultProps, + ..._avatar, + ...spacingProps, ...child.props, }, child.props.children @@ -49,7 +51,7 @@ const getAvatarGroupChildren = ( React.cloneElement( childrenArray[0], { - ...props, + ..._avatar, ...childrenArray[0].props, }, childrenArray[0].props.children @@ -57,24 +59,31 @@ const getAvatarGroupChildren = ( ]; }; -const AvatarGroup = (allProps: IAvatarGroupProps, ref: any) => { - const { children, ...props } = allProps; - const { borderColor, borderWidth, bg, space, max } = usePropsResolution( - 'AvatarGroup', - props - ); +const AvatarGroup = ({ children, ...props }: IAvatarGroupProps, ref: any) => { + const { + max, + _avatar, + _hiddenAvatarPlaceholder, + isVertical, + space, + ...resolvedProps + } = usePropsResolution('AvatarGroup', props); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - - {getAvatarGroupChildren(children, space, max, bg, { - borderColor, - borderWidth, - ...props, - })} - + + {getAvatarGroupChildren( + children, + space, + max, + _hiddenAvatarPlaceholder, + _avatar, + isVertical + )} + ); }; diff --git a/src/components/composites/Avatar/types.tsx b/src/components/composites/Avatar/types.tsx index ae94ce69a..0b9769293 100644 --- a/src/components/composites/Avatar/types.tsx +++ b/src/components/composites/Avatar/types.tsx @@ -1,4 +1,5 @@ import type { IBoxProps } from '../../primitives/Box'; +import type { IImageProps } from '../../primitives/Image'; import type { ImageSourcePropType } from 'react-native'; import type { MutableRefObject } from 'react'; import type { ResponsiveValue } from '../../../components/types'; @@ -14,6 +15,10 @@ export interface IAvatarProps extends IBoxProps { * @default md */ size?: ResponsiveValue; + /** + * For providing props to Image component inside Avatar + */ + _image?: IImageProps; /** * ref to be attached to Avatar wrapper */ @@ -33,8 +38,22 @@ export interface IAvatarGroupProps extends IAvatarProps { space?: number; /** * The max number of avatar. + * @default -4 */ max?: number; + /** + * Make Avatar.Group render in vertical direction. + * @default false + */ + isVertical?: Boolean; + /** + * For providing props to all Avatar in that Avatar.Group + */ + _avatar?: IAvatarProps; + /** + * For providing props to the Avatar that shows the count of remaining Avatars that are not visible when max is applied. + */ + _hiddenAvatarPlaceholder?: IAvatarProps; } export type IAvatarComponentType = (( diff --git a/src/theme/components/avatar-badge.ts b/src/theme/components/avatar-badge.ts index e302b2bec..ef825e05c 100644 --- a/src/theme/components/avatar-badge.ts +++ b/src/theme/components/avatar-badge.ts @@ -6,6 +6,10 @@ function baseStyle(props: Record) { borderWidth: 2, borderColor: mode('light.50', 'gray.800')(props), bg: mode('gray.600', 'light.100')(props), + size: 3, + position: 'absolute', + right: 0, + bottom: 0, }; } diff --git a/src/theme/components/avatar-group.ts b/src/theme/components/avatar-group.ts index 31cd4b39f..8a8d65f63 100644 --- a/src/theme/components/avatar-group.ts +++ b/src/theme/components/avatar-group.ts @@ -1,12 +1,22 @@ import { mode } from '../tools'; -function baseStyle(props: Record) { +function baseStyle({ isVertical, ...props }: Record) { return { - borderWidth: 2, - borderColor: mode('gray.50', 'gray.800')(props), - bg: mode('gray.600', 'gray.100')(props), + flexDirection: isVertical ? 'column-reverse' : 'row-reverse', space: -4, + _avatar: { + borderColor: mode('gray.50', 'gray.800')(props), + borderWidth: 2, + }, + _hiddenAvatarPlaceholder: { + bg: mode('gray.600', 'gray.100')(props), + }, }; } -export default { baseStyle }; +export default { + baseStyle, + defaultProps: { + isVertical: false, + }, +}; diff --git a/src/theme/components/avatar.ts b/src/theme/components/avatar.ts index 96f10e3f6..c59885f42 100644 --- a/src/theme/components/avatar.ts +++ b/src/theme/components/avatar.ts @@ -16,6 +16,17 @@ const baseStyle = (props: Record) => { _text: { fontWeight: 600, }, + _image: { + borderRadius: 'full', + alt: '--', + _alt: { + fontWeight: 600, + }, + style: { + height: '100%', + width: '100%', + }, + }, }; }; From 48d4f2dc22ca8585c9636782c4190981792dbed7 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Thu, 10 Mar 2022 17:46:41 +0530 Subject: [PATCH 052/172] chore: update _text destructure remover --- src/components/composites/Avatar/Avatar.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/composites/Avatar/Avatar.tsx b/src/components/composites/Avatar/Avatar.tsx index 0292e5cc7..0a06d06cf 100644 --- a/src/components/composites/Avatar/Avatar.tsx +++ b/src/components/composites/Avatar/Avatar.tsx @@ -6,7 +6,7 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const Avatar = ({ children, ...props }: IAvatarProps, ref: any) => { const [error, setError] = React.useState(false); - const { _text, _image, source, ...resolvedProps } = usePropsResolution( + const { _image, source, ...resolvedProps } = usePropsResolution( 'Avatar', props ); @@ -30,7 +30,7 @@ const Avatar = ({ children, ...props }: IAvatarProps, ref: any) => { return null; } return ( - + {source && !error ? ( Date: Thu, 10 Mar 2022 18:03:38 +0530 Subject: [PATCH 053/172] internal psuedo props for input --- src/components/primitives/Input/Input.tsx | 5 ++--- src/components/primitives/Input/InputBase.tsx | 4 ++-- src/components/primitives/Input/types.ts | 9 +++++++++ src/theme/components/input.ts | 7 ++++++- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/components/primitives/Input/Input.tsx b/src/components/primitives/Input/Input.tsx index 72866f3cd..5da5706d1 100644 --- a/src/components/primitives/Input/Input.tsx +++ b/src/components/primitives/Input/Input.tsx @@ -45,6 +45,7 @@ const Input = ( onBlur, wrapperRef, _stack, + _complexInputBase, ...resolvedProps } = usePropsResolution( 'Input', @@ -90,12 +91,10 @@ const Input = ( leftElement={leftElement} rightElement={rightElement} inputProps={inputProps} - bg="transparent" {...baseInputProps} - flex={1} + {..._complexInputBase} disableFocusHandling ref={ref} - variant="unstyled" onFocus={(e) => { handleFocus(true, onFocus ? () => onFocus(e) : () => {}); }} diff --git a/src/components/primitives/Input/InputBase.tsx b/src/components/primitives/Input/InputBase.tsx index aea5899a5..f42f1d541 100644 --- a/src/components/primitives/Input/InputBase.tsx +++ b/src/components/primitives/Input/InputBase.tsx @@ -66,7 +66,7 @@ const InputBase = ( fontFamily, fontWeight, fontStyle, - webInputBase, + _webInputBase, ...resolvedProps } = usePropsResolution( 'Input', @@ -139,7 +139,7 @@ const InputBase = ( } : {})} ref={mergeRefs([ref, _ref, wrapperRef])} - style={Platform.OS === 'web' ? webInputBase : {}} + style={Platform.OS === 'web' ? _webInputBase : {}} /> ); }; diff --git a/src/components/primitives/Input/types.ts b/src/components/primitives/Input/types.ts index 8dccacd89..505928a1e 100644 --- a/src/components/primitives/Input/types.ts +++ b/src/components/primitives/Input/types.ts @@ -95,6 +95,15 @@ export interface IInputProps // These porps are currently on hold // label?: string; // _label?: ITextProps; + + /** + * props are passed to InputBase component + */ + _webInputBase?: {}; + /** + * props are used when Input is wrapped inside a Box + */ + _complexInputBase?: {}; } export interface IInputGroupProps extends IBoxProps { diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 03d9d6c59..218f56c7a 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -50,9 +50,14 @@ const baseStyle = (props: Record) => { overflow: 'auto', lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height }, - webInputBase: { + _webInputBase: { outline: 'none', }, + _complexInputBase: { + bg: 'transparent', + flex: 1, + variant: 'unstyled', + }, _stack: { flexDirection: 'row', alignItems: 'center', From c0a026ba2ffbe30bc275951f70d071db3110e160 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Fri, 11 Mar 2022 11:49:56 +0530 Subject: [PATCH 054/172] fix: minor fixes --- src/components/composites/Menu/MenuItemOption.tsx | 2 +- src/components/composites/Menu/types.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/composites/Menu/MenuItemOption.tsx b/src/components/composites/Menu/MenuItemOption.tsx index cb8676729..79773c487 100644 --- a/src/components/composites/Menu/MenuItemOption.tsx +++ b/src/components/composites/Menu/MenuItemOption.tsx @@ -46,7 +46,7 @@ const MenuItemOption = ( > - {children} + {children} ); diff --git a/src/components/composites/Menu/types.ts b/src/components/composites/Menu/types.ts index 00ee9cbba..356f35d0e 100644 --- a/src/components/composites/Menu/types.ts +++ b/src/components/composites/Menu/types.ts @@ -111,11 +111,11 @@ export interface IMenuItemOptionProps extends IMenuItemProps { */ _stack?: IStackProps; /** - * Stack related props can be passed in _icon. + * Icon related props can be passed in _icon. */ _icon?: IIconProps; /** - * Stack related props can be passed in _stack. + * Text related props can be passed in _text. */ _text?: ITextProps; } From 0ca7971e72e8f8586415559ed2388b5ab6128a7b Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Fri, 11 Mar 2022 11:57:14 +0530 Subject: [PATCH 055/172] fix: spreading _stack --- src/components/composites/Skeleton/SkeletonText.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/composites/Skeleton/SkeletonText.tsx b/src/components/composites/Skeleton/SkeletonText.tsx index 241aa356e..75a0c1f13 100644 --- a/src/components/composites/Skeleton/SkeletonText.tsx +++ b/src/components/composites/Skeleton/SkeletonText.tsx @@ -17,6 +17,7 @@ const SkeletonText = ( lines, isLoaded, _line, + _stack, ...resolvedProps } = usePropsResolution('SkeletonText', props); @@ -48,7 +49,7 @@ const SkeletonText = ( return isLoaded ? ( children ) : ( - + {computedChildren} ); From 53d5e213d6e04a5a78baea729082682701b84477 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Fri, 11 Mar 2022 14:47:40 +0530 Subject: [PATCH 056/172] fix: replaced unstyledSelecWebtStyles with _webSelect --- src/components/primitives/Select/Select.tsx | 4 ++-- src/theme/components/select.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/primitives/Select/Select.tsx b/src/components/primitives/Select/Select.tsx index 4cb715d71..bf901b37b 100644 --- a/src/components/primitives/Select/Select.tsx +++ b/src/components/primitives/Select/Select.tsx @@ -69,7 +69,7 @@ const Select = ( customDropdownIconProps, _actionSheetContent, _actionSheetBody, - unstyledSelecWebtStyles, + _webSelect, ...resolvedProps } = usePropsResolution( 'Select', @@ -179,7 +179,7 @@ const Select = ( {...hoverProps} ref={mergeRefs([ref, _ref])} //@ts-ignore - style={unstyledSelecWebtStyles} + style={_webSelect} onChange={(e) => { setValue(e.target.value); }} diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index 0e7d0b063..6ef5b7519 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -2,7 +2,7 @@ import { mode } from '../tools'; export const Select = { baseStyle: (props: Record) => { return { - unstyledSelecWebtStyles: { + _webSelect: { appearance: 'none', WebkitAppearance: 'none', MozAppearance: 'none', From 001ef7ff345d5b5cb0faaf79197f189d9e4e601a Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Fri, 11 Mar 2022 14:59:56 +0530 Subject: [PATCH 057/172] fix: moved duration and overlay props to theme --- .../composites/AlertDialog/AlertDialog.tsx | 18 +++--------------- src/components/composites/Modal/Modal.tsx | 18 +++--------------- src/theme/components/alert-dialog.ts | 3 +++ src/theme/components/modal.ts | 3 +++ 4 files changed, 12 insertions(+), 30 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialog.tsx b/src/components/composites/AlertDialog/AlertDialog.tsx index c13630d33..79913a1f4 100644 --- a/src/components/composites/AlertDialog/AlertDialog.tsx +++ b/src/components/composites/AlertDialog/AlertDialog.tsx @@ -79,13 +79,7 @@ const AlertDialog = ( finalFocusRef, }} > - + {overlayVisible && backdropVisible && ( { @@ -96,7 +90,7 @@ const AlertDialog = ( )} {animationPreset === 'slide' ? ( - + ) : ( - + - + {overlayVisible && backdropVisible && ( { @@ -101,7 +95,7 @@ const Modal = ( )} {animationPreset === 'slide' ? ( - + ) : ( - + Date: Fri, 11 Mar 2022 15:12:11 +0530 Subject: [PATCH 058/172] fix: add sizes --- src/theme/components/circle.ts | 35 ++++++++++++++++++++++++++++------ src/theme/components/square.ts | 35 ++++++++++++++++++++++++++++------ 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/src/theme/components/circle.ts b/src/theme/components/circle.ts index d722b73ed..bb9adb345 100644 --- a/src/theme/components/circle.ts +++ b/src/theme/components/circle.ts @@ -1,14 +1,37 @@ -import type { Dict } from './../tools'; +const sizes = { + 'xs': { + height: 10, + width: 10, + }, + 'sm': { + height: 12, + width: 12, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 24, + width: 24, + }, + 'xl': { + height: 32, + width: 32, + }, + '2xl': { + height: 40, + width: 40, + }, +}; -const baseStyle = (props: Dict) => ({ +const baseStyle = { rounded: 'full', alignItems: 'center', justifyContent: 'center', - size: props?.size, - height: props?.height, - width: props?.width, -}); +}; export default { baseStyle, + sizes, }; diff --git a/src/theme/components/square.ts b/src/theme/components/square.ts index eba78e2c4..938b84dbb 100644 --- a/src/theme/components/square.ts +++ b/src/theme/components/square.ts @@ -1,13 +1,36 @@ -import type { Dict } from './../tools'; +const sizes = { + 'xs': { + height: 10, + width: 10, + }, + 'sm': { + height: 12, + width: 12, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 24, + width: 24, + }, + 'xl': { + height: 32, + width: 32, + }, + '2xl': { + height: 40, + width: 40, + }, +}; -const baseStyle = (props: Dict) => ({ +const baseStyle = { alignItems: 'center', justifyContent: 'center', - size: props?.size, - height: props?.height, - width: props?.width, -}); +}; export default { baseStyle, + sizes, }; From 047a8bb856b1448c79e482f6b6beedb14a8348d0 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Fri, 11 Mar 2022 15:13:22 +0530 Subject: [PATCH 059/172] fix: remove destructring resolvedProps --- src/components/composites/Center/Circle.tsx | 2 +- src/components/composites/Center/Square.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/composites/Center/Circle.tsx b/src/components/composites/Center/Circle.tsx index 4d2b64a20..1221c0f91 100644 --- a/src/components/composites/Center/Circle.tsx +++ b/src/components/composites/Center/Circle.tsx @@ -5,7 +5,7 @@ import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const Circle = (props: ICircleProps, ref: any) => { - const { ...resolvedProps } = usePropsResolution('Circle', props); + const resolvedProps = usePropsResolution('Circle', props); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { diff --git a/src/components/composites/Center/Square.tsx b/src/components/composites/Center/Square.tsx index 62635eb38..22ac2ace8 100644 --- a/src/components/composites/Center/Square.tsx +++ b/src/components/composites/Center/Square.tsx @@ -5,7 +5,7 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { usePropsResolution } from '../../../hooks/useThemeProps'; const Square = (props: ISquareProps) => { - const { ...resolvedProps } = usePropsResolution('Square', props); + const resolvedProps = usePropsResolution('Square', props); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { From cdc84de3ea0b4ce6e6250753f157367e9c68363b Mon Sep 17 00:00:00 2001 From: amars29 Date: Fri, 11 Mar 2022 15:48:59 +0530 Subject: [PATCH 060/172] feat: adding pesudo internal Props in Slider --- src/components/primitives/Slider/Slider.tsx | 8 ++------ .../primitives/Slider/SliderTrack.tsx | 5 +---- src/components/primitives/Slider/types.tsx | 2 ++ src/theme/components/slider.ts | 19 +++++++++++++++---- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/components/primitives/Slider/Slider.tsx b/src/components/primitives/Slider/Slider.tsx index 9b05b4788..32ad37798 100644 --- a/src/components/primitives/Slider/Slider.tsx +++ b/src/components/primitives/Slider/Slider.tsx @@ -47,7 +47,7 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { }, }); - const resolvedProps = usePropsResolution('Slider', props, { + const { _wrap, ...resolvedProps } = usePropsResolution('Slider', props, { isDisabled, isReadOnly, }); @@ -58,10 +58,6 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { trackLayout ); - const wrapperStyle = { - height: props.orientation === 'vertical' ? '100%' : undefined, - width: props.orientation !== 'vertical' ? '100%' : undefined, - }; const contextValue = React.useMemo(() => { return { trackLayout, @@ -97,7 +93,7 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { return ( - + {React.Children.map(props.children, (child, index) => { if (child.displayName === 'SliderThumb') { return React.cloneElement(child as React.ReactElement, { diff --git a/src/components/primitives/Slider/SliderTrack.tsx b/src/components/primitives/Slider/SliderTrack.tsx index b1620feb8..91b94e442 100644 --- a/src/components/primitives/Slider/SliderTrack.tsx +++ b/src/components/primitives/Slider/SliderTrack.tsx @@ -48,10 +48,7 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { ref={ref} {...trackProps} {...trackStyle} - paddingY={!isVertical ? '3' : undefined} - paddingX={isVertical ? '3' : undefined} - alignItems={_wrap.alignItems} - justifyContent={_wrap.justifyContent} + {..._wrap} > {children} diff --git a/src/components/primitives/Slider/types.tsx b/src/components/primitives/Slider/types.tsx index fb004a596..89fdd00cb 100644 --- a/src/components/primitives/Slider/types.tsx +++ b/src/components/primitives/Slider/types.tsx @@ -50,6 +50,8 @@ export interface ISliderProps extends IBoxProps { _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; + /** Wrapper style for SliderTrack */ + _wrap?: {}; } export interface ISliderTrackProps extends IBoxProps { diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index 88750fe5c..d2c01da0d 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -6,7 +6,12 @@ export const SliderTrack = { bg: `${simplifiedColorScheme}.100`, borderRadius: 'lg', overflow: 'hidden', - _wrap: { alignItems: 'center', justifyContent: 'center' }, + _wrap: { + alignItems: 'center', + justifyContent: 'center', + paddingY: props.orientation !== 'vertical' ? '3' : undefined, + paddingX: props.orientation === 'vertical' ? '3' : undefined, + }, }; }, }; @@ -47,9 +52,15 @@ const sizes = { }; export const Slider = { - baseStyle: { - alignItems: 'center', - justifyContent: 'center', + baseStyle: (props: any) => { + return { + alignItems: 'center', + justifyContent: 'center', + _wrap: { + height: props.orientation === 'vertical' ? '100%' : undefined, + width: props.orientation !== 'vertical' ? '100%' : undefined, + }, + }; }, defaultProps: { size: 'sm', From fb378b7227a0e404aecbece1c0c43cb0a4c29bdd Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Fri, 11 Mar 2022 16:00:17 +0530 Subject: [PATCH 061/172] fix: storybook revert --- .../composites/Transitions/Fade.tsx | 10 ++++-- .../composites/Transitions/ScaleFade.tsx | 12 ++++--- .../composites/Transitions/SlideFade.tsx | 35 ++++++++++--------- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/example/storybook/stories/components/composites/Transitions/Fade.tsx b/example/storybook/stories/components/composites/Transitions/Fade.tsx index fea07ad8e..03fc8e250 100644 --- a/example/storybook/stories/components/composites/Transitions/Fade.tsx +++ b/example/storybook/stories/components/composites/Transitions/Fade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Button, Center, Fade } from 'native-base'; +import { Button, Center, PresenceTransition } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -9,7 +9,11 @@ export const Example = () => { - +
{ > Fade
-
+
); }; diff --git a/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx b/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx index 1f1efa24b..003dc1450 100644 --- a/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx +++ b/example/storybook/stories/components/composites/Transitions/ScaleFade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { ScaleFade, Button, Center } from 'native-base'; +import { PresenceTransition, Button, Center } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -8,11 +8,15 @@ export const Example = () => { - +
- ScalableFade + ScaleFade
-
+
); }; diff --git a/example/storybook/stories/components/composites/Transitions/SlideFade.tsx b/example/storybook/stories/components/composites/Transitions/SlideFade.tsx index 66bbf4ba3..5086c50d5 100644 --- a/example/storybook/stories/components/composites/Transitions/SlideFade.tsx +++ b/example/storybook/stories/components/composites/Transitions/SlideFade.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { SlideFade, Box, Button, Center } from 'native-base'; +import { PresenceTransition, Box, Button, Center } from 'native-base'; export const Example = () => { const [isOpen, setIsOpen] = React.useState(false); @@ -8,23 +8,24 @@ export const Example = () => { - -
- - SlideFade - + +
+ SlideFade
- +
); }; From 5aec1e69f061eaa11cf4f16af098709af2f31221 Mon Sep 17 00:00:00 2001 From: amars29 Date: Fri, 11 Mar 2022 16:20:59 +0530 Subject: [PATCH 062/172] fix: internal props theme in Slider --- src/components/primitives/Slider/Slider.tsx | 4 ++-- src/components/primitives/Slider/SliderTrack.tsx | 6 ++++-- src/components/primitives/Slider/types.tsx | 4 +--- src/theme/components/slider.ts | 10 +++------- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/components/primitives/Slider/Slider.tsx b/src/components/primitives/Slider/Slider.tsx index 32ad37798..4b155ebd5 100644 --- a/src/components/primitives/Slider/Slider.tsx +++ b/src/components/primitives/Slider/Slider.tsx @@ -47,7 +47,7 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { }, }); - const { _wrap, ...resolvedProps } = usePropsResolution('Slider', props, { + const resolvedProps = usePropsResolution('Slider', props, { isDisabled, isReadOnly, }); @@ -93,7 +93,7 @@ function Slider({ isDisabled, isReadOnly, ...props }: ISliderProps, ref?: any) { return ( - + {React.Children.map(props.children, (child, index) => { if (child.displayName === 'SliderThumb') { return React.cloneElement(child as React.ReactElement, { diff --git a/src/components/primitives/Slider/SliderTrack.tsx b/src/components/primitives/Slider/SliderTrack.tsx index 91b94e442..40b911282 100644 --- a/src/components/primitives/Slider/SliderTrack.tsx +++ b/src/components/primitives/Slider/SliderTrack.tsx @@ -17,7 +17,7 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { isDisabled, } = React.useContext(SliderContext); - const { _wrap, ...resolvedProps } = usePropsResolution( + const { _pressable, ...resolvedProps } = usePropsResolution( 'SliderTrack', { size: sliderSize, @@ -48,7 +48,9 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { ref={ref} {...trackProps} {...trackStyle} - {..._wrap} + py={!isVertical ? '3' : undefined} + px={isVertical ? '3' : undefined} + {..._pressable} > {children} diff --git a/src/components/primitives/Slider/types.tsx b/src/components/primitives/Slider/types.tsx index 89fdd00cb..04884ef9b 100644 --- a/src/components/primitives/Slider/types.tsx +++ b/src/components/primitives/Slider/types.tsx @@ -50,8 +50,6 @@ export interface ISliderProps extends IBoxProps { _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; - /** Wrapper style for SliderTrack */ - _wrap?: {}; } export interface ISliderTrackProps extends IBoxProps { @@ -62,7 +60,7 @@ export interface ISliderTrackProps extends IBoxProps { /** Props applied if isReadOnly is true. */ _readOnly?: any; /** Wrapper style for SliderTrack */ - _wrap?: {}; + _pressable?: {}; } export interface ISliderTrackFilledProps diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index d2c01da0d..d363793ce 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -6,11 +6,9 @@ export const SliderTrack = { bg: `${simplifiedColorScheme}.100`, borderRadius: 'lg', overflow: 'hidden', - _wrap: { + _pressable: { alignItems: 'center', justifyContent: 'center', - paddingY: props.orientation !== 'vertical' ? '3' : undefined, - paddingX: props.orientation === 'vertical' ? '3' : undefined, }, }; }, @@ -56,10 +54,8 @@ export const Slider = { return { alignItems: 'center', justifyContent: 'center', - _wrap: { - height: props.orientation === 'vertical' ? '100%' : undefined, - width: props.orientation !== 'vertical' ? '100%' : undefined, - }, + height: props.orientation === 'vertical' ? '100%' : undefined, + width: props.orientation !== 'vertical' ? '100%' : undefined, }; }, defaultProps: { From 75dec15d6b5d011562fa8ee1ee61734186f62641 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Fri, 11 Mar 2022 16:49:20 +0530 Subject: [PATCH 063/172] feat: slide decoupling --- src/components/composites/Transitions/Slide.tsx | 5 ++--- src/components/composites/Transitions/types.tsx | 6 +++++- src/components/primitives/Overlay/Overlay.tsx | 2 +- src/theme/components/transitions.ts | 2 ++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/composites/Transitions/Slide.tsx b/src/components/composites/Transitions/Slide.tsx index 32e0bdebe..61e15e168 100644 --- a/src/components/composites/Transitions/Slide.tsx +++ b/src/components/composites/Transitions/Slide.tsx @@ -36,6 +36,7 @@ export const Slide = memo( placement, overlay, duration, + _overlay, ...resolvedProps } = usePropsResolution('Slide', props); const [containerOpacity, setContainerOpacity] = React.useState(0); @@ -121,9 +122,7 @@ export const Slide = memo( if (overlay) { return ( <> - - {slideComponent} - + {slideComponent} ); } else { diff --git a/src/components/composites/Transitions/types.tsx b/src/components/composites/Transitions/types.tsx index 1402a370c..e173651b1 100644 --- a/src/components/composites/Transitions/types.tsx +++ b/src/components/composites/Transitions/types.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from 'react'; import type { ViewProps } from 'react-native'; import type { IBoxProps } from '../../primitives'; - +import type { IOverlayProps } from '../../primitives/Overlay'; export type IFadeProps = IBoxProps & { in?: boolean; entryDuration?: number; @@ -26,6 +26,10 @@ export type ISlideProps = IBoxProps & { delay?: number; placement?: 'top' | 'bottom' | 'right' | 'left'; overlay?: boolean; + /** + * Props to be passed to the Overlay used inside of Slide when overlay is true. + */ + _overlay?: IOverlayProps; }; export type ISlideFadeProps = IBoxProps & { in?: boolean; diff --git a/src/components/primitives/Overlay/Overlay.tsx b/src/components/primitives/Overlay/Overlay.tsx index 2669ccb7a..d3fb6a563 100644 --- a/src/components/primitives/Overlay/Overlay.tsx +++ b/src/components/primitives/Overlay/Overlay.tsx @@ -6,7 +6,7 @@ import { Modal } from 'react-native'; import { useKeyboardDismissable } from '../../../hooks'; import { ExitAnimationContext } from './ExitAnimationContext'; -interface IOverlayProps { +export interface IOverlayProps { isOpen?: boolean; children?: any; // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front. diff --git a/src/theme/components/transitions.ts b/src/theme/components/transitions.ts index 170a9eb28..437221e65 100644 --- a/src/theme/components/transitions.ts +++ b/src/theme/components/transitions.ts @@ -34,12 +34,14 @@ const slideDefaultProps = { duration: 500, placement: 'bottom', overlay: true, + _overlay: { isOpen: true }, }; export const Slide = { baseStyle: { h: '100%', pointerEvents: 'box-none', + _overlay: { style: { overflow: 'hidden' } }, }, defaultProps: slideDefaultProps, }; From 77d011d92ce261d8f47eff9e9dcc167679345b44 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Fri, 11 Mar 2022 19:00:55 +0530 Subject: [PATCH 064/172] fix: remove destructuring of resolvedProps --- src/components/primitives/Flex/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/primitives/Flex/index.tsx b/src/components/primitives/Flex/index.tsx index a01ce3d1b..42974d40e 100644 --- a/src/components/primitives/Flex/index.tsx +++ b/src/components/primitives/Flex/index.tsx @@ -38,7 +38,7 @@ const Flex = (props: IFlexProps, ref: any) => { //Spacer Component that adds space between components where it is placed export const Spacer = (props: any) => { - const { ...resolvedProps } = usePropsResolution('Spacer', props); + const resolvedProps = usePropsResolution('Spacer', props); return ; }; From 71b10082ab0c335679978b62eda37e0a866807bf Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Mon, 14 Mar 2022 13:59:42 +0530 Subject: [PATCH 065/172] fix: theme decouple issue --- .../primitives/Slider/SliderFilledTrack.tsx | 31 +++---------------- .../primitives/Slider/SliderTrack.tsx | 20 +++--------- src/theme/components/slider.ts | 26 ++++++++++++++-- 3 files changed, 33 insertions(+), 44 deletions(-) diff --git a/src/components/primitives/Slider/SliderFilledTrack.tsx b/src/components/primitives/Slider/SliderFilledTrack.tsx index 18381d229..d64a80670 100644 --- a/src/components/primitives/Slider/SliderFilledTrack.tsx +++ b/src/components/primitives/Slider/SliderFilledTrack.tsx @@ -1,15 +1,11 @@ import React from 'react'; import { SliderContext } from './Context'; -import { StyleSheet } from 'react-native'; import Box from '../Box'; import type { ISliderTrackFilledProps } from './types'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const SliderFilledTrack = ( - { style, ...props }: ISliderTrackFilledProps, - ref?: any -) => { +const SliderFilledTrack = (props: ISliderTrackFilledProps, ref?: any) => { const { isReversed, colorScheme, @@ -32,21 +28,14 @@ const SliderFilledTrack = ( { size: sliderSize, colorScheme, + isReversed, + orientation, + sliderTrackPosition, ...props, }, { isDisabled, isReadOnly } ); - // NOTE: Required for WEB compatibility - const customStyle = StyleSheet.create({ - verticalStyle: { - height: sliderTrackPosition, - width: sliderSize, - }, - horizontalStyle: { - width: sliderTrackPosition, - height: sliderSize, - }, - }); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -56,16 +45,6 @@ const SliderFilledTrack = ( { isDisabled, } = React.useContext(SliderContext); + const isVertical = orientation === 'vertical'; + const { _pressable, ...resolvedProps } = usePropsResolution( 'SliderTrack', { size: sliderSize, colorScheme, + isVertical, ...props, }, { isReadOnly, isDisabled } ); - const isVertical = orientation === 'vertical'; - - const trackStyle = React.useMemo( - () => ({ - height: isVertical ? '100%' : resolvedProps.size, - width: !isVertical ? '100%' : resolvedProps.size, - }), - [isVertical, resolvedProps.size] - ); - //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -47,14 +40,9 @@ const SliderTrack = ({ children, ...props }: ISliderTrackProps, ref?: any) => { onLayout={onTrackLayout} ref={ref} {...trackProps} - {...trackStyle} - py={!isVertical ? '3' : undefined} - px={isVertical ? '3' : undefined} {..._pressable} > - - {children} - + {children} ); }; diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index d363793ce..dd69e20df 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -1,14 +1,22 @@ import { getColorScheme, mode } from '../tools'; export const SliderTrack = { - baseStyle: (props: any) => { + baseStyle: ({ isVertical, size, ...props }: any) => { const simplifiedColorScheme = getColorScheme(props); return { bg: `${simplifiedColorScheme}.100`, borderRadius: 'lg', overflow: 'hidden', + style: { + height: isVertical ? '100%' : size, + width: !isVertical ? '100%' : size, + }, _pressable: { alignItems: 'center', justifyContent: 'center', + height: isVertical ? '100%' : size, + width: !isVertical ? '100%' : size, + py: !isVertical ? '3' : undefined, + px: isVertical ? '3' : undefined, }, }; }, @@ -32,13 +40,27 @@ export const SliderThumb = { }; export const SliderFilledTrack = { - baseStyle: (props: any) => { + baseStyle: ({ + orientation, + isReversed, + sliderTrackPosition, + size, + ...props + }: any) => { const simplifiedColorScheme = getColorScheme(props); return { bg: mode( `${simplifiedColorScheme}.600`, `${simplifiedColorScheme}.300` )(props), + left: orientation !== 'vertical' && !isReversed ? 0 : undefined, + bottom: orientation === 'vertical' && !isReversed ? 0 : undefined, + right: orientation !== 'vertical' && isReversed ? 0 : undefined, + top: orientation === 'vertical' && isReversed ? 0 : undefined, + style: + orientation === 'vertical' + ? { height: sliderTrackPosition, width: size } + : { width: sliderTrackPosition, height: size }, }; }, }; From bf43f75ebfb792d9bac0cf88495156cb974f9ffd Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Mon, 14 Mar 2022 14:34:29 +0530 Subject: [PATCH 066/172] fix: skeleton text --- src/components/composites/Skeleton/SkeletonText.tsx | 3 +-- src/theme/components/skeleton.ts | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/composites/Skeleton/SkeletonText.tsx b/src/components/composites/Skeleton/SkeletonText.tsx index 75a0c1f13..241aa356e 100644 --- a/src/components/composites/Skeleton/SkeletonText.tsx +++ b/src/components/composites/Skeleton/SkeletonText.tsx @@ -17,7 +17,6 @@ const SkeletonText = ( lines, isLoaded, _line, - _stack, ...resolvedProps } = usePropsResolution('SkeletonText', props); @@ -49,7 +48,7 @@ const SkeletonText = ( return isLoaded ? ( children ) : ( - + {computedChildren} ); diff --git a/src/theme/components/skeleton.ts b/src/theme/components/skeleton.ts index b0aacc3b2..b85856d3e 100644 --- a/src/theme/components/skeleton.ts +++ b/src/theme/components/skeleton.ts @@ -24,13 +24,11 @@ export const SkeletonText = { fadeDuration: 0.1, w: '100%', speed: 1.0, + flexDirection: 'column', _line: { h: 3, rounded: 'full', }, - _stack: { - flexDirection: 'column', - }, }; }, defaultProps: { From c417b7deee8cf5f22f48576a8750b53d87acb96b Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Mon, 14 Mar 2022 16:31:45 +0530 Subject: [PATCH 067/172] fix: migrated linear gradint and contrast text --- src/components/primitives/Box/index.tsx | 6 ++ src/components/primitives/Button/Button.tsx | 17 ++++++ src/components/primitives/TextArea/index.tsx | 23 +++++--- src/hooks/useContrastText.ts | 15 ++--- .../useThemeProps/usePropsResolution.tsx | 56 +------------------ 5 files changed, 45 insertions(+), 72 deletions(-) diff --git a/src/components/primitives/Box/index.tsx b/src/components/primitives/Box/index.tsx index 12f6b5302..186f35c0d 100644 --- a/src/components/primitives/Box/index.tsx +++ b/src/components/primitives/Box/index.tsx @@ -1,6 +1,8 @@ import React, { memo, forwardRef } from 'react'; import { View } from 'react-native'; import { usePropsResolution } from '../../../hooks/useThemeProps'; +import { getColor } from '../../../theme'; +import { useTheme } from '../../../hooks'; import { makeStyledComponent } from '../../../utils/styled'; import { wrapStringChild } from '../../../utils/wrapStringChild'; import type { IBoxProps } from './types'; @@ -14,6 +16,7 @@ let MemoizedGradient: any; const Box = ({ children, ...props }: IBoxProps, ref: any) => { // const { _text, ...resolvedProps } = useThemeProps('Box', props); + const theme = useTheme(); const { _text, ...resolvedProps } = usePropsResolution('Box', props); let Gradient = useNativeBaseConfig('NativeBaseConfigProvider').config .dependencies?.['linear-gradient']; @@ -44,6 +47,9 @@ const Box = ({ children, ...props }: IBoxProps, ref: any) => { Gradient = MemoizedGradient; + lgrad.colors = lgrad.colors?.map((color: string) => { + return getColor(color, theme.colors, theme); + }); let startObj = { x: 0, y: 0 }; let endObj = { x: 0, y: 1 }; if (lgrad.start && lgrad.start.length === 2) { diff --git a/src/components/primitives/Button/Button.tsx b/src/components/primitives/Button/Button.tsx index 5c364d5c5..8998dcbb2 100644 --- a/src/components/primitives/Button/Button.tsx +++ b/src/components/primitives/Button/Button.tsx @@ -13,6 +13,7 @@ import { } from '../../primitives/Pressable/Pressable'; import { useFocusRing } from '@react-native-aria/focus'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { useContrastText } from '../../../hooks'; const Button = ( { @@ -60,6 +61,22 @@ const Button = ( isFocusVisible: isFocusVisibleProp || isFocusVisible, }); + // Setting contrast text then no color is comming + const contrastTextColor = useContrastText( + resolvedProps.bg || resolvedProps.backgroundColor || resolvedProps.bgColor, + _text?.color + ); + + if ( + (resolvedProps.bg || + resolvedProps.backgroundColor || + resolvedProps.bgColor) && + contrastTextColor && + _text.color === undefined + ) { + _text.color = contrastTextColor; + } + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; diff --git a/src/components/primitives/TextArea/index.tsx b/src/components/primitives/TextArea/index.tsx index bafc1724a..4d4ee7595 100644 --- a/src/components/primitives/TextArea/index.tsx +++ b/src/components/primitives/TextArea/index.tsx @@ -12,15 +12,20 @@ export interface ITextAreaProps extends IInputProps { } const TextArea = ( - { wrapperRef, isDisabled, ...props }: ITextAreaProps, + { wrapperRef, isDisabled, isInvalid, isReadOnly, ...props }: ITextAreaProps, ref: any ) => { const _ref = React.useRef(null); const { isHovered } = useHover({}, _ref); - const { totalLines, ...newProps } = usePropsResolution( + const [isFocused, setIsFocused] = React.useState(false); + const handleFocus = (focusState: boolean, callback: any) => { + setIsFocused(focusState); + callback(); + }; + const { totalLines, onFocus, onBlur, ...newProps } = usePropsResolution( 'TextArea', props, - { isHovered, isDisabled }, + { isHovered, isDisabled, isFocused, isInvalid, isReadOnly }, { extendTheme: ['Input'] } ); //TODO: refactor for responsive prop @@ -34,12 +39,12 @@ const TextArea = ( numberOfLines={totalLines} wrapperRef={wrapperRef} ref={mergeRefs([_ref, ref])} - // onFocus={(e) => { - // handleFocus(true, onFocus ? () => onFocus(e) : () => {}); - // }} - // onBlur={(e) => { - // handleFocus(false, onBlur ? () => onBlur(e) : () => {}); - // }} + onFocus={(e) => { + handleFocus(true, onFocus ? () => onFocus(e) : () => {}); + }} + onBlur={(e) => { + handleFocus(false, onBlur ? () => onBlur(e) : () => {}); + }} /> ); }; diff --git a/src/hooks/useContrastText.ts b/src/hooks/useContrastText.ts index 383d3ace1..24a0cc235 100644 --- a/src/hooks/useContrastText.ts +++ b/src/hooks/useContrastText.ts @@ -3,11 +3,7 @@ import { useToken } from './useToken'; import { useAccessibleColors } from '../core/color-mode/hooks'; import { useNativeBaseConfig } from '../core/NativeBaseContext'; -export function useContrastText( - bg: string, - color?: string, - disableContrastText?: boolean -) { +export function useContrastText(bg: string, color?: string) { const [ contrastThreshold, trueDarkText, @@ -27,8 +23,9 @@ export function useContrastText( ).config.suppressColorAccessibilityWarning; const [accessibleColors] = useAccessibleColors(); - if (disableContrastText) { - return; + + if (useNativeBaseConfig('NativeBaseConfigProvider').disableContrastText) { + return trueColor; } if (typeof bg !== 'string') { return; @@ -82,8 +79,8 @@ function getAccessibleContrastColor( } let trueContrastColor; let contrastColorToken; - let darkTextConstrast = getContrastRatio(trueBg, trueDarkText); - let lightTextConstrast = getContrastRatio(trueBg, trueLightText); + const darkTextConstrast = getContrastRatio(trueBg, trueDarkText); + const lightTextConstrast = getContrastRatio(trueBg, trueLightText); if ( darkTextConstrast >= contrastThreshold || diff --git a/src/hooks/useThemeProps/usePropsResolution.tsx b/src/hooks/useThemeProps/usePropsResolution.tsx index 67fcdb455..22a9f2bf6 100644 --- a/src/hooks/useThemeProps/usePropsResolution.tsx +++ b/src/hooks/useThemeProps/usePropsResolution.tsx @@ -4,7 +4,6 @@ import { Platform } from 'react-native'; import { useNativeBase } from '../useNativeBase'; import { useColorMode } from '../../core/color-mode'; import { omitUndefined, extractInObject } from '../../theme/tools'; -import { useContrastText } from '../useContrastText'; import { useBreakpointResolvedProps } from '../useBreakpointResolvedProps'; import { propsFlattener, @@ -15,7 +14,6 @@ import { useResponsiveSSRProps } from '../useResponsiveSSRProps'; import React from 'react'; import { ResponsiveQueryContext } from '../../utils/useResponsiveQuery/ResponsiveQueryProvider'; import type { ComponentTheme } from '../../theme'; -import { useNativeBaseConfig } from '../../core/NativeBaseContext'; const SPREAD_PROP_SPECIFICITY_ORDER = [ 'p', @@ -368,7 +366,6 @@ export const usePropsResolutionWithComponentTheme = ( } // NOTE: Resolving size - const size = flattenProps.size; let componentSizeProps = {}, @@ -425,7 +422,7 @@ export const usePropsResolutionWithComponentTheme = ( ); } - // // STEP 4: merge + // STEP 4: merge const defaultStyles = merge( {}, flattenBaseStyle, @@ -450,60 +447,11 @@ export const usePropsResolutionWithComponentTheme = ( defaultSpecificity ); - // // STEP 5: linear Grad and contrastText - let ignore: any = []; - if ( - flattenProps.bg?.linearGradient || - flattenProps.background?.linearGradient || - flattenProps.bgColor?.linearGradient || - flattenProps.backgroundColor?.linearGradient - ) { - let bgProp = 'bg'; - if (flattenProps.background?.linearGradient) { - bgProp = 'background'; - } else if (flattenProps.bgColor?.linearGradient) { - bgProp = 'bgColor'; - } else if (flattenProps.backgroundColor?.linearGradient) { - bgProp = 'backgroundColor'; - } - flattenProps[bgProp].linearGradient.colors = flattenProps[ - bgProp - ].linearGradient.colors.map((color: string) => { - return get(theme.colors, color, color); - }); - ignore = ['bg', 'background', 'backgroundColor', 'bgColor']; - } - // // NOTE: seprating bg props when linearGardiant is available - const [gradientProps] = extractInObject(flattenProps, ignore); - - const disableContrastText = useNativeBaseConfig('NativeBaseConfigProvider') - .disableContrastText; - const bgColor = - flattenProps.bg ?? flattenProps.backgroundColor ?? flattenProps.bgColor; - - const contrastTextColor = useContrastText( - bgColor, - flattenProps?._text?.color, - disableCSSMediaQueries ? (disableContrastText ? true : false) : true - ); - - flattenProps._text = - contrastTextColor && flattenProps?._text?.color === undefined - ? { - color: contrastTextColor, - ...flattenProps._text, - } - : flattenProps._text; - const resolvedProps = omitUndefined({ ...flattenProps, ...ignoredProps, - ...gradientProps, }); - // STEP 6: Return - - // flattenProps = {}; - // propertyDepth = {}; + // STEP 5: Return return resolvedProps; }; From ed732bfa7c1a1da6c621510f7e50876f750c39d5 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 14 Mar 2022 16:59:00 +0530 Subject: [PATCH 068/172] fix: radio design changes --- src/theme/components/radio.ts | 119 +++++++++++++++++++++++----------- 1 file changed, 81 insertions(+), 38 deletions(-) diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index 0c0303340..b47c6c112 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -1,13 +1,73 @@ -import { mode } from '../tools'; - const baseStyle = (props: Record) => { - const { colorScheme } = props; + const { colorScheme: c } = props; return { borderWidth: 2, borderRadius: 'full', p: 0.5, - borderColor: mode('muted.300', 'muted.600')(props), - bg: mode('muted.50', 'muted.700')(props), // matching background color + + _light: { + bg: 'muted.50', + borderColor: 'muted.400', + + _checked: { + borderColor: `${c}.600`, + _icon: { + color: `${c}.600`, + }, + }, + + _hover: { + borderColor: 'muted.500', + _checked: { + borderColor: `${c}.700`, + _icon: { color: `${c}.700` }, + }, + }, + + _pressed: { + borderColor: 'muted.600', + _checked: { + borderColor: `${c}.800`, + _icon: { color: `${c}.800` }, + }, + }, + + _invalid: { + borderColor: 'error.600', + }, + }, + + _dark: { + bg: 'muted.900', + borderColor: 'muted.500', + + _checked: { + borderColor: `${c}.500`, + _icon: { + color: `${c}.500`, + }, + }, + + _hover: { + borderColor: 'muted.400', + _checked: { + borderColor: `${c}.400`, + _icon: { color: `${c}.400` }, + }, + }, + + _pressed: { + borderColor: 'muted.300', + _checked: { + borderColor: `${c}.300`, + _icon: { color: `${c}.300` }, + }, + }, + + _invalid: { + borderColor: 'error.500', + }, + }, _stack: { direction: 'row', @@ -17,40 +77,21 @@ const baseStyle = (props: Record) => { cursor: props.isDisabled ? 'not-allowed' : 'pointer', }, }, - _interactionBox: { - borderRadius: 'full', - size: 3, - position: 'absolute', - zIndex: -1, - _web: { - transition: 'height 200ms, width 200ms', - pointerEvents: 'none', - }, - }, - _icon: { - color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color - }, - _hover: { - _interactionBox: { - bg: 'muted.200:alpha.30', - size: 8, - }, - }, + _focus: { _interactionBox: { - bg: `${colorScheme}.200:alpha.50`, - size: 8, + bg: `${c}.400`, + size: 6, }, }, + _focusVisible: { _interactionBox: { - bg: `${colorScheme}.200:alpha.50`, - size: 8, + bg: `${c}.400`, + size: 6, }, }, - _checked: { - borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), - }, + _disabled: { opacity: 0.4, _interactionBox: { @@ -63,13 +104,15 @@ const baseStyle = (props: Record) => { opacity: '0.4', }, }, - _invalid: { - borderColor: mode('error.600', 'error.400')(props), - }, - _pressed: { - _interactionBox: { - bg: `${colorScheme}.200:alpha.50`, - size: 10, + + _interactionBox: { + borderRadius: 'full', + size: 3, + position: 'absolute', + zIndex: -1, + _web: { + transition: 'height 200ms, width 200ms', + pointerEvents: 'none', }, }, }; From e9cec48313c256736d577439408288b3599563c5 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 14 Mar 2022 18:17:50 +0530 Subject: [PATCH 069/172] fix: checkbvox design changes --- src/theme/components/checkbox.ts | 118 +++++++++++++++++++------------ 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index f520b1aea..d27c9db02 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -1,19 +1,80 @@ -import { mode, transparentize } from '../tools'; +import { transparentize } from '../tools'; const baseStyle = (props: Record) => { - const { colorScheme, theme } = props; + const { colorScheme: c, theme } = props; return { justifyContent: 'flex-start', flexDirection: 'row', borderWidth: 2, borderRadius: 'sm', - borderColor: mode('muted.300', 'muted.600')(props), - bg: mode('muted.50', 'muted.700')(props), // matching background color opacity: 1, - _web: { - cursor: 'pointer', + p: 0.5, + + _light: { + bg: 'muted.50', + borderColor: 'muted.400', + _text: { + color: 'darkText', + }, + _icon: { + color: `muted.50`, + }, + _checked: { + borderColor: `${c}.600`, + bg: `${c}.600`, + _hover: { + borderColor: `${c}.700`, + bg: `${c}.700`, + }, + _pressed: { + borderColor: `${c}.800`, + bg: `${c}.800`, + }, + }, + _hover: { + borderColor: 'muted.500', + }, + _pressed: { + borderColor: 'muted.600', + }, + _invalid: { + borderColor: 'error.600', + }, + }, + + _dark: { + bg: 'muted.900', + borderColor: 'muted.500', + _text: { + color: 'lightText', + }, + _icon: { + color: `muted.900`, + }, + _checked: { + borderColor: `${c}.500`, + bg: `${c}.500`, + _hover: { + borderColor: `${c}.400`, + bg: `${c}.400`, + }, + _pressed: { + borderColor: `${c}.300`, + bg: `${c}.300`, + }, + }, + _hover: { + borderColor: 'muted.400', + }, + _pressed: { + borderColor: 'muted.300', + }, + _invalid: { + borderColor: 'error.500', + }, }, + _stack: { direction: 'row', alignItems: 'center', @@ -22,35 +83,19 @@ const baseStyle = (props: Record) => { cursor: props.isDisabled ? 'not-allowed' : 'pointer', }, }, + _text: { ml: 2, - color: mode('darkText', 'lightText')(props), - }, - _interactionBox: { - position: 'absolute', - borderRadius: 'full', - p: 5, - w: '100%', - h: '100%', - zIndex: -1, - _web: { - transition: 'height 200ms, width 200ms', - pointerEvents: 'none', - }, - }, - _hover: { - _interactionBox: { - bg: transparentize('muted.200', 0.3)(theme), - }, }, + _focus: { _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + bg: transparentize(`${c}.200`, 0.5)(theme), }, }, _focusVisible: { _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + bg: transparentize(`${c}.200`, 0.5)(theme), }, }, _disabled: { @@ -62,28 +107,13 @@ const baseStyle = (props: Record) => { }, opacity: 0.4, }, - _pressed: { - _interactionBox: { - bg: transparentize(`${colorScheme}.200`, 0.5)(theme), - }, - }, - _checked: { - borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), - bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props), - }, - _invalid: { - borderColor: mode('error.600', 'error.400')(props), - }, - _icon: { - color: mode(`muted.50`, `muted.800`)(props), // matching background color - }, }; }; const sizes = { - lg: { _icon: { size: 6 }, _text: { fontSize: 'xl' } }, - md: { _icon: { size: 5 }, _text: { fontSize: 'lg' } }, - sm: { _icon: { size: 4 }, _text: { fontSize: 'md' } }, + lg: { _icon: { size: 5 }, _text: { fontSize: 'xl' } }, + md: { _icon: { size: 4 }, _text: { fontSize: 'lg' } }, + sm: { _icon: { size: 3 }, _text: { fontSize: 'md' } }, }; const defaultProps = { From 61be373dd1fc8308fa9dce60bc1b6b2a9a106c3b Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 14 Mar 2022 18:44:21 +0530 Subject: [PATCH 070/172] fix: code refactor --- src/theme/components/radio.ts | 58 +++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index b47c6c112..110dec8a1 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -14,22 +14,22 @@ const baseStyle = (props: Record) => { _icon: { color: `${c}.600`, }, + _hover: { + borderColor: `${c}.700`, + _icon: { color: `${c}.700` }, + }, + _pressed: { + borderColor: `${c}.800`, + _icon: { color: `${c}.800` }, + }, }, _hover: { borderColor: 'muted.500', - _checked: { - borderColor: `${c}.700`, - _icon: { color: `${c}.700` }, - }, }, _pressed: { borderColor: 'muted.600', - _checked: { - borderColor: `${c}.800`, - _icon: { color: `${c}.800` }, - }, }, _invalid: { @@ -46,22 +46,22 @@ const baseStyle = (props: Record) => { _icon: { color: `${c}.500`, }, + _hover: { + borderColor: `${c}.400`, + _icon: { color: `${c}.400` }, + }, + _pressed: { + borderColor: `${c}.300`, + _icon: { color: `${c}.300` }, + }, }, _hover: { borderColor: 'muted.400', - _checked: { - borderColor: `${c}.400`, - _icon: { color: `${c}.400` }, - }, }, _pressed: { borderColor: 'muted.300', - _checked: { - borderColor: `${c}.300`, - _icon: { color: `${c}.300` }, - }, }, _invalid: { @@ -78,30 +78,30 @@ const baseStyle = (props: Record) => { }, }, - _focus: { + _disabled: { + opacity: 0.4, _interactionBox: { - bg: `${c}.400`, - size: 6, + bg: 'transparent', + }, + _icon: { + bg: 'transparent', + }, + _stack: { + opacity: '0.4', }, }, - _focusVisible: { + _focus: { _interactionBox: { bg: `${c}.400`, size: 6, }, }, - _disabled: { - opacity: 0.4, + _focusVisible: { _interactionBox: { - bg: 'transparent', - }, - _icon: { - bg: 'transparent', - }, - _stack: { - opacity: '0.4', + bg: `${c}.400`, + size: 6, }, }, From c4404eed1be5405932f6880436ca5cc2b02f15bf Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Mon, 14 Mar 2022 18:48:57 +0530 Subject: [PATCH 071/172] fix: design changes --- src/theme/components/switch.ts | 63 +++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/src/theme/components/switch.ts b/src/theme/components/switch.ts index 079396f00..6e9a84b4e 100644 --- a/src/theme/components/switch.ts +++ b/src/theme/components/switch.ts @@ -1,8 +1,8 @@ -import { mode, getColorScheme } from '../tools'; -import { Platform } from 'react-native'; +// import { mode, getColorScheme } from '../tools'; +// import { Platform } from 'react-native'; const baseStyle = (props: Record) => { - const colorScheme = getColorScheme(props); + const { colorScheme: c } = props; //TODO: Use of Platform can be removed return { _disabled: { @@ -11,24 +11,47 @@ const baseStyle = (props: Record) => { _invalid: { borderWidth: 1, borderRadius: 16, - borderColor: 'danger.600', }, - offTrackColor: mode( - Platform.OS !== 'ios' ? 'gray.400' : 'gray.200', - Platform.OS !== 'ios' ? 'gray.700' : 'gray.600' - )(props), - onTrackColor: mode( - Platform.OS !== 'ios' ? `${colorScheme}.300` : `${colorScheme}.500`, - Platform.OS !== 'ios' ? `${colorScheme}.700` : `${colorScheme}.500` - )(props), - onThumbColor: mode( - Platform.OS !== 'ios' ? `${colorScheme}.600` : 'white', - Platform.OS !== 'ios' ? `${colorScheme}.500` : 'white' - )(props), - offThumbColor: mode( - Platform.OS !== 'ios' ? 'gray.100' : 'white', - Platform.OS !== 'ios' ? 'gray.200' : 'white' - )(props), + // offTrackColor: mode( + // Platform.OS !== 'ios' ? 'gray.400' : 'gray.200', + // Platform.OS !== 'ios' ? 'gray.700' : 'gray.600' + // )(props), + // onTrackColor: mode( + // Platform.OS !== 'ios' ? `${colorScheme}.300` : `${colorScheme}.500`, + // Platform.OS !== 'ios' ? `${colorScheme}.700` : `${colorScheme}.500` + // )(props), + // onThumbColor: mode( + // Platform.OS !== 'ios' ? `${colorScheme}.600` : 'white', + // Platform.OS !== 'ios' ? `${colorScheme}.500` : 'white' + // )(props), + // offThumbColor: mode( + // Platform.OS !== 'ios' ? 'gray.100' : 'white', + // Platform.OS !== 'ios' ? 'gray.200' : 'white' + // )(props), + onThumbColor: 'muted.50', + offThumbColor: 'muted.50', + _light: { + offTrackColor: 'muted.300', + onTrackColor: `${c}.600`, + _hover: { + offTrackColor: 'muted.400', + onTrackColor: `${c}.700`, + }, + _invalid: { + borderColor: 'error.500', + }, + }, + _dark: { + offTrackColor: 'muted.700', + onTrackColor: `${c}.500`, + _hover: { + offTrackColor: 'muted.600', + onTrackColor: `${c}.400`, + }, + _invalid: { + borderColor: 'error.600', + }, + }, }; }; From 8b7c93f043df592f7e66c319aa5f8145ebcc7fac Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 14 Mar 2022 19:20:33 +0530 Subject: [PATCH 072/172] fix: design changes --- .../primitives/Checkbox/Checkbox.web.tsx | 20 ++----------------- src/theme/components/checkbox.ts | 17 +++++++++++----- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/components/primitives/Checkbox/Checkbox.web.tsx b/src/components/primitives/Checkbox/Checkbox.web.tsx index 6a2efa416..201233d56 100644 --- a/src/components/primitives/Checkbox/Checkbox.web.tsx +++ b/src/components/primitives/Checkbox/Checkbox.web.tsx @@ -148,22 +148,8 @@ const CheckboxComponent = React.memo( {/* Interaction Box */} {/* Checkbox */}
@@ -184,10 +170,8 @@ const CheckboxComponent = React.memo( icon, isChecked, isFocusVisible, - isHovered, nonLayoutProps, layoutProps, - isHoveredProp, isFocusVisibleProp, resolvedProps?.children, ]); diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index d27c9db02..8509d18ff 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -1,7 +1,5 @@ -import { transparentize } from '../tools'; - const baseStyle = (props: Record) => { - const { colorScheme: c, theme } = props; + const { colorScheme: c } = props; return { justifyContent: 'flex-start', @@ -90,14 +88,23 @@ const baseStyle = (props: Record) => { _focus: { _interactionBox: { - bg: transparentize(`${c}.200`, 0.5)(theme), + bg: `${c}.400`, + size: 4, }, }, + _focusVisible: { _interactionBox: { - bg: transparentize(`${c}.200`, 0.5)(theme), + bg: `${c}.400`, + size: 4, }, }, + + _interactionBox: { + position: 'absolute', + borderRadius: 'sm', + }, + _disabled: { _interactionBox: { bg: 'transparent', From 71c112c14156f2e2792b180153c3319dfe7a79fa Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 10:17:58 +0530 Subject: [PATCH 073/172] fix: design changes --- src/theme/components/popover.ts | 100 +++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 26 deletions(-) diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index c3f82c6cf..a77589f8c 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -1,35 +1,57 @@ -import { mode } from '../tools'; - export const PopoverCloseButton = { - baseStyle: (props: any) => ({ + baseStyle: () => ({ position: 'absolute', right: 3, top: 3, zIndex: 1, - colorScheme: 'coolGray', - p: 2, _icon: { - size: 3, - color: mode('coolGray.600', 'coolGray.100')(props), + size: 4, + }, + _light: { + _icon: { + color: 'muted.500', + }, + }, + _dark: { + _icon: { + color: 'muted.400', + }, }, }), }; export const PopoverBody = { - baseStyle: (props: any) => ({ - pt: '2', + baseStyle: () => ({ p: '3', - _text: { - color: mode('coolGray.600', 'coolGray.300')(props), + _light: { + bg: 'muted.50', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + _text: { + color: 'text.50', + }, }, }), }; export const PopoverContent = { - baseStyle: (props: any) => ({ - backgroundColor: mode('coolGray.50', 'gray.700')(props), - borderColor: mode('coolGray.200', 'coolGray.600')(props), - _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, + baseStyle: () => ({ + _light: { + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, borderWidth: 1, rounded: 'md', overflow: 'hidden', @@ -37,37 +59,63 @@ export const PopoverContent = { }; export const PopoverHeader = { - baseStyle: (props: any) => ({ + baseStyle: () => ({ _web: { accessibilityRole: 'header', }, - py: '4', - px: '3', + p: '4', borderBottomWidth: '1', - borderColor: mode('coolGray.200', 'gray.600')(props), _text: { fontSize: 'md', - fontWeight: 'semibold', - color: mode('coolGray.800', 'warmGray.50')(props), + fontWeight: '700', lineHeight: 'sm', }, + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, }), }; export const PopoverArrow = { - baseStyle: (props: any) => ({ - borderColor: mode('coolGray.200', 'coolGray.600')(props), + baseStyle: () => ({ + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + }, }), }; export const PopoverFooter = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - p: '3', - bg: mode('coolGray.100', 'gray.600')(props), + p: '4', flexDirection: 'row', justifyContent: 'flex-end', flexWrap: 'wrap', + borderTopWidth: 1, + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + }, }; }, }; From 989d62e092bd5109de0f87051b10396a43c82e0c Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 15 Mar 2022 12:32:10 +0530 Subject: [PATCH 074/172] fix: select design changes --- src/theme/components/select.ts | 58 ++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index 6ef5b7519..f0c420e28 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -1,7 +1,47 @@ -import { mode } from '../tools'; +import { transparentize } from '../tools'; + export const Select = { baseStyle: (props: Record) => { + const { theme } = props; return { + _light: { + customDropdownIconProps: { color: 'muted.500' }, + _hover: { + borderColor: 'primary.600', + }, + _focus: { + borderColor: 'primary.600', + bg: transparentize('primary.600', 0.1)(theme), + }, + _disabled: { + bg: 'muted.100', + }, + _invalid: { + borderColor: 'error.600', + }, + }, + + _dark: { + customDropdownIconProps: { color: 'muted.400' }, + _hover: { + borderColor: 'primary.500', + }, + _focus: { + borderColor: 'primary.500', + bg: transparentize('primary.500', 0.1)(theme), + }, + _disabled: { + bg: 'muted.800', + }, + _invalid: { + borderColor: 'error.500', + }, + }, + + customDropdownIconProps: { + size: '6', + p: '1', + }, _webSelect: { appearance: 'none', WebkitAppearance: 'none', @@ -12,27 +52,11 @@ export const Select = { opacity: 0, zIndex: 1, }, - customDropdownIconProps: { - size: '6', - p: '1', - pl: '0', - color: 'trueGray.400', - }, _web: { pointerEvents: 'none', }, _disabled: { opacity: '80', - bg: mode('muted.100', 'muted.700')(props), - }, - _invalid: { - borderColor: mode('danger.600', 'danger.300')(props), - }, - _focus: { - borderColor: mode('primary.400', 'primary.500')(props), - }, - _hover: { - bg: mode('gray.100', 'gray.700')(props), }, _actionSheetBody: { w: '100%', From 35e38ced145f58f4f14182ab61adf926d4dd67ea Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 15 Mar 2022 13:03:18 +0530 Subject: [PATCH 075/172] fix: tooltip design changes --- src/components/composites/Tooltip/Tooltip.tsx | 80 +------------------ src/components/composites/Tooltip/types.ts | 78 ++++++++++++++++++ src/theme/components/tooltip.ts | 20 +++-- 3 files changed, 94 insertions(+), 84 deletions(-) create mode 100644 src/components/composites/Tooltip/types.ts diff --git a/src/components/composites/Tooltip/Tooltip.tsx b/src/components/composites/Tooltip/Tooltip.tsx index df368896b..425773ab6 100644 --- a/src/components/composites/Tooltip/Tooltip.tsx +++ b/src/components/composites/Tooltip/Tooltip.tsx @@ -6,86 +6,10 @@ import { composeEventHandlers, mergeRefs } from '../../../utils'; import { PresenceTransition } from '../Transitions'; import { Platform, StyleSheet } from 'react-native'; import { usePropsResolution } from '../../../hooks'; -import Box, { IBoxProps } from '../../primitives/Box'; +import Box from '../../primitives/Box'; import { useId } from '@react-aria/utils'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; - -interface ITooltipProps extends IBoxProps { - /** - * Text to be placed in the tooltip - */ - label: string; - /** - * Whether the tooltip is opened. Useful for conrolling the open state - */ - isOpen?: boolean; - /** - * Whether the tooltip is disabled - */ - isDisabled?: boolean; - /** - * If true, the popover will be opened by default - */ - defaultIsOpen?: boolean; - /** - * This function will be invoked when tooltip is closed. It'll also be called when user attempts to close the tooltip via Escape key - */ - onClose?: () => void; - /** - * This function will be invoked when tooltip is opened - */ - onOpen?: () => void; - /** - * Duration in ms to wait till displaying the tooltip - * @default 0 - */ - openDelay?: number; - /** - * Duration in ms to wait till hiding the tooltip - * @default 0 - */ - closeDelay?: number; - /** - * Tooltip placement - * @default bottom - */ - placement?: - | 'top' - | 'bottom' - | 'left' - | 'right' - | 'top left' - | 'top right' - | 'bottom left' - | 'bottom right' - | 'right top' - | 'right bottom' - | 'left top' - | 'left bottom'; - /** - * Children passed will be used as Trigger element for the tooltip - */ - children: any; - /** - * Whether tooltip should be closed on Trigger click - * @default true - */ - closeOnClick?: boolean; - /** - * Size of the arrow - * @default 12 - */ - arrowSize?: number; - /** - * Whether tooltip should display arrow - * @default false - */ - hasArrow?: boolean; - /** - * Distance between the trigger and the tooltip - */ - offset?: number; -} +import type { ITooltipProps } from './types'; export const Tooltip = ({ label, diff --git a/src/components/composites/Tooltip/types.ts b/src/components/composites/Tooltip/types.ts new file mode 100644 index 000000000..2bac904fa --- /dev/null +++ b/src/components/composites/Tooltip/types.ts @@ -0,0 +1,78 @@ +import type { IBoxProps } from '../../primitives/Box'; + +export interface ITooltipProps extends IBoxProps { + /** + * Text to be placed in the tooltip + */ + label: string; + /** + * Whether the tooltip is opened. Useful for conrolling the open state + */ + isOpen?: boolean; + /** + * Whether the tooltip is disabled + */ + isDisabled?: boolean; + /** + * If true, the popover will be opened by default + */ + defaultIsOpen?: boolean; + /** + * This function will be invoked when tooltip is closed. It'll also be called when user attempts to close the tooltip via Escape key + */ + onClose?: () => void; + /** + * This function will be invoked when tooltip is opened + */ + onOpen?: () => void; + /** + * Duration in ms to wait till displaying the tooltip + * @default 0 + */ + openDelay?: number; + /** + * Duration in ms to wait till hiding the tooltip + * @default 0 + */ + closeDelay?: number; + /** + * Tooltip placement + * @default bottom + */ + placement?: + | 'top' + | 'bottom' + | 'left' + | 'right' + | 'top left' + | 'top right' + | 'bottom left' + | 'bottom right' + | 'right top' + | 'right bottom' + | 'left top' + | 'left bottom'; + /** + * Children passed will be used as Trigger element for the tooltip + */ + children: any; + /** + * Whether tooltip should be closed on Trigger click + * @default true + */ + closeOnClick?: boolean; + /** + * Size of the arrow + * @default 12 + */ + arrowSize?: number; + /** + * Whether tooltip should display arrow + * @default false + */ + hasArrow?: boolean; + /** + * Distance between the trigger and the tooltip + */ + offset?: number; +} diff --git a/src/theme/components/tooltip.ts b/src/theme/components/tooltip.ts index 7eaf200eb..61e88b526 100644 --- a/src/theme/components/tooltip.ts +++ b/src/theme/components/tooltip.ts @@ -1,16 +1,24 @@ -import { mode } from '../tools'; - -const baseStyle = (props: any) => { +const baseStyle = () => { return { - bg: mode(`gray.700`, `gray.300`)(props), py: 1, px: 2, - rounded: 'sm', shadow: 1, + rounded: 'sm', _text: { - color: mode(`gray.300`, `gray.700`)(props), fontSize: 'sm', }, + _light: { + bg: `muted.800`, + _text: { + color: `text.50`, + }, + }, + _dark: { + bg: `muted.50`, + _text: { + color: `text.900`, + }, + }, }; }; From 6d80b063fc71afac385562a35b0b07c0c239973d Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 15 Mar 2022 13:05:42 +0530 Subject: [PATCH 076/172] fix: added shadow --- src/theme/components/tooltip.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/tooltip.ts b/src/theme/components/tooltip.ts index 61e88b526..5f9c69a61 100644 --- a/src/theme/components/tooltip.ts +++ b/src/theme/components/tooltip.ts @@ -2,7 +2,7 @@ const baseStyle = () => { return { py: 1, px: 2, - shadow: 1, + shadow: 6, rounded: 'sm', _text: { fontSize: 'sm', From ed3c8841503557ff96e4fae963ee065113e403aa Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 13:11:23 +0530 Subject: [PATCH 077/172] fix: design changes --- src/theme/components/alert-dialog.ts | 84 +++++++++++++++++++++------- 1 file changed, 63 insertions(+), 21 deletions(-) diff --git a/src/theme/components/alert-dialog.ts b/src/theme/components/alert-dialog.ts index b567495d4..dab8fa9f7 100644 --- a/src/theme/components/alert-dialog.ts +++ b/src/theme/components/alert-dialog.ts @@ -1,5 +1,4 @@ import { Dimensions } from 'react-native'; -import { mode } from '../tools'; const sizes = { xs: { @@ -58,68 +57,111 @@ export const AlertDialog = { }; export const AlertDialogContent = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - bg: mode('coolGray.50', 'gray.700')(props), - _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, shadow: 1, rounded: 'lg', maxHeight: `${Dimensions.get('window').height - 150}px`, overflow: 'hidden', + _light: { + bg: 'muted.50', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + color: 'text.50', + }, }; }, }; export const AlertDialogCloseButton = { - baseStyle: (props: Record) => { + baseStyle: () => { return { position: 'absolute', right: '3', top: '3', zIndex: '1', - colorScheme: 'coolGray', p: '2', _icon: { - size: '3', - color: mode('coolGray.600', 'coolGray.100')(props), + size: '4', + }, + _light: { + _icon: { + color: 'muted.500', + }, + }, + _dark: { + _icon: { + color: 'muted.400', + }, }, }; }, }; export const AlertDialogHeader = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - py: '4', - px: '3', + p: '4', borderBottomWidth: '1', - borderColor: mode('coolGray.200', 'gray.600')(props), _text: { fontSize: 'md', fontWeight: 'semibold', - color: mode('coolGray.800', 'warmGray.50')(props), lineHeight: 'sm', }, + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, }; }, }; export const AlertDialogBody = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - pt: '2', - p: '3', - _text: { - color: mode('coolGray.600', 'coolGray.300')(props), + p: '4', + _light: { + bg: 'muted.50', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + _text: { + color: 'text.50', + }, }, }; }, }; export const AlertDialogFooter = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - p: '3', - bg: mode('coolGray.100', 'gray.600')(props), + p: '4', flexDirection: 'row', justifyContent: 'flex-end', flexWrap: 'wrap', + borderTopWidth: '1', + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + }, }; }, }; From a906855934754ba60e0e916a46221b96fe7d684f Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 13:32:50 +0530 Subject: [PATCH 078/172] fix: design changes --- src/theme/components/progress.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/theme/components/progress.ts b/src/theme/components/progress.ts index 643f01741..bf1f5c827 100644 --- a/src/theme/components/progress.ts +++ b/src/theme/components/progress.ts @@ -1,5 +1,3 @@ -import { mode, getColorScheme } from '../tools'; - const defaultProps = { colorScheme: 'primary', size: 'sm', @@ -11,13 +9,11 @@ const defaultProps = { }; function baseStyle(props: Record) { - const colorScheme = getColorScheme(props); + const { colorScheme: c } = props; return { - bg: `${colorScheme}.200`, overflow: 'hidden', _filledTrack: { - bg: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props), shadow: 0, height: '100%', display: 'flex', @@ -28,6 +24,18 @@ function baseStyle(props: Record) { fontWeight: 'bold', }, }, + _light: { + bg: 'muted.200', + _filledTrack: { + bg: `${c}.600`, + }, + }, + _dark: { + bg: 'muted.700', + _filledTrack: { + bg: `${c}.400`, + }, + }, }; } From db920a57c9bcdeee54ff46ba0d80ed69234eed2b Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 13:56:42 +0530 Subject: [PATCH 079/172] fix: design changes --- src/theme/components/avatar.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/theme/components/avatar.ts b/src/theme/components/avatar.ts index c59885f42..e8c583289 100644 --- a/src/theme/components/avatar.ts +++ b/src/theme/components/avatar.ts @@ -1,14 +1,12 @@ -import { randomColor, getRandomString, mode } from './../tools'; +import { randomColor, getRandomString } from './../tools'; const baseStyle = (props: Record) => { - const { name, ...colorModeProps } = props; + const { name } = props; const bg = name ? randomColor({ string: getRandomString(5) + name }) : 'gray.400'; - const borderColor = mode('gray.800', 'white')(colorModeProps); return { bg, - borderColor, position: 'relative', justifyContent: 'center', alignItems: 'center', @@ -27,6 +25,12 @@ const baseStyle = (props: Record) => { width: '100%', }, }, + _light: { + borderColor: 'gray.800', + }, + _dark: { + borderColor: 'white', + }, }; }; From c707ed00b7e838c14b76c9a2712d15740bb59dc5 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 15 Mar 2022 15:42:49 +0530 Subject: [PATCH 080/172] fix: slider design changes --- src/theme/components/slider.ts | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index dd69e20df..870335266 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -1,9 +1,6 @@ -import { getColorScheme, mode } from '../tools'; export const SliderTrack = { - baseStyle: ({ isVertical, size, ...props }: any) => { - const simplifiedColorScheme = getColorScheme(props); + baseStyle: ({ isVertical, size }: any) => { return { - bg: `${simplifiedColorScheme}.100`, borderRadius: 'lg', overflow: 'hidden', style: { @@ -18,41 +15,38 @@ export const SliderTrack = { py: !isVertical ? '3' : undefined, px: isVertical ? '3' : undefined, }, + _light: { + bg: 'muted.200', + }, + _dark: { + bg: 'muted.700', + }, }; }, }; export const SliderThumb = { - baseStyle: (props: any) => { - const simplifiedColorScheme = getColorScheme(props); + baseStyle: () => { return { - borderRadius: 99999, + borderRadius: 'full', zIndex: 999, alignItems: 'center', justifyContent: 'center', - bg: mode( - `${simplifiedColorScheme}.600`, - `${simplifiedColorScheme}.300` - )(props), scaleOnPressed: 1.2, + _light: { + bg: 'primary.600', + }, + _dark: { + bg: 'primary.500', + }, + shadow: 6, }; }, }; export const SliderFilledTrack = { - baseStyle: ({ - orientation, - isReversed, - sliderTrackPosition, - size, - ...props - }: any) => { - const simplifiedColorScheme = getColorScheme(props); + baseStyle: ({ orientation, isReversed, sliderTrackPosition, size }: any) => { return { - bg: mode( - `${simplifiedColorScheme}.600`, - `${simplifiedColorScheme}.300` - )(props), left: orientation !== 'vertical' && !isReversed ? 0 : undefined, bottom: orientation === 'vertical' && !isReversed ? 0 : undefined, right: orientation !== 'vertical' && isReversed ? 0 : undefined, @@ -61,6 +55,12 @@ export const SliderFilledTrack = { orientation === 'vertical' ? { height: sliderTrackPosition, width: size } : { width: sliderTrackPosition, height: size }, + _light: { + bg: 'primary.600', + }, + _dark: { + bg: 'primary.500', + }, }; }, }; From 023f7ab617905c816a396b61cdb98bf35efa01bc Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 16:05:35 +0530 Subject: [PATCH 081/172] fix: design changes --- src/theme/components/actionsheet.ts | 37 ++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/theme/components/actionsheet.ts b/src/theme/components/actionsheet.ts index 72d816daf..89361ace0 100644 --- a/src/theme/components/actionsheet.ts +++ b/src/theme/components/actionsheet.ts @@ -1,4 +1,3 @@ -import { mode } from '../tools'; // Actionsheet export const Actionsheet = { defaultProps: { @@ -10,14 +9,19 @@ export const Actionsheet = { // ActionsheetContent export const ActionsheetContent = { - baseStyle: (props: any) => ({ + baseStyle: () => ({ alignItems: 'center', px: 2, py: 2, borderRadius: 'none', roundedTop: 20, _dragIndicator: { - bg: mode('gray.400', 'gray.400')(props), + _light: { + bg: 'muted.500', + }, + _dark: { + bg: 'muted.400', + }, height: 1, width: 10, borderRadius: 2, @@ -39,20 +43,35 @@ export const ActionsheetContent = { // ActionsheetItem export const ActionsheetItem = { - baseStyle: (props: any) => ({ + baseStyle: () => ({ width: '100%', justifyContent: 'flex-start', p: 4, _text: { fontSize: 16, fontWeight: 'normal', - color: mode('coolGray.800', 'warmGray.50')(props), }, - _pressed: { - bg: mode('coolGray.300', 'gray.600')(props), + _light: { + _text: { + color: 'text.900', + }, + _hover: { + bg: 'muted.200', + }, + _pressed: { + bg: 'muted.300', + }, }, - _hover: { - bg: mode('coolGray.200', 'gray.500')(props), + _dark: { + _text: { + color: 'muted.50', + }, + _hover: { + bg: 'muted.700', + }, + _pressed: { + bg: 'muted.600', + }, }, }), defaultProps: { From 00316f138d473b6349955606440aeaa0b415a3eb Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Tue, 15 Mar 2022 17:25:59 +0530 Subject: [PATCH 082/172] fix: api changes, overlay fix, theme isolation, & new internal props --- .../composites/Toast/ToastStatus.tsx | 66 -------- .../composites/Toast/ToastVariants.tsx | 28 ---- .../components/composites/Toast/index.tsx | 4 - src/components/composites/Toast/Toast.tsx | 158 ++++-------------- src/components/composites/Toast/types.ts | 20 ++- src/theme/components/toast.ts | 26 ++- 6 files changed, 62 insertions(+), 240 deletions(-) delete mode 100644 example/storybook/stories/components/composites/Toast/ToastStatus.tsx delete mode 100644 example/storybook/stories/components/composites/Toast/ToastVariants.tsx diff --git a/example/storybook/stories/components/composites/Toast/ToastStatus.tsx b/example/storybook/stories/components/composites/Toast/ToastStatus.tsx deleted file mode 100644 index b4deb260e..000000000 --- a/example/storybook/stories/components/composites/Toast/ToastStatus.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react'; -import { Button, useToast, VStack, Center } from 'native-base'; - -export const Example = () => { - const toast = useToast(); - - return ( -
- - - - - - - - - -
- ); -}; diff --git a/example/storybook/stories/components/composites/Toast/ToastVariants.tsx b/example/storybook/stories/components/composites/Toast/ToastVariants.tsx deleted file mode 100644 index 7bed7bb58..000000000 --- a/example/storybook/stories/components/composites/Toast/ToastVariants.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { Button, useToast, Wrap } from 'native-base'; - -export const Example = () => { - const toast = useToast(); - const variants = ['solid', 'subtle', 'left-accent', 'top-accent', 'outline']; - - return ( - - {variants.map((variant) => ( - - ))} - - ); -}; diff --git a/example/storybook/stories/components/composites/Toast/index.tsx b/example/storybook/stories/components/composites/Toast/index.tsx index 87d0c7ddb..fc82807d0 100644 --- a/example/storybook/stories/components/composites/Toast/index.tsx +++ b/example/storybook/stories/components/composites/Toast/index.tsx @@ -3,13 +3,11 @@ import { storiesOf } from '@storybook/react-native'; import { withKnobs } from '@storybook/addon-knobs'; import Wrapper from '../../Wrapper'; import { Example as ToastPositions } from './ToastPositions'; -import { Example as ToastVariants } from './ToastVariants'; import { Example as Basic } from './Basic'; import { Example as CloseToast } from './CloseToast'; import { Example as CustomComponent } from './CustomComponent'; import { Example as CustomComponentWithCustomId } from './CustomComponentWithCustomId'; import { Example as PreventDuplicate } from './PreventDuplicate'; -import { Example as ToastStatus } from './ToastStatus'; import { Example as StandaloneToast } from './StandaloneToast'; storiesOf('Toast', module) @@ -21,6 +19,4 @@ storiesOf('Toast', module) .add('Custom Component with custom Id', () => ) .add('CloseToast', () => ) .add('Prevent Duplicate', () => ) - .add('Status', () => ) - .add('Toast Variants', () => ) .add('Toast Ref', () => ); diff --git a/src/components/composites/Toast/Toast.tsx b/src/components/composites/Toast/Toast.tsx index 647347fe2..5e03102ec 100644 --- a/src/components/composites/Toast/Toast.tsx +++ b/src/components/composites/Toast/Toast.tsx @@ -1,29 +1,18 @@ -import { OverlayContainer } from '@react-native-aria/overlays'; +import { Overlay } from '../../primitives/Overlay'; import { PresenceTransition } from '../Transitions'; import VStack from '../../primitives/Stack/VStack'; -import { Alert } from '../../composites/Alert'; import React, { createContext, MutableRefObject, useState, useMemo, } from 'react'; -import { - AccessibilityInfo, - Easing, - Platform, - SafeAreaView, -} from 'react-native'; -import IconButton from '../IconButton'; +import { AccessibilityInfo, Platform, SafeAreaView } from 'react-native'; import Box from '../../primitives/Box'; import { usePropsResolution } from '../../../hooks'; -import { CloseIcon } from '../../primitives/Icon/Icons'; import type { IToastContext, IToastInfo, IToast, IToastProps } from './types'; -import Text from '../../primitives/Text'; -import HStack from '../../primitives/Stack/HStack'; -import { useColorMode } from '../../../core/color-mode/hooks'; -let INSET = 50; +const INSET = 50; const POSITIONS = { 'top': { @@ -77,7 +66,7 @@ const ToastContext = createContext({ hideToast: () => {}, }); -const CustomToast = () => { +const CustomToast = ({ _overlay, _stack, _presenceTransition }: any) => { const { toastInfo, visibleToasts, removeToast } = React.useContext( ToastContext ); @@ -86,26 +75,27 @@ const CustomToast = () => { return Object.keys(toastInfo); }; + let hasToastOnOverlay = false; + getPositions().map((position) => { + if (toastInfo[position]?.length > 0) hasToastOnOverlay = true; + }); + return getPositions().length > 0 ? ( - + {getPositions().map((position: string) => { if (Object.keys(POSITIONS).includes(position)) return ( { // @ts-ignore toastInfo[position].map((toast: IToast) => ( { @@ -119,15 +109,6 @@ const CustomToast = () => { opacity: 0, translateY: transitionConfig[position], }} - animate={{ - opacity: 1, - transition: { easing: Easing.ease, duration: 250 }, - }} - exit={{ - opacity: 0, - scale: 0.85, - transition: { easing: Easing.ease, duration: 100 }, - }} > {toast.component} @@ -137,7 +118,7 @@ const CustomToast = () => { ); else return null; })} - + ) : null; }; @@ -150,8 +131,6 @@ export const ToastProvider = ({ children }: { children: any }) => { >({}); const [themeProps] = useState(usePropsResolution('Toast', {})); - - const { colorMode } = useColorMode(); const toastIndex = React.useRef(1); const hideAll = React.useCallback(() => { @@ -206,49 +185,18 @@ export const ToastProvider = ({ children }: { children: any }) => { [setToastInfo] ); - const getTextColor = React.useCallback( - ( - variant: - | 'solid' - | 'left-accent' - | 'top-accent' - | 'outline' - | 'subtle' - | 'outline-light' - | any - ): any => { - switch (variant) { - case 'left-accent': - case 'top-accent': - case 'subtle': - return 'coolGray.800'; - case 'solid': - return 'warmGray.50'; - case 'outline': - case 'outline-light': - return colorMode === 'light' ? 'coolGray.800' : 'warmGray.50'; - default: - return 'black'; - } - }, - [colorMode] - ); - const setToast = React.useCallback( (props: IToastProps): number => { - // console.log("in settoast"); const { placement = 'bottom', title, render, - status, id = toastIndex.current++, description, - isClosable = true, duration = 5000, - variant, + _title, + _description, accessibilityAnnouncement, - accessibilityLiveRegion = 'polite', ...rest } = props; @@ -259,71 +207,17 @@ export const ToastProvider = ({ children }: { children: any }) => { if (render) { component = render({ id }); - } else if (!status && !variant) { + } else { component = ( - - {title} + // Below VStack is the default component where all the direct props spread. + + {title} {description && ( - {description} - )} - - ); - } else if (status || variant) { - component = ( - - - - - - - {title} - - - {isClosable ? ( - - } - onPress={() => hideToast(id)} - /> - ) : null} - - + {description} - - + )} + ); } @@ -348,7 +242,7 @@ export const ToastProvider = ({ children }: { children: any }) => { return id; }, - [getTextColor, themeProps, toastInfo, visibleToasts, hideToast] + [themeProps, toastInfo, visibleToasts, hideToast] ); const contextValue = React.useMemo(() => { @@ -378,7 +272,11 @@ export const ToastProvider = ({ children }: { children: any }) => { return ( {children} - + ); }; diff --git a/src/components/composites/Toast/types.ts b/src/components/composites/Toast/types.ts index 368546aa3..8837add4b 100644 --- a/src/components/composites/Toast/types.ts +++ b/src/components/composites/Toast/types.ts @@ -1,6 +1,6 @@ -import type { IAlertProps } from '../Alert/types'; import type { ReactNode } from 'react'; import type { IBoxProps } from '../../primitives/Box'; +import type { ITextProps } from '../../primitives/Text'; export interface IToastProps extends IBoxProps { /** @@ -20,10 +20,6 @@ export interface IToastProps extends IBoxProps { * The `id` of the toast. Mostly used when you need to prevent duplicate. By default, we generate a unique `id` for each toast */ id?: any; - /** - * If `true`, toast will show a close button - */ - isClosable?: boolean; /** * Callback function to run side effects after the toast has closed. */ @@ -44,12 +40,18 @@ export interface IToastProps extends IBoxProps { */ render?: (props: any) => ReactNode; /** - * The status of the toast. Adding status will render an [Alert](alert.md) component inside the `Toast` + * For providing props to Title inside Toast + */ + _title?: ITextProps; + /** + * For providing props to Description inside Toast */ - status?: IAlertProps['status']; - /** The variants of the [Alert](alert.md) component. + _description?: ITextProps; + + /** + * For providing props to Description inside Toast */ - variant?: IAlertProps['variant']; + BlahBLah?: ITextProps; /** * The text to be announced by a screen reader when the Toast opens. */ diff --git a/src/theme/components/toast.ts b/src/theme/components/toast.ts index d16730790..ef2d89ff6 100644 --- a/src/theme/components/toast.ts +++ b/src/theme/components/toast.ts @@ -1,11 +1,34 @@ import { mode } from './../tools'; +import { Easing } from 'react-native'; const baseStyle = (props: Record) => { + // NOTE: Internal pseudo props like _stack, _overlay nad _presenceTransition can only be update by the theme. return { bg: mode(`coolGray.600`, `warmGray.200`)(props), p: '2', rounded: 'sm', shadow: 1, + // The stack in which toast are being rendered + _stack: { + margin: 'auto', + position: 'absolute', + space: 2, + alignItems: 'center', + justifyContent: 'center', + pointerEvents: 'box-none', + }, + _overlay: {}, + _presenceTransition: { + animate: { + opacity: 1, + transition: { easing: Easing.ease, duration: 250 }, + }, + exit: { + opacity: 0, + scale: 0.85, + transition: { easing: Easing.ease, duration: 100 }, + }, + }, _title: { color: mode(`warmGray.200`, `coolGray.600`)(props), fontWeight: 700, @@ -14,9 +37,6 @@ const baseStyle = (props: Record) => { color: mode(`warmGray.200`, `coolGray.600`)(props), fontWeight: 400, }, - _closeIcon: { - size: 4, - }, }; }; From 654a5055e2c140d25fb65b8b2b0e50c1aeb76ad9 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 15 Mar 2022 18:45:12 +0530 Subject: [PATCH 083/172] fix: alert design changes --- src/theme/components/alert.ts | 107 +++++++++++++++++++++++++--------- 1 file changed, 78 insertions(+), 29 deletions(-) diff --git a/src/theme/components/alert.ts b/src/theme/components/alert.ts index ea40d3225..205e1fd19 100644 --- a/src/theme/components/alert.ts +++ b/src/theme/components/alert.ts @@ -1,4 +1,4 @@ -import { mode, getColor, getColorScheme, transparentize } from '../tools'; +import { getColor, getColorScheme, transparentize } from '../tools'; function getBg(props: Record) { let { theme, colorScheme, status, variant } = props; @@ -7,92 +7,141 @@ function getBg(props: Record) { props, colorScheme !== 'primary' ? colorScheme : status ); + const lightBg = variant === 'solid' - ? getColor(theme, `${colorScheme}.600`, colorScheme) - : getColor(theme, `${colorScheme}.100`, colorScheme); + ? getColor(theme, `${colorScheme}.700`, colorScheme) + : getColor(theme, `${colorScheme}.200`, colorScheme); const darkBg = variant === 'solid' - ? getColor(theme, `${colorScheme}.700`, colorScheme) + ? getColor(theme, `${colorScheme}.600`, colorScheme) : getColor(theme, `${colorScheme}.200`, colorScheme); - return mode(lightBg, darkBg)(props); + + return { lightBg, darkBg }; } const variantSubtle = (props: Record) => { let { colorScheme, status } = props; + const { lightBg, darkBg } = getBg(props); + colorScheme = getColorScheme( props, colorScheme !== 'primary' ? colorScheme : status ); + return { - bg: getBg(props), - _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + _light: { + bg: lightBg, + _icon: { color: `${colorScheme}.700` }, + }, + _dark: { + bg: darkBg, + _icon: { color: `${colorScheme}.600` }, + }, }; }; const variantOutline = (props: Record) => { let { colorScheme, status } = props; + colorScheme = getColorScheme( props, colorScheme !== 'primary' ? colorScheme : status ); + return { borderWidth: 1, - borderColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), - _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + _light: { + _icon: { color: `${colorScheme}.700` }, + borderColor: `${colorScheme}.700`, + }, + _dark: { + _icon: { color: `${colorScheme}.600` }, + borderColor: `${colorScheme}.600`, + }, }; }; + const variantOutlineLight = (props: Record) => { let { colorScheme, status, theme } = props; + colorScheme = getColorScheme( props, colorScheme !== 'primary' ? colorScheme : status ); + return { borderWidth: 1, - borderColor: transparentize( - mode(`${colorScheme}.600`, `${colorScheme}.500`)(props), - 0.2 - )(theme), - _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + _light: { + _icon: { color: `${colorScheme}.700` }, + borderColor: transparentize(`${colorScheme}.700`, 0.2)(theme), + }, + _dark: { + _icon: { color: `${colorScheme}.600` }, + borderColor: transparentize(`${colorScheme}.600`, 0.2)(theme), + }, }; }; const variantSolid = (props: Record) => { + const { lightBg, darkBg } = getBg(props); return { - borderWidth: 6, - borderColor: 'transparent', - bg: getBg(props), - _icon: { color: mode(`coolGray.50`, `warmGray.50`)(props) }, + _light: { + bg: lightBg, + }, + _dark: { + bg: darkBg, + }, + _icon: { color: `muted.50` }, }; }; + const variantLeftAccent = (props: Record) => { let { colorScheme, status } = props; + const { lightBg, darkBg } = getBg(props); + colorScheme = getColorScheme( props, colorScheme !== 'primary' ? colorScheme : status ); + return { - borderWidth: 4, - bg: getBg(props), - _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, - borderColor: 'transparent', - borderLeftColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), + borderLeftWidth: 4, + _light: { + bg: lightBg, + _icon: { color: `${colorScheme}.700` }, + borderLeftColor: `${colorScheme}.700`, + }, + _dark: { + bg: darkBg, + _icon: { color: `${colorScheme}.600` }, + borderLeftColor: `${colorScheme}.600`, + }, }; }; + const variantTopAccent = (props: Record) => { let { colorScheme, status } = props; + const { lightBg, darkBg } = getBg(props); + colorScheme = getColorScheme( props, colorScheme !== 'primary' ? colorScheme : status ); + return { - borderWidth: 4, - borderColor: 'transparent', - borderTopColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), - bg: getBg(props), - _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + borderTopWidth: 4, + _light: { + bg: lightBg, + _icon: { color: `${colorScheme}.700` }, + borderTopColor: `${colorScheme}.700`, + }, + _dark: { + bg: darkBg, + _icon: { color: `${colorScheme}.600` }, + borderTopColor: `${colorScheme}.600`, + }, }; }; @@ -115,7 +164,7 @@ export const Alert = { }, variants, defaultProps: { - colorScheme: 'primary', + colorScheme: 'info', variant: 'subtle', }, }; From 3f062acc55d937fee0478670370fa8b317ed6f42 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 18:50:26 +0530 Subject: [PATCH 084/172] fix: design changes --- src/theme/components/modal.ts | 83 ++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 20 deletions(-) diff --git a/src/theme/components/modal.ts b/src/theme/components/modal.ts index eebd0d2cf..bc0da0aa9 100644 --- a/src/theme/components/modal.ts +++ b/src/theme/components/modal.ts @@ -1,5 +1,4 @@ import { Dimensions } from 'react-native'; -import { mode } from '../tools'; const sizes = { xs: { @@ -58,19 +57,29 @@ export const Modal = { }; export const ModalContent = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - bg: mode('coolGray.50', 'gray.700')(props), - _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, shadow: 1, rounded: 'lg', maxHeight: `${Dimensions.get('window').height - 150}px`, overflow: 'hidden', + _light: { + bg: 'muted.50', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + _text: { + color: 'text.50', + }, + }, }; }, }; export const ModalCloseButton = { - baseStyle: (props: Record) => { + baseStyle: () => { return { position: 'absolute', right: '3', @@ -79,47 +88,81 @@ export const ModalCloseButton = { colorScheme: 'coolGray', p: '2', _icon: { - size: '3', - color: mode('coolGray.600', 'coolGray.100')(props), + size: '4', + }, + _light: { + _icon: { + color: 'muted.500', + }, + }, + _dark: { + _icon: { + color: 'muted.400', + }, }, }; }, }; export const ModalHeader = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - py: '4', - px: '3', + p: '4', borderBottomWidth: '1', - borderColor: mode('coolGray.200', 'gray.600')(props), _text: { fontSize: 'md', fontWeight: 'semibold', - color: mode('coolGray.800', 'warmGray.50')(props), lineHeight: 'sm', }, + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, }; }, }; export const ModalBody = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - pt: '2', - p: '3', - _text: { - color: mode('coolGray.600', 'coolGray.300')(props), + p: '4', + _light: { + _text: { + color: 'text.900', + }, + }, + _dark: { + _text: { + color: 'text.50', + }, }, }; }, }; export const ModalFooter = { - baseStyle: (props: Record) => { + baseStyle: () => { return { - p: '3', - bg: mode('coolGray.100', 'gray.600')(props), + p: '4', flexDirection: 'row', justifyContent: 'flex-end', flexWrap: 'wrap', + borderTopWidth: 1, + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + }, }; }, }; From 397ae4cc7cce899bbbdc6fabe87e56bb6952261b Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 15 Mar 2022 19:50:17 +0530 Subject: [PATCH 085/172] fix: design changes --- src/theme/components/form-control.ts | 50 ++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/src/theme/components/form-control.ts b/src/theme/components/form-control.ts index 20cfb2c1f..e965d999e 100644 --- a/src/theme/components/form-control.ts +++ b/src/theme/components/form-control.ts @@ -1,5 +1,3 @@ -import { mode } from '../tools'; - // FormControl export const FormControl = { baseStyle: { @@ -9,21 +7,30 @@ export const FormControl = { // FormControlErrorMessage export const FormControlErrorMessage = { - baseStyle: (props: Record) => { + baseStyle: () => { return { mt: '2', _text: { fontSize: 'xs', - color: mode('danger.600', 'danger.300')(props), }, _stack: { space: 1, alignItems: 'center' }, + _light: { + _text: { + color: 'error.600', + }, + }, + _dark: { + _text: { + color: 'error.500', + }, + }, }; }, }; // FormControlLabel export const FormControlLabel = { - baseStyle: (props: Record) => { + baseStyle: () => { return { flexDirection: 'row', justifyContent: 'flex-start', @@ -31,23 +38,44 @@ export const FormControlLabel = { fontSize: 'sm', fontWeight: 'medium', }, - _astrick: { - color: mode('danger.600', 'danger.300')(props), + my: '1', + _light: { + _text: { + color: 'text.500', + }, + _astrick: { + color: 'error.600', + }, + }, + _dark: { + _text: { + color: 'text.400', + }, + _astrick: { + color: 'error.500', + }, }, - mb: '2', - mr: '3', }; }, }; // FormControlHelperText export const FormControlHelperText = { - baseStyle: (props: Record) => { + baseStyle: () => { return { mt: '2', _text: { fontSize: 'xs', - color: mode('muted.500', 'muted.400')(props), + }, + _light: { + _text: { + color: 'text.500', + }, + }, + _dark: { + _text: { + color: 'text.400', + }, }, }; }, From 53f8f2f80f254e45a472f8d8f64ebcae4bee0b61 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Tue, 15 Mar 2022 20:25:19 +0530 Subject: [PATCH 086/172] fix: design changes and status and variant recipies --- .../composites/Toast/StatusRecipies.tsx | 111 ++++++++++++++++ .../composites/Toast/VariantRecipies.tsx | 120 ++++++++++++++++++ .../components/composites/Toast/index.tsx | 4 + src/theme/components/toast.ts | 4 +- 4 files changed, 237 insertions(+), 2 deletions(-) create mode 100644 example/storybook/stories/components/composites/Toast/StatusRecipies.tsx create mode 100644 example/storybook/stories/components/composites/Toast/VariantRecipies.tsx diff --git a/example/storybook/stories/components/composites/Toast/StatusRecipies.tsx b/example/storybook/stories/components/composites/Toast/StatusRecipies.tsx new file mode 100644 index 000000000..e26f9ef5c --- /dev/null +++ b/example/storybook/stories/components/composites/Toast/StatusRecipies.tsx @@ -0,0 +1,111 @@ +import React from 'react'; +import { + Button, + useToast, + VStack, + HStack, + Text, + Center, + IconButton, + CloseIcon, + Alert, +} from 'native-base'; + +export const Example = () => { + const toast = useToast(); + const ToastDetails = [ + { + title: 'Account verified', + status: 'success', + description: 'Thanks for signing up with us.', + isClosable: true, + }, + { + title: 'Something went wrong', + status: 'error', + description: 'Please create a support ticket from the support page', + }, + { + title: 'Network connection restored', + status: 'info', + description: + 'This is to inform you that your network connectivity is restored', + isClosable: true, + }, + { + title: 'Invalid email address', + status: 'warning', + description: 'Please enter a valid email address', + }, + ]; + + const ToastAlert = ({ + id, + status, + variant, + title, + description, + isClosable, + ...rest + }: any) => ( + + + + + + + {title} + + + {isClosable ? ( + } + onPress={() => toast.close(id)} + /> + ) : null} + + + {description} + + + + ); + + return ( +
+ + {ToastDetails.map((item) => ( + + ))} + +
+ ); +}; diff --git a/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx b/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx new file mode 100644 index 000000000..54673c68e --- /dev/null +++ b/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx @@ -0,0 +1,120 @@ +import React from 'react'; +import { + Button, + useToast, + VStack, + HStack, + Text, + Center, + IconButton, + CloseIcon, + Alert, +} from 'native-base'; + +export const Example = () => { + const toast = useToast(); + const ToastDetails = [ + { + title: 'Account verified', + variant: 'solid', + description: 'Thanks for signing up with us.', + isClosable: true, + }, + { + title: 'Something went wrong', + variant: 'subtle', + description: 'Please create a support ticket from the support page', + }, + { + title: 'Network connection restored', + variant: 'left-accent', + description: + 'This is to inform you that your network connectivity is restored', + isClosable: true, + }, + { + title: 'Invalid email address', + variant: 'top-accent', + description: 'Please enter a valid email address', + }, + { + title: 'Invalid email address', + variant: 'outline', + description: 'Please enter a valid email address', + }, + ]; + + const ToastAlert = ({ + id, + status, + variant, + title, + description, + isClosable, + ...rest + }: any) => ( + + + + + + + {title} + + + {isClosable ? ( + + } + onPress={() => toast.close(id)} + /> + ) : null} + + + {description} + + + + ); + + return ( +
+ + {ToastDetails.map((item) => ( + + ))} + +
+ ); +}; diff --git a/example/storybook/stories/components/composites/Toast/index.tsx b/example/storybook/stories/components/composites/Toast/index.tsx index fc82807d0..17d514d71 100644 --- a/example/storybook/stories/components/composites/Toast/index.tsx +++ b/example/storybook/stories/components/composites/Toast/index.tsx @@ -3,11 +3,13 @@ import { storiesOf } from '@storybook/react-native'; import { withKnobs } from '@storybook/addon-knobs'; import Wrapper from '../../Wrapper'; import { Example as ToastPositions } from './ToastPositions'; +import { Example as ToastVariants } from './VariantRecipies'; import { Example as Basic } from './Basic'; import { Example as CloseToast } from './CloseToast'; import { Example as CustomComponent } from './CustomComponent'; import { Example as CustomComponentWithCustomId } from './CustomComponentWithCustomId'; import { Example as PreventDuplicate } from './PreventDuplicate'; +import { Example as ToastStatus } from './StatusRecipies'; import { Example as StandaloneToast } from './StandaloneToast'; storiesOf('Toast', module) @@ -19,4 +21,6 @@ storiesOf('Toast', module) .add('Custom Component with custom Id', () => ) .add('CloseToast', () => ) .add('Prevent Duplicate', () => ) + .add('Status Recipies', () => ) + .add('Variants Recipies', () => ) .add('Toast Ref', () => ); diff --git a/src/theme/components/toast.ts b/src/theme/components/toast.ts index ef2d89ff6..daff20355 100644 --- a/src/theme/components/toast.ts +++ b/src/theme/components/toast.ts @@ -4,10 +4,10 @@ import { Easing } from 'react-native'; const baseStyle = (props: Record) => { // NOTE: Internal pseudo props like _stack, _overlay nad _presenceTransition can only be update by the theme. return { - bg: mode(`coolGray.600`, `warmGray.200`)(props), + bg: mode(`muted.700`, `muted.600`)(props), p: '2', rounded: 'sm', - shadow: 1, + shadow: 6, // The stack in which toast are being rendered _stack: { margin: 'auto', From fdab32a614c7bf3fe7c845142cb88ef1bcc77177 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 16 Mar 2022 00:15:26 +0530 Subject: [PATCH 087/172] fix: input internal api --- src/components/primitives/Input/Input.tsx | 110 +++++++++++++--------- src/theme/components/input.ts | 12 ++- 2 files changed, 74 insertions(+), 48 deletions(-) diff --git a/src/components/primitives/Input/Input.tsx b/src/components/primitives/Input/Input.tsx index 5da5706d1..552c8f5a2 100644 --- a/src/components/primitives/Input/Input.tsx +++ b/src/components/primitives/Input/Input.tsx @@ -1,6 +1,7 @@ import React, { memo, forwardRef } from 'react'; import type { IInputProps } from './types'; -import InputBase from './InputBase'; +import { TextInput } from 'react-native'; +import { useToken } from '../../../hooks'; import { useFormControl } from '../../composites/FormControl'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; import { useHover } from '@react-native-aria/interactions'; @@ -8,9 +9,18 @@ import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { mergeRefs } from '../../../utils'; import { Stack } from '../Stack'; +import { makeStyledComponent } from '../../../utils/styled'; +import { useResolvedFontFamily } from '../../../hooks/useResolvedFontFamily'; + +const StyledInput = makeStyledComponent(TextInput); const Input = ( - { isHovered: isHoveredProp, isFocused: isFocusedProp, ...props }: IInputProps, + { + isHovered: isHoveredProp, + isFocused: isFocusedProp, + onKeyPress, + ...props + }: IInputProps, ref: any ) => { const inputProps = useFormControl({ @@ -37,6 +47,18 @@ const Input = ( }; const { + ariaLabel, + accessibilityLabel, + type, + isFullWidth, + isDisabled, + isReadOnly, + fontFamily, + fontWeight, + fontStyle, + placeholderTextColor, + selectionColor, + underlineColorAndroid, InputLeftElement, InputRightElement, leftElement, @@ -45,7 +67,7 @@ const Input = ( onBlur, wrapperRef, _stack, - _complexInputBase, + _input, ...resolvedProps } = usePropsResolution( 'Input', @@ -73,57 +95,55 @@ const Input = ( 'opacity', ]); - const [, baseInputProps] = extractInObject(nonLayoutProps, ['variant']); - + const resolvedFontFamily = useResolvedFontFamily({ + fontFamily, + fontWeight: fontWeight ?? 400, + fontStyle: fontStyle ?? 'normal', + }); + const resolvedPlaceholderTextColor = useToken('colors', placeholderTextColor); + const resolvedSelectionColor = useToken('colors', selectionColor); + const resolvedUnderlineColorAndroid = useToken( + 'colors', + underlineColorAndroid + ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } - if (InputLeftElement || InputRightElement || leftElement || rightElement) { - return ( - - {InputLeftElement || leftElement - ? InputLeftElement || leftElement - : null} - { - handleFocus(true, onFocus ? () => onFocus(e) : () => {}); - }} - onBlur={(e) => { - handleFocus(false, onBlur ? () => onBlur(e) : () => {}); - }} - /> - {InputRightElement || rightElement - ? InputRightElement || rightElement - : null} - - ); - } else { - return ( - { + + return ( + + {InputLeftElement || leftElement ? InputLeftElement || leftElement : null} + { + e.persist(); + onKeyPress && onKeyPress(e); + }} + onFocus={(e: any) => { handleFocus(true, onFocus ? () => onFocus(e) : () => {}); }} - onBlur={(e) => { + onBlur={(e: any) => { handleFocus(false, onBlur ? () => onBlur(e) : () => {}); }} + {..._input} + ref={mergeRefs([ref, _ref, wrapperRef])} /> - ); - } + {InputRightElement || rightElement + ? InputRightElement || rightElement + : null} + + ); }; export default memo(forwardRef(Input)); diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 218f56c7a..1a4de0713 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -38,6 +38,10 @@ const baseStyle = (props: Record) => { _disabled: { opacity: '80', bg: mode('muted.100', 'muted.700')(props), + _web: { + disabled: true, + cursor: 'not-allowed', + }, }, _invalid: { borderColor: mode('danger.600', 'danger.300')(props), @@ -49,9 +53,8 @@ const baseStyle = (props: Record) => { outlineWidth: '0', overflow: 'auto', lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height - }, - _webInputBase: { outline: 'none', + cursor: 'auto', }, _complexInputBase: { bg: 'transparent', @@ -61,9 +64,12 @@ const baseStyle = (props: Record) => { _stack: { flexDirection: 'row', alignItems: 'center', - justifyContent: 'space-between', + // justifyContent: 'space-between', overflow: 'hidden', }, + _input: { + flex: 1, + }, }; }; From e9c93f5490c464c8eebd2d716ddf13e9e610f37d Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 11:22:25 +0530 Subject: [PATCH 088/172] fix: design changes --- src/theme/components/alert.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/theme/components/alert.ts b/src/theme/components/alert.ts index 205e1fd19..5cdb8c9d8 100644 --- a/src/theme/components/alert.ts +++ b/src/theme/components/alert.ts @@ -75,11 +75,11 @@ const variantOutlineLight = (props: Record) => { borderWidth: 1, _light: { _icon: { color: `${colorScheme}.700` }, - borderColor: transparentize(`${colorScheme}.700`, 0.2)(theme), + borderColor: transparentize(`${colorScheme}.700`, 0.4)(theme), }, _dark: { _icon: { color: `${colorScheme}.600` }, - borderColor: transparentize(`${colorScheme}.600`, 0.2)(theme), + borderColor: transparentize(`${colorScheme}.600`, 0.4)(theme), }, }; }; From aca5b2173ce7590a76a4d465cfd8a102ab5af94d Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 16 Mar 2022 11:34:41 +0530 Subject: [PATCH 089/172] fix: input types and addons theme --- src/components/primitives/Input/InputAddons.tsx | 8 ++------ src/components/primitives/Input/types.ts | 10 +--------- src/theme/components/inputleftaddon.ts | 3 +++ src/theme/components/inputrightaddon.ts | 3 +++ 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/components/primitives/Input/InputAddons.tsx b/src/components/primitives/Input/InputAddons.tsx index 2305648dc..47b24e476 100644 --- a/src/components/primitives/Input/InputAddons.tsx +++ b/src/components/primitives/Input/InputAddons.tsx @@ -13,9 +13,7 @@ export const InputLeftAddon = memo( } return ( - - {props.children} - + {props.children} ); }) @@ -29,9 +27,7 @@ export const InputRightAddon = memo( } return ( - - {props.children} - + {props.children} ); }) diff --git a/src/components/primitives/Input/types.ts b/src/components/primitives/Input/types.ts index 505928a1e..6d8b933bc 100644 --- a/src/components/primitives/Input/types.ts +++ b/src/components/primitives/Input/types.ts @@ -92,18 +92,10 @@ export interface IInputProps * Passed props will be applied on invalid state. */ _invalid?: Omit; - // These porps are currently on hold - // label?: string; - // _label?: ITextProps; - /** * props are passed to InputBase component */ - _webInputBase?: {}; - /** - * props are used when Input is wrapped inside a Box - */ - _complexInputBase?: {}; + _input?: {}; } export interface IInputGroupProps extends IBoxProps { diff --git a/src/theme/components/inputleftaddon.ts b/src/theme/components/inputleftaddon.ts index 9838e6cd8..539ff7fc7 100644 --- a/src/theme/components/inputleftaddon.ts +++ b/src/theme/components/inputleftaddon.ts @@ -10,7 +10,10 @@ const baseStyle = (props: Record) => { borderWidth: '1', _text: { color: mode('muted.400', 'muted.500')(props), + fontWeight: 600, }, + alignItems: 'center', + justifyContent: 'center', }; }; diff --git a/src/theme/components/inputrightaddon.ts b/src/theme/components/inputrightaddon.ts index cce33ef4c..6c01599b9 100644 --- a/src/theme/components/inputrightaddon.ts +++ b/src/theme/components/inputrightaddon.ts @@ -10,7 +10,10 @@ const baseStyle = (props: Record) => { borderWidth: '1', _text: { color: mode('muted.400', 'muted.500')(props), + fontWeight: 600, }, + alignItems: 'center', + justifyContent: 'center', }; }; From fae18686e755f4be7abaf883e17fbe57a3dd0902 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 16 Mar 2022 12:01:45 +0530 Subject: [PATCH 090/172] fix: input theme --- src/theme/components/input.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 1a4de0713..e1fc40565 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -56,11 +56,6 @@ const baseStyle = (props: Record) => { outline: 'none', cursor: 'auto', }, - _complexInputBase: { - bg: 'transparent', - flex: 1, - variant: 'unstyled', - }, _stack: { flexDirection: 'row', alignItems: 'center', @@ -68,6 +63,7 @@ const baseStyle = (props: Record) => { overflow: 'hidden', }, _input: { + bg: 'transparent', flex: 1, }, }; From 80b8aeda9a802ac9fe1bde11730571f8e0aeb0e9 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Wed, 16 Mar 2022 12:27:19 +0530 Subject: [PATCH 091/172] fix: typo and text changes --- src/components/composites/Toast/types.ts | 5 ----- src/theme/components/toast.ts | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/components/composites/Toast/types.ts b/src/components/composites/Toast/types.ts index 8837add4b..713f0df04 100644 --- a/src/components/composites/Toast/types.ts +++ b/src/components/composites/Toast/types.ts @@ -47,11 +47,6 @@ export interface IToastProps extends IBoxProps { * For providing props to Description inside Toast */ _description?: ITextProps; - - /** - * For providing props to Description inside Toast - */ - BlahBLah?: ITextProps; /** * The text to be announced by a screen reader when the Toast opens. */ diff --git a/src/theme/components/toast.ts b/src/theme/components/toast.ts index daff20355..d2130ca1b 100644 --- a/src/theme/components/toast.ts +++ b/src/theme/components/toast.ts @@ -30,11 +30,11 @@ const baseStyle = (props: Record) => { }, }, _title: { - color: mode(`warmGray.200`, `coolGray.600`)(props), + color: 'text.50', fontWeight: 700, }, _description: { - color: mode(`warmGray.200`, `coolGray.600`)(props), + color: 'text.50', fontWeight: 400, }, }; From 8e0f2410e68118149a816ec55992e7b70b298af3 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 14:40:48 +0530 Subject: [PATCH 092/172] fix: icon pack changes --- .../components/primitives/Icon/AllIcons.tsx | 35 ++++++++++++ src/components/primitives/Icon/Icons/Add.tsx | 5 +- .../primitives/Icon/Icons/Arrow.tsx | 54 ++++++++++++++----- .../primitives/Icon/Icons/Check.tsx | 13 ++--- .../primitives/Icon/Icons/Chevron.tsx | 33 ++++++------ .../primitives/Icon/Icons/Circle.tsx | 3 +- .../primitives/Icon/Icons/Close.tsx | 4 +- .../primitives/Icon/Icons/Delete.tsx | 7 +++ .../primitives/Icon/Icons/Favourite.tsx | 7 +++ .../primitives/Icon/Icons/Hamburger.tsx | 4 +- src/components/primitives/Icon/Icons/Info.tsx | 19 +++---- .../primitives/Icon/Icons/Minus.tsx | 9 +--- src/components/primitives/Icon/Icons/Moon.tsx | 4 +- src/components/primitives/Icon/Icons/Play.tsx | 7 +++ .../primitives/Icon/Icons/Question.tsx | 4 +- .../primitives/Icon/Icons/Search.tsx | 4 +- .../primitives/Icon/Icons/Share.tsx | 7 +++ src/components/primitives/Icon/Icons/Sun.tsx | 30 +++++------ .../primitives/Icon/Icons/Warning.tsx | 15 ++++-- .../primitives/Icon/Icons/index.tsx | 4 ++ .../Icon/Icons/questionIconPath.tsx | 17 ++---- 21 files changed, 179 insertions(+), 106 deletions(-) create mode 100644 src/components/primitives/Icon/Icons/Delete.tsx create mode 100644 src/components/primitives/Icon/Icons/Favourite.tsx create mode 100644 src/components/primitives/Icon/Icons/Play.tsx create mode 100644 src/components/primitives/Icon/Icons/Share.tsx diff --git a/example/storybook/stories/components/primitives/Icon/AllIcons.tsx b/example/storybook/stories/components/primitives/Icon/AllIcons.tsx index de04218a1..e1db3f709 100644 --- a/example/storybook/stories/components/primitives/Icon/AllIcons.tsx +++ b/example/storybook/stories/components/primitives/Icon/AllIcons.tsx @@ -17,6 +17,7 @@ import { ChevronRightIcon, ChevronUpIcon, CloseIcon, + SmallCloseIcon, HamburgerIcon, InfoIcon, InfoOutlineIcon, @@ -26,6 +27,12 @@ import { SearchIcon, WarningIcon, WarningTwoIcon, + ThreeDotsIcon, + WarningOutlineIcon, + ShareIcon, + PlayIcon, + FavouriteIcon, + DeleteIcon, VStack, FlatList, useBreakpointValue, @@ -89,6 +96,10 @@ export const Example = () => { icon: , iconName: 'close', }, + { + icon: , + iconName: 'small-close', + }, { icon: , iconName: 'menu', @@ -133,6 +144,30 @@ export const Example = () => { icon: , iconName: 'warning-2', }, + { + icon: , + iconName: 'warning-outline', + }, + { + icon: , + iconName: 'three-dots', + }, + { + icon: , + iconName: 'share', + }, + { + icon: , + iconName: 'play', + }, + { + icon: , + iconName: 'favourite', + }, + { + icon: , + iconName: 'delete', + }, ]; return ( diff --git a/src/components/primitives/Icon/Icons/Add.tsx b/src/components/primitives/Icon/Icons/Add.tsx index bd4f1578e..29f49d453 100644 --- a/src/components/primitives/Icon/Icons/Add.tsx +++ b/src/components/primitives/Icon/Icons/Add.tsx @@ -1,7 +1,6 @@ import { createIcon } from '../createIcon'; export const AddIcon = createIcon({ - viewBox: '0 0 24 24', - d: - 'M0,12a1.5,1.5,0,0,0,1.5,1.5h8.75a.25.25,0,0,1,.25.25V22.5a1.5,1.5,0,0,0,3,0V13.75a.25.25,0,0,1,.25-.25H22.5a1.5,1.5,0,0,0,0-3H13.75a.25.25,0,0,1-.25-.25V1.5a1.5,1.5,0,0,0-3,0v8.75a.25.25,0,0,1-.25.25H1.5A1.5,1.5,0,0,0,0,12Z', + viewBox: '0 0 20 20', + d: 'M11.25 8.75V0H8.75V8.75H0V11.25H8.75V20H11.25V11.25H20V8.75H11.25Z', }); diff --git a/src/components/primitives/Icon/Icons/Arrow.tsx b/src/components/primitives/Icon/Icons/Arrow.tsx index 8249ec9fb..6b9ab500c 100644 --- a/src/components/primitives/Icon/Icons/Arrow.tsx +++ b/src/components/primitives/Icon/Icons/Arrow.tsx @@ -1,21 +1,51 @@ +import React from 'react'; import { createIcon } from '../createIcon'; +import { G, Path } from '../nbSvg'; -export const ArrowBackIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z', +export const ArrowUpIcon = createIcon({ + viewBox: '0 0 20 20', + path: ( + + + + ), }); -export const ArrowForwardIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z', +export const ArrowDownIcon = createIcon({ + viewBox: '0 0 20 20', + path: ( + + + + ), }); -export const ArrowUpIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z', +export const ArrowForwardIcon = createIcon({ + viewBox: '0 0 20 20', + path: ( + + + + ), }); -export const ArrowDownIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z', +export const ArrowBackIcon = createIcon({ + viewBox: '0 0 20 20', + path: ( + + + + ), }); diff --git a/src/components/primitives/Icon/Icons/Check.tsx b/src/components/primitives/Icon/Icons/Check.tsx index 34acc5879..304629df2 100644 --- a/src/components/primitives/Icon/Icons/Check.tsx +++ b/src/components/primitives/Icon/Icons/Check.tsx @@ -1,18 +1,13 @@ -import React from 'react'; import { createIcon } from '../createIcon'; -import { G, Polygon } from '../nbSvg'; export const CheckIcon = createIcon({ - viewBox: '0 0 14 14', - path: ( - - - - ), + viewBox: '0 0 20 15', + d: + 'M6.53115 11.1856L1.96198 6.744L0 8.6512L6.53115 15L20 1.9072L18.038 0L6.53115 11.1856Z', }); export const CheckCircleIcon = createIcon({ viewBox: '0 0 24 24', d: - 'M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z', + 'M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM7.17719 11.2464L9.91869 13.9114L16.8228 7.2L18 8.34432L9.91869 16.2L6 12.3907L7.17719 11.2464Z', }); diff --git a/src/components/primitives/Icon/Icons/Chevron.tsx b/src/components/primitives/Icon/Icons/Chevron.tsx index 6b7e86030..c088bf43c 100644 --- a/src/components/primitives/Icon/Icons/Chevron.tsx +++ b/src/components/primitives/Icon/Icons/Chevron.tsx @@ -1,28 +1,25 @@ -import React from 'react'; import { createIcon } from '../createIcon'; -import { G, Path } from '../nbSvg'; + +export const ChevronUpIcon = createIcon({ + viewBox: '0 0 20 12', + d: + 'M18.2286 12L9.99728 3.62148L1.76862 11.9973L0 10.1971L10 0L20 10.1971L18.2286 12Z', +}); export const ChevronDownIcon = createIcon({ - viewBox: '0 0 24 24', - path: [ - - - - , - ], + viewBox: '0 0 20 12', + d: + 'M18.2286 0L9.99728 8.37852L1.76862 0.00268367L0 1.80293L10 12L20 1.80293L18.2286 0Z', }); export const ChevronLeftIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z', + viewBox: '0 0 12 20', + d: + 'M12 1.77141L3.62148 10.0027L11.9973 18.2314L10.1971 20L0 10L10.1971 0L12 1.77141Z', }); export const ChevronRightIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z', -}); - -export const ChevronUpIcon = createIcon({ - viewBox: '0 0 24 24', - d: 'M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z', + viewBox: '0 0 12 20', + d: + 'M0 1.77141L8.37852 10.0027L0.00268364 18.2314L1.80293 20L12 10L1.80293 0L0 1.77141Z', }); diff --git a/src/components/primitives/Icon/Icons/Circle.tsx b/src/components/primitives/Icon/Icons/Circle.tsx index b36b5606d..d4c19ee7c 100644 --- a/src/components/primitives/Icon/Icons/Circle.tsx +++ b/src/components/primitives/Icon/Icons/Circle.tsx @@ -2,5 +2,6 @@ import { createIcon } from '../createIcon'; export const CircleIcon = createIcon({ viewBox: '0 0 24 24', - d: 'M 12, 12 m -9, 0 a 9,9 0 1,0 18,0 a 9,9 0 1,0 -18,0', + d: + 'M0 12C-2.34822e-08 13.5759 0.310389 15.1363 0.913445 16.5922C1.5165 18.0481 2.40042 19.371 3.51472 20.4853C4.62902 21.5996 5.95189 22.4835 7.4078 23.0866C8.86371 23.6896 10.4241 24 12 24C13.5759 24 15.1363 23.6896 16.5922 23.0866C18.0481 22.4835 19.371 21.5996 20.4853 20.4853C21.5996 19.371 22.4835 18.0481 23.0866 16.5922C23.6896 15.1363 24 13.5759 24 12C24 10.4241 23.6896 8.86371 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913446C15.1363 0.310389 13.5759 0 12 0C10.4241 0 8.86371 0.310389 7.4078 0.913446C5.95189 1.5165 4.62902 2.40042 3.51472 3.51472C2.40042 4.62902 1.5165 5.95189 0.913445 7.4078C0.310389 8.86371 -2.34822e-08 10.4241 0 12Z', }); diff --git a/src/components/primitives/Icon/Icons/Close.tsx b/src/components/primitives/Icon/Icons/Close.tsx index 0b5325737..12f253d28 100644 --- a/src/components/primitives/Icon/Icons/Close.tsx +++ b/src/components/primitives/Icon/Icons/Close.tsx @@ -3,9 +3,9 @@ import { createIcon } from '../createIcon'; import { Path } from '../nbSvg'; export const CloseIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', d: - 'M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z', + 'M10 7.77778L2.22222 0L0 2.22222L7.77778 10L0 17.7778L2.22222 20L10 12.2222L17.7778 20L20 17.7778L12.2222 10L20 2.22222L17.7778 0L10 7.77778Z', }); export const SmallCloseIcon = createIcon({ diff --git a/src/components/primitives/Icon/Icons/Delete.tsx b/src/components/primitives/Icon/Icons/Delete.tsx new file mode 100644 index 000000000..76ab5ab75 --- /dev/null +++ b/src/components/primitives/Icon/Icons/Delete.tsx @@ -0,0 +1,7 @@ +import { createIcon } from '../createIcon'; + +export const DeleteIcon = createIcon({ + viewBox: '0 0 16 20', + d: + 'M1.11111 17.7778C1.11111 19 2.11111 20 3.33333 20H12.2222C13.4444 20 14.4444 19 14.4444 17.7778V4.44444H1.11111V17.7778ZM15.5556 1.11111H11.6667L10.5556 0H5L3.88889 1.11111H0V3.33333H15.5556V1.11111Z', +}); diff --git a/src/components/primitives/Icon/Icons/Favourite.tsx b/src/components/primitives/Icon/Icons/Favourite.tsx new file mode 100644 index 000000000..0f026767d --- /dev/null +++ b/src/components/primitives/Icon/Icons/Favourite.tsx @@ -0,0 +1,7 @@ +import { createIcon } from '../createIcon'; + +export const FavouriteIcon = createIcon({ + viewBox: '0 0 24 24', + d: + 'M1.75143 2.371C2.87321 1.22206 4.39447 0.576618 5.98067 0.576618C7.56686 0.576618 9.08812 1.22206 10.2099 2.371L11.9626 4.16516L13.7153 2.371C14.2671 1.78565 14.9272 1.31876 15.657 0.997564C16.3869 0.676368 17.1718 0.507303 17.9661 0.500231C18.7604 0.49316 19.5481 0.648225 20.2832 0.956378C21.0184 1.26453 21.6863 1.7196 22.2479 2.29504C22.8096 2.87047 23.2538 3.55474 23.5545 4.30793C23.8553 5.06112 24.0067 5.86813 23.9998 6.68189C23.9929 7.49564 23.8279 8.29984 23.5143 9.04756C23.2008 9.79528 22.7451 10.4715 22.1738 11.0369L11.9626 21.5L1.75143 11.0369C0.629991 9.8876 0 8.32904 0 6.70394C0 5.07885 0.629991 3.52029 1.75143 2.371Z', +}); diff --git a/src/components/primitives/Icon/Icons/Hamburger.tsx b/src/components/primitives/Icon/Icons/Hamburger.tsx index 1a0c6a14f..baf2eeb08 100644 --- a/src/components/primitives/Icon/Icons/Hamburger.tsx +++ b/src/components/primitives/Icon/Icons/Hamburger.tsx @@ -1,7 +1,7 @@ import { createIcon } from '../createIcon'; export const HamburgerIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 14', d: - 'M 3 5 A 1.0001 1.0001 0 1 0 3 7 L 21 7 A 1.0001 1.0001 0 1 0 21 5 L 3 5 z M 3 11 A 1.0001 1.0001 0 1 0 3 13 L 21 13 A 1.0001 1.0001 0 1 0 21 11 L 3 11 z M 3 17 A 1.0001 1.0001 0 1 0 3 19 L 21 19 A 1.0001 1.0001 0 1 0 21 17 L 3 17 z', + 'M20 0H0V2.47961H20V0ZM20 5.47949H0V7.9591H20V5.47949ZM0 10.959H20V13.4386H0V10.959Z', }); diff --git a/src/components/primitives/Icon/Icons/Info.tsx b/src/components/primitives/Icon/Icons/Info.tsx index 54e043a24..111588172 100644 --- a/src/components/primitives/Icon/Icons/Info.tsx +++ b/src/components/primitives/Icon/Icons/Info.tsx @@ -1,19 +1,14 @@ import React from 'react'; import { createIcon } from '../createIcon'; -import { G, Line, Circle } from '../nbSvg'; +import { G, Path } from '../nbSvg'; export const InfoOutlineIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', path: ( - - - - + + + + ), }); @@ -21,5 +16,5 @@ export const InfoOutlineIcon = createIcon({ export const InfoIcon = createIcon({ viewBox: '0 0 24 24', d: - 'M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z', + 'M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21509 0.913451 7.4078C0.00519948 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6935 24 14.3734 24 12C23.9966 8.81846 22.7312 5.76821 20.4815 3.51852C18.2318 1.26883 15.1815 0.00344108 12 0ZM12.25 5C12.5467 5 12.8367 5.08797 13.0834 5.25279C13.33 5.41762 13.5223 5.65189 13.6358 5.92597C13.7494 6.20006 13.7791 6.50166 13.7212 6.79263C13.6633 7.08361 13.5204 7.35088 13.3107 7.56066C13.1009 7.77044 12.8336 7.9133 12.5426 7.97118C12.2517 8.02905 11.9501 7.99935 11.676 7.88582C11.4019 7.77229 11.1676 7.58003 11.0028 7.33335C10.838 7.08668 10.75 6.79667 10.75 6.5C10.75 6.10217 10.908 5.72064 11.1893 5.43934C11.4706 5.15803 11.8522 5 12.25 5ZM14.5 18.5H10.5C10.2348 18.5 9.98043 18.3946 9.7929 18.2071C9.60536 18.0196 9.5 17.7652 9.5 17.5C9.5 17.2348 9.60536 16.9804 9.7929 16.7929C9.98043 16.6054 10.2348 16.5 10.5 16.5H11.25C11.3163 16.5 11.3799 16.4737 11.4268 16.4268C11.4737 16.3799 11.5 16.3163 11.5 16.25V11.75C11.5 11.6837 11.4737 11.6201 11.4268 11.5732C11.3799 11.5263 11.3163 11.5 11.25 11.5H10.5C10.2348 11.5 9.98043 11.3946 9.7929 11.2071C9.60536 11.0196 9.5 10.7652 9.5 10.5C9.5 10.2348 9.60536 9.98043 9.7929 9.79289C9.98043 9.60536 10.2348 9.5 10.5 9.5H11.5C12.0304 9.5 12.5391 9.71071 12.9142 10.0858C13.2893 10.4609 13.5 10.9696 13.5 11.5V16.25C13.5 16.3163 13.5263 16.3799 13.5732 16.4268C13.6201 16.4737 13.6837 16.5 13.75 16.5H14.5C14.7652 16.5 15.0196 16.6054 15.2071 16.7929C15.3946 16.9804 15.5 17.2348 15.5 17.5C15.5 17.7652 15.3946 18.0196 15.2071 18.2071C15.0196 18.3946 14.7652 18.5 14.5 18.5Z', }); diff --git a/src/components/primitives/Icon/Icons/Minus.tsx b/src/components/primitives/Icon/Icons/Minus.tsx index 429dbf211..b978690ae 100644 --- a/src/components/primitives/Icon/Icons/Minus.tsx +++ b/src/components/primitives/Icon/Icons/Minus.tsx @@ -1,11 +1,6 @@ -import React from 'react'; import { createIcon } from '../createIcon'; -import { G, Rect } from '../nbSvg'; export const MinusIcon = createIcon({ - path: ( - - - - ), + viewBox: '0 0 20 3', + d: 'M20 0.5H0V3H20V0.5Z', }); diff --git a/src/components/primitives/Icon/Icons/Moon.tsx b/src/components/primitives/Icon/Icons/Moon.tsx index 56ea36976..0ec5765f1 100644 --- a/src/components/primitives/Icon/Icons/Moon.tsx +++ b/src/components/primitives/Icon/Icons/Moon.tsx @@ -1,7 +1,7 @@ import { createIcon } from '../createIcon'; export const MoonIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', d: - 'M21.4,13.7C20.6,13.9,19.8,14,19,14c-5,0-9-4-9-9c0-0.8,0.1-1.6,0.3-2.4c0.1-0.3,0-0.7-0.3-1 c-0.3-0.3-0.6-0.4-1-0.3C4.3,2.7,1,7.1,1,12c0,6.1,4.9,11,11,11c4.9,0,9.3-3.3,10.6-8.1c0.1-0.3,0-0.7-0.3-1 C22.1,13.7,21.7,13.6,21.4,13.7z', + 'M18.8562 11.4434C18.1167 11.6274 17.3772 11.7194 16.6378 11.7194C12.0162 11.7194 8.31889 8.0391 8.31889 3.43876C8.31889 2.7027 8.41132 1.96665 8.59619 1.23059C8.68862 0.954572 8.59619 0.586544 8.31889 0.310523C8.04159 0.0345026 7.7643 -0.0575043 7.39457 0.0345026C3.05026 1.3226 0 5.3709 0 9.87924C0 15.4917 4.52917 20 10.1675 20C14.6967 20 18.7637 16.9638 19.9653 12.5474C20.0578 12.2714 19.9653 11.9034 19.688 11.6274C19.5032 11.4434 19.1334 11.3514 18.8562 11.4434Z', }); diff --git a/src/components/primitives/Icon/Icons/Play.tsx b/src/components/primitives/Icon/Icons/Play.tsx new file mode 100644 index 000000000..81a0d6c59 --- /dev/null +++ b/src/components/primitives/Icon/Icons/Play.tsx @@ -0,0 +1,7 @@ +import { createIcon } from '../createIcon'; + +export const PlayIcon = createIcon({ + viewBox: '0 0 24 24', + d: + 'M12 0C5.376 0 0 5.376 0 12C0 18.624 5.376 24 12 24C18.624 24 24 18.624 24 12C24 5.376 18.624 0 12 0ZM9.6 17.4V6.6L16.8 12L9.6 17.4Z', +}); diff --git a/src/components/primitives/Icon/Icons/Question.tsx b/src/components/primitives/Icon/Icons/Question.tsx index da42318e1..84dd0e2ac 100644 --- a/src/components/primitives/Icon/Icons/Question.tsx +++ b/src/components/primitives/Icon/Icons/Question.tsx @@ -4,10 +4,10 @@ import { questionOutlineIconPath } from './questionIconPath'; export const QuestionIcon = createIcon({ viewBox: '0 0 24 24', d: - 'M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm0,19a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,12,19Zm1.6-6.08a1,1,0,0,0-.6.917,1,1,0,1,1-2,0,3,3,0,0,1,1.8-2.75A2,2,0,1,0,10,9.255a1,1,0,1,1-2,0,4,4,0,1,1,5.6,3.666Z', + 'M12 0C9.62663 0 7.30655 0.703787 5.33316 2.02236C3.35977 3.34094 1.8217 5.21508 0.913451 7.4078C0.00519943 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6688 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6934 24 14.3734 24 12C23.9966 8.81846 22.7312 5.76821 20.4815 3.51852C18.2318 1.26883 15.1815 0.00344108 12 0V0ZM12 19C11.7033 19 11.4133 18.912 11.1666 18.7472C10.92 18.5824 10.7277 18.3481 10.6142 18.074C10.5007 17.7999 10.4709 17.4983 10.5288 17.2074C10.5867 16.9164 10.7296 16.6491 10.9393 16.4393C11.1491 16.2296 11.4164 16.0867 11.7074 16.0288C11.9983 15.9709 12.2999 16.0006 12.574 16.1142C12.8481 16.2277 13.0824 16.42 13.2472 16.6666C13.412 16.9133 13.5 17.2033 13.5 17.5C13.5 17.8978 13.342 18.2794 13.0607 18.5607C12.7794 18.842 12.3978 19 12 19ZM13.6 12.92C13.4216 12.9979 13.2698 13.1261 13.1632 13.289C13.0566 13.4519 12.9999 13.6423 13 13.837C13 14.1022 12.8946 14.3566 12.7071 14.5441C12.5196 14.7316 12.2652 14.837 12 14.837C11.7348 14.837 11.4804 14.7316 11.2929 14.5441C11.1054 14.3566 11 14.1022 11 13.837C10.9999 13.2532 11.1702 12.682 11.4899 12.1936C11.8096 11.7051 12.2649 11.3205 12.8 11.087C13.1305 10.9427 13.4159 10.7118 13.6259 10.4186C13.8359 10.1255 13.9627 9.78099 13.993 9.42163C14.0232 9.06228 13.9557 8.70144 13.7976 8.37731C13.6396 8.05317 13.3968 7.77781 13.095 7.58037C12.7932 7.38292 12.4437 7.27074 12.0834 7.25571C11.7231 7.24067 11.3654 7.32333 11.0482 7.49495C10.7311 7.66656 10.4662 7.92074 10.2817 8.23057C10.0971 8.54041 9.99982 8.89437 10 9.255C10 9.52021 9.89465 9.77457 9.70711 9.9621C9.51957 10.1496 9.26522 10.255 9 10.255C8.73479 10.255 8.48043 10.1496 8.2929 9.9621C8.10536 9.77457 8 9.52021 8 9.255C7.99999 8.53384 8.19495 7.82608 8.56423 7.20665C8.93352 6.58721 9.4634 6.07913 10.0978 5.73618C10.7322 5.39324 11.4475 5.22817 12.168 5.25847C12.8886 5.28876 13.5875 5.51329 14.1909 5.90828C14.7942 6.30327 15.2796 6.85404 15.5956 7.50229C15.9116 8.15054 16.0464 8.87216 15.9859 9.59077C15.9253 10.3094 15.6716 10.9983 15.2516 11.5845C14.8316 12.1707 14.261 12.6325 13.6 12.921V12.92Z', }); export const QuestionOutlineIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', path: questionOutlineIconPath, }); diff --git a/src/components/primitives/Icon/Icons/Search.tsx b/src/components/primitives/Icon/Icons/Search.tsx index c24cbf5c8..917034a1c 100644 --- a/src/components/primitives/Icon/Icons/Search.tsx +++ b/src/components/primitives/Icon/Icons/Search.tsx @@ -1,7 +1,7 @@ import { createIcon } from '../createIcon'; export const SearchIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', d: - 'M23.384,21.619,16.855,15.09a9.284,9.284,0,1,0-1.768,1.768l6.529,6.529a1.266,1.266,0,0,0,1.768,0A1.251,1.251,0,0,0,23.384,21.619ZM2.75,9.5a6.75,6.75,0,1,1,6.75,6.75A6.758,6.758,0,0,1,2.75,9.5Z', + 'M19.9399 18.5624L13.4474 12.0699C14.4549 10.7675 14.9999 9.17496 14.9999 7.49997C14.9999 5.49498 14.2174 3.61498 12.8024 2.19749C11.3874 0.779996 9.50246 0 7.49997 0C5.49748 0 3.61248 0.782496 2.19749 2.19749C0.779996 3.61248 0 5.49498 0 7.49997C0 9.50246 0.782496 11.3874 2.19749 12.8024C3.61248 14.2199 5.49498 14.9999 7.49997 14.9999C9.17496 14.9999 10.765 14.4549 12.0674 13.4499L18.5599 19.9399C18.579 19.959 18.6016 19.9741 18.6264 19.9844C18.6513 19.9947 18.678 20 18.7049 20C18.7318 20 18.7585 19.9947 18.7834 19.9844C18.8083 19.9741 18.8309 19.959 18.8499 19.9399L19.9399 18.8524C19.959 18.8334 19.9741 18.8108 19.9844 18.7859C19.9947 18.761 20 18.7343 20 18.7074C20 18.6805 19.9947 18.6538 19.9844 18.6289C19.9741 18.6041 19.959 18.5815 19.9399 18.5624ZM11.46 11.46C10.4 12.5174 8.99496 13.0999 7.49997 13.0999C6.00497 13.0999 4.59998 12.5174 3.53998 11.46C2.48249 10.4 1.89999 8.99496 1.89999 7.49997C1.89999 6.00497 2.48249 4.59748 3.53998 3.53998C4.59998 2.48249 6.00497 1.89999 7.49997 1.89999C8.99496 1.89999 10.4025 2.47999 11.46 3.53998C12.5174 4.59998 13.0999 6.00497 13.0999 7.49997C13.0999 8.99496 12.5174 10.4025 11.46 11.46Z', }); diff --git a/src/components/primitives/Icon/Icons/Share.tsx b/src/components/primitives/Icon/Icons/Share.tsx new file mode 100644 index 000000000..113b0b56a --- /dev/null +++ b/src/components/primitives/Icon/Icons/Share.tsx @@ -0,0 +1,7 @@ +import { createIcon } from '../createIcon'; + +export const ShareIcon = createIcon({ + viewBox: '0 0 19 20', + d: + 'M15.0621 14.1487C14.2993 14.1487 13.6113 14.4451 13.0895 14.9223L5.93445 10.7495C5.98988 10.523 6.02482 10.2868 6.02482 10.0458C6.02482 9.8048 5.98988 9.56983 5.93445 9.3433L13.0136 5.21147C13.5679 5.73368 14.3006 6.02461 15.0621 6.02482C16.7237 6.02482 18.0745 4.67406 18.0745 3.01241C18.0745 1.35077 16.7237 0 15.0621 0C13.4004 0 12.0496 1.35077 12.0496 3.01241C12.0496 3.2534 12.0846 3.48958 12.14 3.71491L5.06085 7.84673C4.50628 7.32504 3.7738 7.0342 3.01241 7.03338C1.35077 7.03338 0 8.38414 0 10.0458C0 11.7074 1.35077 13.0582 3.01241 13.0582C3.77392 13.058 4.50661 12.7671 5.06085 12.2449L12.2159 16.4176C12.1632 16.633 12.1361 16.8538 12.1352 17.0756C12.1354 17.6541 12.3072 18.2196 12.6288 18.7005C12.9503 19.1814 13.4073 19.5562 13.9418 19.7775C14.4764 19.9988 15.0645 20.0567 15.6319 19.9437C16.1993 19.8308 16.7205 19.5522 17.1296 19.1431C17.5387 18.734 17.8173 18.2128 17.9302 17.6454C18.0432 17.078 17.9853 16.4898 17.764 15.9553C17.5427 15.4208 17.1679 14.9638 16.687 14.6423C16.2061 14.3207 15.6406 14.1489 15.0621 14.1487V14.1487Z', +}); diff --git a/src/components/primitives/Icon/Icons/Sun.tsx b/src/components/primitives/Icon/Icons/Sun.tsx index d9a2459e6..3e403d9f1 100644 --- a/src/components/primitives/Icon/Icons/Sun.tsx +++ b/src/components/primitives/Icon/Icons/Sun.tsx @@ -1,26 +1,20 @@ import React from 'react'; import { createIcon } from '../createIcon'; -import { G, Path, Circle } from '../nbSvg'; +import { G, Path } from '../nbSvg'; export const SunIcon = createIcon({ - viewBox: '0 0 24 24', + viewBox: '0 0 20 20', path: ( - - - - - - - - - - + + + + + + + + + + ), }); diff --git a/src/components/primitives/Icon/Icons/Warning.tsx b/src/components/primitives/Icon/Icons/Warning.tsx index b4e765ddd..5bac92f65 100644 --- a/src/components/primitives/Icon/Icons/Warning.tsx +++ b/src/components/primitives/Icon/Icons/Warning.tsx @@ -1,13 +1,22 @@ +import React from 'react'; import { createIcon } from '../createIcon'; +import { G, Path } from '../nbSvg'; export const WarningIcon = createIcon({ viewBox: '0 0 24 24', d: - 'M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z', + 'M11.9836 0.00267822C8.77744 0.0551662 5.72075 1.36728 3.47427 3.65538C2.35024 4.77447 1.46338 6.10869 0.866705 7.57831C0.270027 9.04793 -0.0242179 10.6228 0.00155827 12.2087C-0.000286057 13.7583 0.303697 15.2931 0.896087 16.7251C1.48848 18.1571 2.35763 19.458 3.45373 20.5535C4.54983 21.6489 5.85133 22.5173 7.28365 23.1089C8.71596 23.7004 10.2509 24.0035 11.8006 24.0007H12.0146C15.2217 23.9677 18.2847 22.6638 20.5316 20.3751C22.7785 18.0864 24.0257 14.9999 23.9996 11.7927V11.7927C24.0033 10.2243 23.6933 8.6709 23.0879 7.22398C22.4825 5.77706 21.5939 4.4658 20.4744 3.36731C19.3548 2.26882 18.0269 1.40527 16.5688 0.827453C15.1106 0.249636 13.5517 -0.0307856 11.9836 0.00267822V0.00267822ZM10.5007 16.5433C10.4935 16.3473 10.5254 16.1517 10.5947 15.9682C10.6639 15.7846 10.7691 15.6167 10.904 15.4742C11.0389 15.3318 11.2009 15.2177 11.3804 15.1386C11.5599 15.0594 11.7534 15.0169 11.9496 15.0135H11.9766C12.3712 15.0142 12.7501 15.1677 13.034 15.4417C13.3179 15.7157 13.4847 16.089 13.4995 16.4833C13.5068 16.6794 13.4749 16.875 13.4057 17.0586C13.3365 17.2423 13.2314 17.4102 13.0965 17.5527C12.9615 17.6952 12.7995 17.8093 12.6199 17.8884C12.4403 17.9674 12.2468 18.0099 12.0506 18.0132H12.0236C11.6291 18.0119 11.2505 17.8583 10.9667 17.5844C10.6829 17.3105 10.5159 16.9375 10.5007 16.5433V16.5433ZM11.0007 12.5017V6.50215C11.0007 6.23695 11.106 5.98262 11.2935 5.7951C11.481 5.60758 11.7354 5.50223 12.0006 5.50223C12.2658 5.50223 12.5201 5.60758 12.7076 5.7951C12.8951 5.98262 13.0005 6.23695 13.0005 6.50215V12.5017C13.0005 12.7669 12.8951 13.0212 12.7076 13.2087C12.5201 13.3962 12.2658 13.5016 12.0006 13.5016C11.7354 13.5016 11.481 13.3962 11.2935 13.2087C11.106 13.0212 11.0007 12.7669 11.0007 12.5017Z', }); export const WarningTwoIcon = createIcon({ viewBox: '0 0 24 24', - d: - 'M23.119,20,13.772,2.15h0a2,2,0,0,0-3.543,0L.881,20a2,2,0,0,0,1.772,2.928H21.347A2,2,0,0,0,23.119,20ZM11,8.423a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Zm1.05,11.51h-.028a1.528,1.528,0,0,1-1.522-1.47,1.476,1.476,0,0,1,1.448-1.53h.028A1.527,1.527,0,0,1,13.5,18.4,1.475,1.475,0,0,1,12.05,19.933Z', + path: ( + + + + ), }); diff --git a/src/components/primitives/Icon/Icons/index.tsx b/src/components/primitives/Icon/Icons/index.tsx index 137831e4d..921a08bed 100644 --- a/src/components/primitives/Icon/Icons/index.tsx +++ b/src/components/primitives/Icon/Icons/index.tsx @@ -14,3 +14,7 @@ export * from './Sun'; export * from './Warning'; export * from './WarningOutline'; export * from './ThreeDots'; +export * from './Share'; +export * from './Play'; +export * from './Delete'; +export * from './Favourite'; diff --git a/src/components/primitives/Icon/Icons/questionIconPath.tsx b/src/components/primitives/Icon/Icons/questionIconPath.tsx index 3f23269e6..e97f159b9 100644 --- a/src/components/primitives/Icon/Icons/questionIconPath.tsx +++ b/src/components/primitives/Icon/Icons/questionIconPath.tsx @@ -1,18 +1,9 @@ import React from 'react'; -import { G, Path, Circle } from '../nbSvg'; +import { G, Path } from '../nbSvg'; export const questionOutlineIconPath = ( - - - - + + + ); From 13930d45c8a931c2f779cd0f68a1c840dc5ca73a Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Wed, 16 Mar 2022 14:54:58 +0530 Subject: [PATCH 093/172] feat: text color palette --- src/theme/base/colors.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/theme/base/colors.ts b/src/theme/base/colors.ts index 2808d81c7..a791191b0 100644 --- a/src/theme/base/colors.ts +++ b/src/theme/base/colors.ts @@ -310,6 +310,18 @@ const colors = { 800: '#f4f4f5', 900: '#fafafa', }, + text: { + 50: '#fafafa', + 100: '#f5f5f5', + 200: '#e5e5e5', + 300: '#d4d4d4', + 400: '#a3a3a3', + 500: '#737373', + 600: '#525252', + 700: '#404040', + 800: '#262626', + 900: '#171717', + }, // Derived colors danger: {} as IColorHues, error: {} as IColorHues, From 402cf7f2554b8ccde72acb0d5291e9476f0e6cd8 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 15:03:48 +0530 Subject: [PATCH 094/172] fix: icon design changes --- .../components/primitives/Icon/AllIcons.tsx | 62 +++++++++---------- src/theme/components/icon.ts | 15 +++-- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/example/storybook/stories/components/primitives/Icon/AllIcons.tsx b/example/storybook/stories/components/primitives/Icon/AllIcons.tsx index e1db3f709..48acba5ad 100644 --- a/example/storybook/stories/components/primitives/Icon/AllIcons.tsx +++ b/example/storybook/stories/components/primitives/Icon/AllIcons.tsx @@ -45,127 +45,127 @@ export const Example = () => { }); const icons = [ { - icon: , + icon: , iconName: 'add', }, { - icon: , + icon: , iconName: 'arrow-back', }, { - icon: , + icon: , iconName: 'arrow-forward', }, { - icon: , + icon: , iconName: 'arrow-up', }, { - icon: , + icon: , iconName: 'arrow-down', }, { - icon: , + icon: , iconName: 'check', }, { - icon: , + icon: , iconName: 'check-circle', }, { - icon: , + icon: , iconName: 'chevron-down', }, { - icon: , + icon: , iconName: 'chevron-left', }, { - icon: , + icon: , iconName: 'chevron-right', }, { - icon: , + icon: , iconName: 'chevron-up', }, { - icon: , + icon: , iconName: 'circle', }, { - icon: , + icon: , iconName: 'close', }, { - icon: , + icon: , iconName: 'small-close', }, { - icon: , + icon: , iconName: 'menu', }, { - icon: , + icon: , iconName: 'info', }, { - icon: , + icon: , iconName: 'info-outline', }, { - icon: , + icon: , iconName: 'minus', }, { - icon: , + icon: , iconName: 'moon', }, { - icon: , + icon: , iconName: 'question', }, { - icon: , + icon: , iconName: 'question-outline', }, { - icon: , + icon: , iconName: 'search', }, { - icon: , + icon: , iconName: 'sun', }, { - icon: , + icon: , iconName: 'warning-1', }, { - icon: , + icon: , iconName: 'warning-2', }, { - icon: , + icon: , iconName: 'warning-outline', }, { - icon: , + icon: , iconName: 'three-dots', }, { - icon: , + icon: , iconName: 'share', }, { - icon: , + icon: , iconName: 'play', }, { - icon: , + icon: , iconName: 'favourite', }, { - icon: , + icon: , iconName: 'delete', }, ]; diff --git a/src/theme/components/icon.ts b/src/theme/components/icon.ts index 24ab6ab56..4c9910961 100644 --- a/src/theme/components/icon.ts +++ b/src/theme/components/icon.ts @@ -1,13 +1,16 @@ -import { mode } from './../tools'; - -const baseStyle = (props: Record) => { +const baseStyle = () => { return { - color: mode('muted.800', 'muted.100')(props), + _light: { + color: 'muted.500', + }, + _dark: { + color: 'muted.400', + }, }; }; const sizes = { - 'xxs': 2, + '2xs': 2, 'xs': 4, 'sm': 6, 'md': 8, @@ -20,5 +23,5 @@ const sizes = { '6xl': 64, }; -const defaultProps = { size: 'md' }; +const defaultProps = { size: 'xs' }; export default { baseStyle, sizes, defaultProps }; From d4bdb32cb9aedc1c37a42b72775f4eafab382086 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 15:13:46 +0530 Subject: [PATCH 095/172] fix: spinner design changes --- src/theme/components/spinner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/spinner.ts b/src/theme/components/spinner.ts index bfcff6c94..58136994c 100644 --- a/src/theme/components/spinner.ts +++ b/src/theme/components/spinner.ts @@ -1,6 +1,6 @@ export default { baseStyle: { - color: 'primary.500', + color: 'primary.600', }, sizes: { sm: 'small', From 774d017b63c5364af8c2f0429279ed702734ad55 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 16:48:29 +0530 Subject: [PATCH 096/172] fix: heading design changes --- src/theme/components/heading.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/theme/components/heading.ts b/src/theme/components/heading.ts index 02beb2d06..0efc4eb73 100644 --- a/src/theme/components/heading.ts +++ b/src/theme/components/heading.ts @@ -1,8 +1,11 @@ -import { mode } from './../tools'; - -const baseStyle = (props: Record) => { +const baseStyle = () => { return { - color: mode('muted.700', 'white')(props), + _light: { + color: 'text.900', + }, + _dark: { + color: 'white', + }, fontWeight: 'bold', lineHeight: 'sm', }; @@ -11,9 +14,11 @@ const baseStyle = (props: Record) => { const sizes = { '4xl': { fontSize: ['6xl', null, '7xl'], + letterSpacing: 'xl', }, '3xl': { fontSize: ['5xl', null, '6xl'], + letterSpacing: 'xl', }, '2xl': { fontSize: ['4xl', null, '5xl'], From 41bedda0f9453741f745c8cb160f8801475b2986 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 16 Mar 2022 18:40:13 +0530 Subject: [PATCH 097/172] fix: input right addon design fix --- src/theme/components/inputrightaddon.ts | 27 ++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/theme/components/inputrightaddon.ts b/src/theme/components/inputrightaddon.ts index 6c01599b9..fe5f9fe65 100644 --- a/src/theme/components/inputrightaddon.ts +++ b/src/theme/components/inputrightaddon.ts @@ -1,19 +1,28 @@ -import { mode } from './../tools'; - -const baseStyle = (props: Record) => { +const baseStyle = () => { return { - borderLeftWidth: '0', - roundedRight: '4', - bg: mode('gray.50', 'gray.700')(props), + // roundedRight: '4', p: '2', - borderColor: mode('gray.300', 'gray.600')(props), borderWidth: '1', + borderLeftWidth: '0', _text: { - color: mode('muted.400', 'muted.500')(props), - fontWeight: 600, + fontWeight: 400, }, alignItems: 'center', justifyContent: 'center', + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, }; }; From adfa0bcaef990635b5fa70a462c6f5bca2ceea77 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 16 Mar 2022 18:40:32 +0530 Subject: [PATCH 098/172] fix: input left addon design fixes --- src/theme/components/inputleftaddon.ts | 27 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/theme/components/inputleftaddon.ts b/src/theme/components/inputleftaddon.ts index 539ff7fc7..a3fa9e5d7 100644 --- a/src/theme/components/inputleftaddon.ts +++ b/src/theme/components/inputleftaddon.ts @@ -1,19 +1,28 @@ -import { mode } from './../tools'; - -const baseStyle = (props: Record) => { +const baseStyle = () => { return { - borderRightWidth: '0', - roundedLeft: '4', - bg: mode('gray.50', 'gray.700')(props), + // roundedLeft: '4', p: '2', - borderColor: mode('gray.300', 'gray.600')(props), borderWidth: '1', + borderRightWidth: '0', _text: { - color: mode('muted.400', 'muted.500')(props), - fontWeight: 600, + fontWeight: 400, }, alignItems: 'center', justifyContent: 'center', + _light: { + bg: 'muted.50', + borderColor: 'muted.300', + _text: { + color: 'text.900', + }, + }, + _dark: { + bg: 'muted.800', + borderColor: 'muted.700', + _text: { + color: 'text.50', + }, + }, }; }; From ff287eb13d3542e405c499c2fa816df069726a4f Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 16 Mar 2022 18:41:10 +0530 Subject: [PATCH 099/172] fix: input design fixes --- src/theme/components/input.ts | 119 ++++++++++++++++++++++++---------- 1 file changed, 83 insertions(+), 36 deletions(-) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index e1fc40565..e44064562 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -1,15 +1,6 @@ -import { mode } from '../tools'; -import { Platform } from 'react-native'; +import { transparentize } from '../tools'; -function getSelectionColor(props: Record) { - if (Platform.OS === 'ios') { - return mode('coolGray.800', 'warmGray.50')(props); - } else if (Platform.OS === 'android') { - return mode('coolGray.800', 'warmGray.50')(props); - } -} - -const baseStyle = (props: Record) => { +const baseStyle = () => { // const { primary } = props.theme.colors; // Todo: Resolve boxShadow Color or Provide some alternatiove prop for user to change focusRing color // // Todo: Update to support similar focusRing on iOS , Android and Web @@ -27,28 +18,18 @@ const baseStyle = (props: Record) => { // }; return { - selectionColor: getSelectionColor(props), fontFamily: 'body', - p: '2', + py: '2', + px: '3', borderRadius: 'sm', overflow: 'hidden', - color: mode('coolGray.800', 'warmGray.50')(props), - placeholderTextColor: 'muted.400', - borderColor: mode('muted.200', 'gray.500')(props), _disabled: { - opacity: '80', - bg: mode('muted.100', 'muted.700')(props), + opacity: '0.4', _web: { disabled: true, cursor: 'not-allowed', }, }, - _invalid: { - borderColor: mode('danger.600', 'danger.300')(props), - }, - _focus: { - borderColor: mode('primary.400', 'primary.500')(props), - }, _web: { outlineWidth: '0', overflow: 'auto', @@ -66,33 +47,96 @@ const baseStyle = (props: Record) => { bg: 'transparent', flex: 1, }, + _light: { + placeholderTextColor: 'text.400', + color: 'text.900', + borderColor: 'muted.300', + _hover: { + borderColor: 'primary.600', + }, + _focus: { + borderColor: 'primary.600', + }, + _invalid: { + borderColor: 'error.600', + }, + _ios: { + selectionColor: 'coolGray.800', + }, + _android: { + selectionColor: 'coolGray.800', + }, + }, + _dark: { + placeholderTextColor: 'text.600', + color: 'text.50', + borderColor: 'muted.700', + _hover: { + borderColor: 'primary.500', + }, + _focus: { + borderColor: 'primary.500', + }, + _invalid: { + borderColor: 'error.500', + }, + _ios: { + selectionColor: 'warmGray.50', + }, + _android: { + selectionColor: 'warmGray.50', + }, + }, }; }; function roundedStyle(props: Record) { + const { theme } = props; return { - borderRadius: '25', + borderRadius: 'full', borderWidth: '1', - _hover: { - bg: mode('gray.100', 'gray.700')(props), + _focus: { + borderWidth: '2', + bg: transparentize('primary.600', 0.1)(theme), + }, + _invalid: { + borderWidth: '2', }, }; } function outlineStyle(props: Record) { + const { theme } = props; return { borderWidth: '1', - _hover: { - bg: mode('gray.100', 'gray.700')(props), + _focus: { + borderWidth: '2', + bg: transparentize('primary.600', 0.1)(theme), + }, + _invalid: { + borderWidth: '2', }, }; } function filledStyle(props: Record) { + const { theme } = props; return { - bg: props.bg || mode('muted.200', 'muted.600')(props), - borderWidth: '1', + borderWidth: '0', borderColor: 'transparent', + _focus: { + borderWidth: '2', + bg: transparentize('primary.600', 0.1)(theme), + }, _hover: { - bg: mode('muted.300', 'muted.700')(props), + borderWidth: '1', + }, + _invalid: { + borderWidth: '2', + }, + _light: { + bg: 'muted.100', + }, + _dark: { + bg: 'muted.800', }, }; } @@ -103,11 +147,14 @@ function unstyledStyle() { } function underlinedStyle() { return { - borderRadius: '0', - borderTopWidth: '0', - borderLeftWidth: '0', - borderRightWidth: '0', + borderWidth: '0', borderBottomWidth: '1', + _focus: { + borderBottomWidth: '2', + }, + _invalid: { + borderBottomWidth: '2', + }, }; } From a9ae128f8217af5cb1cf06f10320b2ac45437e11 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 18:47:47 +0530 Subject: [PATCH 100/172] fix: badge design changes --- .../components/composites/Badge/icons.tsx | 19 +++++++++ .../components/composites/Badge/index.tsx | 2 + .../components/composites/Badge/variants.tsx | 7 +++- src/components/composites/Badge/index.tsx | 42 ++++++++++++++++++- src/components/composites/Badge/types.tsx | 16 +++++++ src/theme/components/badge.ts | 29 +++++++++---- 6 files changed, 103 insertions(+), 12 deletions(-) create mode 100644 example/storybook/stories/components/composites/Badge/icons.tsx diff --git a/example/storybook/stories/components/composites/Badge/icons.tsx b/example/storybook/stories/components/composites/Badge/icons.tsx new file mode 100644 index 000000000..8f5526f68 --- /dev/null +++ b/example/storybook/stories/components/composites/Badge/icons.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { Badge, Stack, AddIcon } from 'native-base'; + +export const Example = () => { + return ( + + }> + SUCCESS + + } + > + SUCCESS + + + ); +}; diff --git a/example/storybook/stories/components/composites/Badge/index.tsx b/example/storybook/stories/components/composites/Badge/index.tsx index 5982df0ff..1efb33420 100644 --- a/example/storybook/stories/components/composites/Badge/index.tsx +++ b/example/storybook/stories/components/composites/Badge/index.tsx @@ -7,12 +7,14 @@ import { Example as Color } from './color'; import { Example as Playground } from './knobEnabled'; import { Example as Variants } from './variants'; import { Example as Composition } from './composition'; +import { Example as Icon } from './icons'; storiesOf('Badge', module) .addDecorator(withKnobs) .addDecorator((getStory: any) => {getStory()}) .add('Playground', () => ) .add('Usage', () => ) + .add('Icon', () => ) .add('Color', () => ) .add('Variants', () => ) .add('Composition', () => ); diff --git a/example/storybook/stories/components/composites/Badge/variants.tsx b/example/storybook/stories/components/composites/Badge/variants.tsx index 810f00378..8f0df5554 100644 --- a/example/storybook/stories/components/composites/Badge/variants.tsx +++ b/example/storybook/stories/components/composites/Badge/variants.tsx @@ -14,12 +14,15 @@ export function Example() { SUCCESS - - DANGER + + ERROR INFO + + WARNING + ))} diff --git a/src/components/composites/Badge/index.tsx b/src/components/composites/Badge/index.tsx index 7857b194f..95ded6e4a 100644 --- a/src/components/composites/Badge/index.tsx +++ b/src/components/composites/Badge/index.tsx @@ -4,15 +4,53 @@ import type { IBadgeProps } from './types'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -const Badge = ({ children, ...props }: IBadgeProps, ref: any) => { - let newProps = usePropsResolution('Badge', props); +const Badge = ( + { children, startIcon, rightIcon, leftIcon, endIcon, ...props }: IBadgeProps, + ref: any +) => { + const newProps = usePropsResolution('Badge', props); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } + + if (leftIcon) { + startIcon = leftIcon; + } + if (rightIcon) { + endIcon = rightIcon; + } + + if (endIcon && React.isValidElement(endIcon)) { + endIcon = React.Children.map( + endIcon, + (child: JSX.Element, index: number) => { + return React.cloneElement(child, { + key: `button-end-icon-${index}`, + ...newProps._text, + ...child.props, + }); + } + ); + } + if (startIcon && React.isValidElement(startIcon)) { + startIcon = React.Children.map( + startIcon, + (child: JSX.Element, index: number) => { + return React.cloneElement(child, { + key: `button-start-icon-${index}`, + ...newProps._text, + ...child.props, + }); + } + ); + } + return ( + {startIcon ? startIcon : null} {children} + {endIcon ? endIcon : null} ); }; diff --git a/src/components/composites/Badge/types.tsx b/src/components/composites/Badge/types.tsx index 48ec5ec0b..57f54fc0b 100644 --- a/src/components/composites/Badge/types.tsx +++ b/src/components/composites/Badge/types.tsx @@ -11,4 +11,20 @@ export interface IBadgeProps extends IBoxProps { * The color scheme to use for the badge. Must be a key in theme.colors. */ colorScheme?: string; + /** + * The right icon element to use in the button. + */ + rightIcon?: JSX.Element | Array; + /** + * The left icon element to use in the button. + */ + leftIcon?: JSX.Element | Array; + /** + * The start icon element to use in the button. + */ + startIcon?: JSX.Element | Array; + /** + * The end icon element to use in the button. + */ + endIcon?: JSX.Element | Array; } diff --git a/src/theme/components/badge.ts b/src/theme/components/badge.ts index eea532c68..fcf084269 100644 --- a/src/theme/components/badge.ts +++ b/src/theme/components/badge.ts @@ -1,6 +1,8 @@ -import { mode, getColorScheme } from '../tools'; +import { getColorScheme } from '../tools'; const baseStyle = { + flexDirection: 'row', + gap: 1, px: '2', py: '0.5', alignItems: 'center', @@ -10,8 +12,10 @@ const baseStyle = { function variantSolid(props: Record) { const colorScheme = getColorScheme(props); return { - bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props), - _text: { color: mode(`coolGray.100`, `coolGray.800`)(props) }, + _text: { + color: 'text.50', + }, + bg: `${colorScheme}.600`, borderWidth: '1', borderColor: 'transparent', borderRadius: '2', @@ -21,8 +25,9 @@ function variantSolid(props: Record) { function variantSubtle(props: Record) { const colorScheme = getColorScheme(props); return { - bg: mode(`${colorScheme}.200`, `${colorScheme}.700`)(props), - _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + _text: { color: `${colorScheme}.900` }, + _light: { bg: `${colorScheme}.100` }, + _dark: { bg: `${colorScheme}.300` }, borderWidth: '1', borderRadius: '2', borderColor: 'transparent', @@ -32,8 +37,16 @@ function variantSubtle(props: Record) { function variantOutline(props: Record) { const colorScheme = getColorScheme(props); return { - borderColor: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props), - _text: { color: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props) }, + _light: { + _text: { color: `${colorScheme}.600` }, + borderColor: `${colorScheme}.600`, + }, + _dark: { + _text: { + color: `${colorScheme}.300`, + }, + borderColor: `${colorScheme}.300`, + }, borderRadius: '2', borderWidth: '1', }; @@ -47,7 +60,7 @@ const variants = { const defaultProps = { variant: 'subtle', - colorScheme: 'coolGray', + colorScheme: 'muted', }; export default { From d9d787a19ddf8c4125a7da4b8046d99b074bc7c7 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 18:52:01 +0530 Subject: [PATCH 101/172] fix: text color in dark mode --- src/theme/components/heading.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/heading.ts b/src/theme/components/heading.ts index 0efc4eb73..9acb8a049 100644 --- a/src/theme/components/heading.ts +++ b/src/theme/components/heading.ts @@ -4,7 +4,7 @@ const baseStyle = () => { color: 'text.900', }, _dark: { - color: 'white', + color: 'text.50', }, fontWeight: 'bold', lineHeight: 'sm', From fac8dcfe67db58d2a5d7d14f1373f7173707bc5e Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 16 Mar 2022 18:57:26 +0530 Subject: [PATCH 102/172] fix: text design --- src/theme/components/text.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/theme/components/text.ts b/src/theme/components/text.ts index 3ae279cc8..84d125193 100644 --- a/src/theme/components/text.ts +++ b/src/theme/components/text.ts @@ -1,8 +1,11 @@ -import { mode } from './../tools'; - -const baseStyle = (props: Record) => { +const baseStyle = () => { return { - color: mode('coolGray.800', 'warmGray.50')(props), + _light: { + color: 'text.900', + }, + _dark: { + color: 'text.50', + }, fontWeight: '400', fontFamily: 'body', fontStyle: 'normal', From 40c5812a8115a241513e491daad355b2c1125bd8 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 16 Mar 2022 19:50:18 +0530 Subject: [PATCH 103/172] fix: popover design changes --- src/theme/components/popover.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index a77589f8c..79b3badbe 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -10,6 +10,9 @@ export const PopoverCloseButton = { _light: { _icon: { color: 'muted.500', + _hover: { + bg: 'red.500', + }, }, }, _dark: { @@ -23,6 +26,7 @@ export const PopoverCloseButton = { export const PopoverBody = { baseStyle: () => ({ p: '3', + shadow: '6', _light: { bg: 'muted.50', _text: { @@ -40,6 +44,7 @@ export const PopoverBody = { export const PopoverContent = { baseStyle: () => ({ + shadow: '6', _light: { borderColor: 'muted.300', _text: { @@ -52,7 +57,6 @@ export const PopoverContent = { color: 'text.50', }, }, - borderWidth: 1, rounded: 'md', overflow: 'hidden', }), @@ -60,6 +64,7 @@ export const PopoverContent = { export const PopoverHeader = { baseStyle: () => ({ + shadow: '6', _web: { accessibilityRole: 'header', }, @@ -104,6 +109,7 @@ export const PopoverFooter = { baseStyle: () => { return { p: '4', + shadow: '6', flexDirection: 'row', justifyContent: 'flex-end', flexWrap: 'wrap', From 12353876a8deeb3b0465277927e664c87872c802 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Thu, 17 Mar 2022 06:00:18 +0530 Subject: [PATCH 104/172] feat: _icon internal prop and design changes for button and divider --- .../components/primitives/Button/sizes.tsx | 16 +- src/components/primitives/Button/Button.tsx | 11 +- src/components/primitives/Button/types.ts | 5 + src/theme/components/button.ts | 344 ++++++++++-------- src/theme/components/divider.ts | 9 +- 5 files changed, 219 insertions(+), 166 deletions(-) diff --git a/example/storybook/stories/components/primitives/Button/sizes.tsx b/example/storybook/stories/components/primitives/Button/sizes.tsx index 491762d61..46a038a1b 100644 --- a/example/storybook/stories/components/primitives/Button/sizes.tsx +++ b/example/storybook/stories/components/primitives/Button/sizes.tsx @@ -1,16 +1,22 @@ import React from 'react'; -import { Button, Box, VStack } from 'native-base'; +import { Button, VStack, HStack, AddIcon } from 'native-base'; export const Example = () => { return ( {['xs', 'sm', 'md', 'lg'].map((size) => ( - - {/* @ts-ignore */} - + - + + + ))} ); diff --git a/src/components/primitives/Button/Button.tsx b/src/components/primitives/Button/Button.tsx index 5c364d5c5..044065288 100644 --- a/src/components/primitives/Button/Button.tsx +++ b/src/components/primitives/Button/Button.tsx @@ -49,6 +49,7 @@ const Button = ( _text, _stack, _spinner, + _icon, isLoadingText, ...resolvedProps } = usePropsResolution('Button', props, { @@ -77,7 +78,7 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-end-icon-${index}`, - ..._text, + ..._icon, ...child.props, }); } @@ -89,7 +90,7 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-start-icon-${index}`, - ..._text, + ..._icon, ...child.props, }); } @@ -98,11 +99,7 @@ const Button = ( const boxChildren = isLoading && isLoadingText ? isLoadingText : children; - const spinnerElement = spinner ? ( - spinner - ) : ( - - ); + const spinnerElement = spinner ? spinner : ; return ( { * Props to be passed to the HStack used inside of Button. */ _stack?: IStackProps; + /** + * Props to be passed to the Icon used inside of Button. + */ + _icon?: IIconProps; /** * Prop to decide placement of spinner. */ diff --git a/src/theme/components/button.ts b/src/theme/components/button.ts index 623b3106e..8ce959f71 100644 --- a/src/theme/components/button.ts +++ b/src/theme/components/button.ts @@ -1,19 +1,18 @@ -import { Dict, mode, transparentize } from './../tools'; -import { Platform } from 'react-native'; -const disabledTextColor = (props: any) => mode(`muted.500`, `muted.300`)(props); +import { Dict, mode } from './../tools'; const baseStyle = (props: any) => { const { primary } = props.theme.colors; - const focusRing = - Platform.OS === 'web' - ? mode( - { boxShadow: `${primary[400]} 0px 0px 0px 2px`, zIndex: 1 }, - { boxShadow: `${primary[500]} 0px 0px 0px 2px`, zIndex: 1 } - )(props) - : {}; + const focusRing = mode( + { + boxShadow: `${primary[400]} 0px 0px 0px 2px`, + }, + { + boxShadow: `${primary[500]} 0px 0px 0px 2px`, + } + )(props); return { - borderRadius: 'sm', + borderRadius: 'sm', // '4px' flexDirection: 'row', justifyContent: 'center', alignItems: 'center', @@ -24,22 +23,22 @@ const baseStyle = (props: any) => { ? 'default' : 'pointer', }, - _text: { - fontWeight: 'medium', - }, _focusVisible: { - style: props.variant !== 'unstyled' ? { ...focusRing } : {}, + _web: { + outlineWidth: '0', + style: { ...focusRing }, + }, }, _stack: { - space: 2, + space: '1.5', alignItems: 'center', }, - _loading: { - opacity: '80', - }, - _disabled: { - opacity: '50', - }, + // _loading: { + // opacity: '80', + // }, + // _disabled: { + // opacity: '50', + // }, _spinner: { size: 'sm', focusable: false, @@ -47,172 +46,203 @@ const baseStyle = (props: any) => { }; }; -function variantGhost(props: Dict) { - const { colorScheme: c } = props; - if (c === 'muted') { - return { - _text: { - color: disabledTextColor(props), - }, - }; - } - +function variantGhost({ colorScheme }: Dict) { return { - _text: { - color: props.isDisabled - ? disabledTextColor(props) - : mode(`${c}.500`, `${c}.300`)(props), - }, - bg: 'transparent', - _web: { - outlineWidth: '0', - }, - _hover: { - borderColor: mode(`${c}.500`, `${c}.200`)(props), - bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme), + _disabled: { + opacity: '40', }, - _focusVisible: { - borderColor: mode(`${c}.700`, `${c}.200`)(props), - bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme), + _loading: { + opacity: '40', }, - _pressed: { - borderColor: mode(`${c}.600`, `${c}.200`)(props), - bg: transparentize(mode(`${c}.300`, `${c}.500`)(props), 0.5)(props.theme), + _light: { + _text: { + color: `${colorScheme}.600`, + }, + _icon: { + color: `${colorScheme}.600`, + }, + _spinner: { + color: `${colorScheme}.600`, + }, + _hover: { + bg: `${colorScheme}.600:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.600:alpha.20`, + }, }, - _spinner: { - size: 'sm', + _dark: { + _text: { + color: `${colorScheme}.500`, + }, + _icon: { + color: `${colorScheme}.500`, + }, + _spinner: { + color: `${colorScheme}.500`, + }, + _hover: { + bg: `${colorScheme}.500:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.500:alpha.20`, + }, }, }; } -function variantOutline(props: Dict) { - const { colorScheme: c } = props; - const borderColor = mode(`muted.200`, `muted.500`)(props); +function variantOutline({ colorScheme }: Dict) { return { - borderWidth: '1', - borderColor: - c === 'muted' - ? borderColor - : props.isDisabled - ? disabledTextColor(props) - : mode(`${c}.300`, `${c}.300`)(props), - ...variantGhost(props), + borderWidth: '1px', + _disabled: { + opacity: '40', + }, + _loading: { + opacity: '40', + }, + _light: { + borderColor: 'muted.300', + _text: { + color: `${colorScheme}.600`, + }, + _icon: { + color: `${colorScheme}.600`, + }, + _spinner: { + color: `${colorScheme}.600`, + }, + _hover: { + bg: `${colorScheme}.600:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.600:alpha.20`, + }, + }, + _dark: { + borderColor: 'muted.700', + _text: { + color: `${colorScheme}.500`, + }, + _icon: { + color: `${colorScheme}.500`, + }, + _spinner: { + color: `${colorScheme}.500`, + }, + _hover: { + bg: `${colorScheme}.500:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.500:alpha.20`, + }, + }, }; } -function variantSolid(props: Dict) { - const { colorScheme: c } = props; - let bg = `${c}.500`; - if (props.isDisabled) { - bg = mode(`muted.300`, `muted.500`)(props); - } - - const styleObject = { - _web: { - outlineWidth: '0', +function variantSolid({ colorScheme }: Dict) { + return { + _text: { + color: 'text.50', }, - bg, - _hover: { - bg: `${c}.600`, + _icon: { + color: 'text.50', }, - _pressed: { - bg: `${c}.700`, + _spinner: { + color: 'text.50', }, - _focus: { - bg: `${c}.600`, + _disabled: { + opacity: '40', }, _loading: { - bg: mode(`warmGray.50`, `${c}.300`)(props), - opacity: '50', + opacity: '40', + }, + _light: { + bg: `${colorScheme}.600`, + _hover: { + bg: `${colorScheme}.700`, + }, + _pressed: { + bg: `${colorScheme}.800`, + }, + }, + _dark: { + bg: `${colorScheme}.600`, + _hover: { + bg: `${colorScheme}.700`, + }, + _pressed: { + bg: `${colorScheme}.800`, + }, }, - _disabled: { bg: mode(`trueGray.300`, `trueGray.600`)(props) }, }; - - return styleObject; } -// function getBg(props: Record) { -// const { theme, status, variant } = props; -// let { colorScheme } = props; - -// colorScheme = getColorScheme( -// props, -// colorScheme !== 'primary' ? colorScheme : status -// ); -// const lightBg = -// variant === 'solid' -// ? getColor(theme, `${colorScheme}.400`, colorScheme) -// : getColor(theme, `${colorScheme}.100`, colorScheme); - -// const darkBg = -// variant === 'solid' -// ? getColor(theme, `${colorScheme}.700`, colorScheme) -// : getColor(theme, `${colorScheme}.400`, colorScheme); -// return mode(lightBg, darkBg)(props); -// } - -function variantSubtle(props: Dict) { - const { colorScheme: c } = props; - let bg = `${c}.100`; - bg = mode(bg, `${c}.200`)(props); - let color; - if (props.isDisabled) { - bg = mode(`muted.300`, `muted.500`)(props); - } else { - color = mode(`${c}.500`, `${c}.600`)(props); - } - const styleObject = { +function variantSubtle({ colorScheme }: Dict) { + return { _text: { - color: color, + color: `${colorScheme}.900`, }, - _web: { - outlineWidth: '0', + _icon: { + color: `${colorScheme}.900`, }, - bg, - _hover: { - _text: { color: mode(`${c}.600`, `${c}.700`)(props) }, - bg: mode(`${c}.200`, `${c}.300`)(props), + _spinner: { + color: `${colorScheme}.900`, + }, + _disabled: { + opacity: '40', + }, + _loading: { + opacity: '40', }, - _pressed: { - _text: { color: mode(`${c}.700`, `${c}.800`)(props) }, - bg: mode(`${c}.300`, `${c}.400`)(props), + _light: { + bg: `${colorScheme}.100`, + _hover: { + bg: `${colorScheme}.200`, + }, + _pressed: { + bg: `${colorScheme}.300`, + }, + }, + _dark: { + bg: `${colorScheme}.300`, + _hover: { + bg: `${colorScheme}.200`, + }, + _pressed: { + bg: `${colorScheme}.100`, + }, }, }; - - return styleObject; } -function variantLink(props: Dict) { - const { colorScheme: c } = props; - +function variantLink({ colorScheme }: Dict) { return { - ...variantGhost(props), - _text: { - textDecorationLine: Platform.select({ - ios: 'underline', - web: 'underline', - }), - color: - c === 'muted' - ? mode(`muted.800`, `${c}.200`)(props) - : props.isDisabled - ? disabledTextColor(props) - : mode(`${c}.500`, `${c}.300`)(props), + _icon: { + color: `${colorScheme}.600`, + }, + _spinner: { + color: `${colorScheme}.600`, + }, + _disabled: { + opacity: '40', + }, + _loading: { + opacity: '40', }, _hover: { _text: { - color: mode(`${c}.600`, `${c}.400`)(props), textDecorationLine: 'underline', }, }, - _focusVisible: { + _light: { _text: { - color: mode(`${c}.600`, `${c}.400`)(props), - textDecorationLine: 'underline', + color: `${colorScheme}.600`, }, }, - _pressed: { - _text: { color: mode(`${c}.700`, `${c}.500`)(props) }, + _dark: { + _text: { + color: `${colorScheme}.500`, + }, }, }; } @@ -237,6 +267,9 @@ const sizes = { _text: { fontSize: 'md', }, + _icon: { + size: 'xs', + }, }, md: { px: '3', @@ -244,6 +277,9 @@ const sizes = { _text: { fontSize: 'sm', }, + _icon: { + size: 'xs', + }, }, sm: { px: '2', @@ -251,18 +287,24 @@ const sizes = { _text: { fontSize: 'xs', }, + _icon: { + size: 'xxs', + }, }, xs: { - px: '2', + px: '3', py: '2', _text: { fontSize: '2xs', }, + _icon: { + size: 'xxs', + }, }, }; const defaultProps = { - variant: 'solid', + variant: 'link', size: 'md', colorScheme: 'primary', }; diff --git a/src/theme/components/divider.ts b/src/theme/components/divider.ts index ff31fe3bc..9aed7f5b7 100644 --- a/src/theme/components/divider.ts +++ b/src/theme/components/divider.ts @@ -1,5 +1,3 @@ -import { mode } from '../tools'; - function baseStyle(props: Record) { const { orientation, thickness } = props; const orientationProps = @@ -14,7 +12,12 @@ function baseStyle(props: Record) { }; return { - bg: mode('coolGray.200', 'gray.600')(props), + _light: { + bg: 'muted.300', + }, + _dark: { + bg: 'muted.600', + }, ...orientationProps, }; } From bc466f27e47c3d8b13a6b76c0ce7ee9be2fc722a Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 10:26:23 +0530 Subject: [PATCH 105/172] fix: switch design changes --- src/theme/components/switch.ts | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/theme/components/switch.ts b/src/theme/components/switch.ts index 6e9a84b4e..0ab9853a0 100644 --- a/src/theme/components/switch.ts +++ b/src/theme/components/switch.ts @@ -3,31 +3,14 @@ const baseStyle = (props: Record) => { const { colorScheme: c } = props; - //TODO: Use of Platform can be removed return { _disabled: { opacity: 0.4, }, _invalid: { - borderWidth: 1, - borderRadius: 16, + borderWidth: 2, + borderRadius: 12, }, - // offTrackColor: mode( - // Platform.OS !== 'ios' ? 'gray.400' : 'gray.200', - // Platform.OS !== 'ios' ? 'gray.700' : 'gray.600' - // )(props), - // onTrackColor: mode( - // Platform.OS !== 'ios' ? `${colorScheme}.300` : `${colorScheme}.500`, - // Platform.OS !== 'ios' ? `${colorScheme}.700` : `${colorScheme}.500` - // )(props), - // onThumbColor: mode( - // Platform.OS !== 'ios' ? `${colorScheme}.600` : 'white', - // Platform.OS !== 'ios' ? `${colorScheme}.500` : 'white' - // )(props), - // offThumbColor: mode( - // Platform.OS !== 'ios' ? 'gray.100' : 'white', - // Platform.OS !== 'ios' ? 'gray.200' : 'white' - // )(props), onThumbColor: 'muted.50', offThumbColor: 'muted.50', _light: { @@ -38,7 +21,7 @@ const baseStyle = (props: Record) => { onTrackColor: `${c}.700`, }, _invalid: { - borderColor: 'error.500', + borderColor: 'error.600', }, }, _dark: { @@ -49,7 +32,7 @@ const baseStyle = (props: Record) => { onTrackColor: `${c}.400`, }, _invalid: { - borderColor: 'error.600', + borderColor: 'error.500', }, }, }; From b26445158a5784a575823f9ea1574e67a1049c94 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 10:27:59 +0530 Subject: [PATCH 106/172] fix: remove imports --- src/theme/components/switch.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/theme/components/switch.ts b/src/theme/components/switch.ts index 0ab9853a0..9dbfeb169 100644 --- a/src/theme/components/switch.ts +++ b/src/theme/components/switch.ts @@ -1,6 +1,3 @@ -// import { mode, getColorScheme } from '../tools'; -// import { Platform } from 'react-native'; - const baseStyle = (props: Record) => { const { colorScheme: c } = props; return { From 6c3e74c32f75093ec5adc84c0878c6c6de3e8fa8 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 16:13:26 +0530 Subject: [PATCH 107/172] fix: modal design changes --- src/theme/components/modal.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/theme/components/modal.ts b/src/theme/components/modal.ts index bc0da0aa9..34ff81690 100644 --- a/src/theme/components/modal.ts +++ b/src/theme/components/modal.ts @@ -94,11 +94,17 @@ export const ModalCloseButton = { _icon: { color: 'muted.500', }, + _hover: { + bg: 'muted.200', + }, }, _dark: { _icon: { color: 'muted.400', }, + _hover: { + bg: 'muted.700', + }, }, }; }, From 833ebb38004c811eeb0330453b7010252ac2156a Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 16:16:28 +0530 Subject: [PATCH 108/172] fix: hover issue --- src/components/composites/Modal/ModalCloseButton.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/composites/Modal/ModalCloseButton.tsx b/src/components/composites/Modal/ModalCloseButton.tsx index da4a6043e..1274deed4 100644 --- a/src/components/composites/Modal/ModalCloseButton.tsx +++ b/src/components/composites/Modal/ModalCloseButton.tsx @@ -5,11 +5,16 @@ import Button from '../../primitives/Button/Button'; import { CloseIcon } from '../../primitives/Icon/Icons'; import type { IButtonProps } from '../../primitives/Button'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { useHover } from '@react-native-aria/interactions'; +import { mergeRefs } from '../../../utils'; const ModalCloseButton = (props: IButtonProps, ref?: any) => { + const _ref = React.useRef(null); + const { isHovered } = useHover({}, _ref); const { _icon, ...resolvedProps } = usePropsResolution( 'ModalCloseButton', - props + props, + { isHovered } ); const { handleClose } = React.useContext(ModalContext); //TODO: refactor for responsive prop @@ -22,7 +27,7 @@ const ModalCloseButton = (props: IButtonProps, ref?: any) => { {...resolvedProps} onPress={handleClose} accessibilityLabel="Close dialog" - ref={ref} + ref={mergeRefs([ref, _ref])} > From bebdccfddedcfe14cceda6320ff415f039417e65 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 16:35:14 +0530 Subject: [PATCH 109/172] fix: hover issue --- .../composites/Popover/PopoverCloseButton.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/composites/Popover/PopoverCloseButton.tsx b/src/components/composites/Popover/PopoverCloseButton.tsx index 0b5467d87..979688f2c 100644 --- a/src/components/composites/Popover/PopoverCloseButton.tsx +++ b/src/components/composites/Popover/PopoverCloseButton.tsx @@ -4,15 +4,22 @@ import { default as IconButton, IIconButtonProps } from '../IconButton'; import { CloseIcon } from '../../primitives/Icon/Icons'; import { PopoverContext } from './PopoverContext'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { useHover } from '@react-native-aria/interactions'; +import { mergeRefs } from '../../../utils'; const PopoverCloseButton = ( props: Omit, ref: any ) => { const { onClose }: any = React.useContext(PopoverContext); + const _ref = React.useRef(null); + + const { isHovered } = useHover({}, _ref); + const { _icon, ...resolvedPorps } = usePropsResolution( 'PopoverCloseButton', - props + props, + { isHovered } ); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { @@ -20,7 +27,7 @@ const PopoverCloseButton = ( } return ( } onPress={onClose} From f10168808a7ee6d427f7ae2a03bc10f7486004e6 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 16:35:35 +0530 Subject: [PATCH 110/172] fix: popover design changes --- src/theme/components/popover.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index 79b3badbe..b271a7d0e 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -10,15 +10,18 @@ export const PopoverCloseButton = { _light: { _icon: { color: 'muted.500', - _hover: { - bg: 'red.500', - }, + }, + _hover: { + bg: 'muted.200', }, }, _dark: { _icon: { color: 'muted.400', }, + _hover: { + bg: 'muted.700', + }, }, }), }; From b3f2e442117bda6a442a50706792b7927d1547cc Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Thu, 17 Mar 2022 18:59:42 +0530 Subject: [PATCH 111/172] feat: updated icon size tokens and iconButton theme --- .../composites/IconButton/Sizes.tsx | 21 +- src/theme/components/button.ts | 74 ++--- src/theme/components/icon-button.ts | 265 ++++++++++++------ src/theme/components/icon.ts | 22 +- 4 files changed, 221 insertions(+), 161 deletions(-) diff --git a/example/storybook/stories/components/composites/IconButton/Sizes.tsx b/example/storybook/stories/components/composites/IconButton/Sizes.tsx index 46cadc918..7d741863f 100644 --- a/example/storybook/stories/components/composites/IconButton/Sizes.tsx +++ b/example/storybook/stories/components/composites/IconButton/Sizes.tsx @@ -1,21 +1,18 @@ import React from 'react'; -import { IconButton, Box, Center, VStack } from 'native-base'; +import { IconButton, Center, VStack } from 'native-base'; import { MaterialIcons } from '@expo/vector-icons'; export const Example = () => { return (
- {['sm', 'md', 'lg'].map((size: any) => ( - - - + {['xs', 'sm', 'md', 'lg'].map((size: any) => ( + ))}
diff --git a/src/theme/components/button.ts b/src/theme/components/button.ts index 8ce959f71..5d0212ae1 100644 --- a/src/theme/components/button.ts +++ b/src/theme/components/button.ts @@ -1,4 +1,4 @@ -import { Dict, mode } from './../tools'; +import { mode } from './../tools'; const baseStyle = (props: any) => { const { primary } = props.theme.colors; @@ -33,12 +33,12 @@ const baseStyle = (props: any) => { space: '1.5', alignItems: 'center', }, - // _loading: { - // opacity: '80', - // }, - // _disabled: { - // opacity: '50', - // }, + _loading: { + opacity: '40', + }, + _disabled: { + opacity: '40', + }, _spinner: { size: 'sm', focusable: false, @@ -46,14 +46,8 @@ const baseStyle = (props: any) => { }; }; -function variantGhost({ colorScheme }: Dict) { +function variantGhost({ colorScheme }: Record) { return { - _disabled: { - opacity: '40', - }, - _loading: { - opacity: '40', - }, _light: { _text: { color: `${colorScheme}.600`, @@ -91,15 +85,10 @@ function variantGhost({ colorScheme }: Dict) { }; } -function variantOutline({ colorScheme }: Dict) { +function variantOutline({ colorScheme }: Record) { return { borderWidth: '1px', - _disabled: { - opacity: '40', - }, - _loading: { - opacity: '40', - }, + _light: { borderColor: 'muted.300', _text: { @@ -139,7 +128,7 @@ function variantOutline({ colorScheme }: Dict) { }; } -function variantSolid({ colorScheme }: Dict) { +function variantSolid({ colorScheme }: Record) { return { _text: { color: 'text.50', @@ -150,12 +139,7 @@ function variantSolid({ colorScheme }: Dict) { _spinner: { color: 'text.50', }, - _disabled: { - opacity: '40', - }, - _loading: { - opacity: '40', - }, + _light: { bg: `${colorScheme}.600`, _hover: { @@ -177,7 +161,7 @@ function variantSolid({ colorScheme }: Dict) { }; } -function variantSubtle({ colorScheme }: Dict) { +function variantSubtle({ colorScheme }: Record) { return { _text: { color: `${colorScheme}.900`, @@ -188,12 +172,7 @@ function variantSubtle({ colorScheme }: Dict) { _spinner: { color: `${colorScheme}.900`, }, - _disabled: { - opacity: '40', - }, - _loading: { - opacity: '40', - }, + _light: { bg: `${colorScheme}.100`, _hover: { @@ -215,7 +194,7 @@ function variantSubtle({ colorScheme }: Dict) { }; } -function variantLink({ colorScheme }: Dict) { +function variantLink({ colorScheme }: Record) { return { _icon: { color: `${colorScheme}.600`, @@ -223,12 +202,7 @@ function variantLink({ colorScheme }: Dict) { _spinner: { color: `${colorScheme}.600`, }, - _disabled: { - opacity: '40', - }, - _loading: { - opacity: '40', - }, + _hover: { _text: { textDecorationLine: 'underline', @@ -247,17 +221,13 @@ function variantLink({ colorScheme }: Dict) { }; } -function variantUnstyled() { - return {}; -} - const variants = { ghost: variantGhost, outline: variantOutline, solid: variantSolid, subtle: variantSubtle, link: variantLink, - unstyled: variantUnstyled, + unstyled: {}, }; const sizes = { @@ -268,7 +238,7 @@ const sizes = { fontSize: 'md', }, _icon: { - size: 'xs', + size: 'md', }, }, md: { @@ -278,7 +248,7 @@ const sizes = { fontSize: 'sm', }, _icon: { - size: 'xs', + size: 'sm', }, }, sm: { @@ -288,7 +258,7 @@ const sizes = { fontSize: 'xs', }, _icon: { - size: 'xxs', + size: 'sm', }, }, xs: { @@ -298,13 +268,13 @@ const sizes = { fontSize: '2xs', }, _icon: { - size: 'xxs', + size: 'xs', }, }, }; const defaultProps = { - variant: 'link', + variant: 'solid', size: 'md', colorScheme: 'primary', }; diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 7e30a1f46..31bd84ca5 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -1,15 +1,21 @@ -import { Dict, mode, transparentize } from './../tools'; -import { Platform } from 'react-native'; +import { mode } from './../tools'; const baseStyle = (props: any) => { const { primary } = props.theme.colors; - const focusRing = - Platform.OS === 'web' - ? { boxShadow: `${primary[400]} 0px 0px 0px 3px` } - : {}; + const focusRing = mode( + { + boxShadow: `${primary[400]} 0px 0px 0px 2px`, + }, + { + boxShadow: `${primary[500]} 0px 0px 0px 2px`, + } + )(props); return { - borderRadius: 'sm', + borderRadius: 'sm', // '4px' + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', _web: { cursor: props.isDisabled ? 'not-allowed' @@ -18,128 +24,215 @@ const baseStyle = (props: any) => { : 'pointer', }, _focusVisible: { - style: props.variant !== 'unstyled' ? { ...focusRing } : {}, + _web: { + outlineWidth: '0', + style: { ...focusRing }, + }, + }, + _loading: { + opacity: '40', }, _disabled: { - opacity: 0.5, + opacity: '40', }, }; }; -function variantGhost(props: Dict) { - const { colorScheme } = props; +function variantGhost({ colorScheme }: Record) { return { - bg: 'transparent', - _web: { - outlineWidth: 0, - }, - _hover: { - bg: transparentize( - mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), - 0.5 - )(props.theme), - }, - _focusVisible: { - bg: transparentize( - mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), - 0.5 - )(props.theme), - }, - _pressed: { - bg: transparentize( - mode(`${colorScheme}.200`, `${colorScheme}.500`)(props), - 0.6 - )(props.theme), + _light: { + _icon: { + color: `${colorScheme}.600`, + }, + _hover: { + bg: `${colorScheme}.600:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.600:alpha.20`, + }, + }, + _dark: { + _icon: { + color: `${colorScheme}.500`, + }, + _hover: { + bg: `${colorScheme}.500:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.500:alpha.20`, + }, }, }; } -function variantOutline(props: Dict) { - const { colorScheme } = props; +function variantOutline({ colorScheme }: Record) { return { - borderWidth: '1', - borderColor: `${colorScheme}.300`, - _icon: { - color: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props), - }, - _web: { - outlineWidth: 0, - }, - _hover: { - bg: transparentize( - mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), - 0.5 - )(props.theme), - }, - _focusVisible: { - bg: transparentize( - mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), - 0.5 - )(props.theme), - }, - _pressed: { - bg: transparentize( - mode(`${colorScheme}.300`, `${colorScheme}.500`)(props), - 0.6 - )(props.theme), + borderWidth: '1px', + + _light: { + borderColor: 'muted.300', + _icon: { + color: `${colorScheme}.600`, + }, + _hover: { + bg: `${colorScheme}.600:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.600:alpha.20`, + }, + }, + _dark: { + borderColor: 'muted.700', + _icon: { + color: `${colorScheme}.500`, + }, + _hover: { + bg: `${colorScheme}.500:alpha.10`, + }, + _pressed: { + bg: `${colorScheme}.500:alpha.20`, + }, }, }; } -function variantSolid(props: Dict) { - const { colorScheme } = props; +function variantSolid({ colorScheme }: Record) { return { - bg: `${colorScheme}.500`, - _web: { - outlineWidth: 0, - }, - _disabled: { - bg: mode(`trueGray.300`, `trueGray.600`)(props), + _icon: { + color: 'text.50', }, - _hover: { + + _light: { bg: `${colorScheme}.600`, - }, - _pressed: { - bg: `${colorScheme}.700`, - }, - _focus: { + _hover: { + bg: `${colorScheme}.700`, + }, + _pressed: { + bg: `${colorScheme}.800`, + }, + }, + _dark: { bg: `${colorScheme}.600`, + _hover: { + bg: `${colorScheme}.700`, + }, + _pressed: { + bg: `${colorScheme}.800`, + }, + }, + }; +} + +function variantSubtle({ colorScheme }: Record) { + return { + _text: { + color: `${colorScheme}.900`, }, _icon: { - color: mode('gray.50', 'gray.800')(props), + color: `${colorScheme}.900`, + }, + _light: { + bg: `${colorScheme}.100`, + _hover: { + bg: `${colorScheme}.200`, + }, + _pressed: { + bg: `${colorScheme}.300`, + }, + }, + _dark: { + bg: `${colorScheme}.300`, + _hover: { + bg: `${colorScheme}.200`, + }, + _pressed: { + bg: `${colorScheme}.100`, + }, }, }; } -function variantUnstyled() { - return {}; +function variantLink({ colorScheme }: Record) { + return { + _spinner: { + color: `${colorScheme}.600`, + }, + + _light: { + _icon: { + color: `${colorScheme}.600`, + }, + _hover: { + _icon: { + color: `${colorScheme}.700`, + }, + }, + _pressed: { + _icon: { + color: `${colorScheme}.800`, + }, + }, + }, + _dark: { + _icon: { + color: `${colorScheme}.500`, + }, + _hover: { + _icon: { + color: `${colorScheme}.400`, + }, + }, + _pressed: { + _icon: { + color: `${colorScheme}.300`, + }, + }, + }, + }; } const variants = { ghost: variantGhost, outline: variantOutline, solid: variantSolid, - unstyled: variantUnstyled, -}; - -const defaultProps = { - variant: 'ghost', - size: 'md', - colorScheme: 'primary', + subtle: variantSubtle, + link: variantLink, + unstyled: {}, }; const sizes = { lg: { - p: 3, + p: '3', + _icon: { + size: 'lg', + }, }, md: { - p: 2, + p: '2.5', + _icon: { + size: 'md', + }, }, sm: { - p: 1, + p: '2', + _icon: { + size: 'sm', + }, + }, + xs: { + p: '1.5', + _icon: { + size: 'xs', + }, }, }; +const defaultProps = { + variant: 'ghost', + size: 'md', + colorScheme: 'primary', +}; + export default { baseStyle, variants, diff --git a/src/theme/components/icon.ts b/src/theme/components/icon.ts index 24ab6ab56..125bf5a08 100644 --- a/src/theme/components/icon.ts +++ b/src/theme/components/icon.ts @@ -7,17 +7,17 @@ const baseStyle = (props: Record) => { }; const sizes = { - 'xxs': 2, - 'xs': 4, - 'sm': 6, - 'md': 8, - 'lg': 10, - 'xl': 12, - '2xl': 16, - '3xl': 20, - '4xl': 24, - '5xl': 32, - '6xl': 64, + '2xs': 2, + 'xs': 3, + 'sm': 4, + 'md': 5, + 'lg': 6, + 'xl': 7, + '2xl': 8, + '3xl': 9, + '4xl': 10, + '5xl': 12, + '6xl': 16, }; const defaultProps = { size: 'md' }; From 6a24ed1182a8aca87c6071c43c0c0b12da4fbc1e Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 19:00:05 +0530 Subject: [PATCH 112/172] fix: hover and press issue --- .../AlertDialog/AlertDialogCloseButton.tsx | 60 +++++++++++++++---- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx b/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx index f3ee1dc97..29809908a 100644 --- a/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx +++ b/src/components/composites/AlertDialog/AlertDialogCloseButton.tsx @@ -1,31 +1,69 @@ import React, { memo, forwardRef } from 'react'; import { AlertDialogContext } from './Context'; import { usePropsResolution } from '../../../hooks'; -import Button from '../../primitives/Button/Button'; +import { Pressable } from '../../primitives/Pressable'; import { CloseIcon } from '../../primitives/Icon/Icons'; import type { IButtonProps } from '../../primitives/Button'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; +import { + useHover, + useFocus, + useIsPressed, +} from '../../primitives/Pressable/Pressable'; +import { composeEventHandlers } from '../../../utils'; +import { useFocusRing } from '@react-native-aria/focus'; const AlertDialogCloseButton = (props: IButtonProps, ref?: any) => { - const { _icon, ...rest } = usePropsResolution( - 'AlertDialogCloseButton', - props - ); + const { hoverProps, isHovered } = useHover(); + const { pressableProps, isPressed } = useIsPressed(); + const { focusProps, isFocused } = useFocus(); + const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing(); + + const { + _icon, + onPressIn, + onPressOut, + onHoverIn, + onHoverOut, + onFocus, + onBlur, + ...rest + } = usePropsResolution('AlertDialogCloseButton', props, { + isHovered, + isPressed, + isFocused, + isFocusVisible, + }); const { handleClose } = React.useContext(AlertDialogContext); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - +
); }; From ede9002a068abc44ad0ac76d8e5d60293263ae28 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 19:00:34 +0530 Subject: [PATCH 113/172] fix: alert dialog design changes --- src/theme/components/alert-dialog.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/theme/components/alert-dialog.ts b/src/theme/components/alert-dialog.ts index dab8fa9f7..67da003bd 100644 --- a/src/theme/components/alert-dialog.ts +++ b/src/theme/components/alert-dialog.ts @@ -84,6 +84,12 @@ export const AlertDialogCloseButton = { top: '3', zIndex: '1', p: '2', + bg: 'transparent', + borderRadius: 'sm', + _web: { + outlineWidth: 0, + cursor: 'pointer', + }, _icon: { size: '4', }, @@ -91,11 +97,23 @@ export const AlertDialogCloseButton = { _icon: { color: 'muted.500', }, + _hover: { + bg: 'muted.200', + }, + _pressed: { + bg: 'muted.300', + }, }, _dark: { _icon: { color: 'muted.400', }, + _hover: { + bg: 'muted.700', + }, + _pressed: { + bg: 'muted.600', + }, }, }; }, @@ -105,6 +123,7 @@ export const AlertDialogHeader = { return { p: '4', borderBottomWidth: '1', + shadow: '6', _text: { fontSize: 'md', fontWeight: 'semibold', From a58413544580b0b49a7959e496836c51785b3857 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Thu, 17 Mar 2022 19:03:25 +0530 Subject: [PATCH 114/172] fix: example --- .../components/primitives/Button/sizes.tsx | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/example/storybook/stories/components/primitives/Button/sizes.tsx b/example/storybook/stories/components/primitives/Button/sizes.tsx index 46a038a1b..98b47bd16 100644 --- a/example/storybook/stories/components/primitives/Button/sizes.tsx +++ b/example/storybook/stories/components/primitives/Button/sizes.tsx @@ -1,22 +1,13 @@ import React from 'react'; -import { Button, VStack, HStack, AddIcon } from 'native-base'; +import { Button, VStack } from 'native-base'; export const Example = () => { return ( {['xs', 'sm', 'md', 'lg'].map((size) => ( - - - - - - + ))} ); From 03bce4e64b42d9322740b26eca3308bc94e11638 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 19:27:59 +0530 Subject: [PATCH 115/172] fix: hover and press issue in close icon button --- .../composites/Modal/ModalCloseButton.tsx | 65 ++++++++++++++----- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/src/components/composites/Modal/ModalCloseButton.tsx b/src/components/composites/Modal/ModalCloseButton.tsx index 1274deed4..d783e2193 100644 --- a/src/components/composites/Modal/ModalCloseButton.tsx +++ b/src/components/composites/Modal/ModalCloseButton.tsx @@ -1,36 +1,69 @@ import React, { memo, forwardRef } from 'react'; import { ModalContext } from './Context'; import { usePropsResolution } from '../../../hooks'; -import Button from '../../primitives/Button/Button'; +import { Pressable } from '../../primitives/Pressable'; import { CloseIcon } from '../../primitives/Icon/Icons'; import type { IButtonProps } from '../../primitives/Button'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -import { useHover } from '@react-native-aria/interactions'; -import { mergeRefs } from '../../../utils'; +import { + useHover, + useFocus, + useIsPressed, +} from '../../primitives/Pressable/Pressable'; +import { composeEventHandlers } from '../../../utils'; +import { useFocusRing } from '@react-native-aria/focus'; const ModalCloseButton = (props: IButtonProps, ref?: any) => { - const _ref = React.useRef(null); - const { isHovered } = useHover({}, _ref); - const { _icon, ...resolvedProps } = usePropsResolution( - 'ModalCloseButton', - props, - { isHovered } - ); + const { hoverProps, isHovered } = useHover(); + const { pressableProps, isPressed } = useIsPressed(); + const { focusProps, isFocused } = useFocus(); + const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing(); + + const { + _icon, + onPressIn, + onPressOut, + onHoverIn, + onHoverOut, + onFocus, + onBlur, + ...resolvedProps + } = usePropsResolution('ModalCloseButton', props, { + isHovered, + isPressed, + isFocused, + isFocusVisible, + }); const { handleClose } = React.useContext(ModalContext); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - + ); }; From fb0a0f81cafe8780b7bb31a5d8ff6d4a6611c151 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 19:28:28 +0530 Subject: [PATCH 116/172] fix: modal design changes --- src/theme/components/modal.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/theme/components/modal.ts b/src/theme/components/modal.ts index 34ff81690..7befcdb3f 100644 --- a/src/theme/components/modal.ts +++ b/src/theme/components/modal.ts @@ -87,6 +87,12 @@ export const ModalCloseButton = { zIndex: '1', colorScheme: 'coolGray', p: '2', + bg: 'transparent', + borderRadius: 'sm', + _web: { + outlineWidth: 0, + cursor: 'pointer', + }, _icon: { size: '4', }, @@ -97,6 +103,9 @@ export const ModalCloseButton = { _hover: { bg: 'muted.200', }, + _pressed: { + bg: 'muted.300', + }, }, _dark: { _icon: { @@ -105,6 +114,9 @@ export const ModalCloseButton = { _hover: { bg: 'muted.700', }, + _pressed: { + bg: 'muted.600', + }, }, }; }, From c6a68ac6bd0f715b85c7522e5bb3ca040c680caa Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Thu, 17 Mar 2022 20:01:38 +0530 Subject: [PATCH 117/172] feat: menu design changes --- .../storybook/stories/components/Wrapper.tsx | 3 +- .../composites/IconButton/Sizes.tsx | 1 + src/theme/components/menu.ts | 121 +++++++++++------- 3 files changed, 81 insertions(+), 44 deletions(-) diff --git a/example/storybook/stories/components/Wrapper.tsx b/example/storybook/stories/components/Wrapper.tsx index 6e05be560..c7dae7c17 100644 --- a/example/storybook/stories/components/Wrapper.tsx +++ b/example/storybook/stories/components/Wrapper.tsx @@ -64,6 +64,7 @@ function MyWrapper({ children }: any) { zIndex={4} onPress={toggleColorMode} icon={colorMode === 'dark' ? : } + size="lg" /> {children} @@ -83,7 +84,7 @@ export default ({ children, theme }: any) => { const colorModeManager: StorageManager = { get: async () => { try { - let val = await AsyncStorage.getItem('@example-wrapper-mode'); + const val = await AsyncStorage.getItem('@example-wrapper-mode'); return val === 'dark' ? 'dark' : 'light'; } catch (e) { console.log(e); diff --git a/example/storybook/stories/components/composites/IconButton/Sizes.tsx b/example/storybook/stories/components/composites/IconButton/Sizes.tsx index 7d741863f..8d21f80ca 100644 --- a/example/storybook/stories/components/composites/IconButton/Sizes.tsx +++ b/example/storybook/stories/components/composites/IconButton/Sizes.tsx @@ -8,6 +8,7 @@ export const Example = () => { {['xs', 'sm', 'md', 'lg'].map((size: any) => ( ) { - return { - bg: mode(`#fff`, `gray.700`)(props), - py: 2, - borderWidth: 1, - borderColor: mode(`coolGray.200`, `gray.600`)(props), - borderRadius: 'sm', - _presenceTransition: { - initial: { opacity: 0, translateY: -10 }, - animate: { - opacity: 1, - translateY: 0, - transition: { duration: 200 }, - }, - exit: { opacity: 0, translateY: -10, transition: { duration: 150 } }, - style: StyleSheet.absoluteFill, - }, - _overlay: {}, - _backdrop: { - bg: 'transparent', +const baseStyle = { + py: 2, + borderRadius: 'sm', + shadow: 6, + _light: { + bg: 'muted.50', + }, + _dark: { + bg: 'muted.800', + }, + _presenceTransition: { + initial: { opacity: 0, translateY: -10 }, + animate: { + opacity: 1, + translateY: 0, + transition: { duration: 200 }, }, - }; -} + exit: { opacity: 0, translateY: -10, transition: { duration: 150 } }, + style: StyleSheet.absoluteFill, + }, + _overlay: {}, + _backdrop: { + bg: 'transparent', + }, +}; export default { baseStyle, }; export const MenuGroup = { - baseStyle: (props: any) => ({ + baseStyle: { _title: { fontSize: 'xs', - fontWeight: 600, textTransform: 'uppercase', - color: mode(`gray.500`, `gray.300`)(props), + _light: { + color: 'text.500', + }, + _dark: { + color: 'text.400', + }, }, p: 3, - }), + }, }; export const MenuItem = { - baseStyle: (props: any) => ({ + baseStyle: { px: 3, py: 2, - outlineWidth: Platform.OS === 'web' ? 0 : undefined, + _web: { + outlineWidth: 0, + }, _stack: { alignItems: 'center', px: 3, space: 3, }, - _disabled: { - _text: { - color: mode('gray.400', 'gray.400')(props), - }, - }, - _focus: { - bg: mode(`coolGray.200`, `gray.600`)(props), - }, - _pressed: { - bg: mode(`coolGray.300`, `gray.500`)(props), - }, _icon: { size: 4, - color: mode('gray.500', 'gray.100')(props), opacity: 0, }, + _light: { + _text: { + color: 'text.900', + }, + _disabled: { + _text: { + color: 'text.400', + }, + }, + _focus: { + bg: 'muted.200', + }, + _pressed: { + bg: 'muted.300', + }, + + _icon: { + color: 'muted.500', + }, + }, + _dark: { + _text: { + color: 'text.50', + }, + _disabled: { + _text: { + color: 'text.600', + }, + }, + _focus: { + bg: 'muted.700', + }, + _pressed: { + bg: 'muted.600', + }, + + _icon: { + color: 'muted.400', + }, + }, _checked: { _icon: { opacity: 1, }, }, - }), + }, defaultProps: {}, }; From 0993690c3572858dabfe073d38529e2d2d476105 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 20:07:34 +0530 Subject: [PATCH 118/172] fix: hover and press issue --- .../composites/Popover/PopoverCloseButton.tsx | 72 +++++++++++++------ 1 file changed, 52 insertions(+), 20 deletions(-) diff --git a/src/components/composites/Popover/PopoverCloseButton.tsx b/src/components/composites/Popover/PopoverCloseButton.tsx index 979688f2c..d79ad40b7 100644 --- a/src/components/composites/Popover/PopoverCloseButton.tsx +++ b/src/components/composites/Popover/PopoverCloseButton.tsx @@ -1,37 +1,69 @@ import React from 'react'; import { usePropsResolution } from '../../../hooks'; -import { default as IconButton, IIconButtonProps } from '../IconButton'; +import { Pressable } from '../../primitives/Pressable'; import { CloseIcon } from '../../primitives/Icon/Icons'; import { PopoverContext } from './PopoverContext'; +import type { IButtonProps } from '../../primitives/Button'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -import { useHover } from '@react-native-aria/interactions'; -import { mergeRefs } from '../../../utils'; +import { + useHover, + useFocus, + useIsPressed, +} from '../../primitives/Pressable/Pressable'; +import { composeEventHandlers } from '../../../utils'; +import { useFocusRing } from '@react-native-aria/focus'; -const PopoverCloseButton = ( - props: Omit, - ref: any -) => { +const PopoverCloseButton = (props: IButtonProps, ref: any) => { const { onClose }: any = React.useContext(PopoverContext); - const _ref = React.useRef(null); + const { hoverProps, isHovered } = useHover(); + const { pressableProps, isPressed } = useIsPressed(); + const { focusProps, isFocused } = useFocus(); + const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing(); - const { isHovered } = useHover({}, _ref); - - const { _icon, ...resolvedPorps } = usePropsResolution( - 'PopoverCloseButton', - props, - { isHovered } - ); + const { + _icon, + onPressIn, + onPressOut, + onHoverIn, + onHoverOut, + onFocus, + onBlur, + ...resolvedProps + } = usePropsResolution('PopoverCloseButton', props, { + isHovered, + isPressed, + isFocused, + isFocusVisible, + }); //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; } return ( - } + + {...resolvedProps} + > + + ); }; From a701a6741bd7279110bda0d02a4d4b1e24f16515 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 17 Mar 2022 20:08:05 +0530 Subject: [PATCH 119/172] fix: popover design changes --- src/theme/components/popover.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index b271a7d0e..361718f18 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -4,8 +4,15 @@ export const PopoverCloseButton = { right: 3, top: 3, zIndex: 1, + p: '2', + bg: 'transparent', + borderRadius: 'sm', + _web: { + outlineWidth: 0, + cursor: 'pointer', + }, _icon: { - size: 4, + size: '4', }, _light: { _icon: { @@ -14,6 +21,9 @@ export const PopoverCloseButton = { _hover: { bg: 'muted.200', }, + _pressed: { + bg: 'muted.300', + }, }, _dark: { _icon: { @@ -22,6 +32,9 @@ export const PopoverCloseButton = { _hover: { bg: 'muted.700', }, + _pressed: { + bg: 'muted.600', + }, }, }), }; From 9e5bb251f866d7e83afab4016eb0dd9396696c24 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Mon, 21 Mar 2022 19:09:24 +0530 Subject: [PATCH 120/172] feat: v3.3.x theme object export --- src/theme/index.ts | 1 + src/theme/v33x-theme/base/borders.ts | 11 + src/theme/v33x-theme/base/breakpoints.ts | 11 + src/theme/v33x-theme/base/colors.ts | 351 ++++++++++++++++++ src/theme/v33x-theme/base/index.ts | 37 ++ src/theme/v33x-theme/base/opacity.ts | 20 + src/theme/v33x-theme/base/radius.ts | 15 + src/theme/v33x-theme/base/shadows.ts | 116 ++++++ src/theme/v33x-theme/base/sizes.ts | 26 ++ src/theme/v33x-theme/base/space.ts | 48 +++ src/theme/v33x-theme/base/types.ts | 11 + src/theme/v33x-theme/base/typography.ts | 147 ++++++++ src/theme/v33x-theme/components/accordion.ts | 51 +++ .../v33x-theme/components/actionsheet.ts | 61 +++ .../v33x-theme/components/alert-dialog.ts | 135 +++++++ src/theme/v33x-theme/components/alert.ts | 129 +++++++ src/theme/v33x-theme/components/app-bar.ts | 17 + .../v33x-theme/components/aspect-ratio.ts | 8 + .../v33x-theme/components/avatar-badge.ts | 16 + .../v33x-theme/components/avatar-group.ts | 22 ++ src/theme/v33x-theme/components/avatar.ts | 60 +++ src/theme/v33x-theme/components/badge.ts | 57 +++ src/theme/v33x-theme/components/box.ts | 6 + src/theme/v33x-theme/components/breadcrumb.ts | 26 ++ src/theme/v33x-theme/components/button.ts | 280 ++++++++++++++ src/theme/v33x-theme/components/card.ts | 11 + src/theme/v33x-theme/components/center.ts | 36 ++ .../v33x-theme/components/checkbox-group.ts | 9 + src/theme/v33x-theme/components/checkbox.ts | 99 +++++ src/theme/v33x-theme/components/circle.ts | 37 ++ .../components/circular-progress.ts | 43 +++ src/theme/v33x-theme/components/code.ts | 20 + src/theme/v33x-theme/components/container.ts | 15 + src/theme/v33x-theme/components/divider.ts | 28 ++ src/theme/v33x-theme/components/fab.ts | 22 ++ src/theme/v33x-theme/components/flatList.ts | 6 + src/theme/v33x-theme/components/flex.ts | 12 + .../v33x-theme/components/form-control.ts | 54 +++ src/theme/v33x-theme/components/heading.ts | 40 ++ src/theme/v33x-theme/components/hstack.ts | 6 + .../v33x-theme/components/icon-button.ts | 148 ++++++++ src/theme/v33x-theme/components/icon.ts | 24 ++ src/theme/v33x-theme/components/image.ts | 19 + src/theme/v33x-theme/components/index.ts | 222 +++++++++++ src/theme/v33x-theme/components/input.ts | 144 +++++++ .../v33x-theme/components/inputleftaddon.ts | 20 + .../v33x-theme/components/inputrightaddon.ts | 20 + src/theme/v33x-theme/components/kbd.ts | 25 ++ .../components/keyboardAvoidingView.ts | 6 + src/theme/v33x-theme/components/link.ts | 17 + src/theme/v33x-theme/components/list.ts | 32 ++ src/theme/v33x-theme/components/menu.ts | 76 ++++ src/theme/v33x-theme/components/modal.ts | 135 +++++++ .../v33x-theme/components/number-input.ts | 35 ++ src/theme/v33x-theme/components/pin-input.ts | 62 ++++ src/theme/v33x-theme/components/popover.ts | 73 ++++ src/theme/v33x-theme/components/pressable.ts | 4 + src/theme/v33x-theme/components/progress.ts | 59 +++ .../v33x-theme/components/radio-group.ts | 9 + src/theme/v33x-theme/components/radio.ts | 106 ++++++ src/theme/v33x-theme/components/scrollView.ts | 6 + .../v33x-theme/components/sectionList.ts | 6 + src/theme/v33x-theme/components/select.ts | 56 +++ .../v33x-theme/components/simple-grid.ts | 6 + src/theme/v33x-theme/components/skeleton.ts | 38 ++ src/theme/v33x-theme/components/slider.ts | 87 +++++ src/theme/v33x-theme/components/spinner.ts | 12 + src/theme/v33x-theme/components/square.ts | 36 ++ src/theme/v33x-theme/components/stack.ts | 19 + src/theme/v33x-theme/components/stat.ts | 27 ++ src/theme/v33x-theme/components/statusBar.ts | 6 + src/theme/v33x-theme/components/switch.ts | 59 +++ src/theme/v33x-theme/components/tabs.ts | 244 ++++++++++++ src/theme/v33x-theme/components/tag.ts | 55 +++ src/theme/v33x-theme/components/text.ts | 16 + src/theme/v33x-theme/components/textField.ts | 26 ++ src/theme/v33x-theme/components/textarea.ts | 11 + src/theme/v33x-theme/components/toast.ts | 26 ++ src/theme/v33x-theme/components/tooltip.ts | 19 + .../v33x-theme/components/transitions.ts | 58 +++ src/theme/v33x-theme/components/typeahead.ts | 17 + src/theme/v33x-theme/components/view.ts | 6 + src/theme/v33x-theme/components/vstack.ts | 6 + src/theme/v33x-theme/components/wrap.ts | 2 + src/theme/v33x-theme/components/zstack.ts | 6 + src/theme/v33x-theme/index.ts | 27 ++ src/theme/v33x-theme/tools/colors.ts | 96 +++++ src/theme/v33x-theme/tools/index.ts | 2 + .../v33x-theme/tools/platformUnits.test.js | 39 ++ src/theme/v33x-theme/tools/utils.ts | 334 +++++++++++++++++ 90 files changed, 4684 insertions(+) create mode 100644 src/theme/v33x-theme/base/borders.ts create mode 100644 src/theme/v33x-theme/base/breakpoints.ts create mode 100644 src/theme/v33x-theme/base/colors.ts create mode 100644 src/theme/v33x-theme/base/index.ts create mode 100644 src/theme/v33x-theme/base/opacity.ts create mode 100644 src/theme/v33x-theme/base/radius.ts create mode 100644 src/theme/v33x-theme/base/shadows.ts create mode 100644 src/theme/v33x-theme/base/sizes.ts create mode 100644 src/theme/v33x-theme/base/space.ts create mode 100644 src/theme/v33x-theme/base/types.ts create mode 100644 src/theme/v33x-theme/base/typography.ts create mode 100644 src/theme/v33x-theme/components/accordion.ts create mode 100644 src/theme/v33x-theme/components/actionsheet.ts create mode 100644 src/theme/v33x-theme/components/alert-dialog.ts create mode 100644 src/theme/v33x-theme/components/alert.ts create mode 100644 src/theme/v33x-theme/components/app-bar.ts create mode 100644 src/theme/v33x-theme/components/aspect-ratio.ts create mode 100644 src/theme/v33x-theme/components/avatar-badge.ts create mode 100644 src/theme/v33x-theme/components/avatar-group.ts create mode 100644 src/theme/v33x-theme/components/avatar.ts create mode 100644 src/theme/v33x-theme/components/badge.ts create mode 100644 src/theme/v33x-theme/components/box.ts create mode 100644 src/theme/v33x-theme/components/breadcrumb.ts create mode 100644 src/theme/v33x-theme/components/button.ts create mode 100644 src/theme/v33x-theme/components/card.ts create mode 100644 src/theme/v33x-theme/components/center.ts create mode 100644 src/theme/v33x-theme/components/checkbox-group.ts create mode 100644 src/theme/v33x-theme/components/checkbox.ts create mode 100644 src/theme/v33x-theme/components/circle.ts create mode 100644 src/theme/v33x-theme/components/circular-progress.ts create mode 100644 src/theme/v33x-theme/components/code.ts create mode 100644 src/theme/v33x-theme/components/container.ts create mode 100644 src/theme/v33x-theme/components/divider.ts create mode 100644 src/theme/v33x-theme/components/fab.ts create mode 100644 src/theme/v33x-theme/components/flatList.ts create mode 100644 src/theme/v33x-theme/components/flex.ts create mode 100644 src/theme/v33x-theme/components/form-control.ts create mode 100644 src/theme/v33x-theme/components/heading.ts create mode 100644 src/theme/v33x-theme/components/hstack.ts create mode 100644 src/theme/v33x-theme/components/icon-button.ts create mode 100644 src/theme/v33x-theme/components/icon.ts create mode 100644 src/theme/v33x-theme/components/image.ts create mode 100644 src/theme/v33x-theme/components/index.ts create mode 100644 src/theme/v33x-theme/components/input.ts create mode 100644 src/theme/v33x-theme/components/inputleftaddon.ts create mode 100644 src/theme/v33x-theme/components/inputrightaddon.ts create mode 100644 src/theme/v33x-theme/components/kbd.ts create mode 100644 src/theme/v33x-theme/components/keyboardAvoidingView.ts create mode 100644 src/theme/v33x-theme/components/link.ts create mode 100644 src/theme/v33x-theme/components/list.ts create mode 100644 src/theme/v33x-theme/components/menu.ts create mode 100644 src/theme/v33x-theme/components/modal.ts create mode 100644 src/theme/v33x-theme/components/number-input.ts create mode 100644 src/theme/v33x-theme/components/pin-input.ts create mode 100644 src/theme/v33x-theme/components/popover.ts create mode 100644 src/theme/v33x-theme/components/pressable.ts create mode 100644 src/theme/v33x-theme/components/progress.ts create mode 100644 src/theme/v33x-theme/components/radio-group.ts create mode 100644 src/theme/v33x-theme/components/radio.ts create mode 100644 src/theme/v33x-theme/components/scrollView.ts create mode 100644 src/theme/v33x-theme/components/sectionList.ts create mode 100644 src/theme/v33x-theme/components/select.ts create mode 100644 src/theme/v33x-theme/components/simple-grid.ts create mode 100644 src/theme/v33x-theme/components/skeleton.ts create mode 100644 src/theme/v33x-theme/components/slider.ts create mode 100644 src/theme/v33x-theme/components/spinner.ts create mode 100644 src/theme/v33x-theme/components/square.ts create mode 100644 src/theme/v33x-theme/components/stack.ts create mode 100644 src/theme/v33x-theme/components/stat.ts create mode 100644 src/theme/v33x-theme/components/statusBar.ts create mode 100644 src/theme/v33x-theme/components/switch.ts create mode 100644 src/theme/v33x-theme/components/tabs.ts create mode 100644 src/theme/v33x-theme/components/tag.ts create mode 100644 src/theme/v33x-theme/components/text.ts create mode 100644 src/theme/v33x-theme/components/textField.ts create mode 100644 src/theme/v33x-theme/components/textarea.ts create mode 100644 src/theme/v33x-theme/components/toast.ts create mode 100644 src/theme/v33x-theme/components/tooltip.ts create mode 100644 src/theme/v33x-theme/components/transitions.ts create mode 100644 src/theme/v33x-theme/components/typeahead.ts create mode 100644 src/theme/v33x-theme/components/view.ts create mode 100644 src/theme/v33x-theme/components/vstack.ts create mode 100644 src/theme/v33x-theme/components/wrap.ts create mode 100644 src/theme/v33x-theme/components/zstack.ts create mode 100644 src/theme/v33x-theme/index.ts create mode 100644 src/theme/v33x-theme/tools/colors.ts create mode 100644 src/theme/v33x-theme/tools/index.ts create mode 100644 src/theme/v33x-theme/tools/platformUnits.test.js create mode 100644 src/theme/v33x-theme/tools/utils.ts diff --git a/src/theme/index.ts b/src/theme/index.ts index 340cce9c6..6c24221f5 100644 --- a/src/theme/index.ts +++ b/src/theme/index.ts @@ -32,3 +32,4 @@ export { theme, tools as themeTools }; export { getColor } from './styled-system'; export { StyledProps } from './types'; +export * from './v33x-theme'; diff --git a/src/theme/v33x-theme/base/borders.ts b/src/theme/v33x-theme/base/borders.ts new file mode 100644 index 000000000..20a1014e1 --- /dev/null +++ b/src/theme/v33x-theme/base/borders.ts @@ -0,0 +1,11 @@ +const borderWidths = { + '0': 0, + '1': '1px', + '2': '2px', + '4': '4px', + '8': '8px', +}; + +export type IBorderWidth = keyof typeof borderWidths; + +export default borderWidths; diff --git a/src/theme/v33x-theme/base/breakpoints.ts b/src/theme/v33x-theme/base/breakpoints.ts new file mode 100644 index 000000000..52c2beff4 --- /dev/null +++ b/src/theme/v33x-theme/base/breakpoints.ts @@ -0,0 +1,11 @@ +const breakpoints = { + 'base': 0, + 'sm': 480, + 'md': 768, + 'lg': 992, + 'xl': 1280, + '2xl': 1536, +}; +export type IBreakpoint = keyof typeof breakpoints; + +export default breakpoints; diff --git a/src/theme/v33x-theme/base/colors.ts b/src/theme/v33x-theme/base/colors.ts new file mode 100644 index 000000000..a791191b0 --- /dev/null +++ b/src/theme/v33x-theme/base/colors.ts @@ -0,0 +1,351 @@ +// import type { ITheme } from '..'; +import type { Leaves } from './types'; + +export interface IColorHues { + 50: string; + 100: string; + 200: string; + 300: string; + 400: string; + 500: string; + 600: string; + 700: string; + 800: string; + 900: string; +} + +const colors = { + contrastThreshold: 7, + // Singleton colors + white: '#FFFFFF', + black: '#000000', + lightText: '#FFFFFF', + darkText: '#000000', + // Primary colors + rose: { + 50: '#fff1f2', + 100: '#ffe4e6', + 200: '#fecdd3', + 300: '#fda4af', + 400: '#fb7185', + 500: '#f43f5e', + 600: '#e11d48', + 700: '#be123c', + 800: '#9f1239', + 900: '#881337', + }, + pink: { + 50: '#fdf2f8', + 100: '#fce7f3', + 200: '#fbcfe8', + 300: '#f9a8d4', + 400: '#f472b6', + 500: '#ec4899', + 600: '#db2777', + 700: '#be185d', + 800: '#9d174d', + 900: '#831843', + }, + fuchsia: { + 50: '#fdf4ff', + 100: '#fae8ff', + 200: '#f5d0fe', + 300: '#f0abfc', + 400: '#e879f9', + 500: '#d946ef', + 600: '#c026d3', + 700: '#a21caf', + 800: '#86198f', + 900: '#701a75', + }, + purple: { + 50: '#faf5ff', + 100: '#f3e8ff', + 200: '#e9d5ff', + 300: '#d8b4fe', + 400: '#c084fc', + 500: '#a855f7', + 600: '#9333ea', + 700: '#7e22ce', + 800: '#6b21a8', + 900: '#581c87', + }, + violet: { + 50: '#f5f3ff', + 100: '#ede9fe', + 200: '#ddd6fe', + 300: '#c4b5fd', + 400: '#a78bfa', + 500: '#8b5cf6', + 600: '#7c3aed', + 700: '#6d28d9', + 800: '#5b21b6', + 900: '#4c1d95', + }, + indigo: { + 50: '#eef2ff', + 100: '#e0e7ff', + 200: '#c7d2fe', + 300: '#a5b4fc', + 400: '#818cf8', + 500: '#6366f1', + 600: '#4f46e5', + 700: '#4338ca', + 800: '#3730a3', + 900: '#312e81', + }, + blue: { + 50: '#eff6ff', + 100: '#dbeafe', + 200: '#bfdbfe', + 300: '#93c5fd', + 400: '#60a5fa', + 500: '#3b82f6', + 600: '#2563eb', + 700: '#1d4ed8', + 800: '#1e40af', + 900: '#1e3a8a', + }, + lightBlue: { + 50: '#f0f9ff', + 100: '#e0f2fe', + 200: '#bae6fd', + 300: '#7dd3fc', + 400: '#38bdf8', + 500: '#0ea5e9', + 600: '#0284c7', + 700: '#0369a1', + 800: '#075985', + 900: '#0c4a6e', + }, + darkBlue: { + 50: '#dbf4ff', + 100: '#addbff', + 200: '#7cc2ff', + 300: '#4aa9ff', + 400: '#1a91ff', + 500: '#0077e6', + 600: '#005db4', + 700: '#004282', + 800: '#002851', + 900: '#000e21', + }, + cyan: { + 50: '#ecfeff', + 100: '#cffafe', + 200: '#a5f3fc', + 300: '#67e8f9', + 400: '#22d3ee', + 500: '#06b6d4', + 600: '#0891b2', + 700: '#0e7490', + 800: '#155e75', + 900: '#164e63', + }, + teal: { + 50: '#f0fdfa', + 100: '#ccfbf1', + 200: '#99f6e4', + 300: '#5eead4', + 400: '#2dd4bf', + 500: '#14b8a6', + 600: '#0d9488', + 700: '#0f766e', + 800: '#115e59', + 900: '#134e4a', + }, + emerald: { + 50: '#ecfdf5', + 100: '#d1fae5', + 200: '#a7f3d0', + 300: '#6ee7b7', + 400: '#34d399', + 500: '#10b981', + 600: '#059669', + 700: '#047857', + 800: '#065f46', + 900: '#064e3b', + }, + green: { + 50: '#f0fdf4', + 100: '#dcfce7', + 200: '#bbf7d0', + 300: '#86efac', + 400: '#4ade80', + 500: '#22c55e', + 600: '#16a34a', + 700: '#15803d', + 800: '#166534', + 900: '#14532d', + }, + lime: { + 50: '#f7fee7', + 100: '#ecfccb', + 200: '#d9f99d', + 300: '#bef264', + 400: '#a3e635', + 500: '#84cc16', + 600: '#65a30d', + 700: '#4d7c0f', + 800: '#3f6212', + 900: '#365314', + }, + yellow: { + 50: '#fefce8', + 100: '#fef9c3', + 200: '#fef08a', + 300: '#fde047', + 400: '#facc15', + 500: '#eab308', + 600: '#ca8a04', + 700: '#a16207', + 800: '#854d0e', + 900: '#713f12', + }, + amber: { + 50: '#fffbeb', + 100: '#fef3c7', + 200: '#fde68a', + 300: '#fcd34d', + 400: '#fbbf24', + 500: '#f59e0b', + 600: '#d97706', + 700: '#b45309', + 800: '#92400e', + 900: '#78350f', + }, + orange: { + 50: '#fff7ed', + 100: '#ffedd5', + 200: '#fed7aa', + 300: '#fdba74', + 400: '#fb923c', + 500: '#f97316', + 600: '#ea580c', + 700: '#c2410c', + 800: '#9a3412', + 900: '#7c2d12', + }, + red: { + 50: '#fef2f2', + 100: '#fee2e2', + 200: '#fecaca', + 300: '#fca5a5', + 400: '#f87171', + 500: '#ef4444', + 600: '#dc2626', + 700: '#b91c1c', + 800: '#991b1b', + 900: '#7f1d1d', + }, + warmGray: { + 50: '#fafaf9', + 100: '#f5f5f4', + 200: '#e7e5e4', + 300: '#d6d3d1', + 400: '#a8a29e', + 500: '#78716c', + 600: '#57534e', + 700: '#44403c', + 800: '#292524', + 900: '#1c1917', + }, + trueGray: { + 50: '#fafafa', + 100: '#f5f5f5', + 200: '#e5e5e5', + 300: '#d4d4d4', + 400: '#a3a3a3', + 500: '#737373', + 600: '#525252', + 700: '#404040', + 800: '#262626', + 900: '#171717', + }, + gray: { + 50: '#fafafa', + 100: '#f4f4f5', + 200: '#e4e4e7', + 300: '#d4d4d8', + 400: '#a1a1aa', + 500: '#71717a', + 600: '#52525b', + 700: '#3f3f46', + 800: '#27272a', + 900: '#18181b', + }, + coolGray: { + 50: '#f9fafb', + 100: '#f3f4f6', + 200: '#e5e7eb', + 300: '#d1d5db', + 400: '#9ca3af', + 500: '#6b7280', + 600: '#4b5563', + 700: '#374151', + 800: '#1f2937', + 900: '#111827', + }, + blueGray: { + 50: '#f8fafc', + 100: '#f1f5f9', + 200: '#e2e8f0', + 300: '#cbd5e1', + 400: '#94a3b8', + 500: '#64748b', + 600: '#475569', + 700: '#334155', + 800: '#1e293b', + 900: '#0f172a', + }, + dark: { + 50: '#18181b', + 100: '#27272a', + 200: '#3f3f46', + 300: '#52525b', + 400: '#71717a', + 500: '#a1a1aa', + 600: '#d4d4d8', + 700: '#e4e4e7', + 800: '#f4f4f5', + 900: '#fafafa', + }, + text: { + 50: '#fafafa', + 100: '#f5f5f5', + 200: '#e5e5e5', + 300: '#d4d4d4', + 400: '#a3a3a3', + 500: '#737373', + 600: '#525252', + 700: '#404040', + 800: '#262626', + 900: '#171717', + }, + // Derived colors + danger: {} as IColorHues, + error: {} as IColorHues, + success: {} as IColorHues, + warning: {} as IColorHues, + muted: {} as IColorHues, + primary: {} as IColorHues, + info: {} as IColorHues, + secondary: {} as IColorHues, + light: {} as IColorHues, + tertiary: {} as IColorHues, +}; + +colors.danger = colors.red; +colors.error = colors.rose; +colors.success = colors.emerald; +colors.warning = colors.orange; +colors.muted = colors.trueGray; +colors.primary = colors.cyan; +colors.secondary = colors.pink; +colors.tertiary = colors.green; +colors.info = colors.lightBlue; +colors.light = colors.warmGray; + +export default colors; +// export type IColors = Leaves; +export type IColors = Leaves; diff --git a/src/theme/v33x-theme/base/index.ts b/src/theme/v33x-theme/base/index.ts new file mode 100644 index 000000000..23d0d4302 --- /dev/null +++ b/src/theme/v33x-theme/base/index.ts @@ -0,0 +1,37 @@ +import borderWidths from './borders'; +import breakpoints from './breakpoints'; +import colors from './colors'; +import radii from './radius'; +import shadows from './shadows'; +import sizes from './sizes'; +import { spacing } from './space'; +import typography from './typography'; +import opacity from './opacity'; + +const theme = { + borderWidths, + breakpoints, + colors, + radii, + ...typography, + sizes, + space: spacing, + shadows, + opacity, +}; + +export const themePropertyMap: any = { + borderRadius: 'radii', + color: 'colors', + letterSpacing: 'letterSpacings', + lineHeight: 'lineHeights', + fontFamily: 'fonts', + fontSize: 'fontSizes', + fontWeight: 'fontWeights', + size: 'sizes', + space: 'space', + border: 'borders', + shadow: 'shadows', +}; + +export default theme; diff --git a/src/theme/v33x-theme/base/opacity.ts b/src/theme/v33x-theme/base/opacity.ts new file mode 100644 index 000000000..f7bbc3aee --- /dev/null +++ b/src/theme/v33x-theme/base/opacity.ts @@ -0,0 +1,20 @@ +const opacity = { + 0: 0, + 5: 0.05, + 10: 0.1, + 20: 0.2, + 25: 0.25, + 30: 0.3, + 40: 0.4, + 50: 0.5, + 60: 0.6, + 70: 0.7, + 75: 0.75, + 80: 0.8, + 90: 0.9, + 95: 0.95, + 100: 1, +}; +export type IOpacity = keyof typeof opacity; + +export default opacity; diff --git a/src/theme/v33x-theme/base/radius.ts b/src/theme/v33x-theme/base/radius.ts new file mode 100644 index 000000000..9fe550ea6 --- /dev/null +++ b/src/theme/v33x-theme/base/radius.ts @@ -0,0 +1,15 @@ +const radii = { + 'none': 0, + 'xs': 2, + 'sm': 4, + 'md': 6, + 'lg': 8, + 'xl': 12, + '2xl': 16, + '3xl': 24, + 'full': 9999, +}; + +export type IRadii = keyof typeof radii; + +export default radii; diff --git a/src/theme/v33x-theme/base/shadows.ts b/src/theme/v33x-theme/base/shadows.ts new file mode 100644 index 000000000..a88120ed6 --- /dev/null +++ b/src/theme/v33x-theme/base/shadows.ts @@ -0,0 +1,116 @@ +import colors from './colors'; +const shadow = { + 'none': { + shadowColor: 'transparent', + shadowOffset: { + width: 0, + height: 0, + }, + shadowOpacity: 0, + shadowRadius: 0, + elevation: 0, + }, + '0': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 1, + }, + shadowOpacity: 0.18, + shadowRadius: 1.0, + elevation: 1, + }, + '1': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 1, + }, + shadowOpacity: 0.2, + shadowRadius: 1.41, + elevation: 2, + }, + '2': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 1, + }, + shadowOpacity: 0.22, + shadowRadius: 2.22, + elevation: 3, + }, + '3': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 2, + }, + shadowOpacity: 0.23, + shadowRadius: 2.62, + elevation: 4, + }, + '4': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 2, + }, + shadowOpacity: 0.25, + shadowRadius: 3.84, + elevation: 5, + }, + '5': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 3, + }, + shadowOpacity: 0.27, + shadowRadius: 4.65, + elevation: 6, + }, + '6': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 3, + }, + shadowOpacity: 0.29, + shadowRadius: 4.65, + elevation: 7, + }, + '7': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 4, + }, + shadowOpacity: 0.3, + shadowRadius: 4.65, + elevation: 8, + }, + '8': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 4, + }, + shadowOpacity: 0.32, + shadowRadius: 5.46, + elevation: 9, + }, + '9': { + shadowColor: colors.black, + shadowOffset: { + width: 0, + height: 5, + }, + shadowOpacity: 0.34, + shadowRadius: 6.27, + elevation: 10, + }, +}; + +export type IShadow = keyof typeof shadow; +export default shadow; diff --git a/src/theme/v33x-theme/base/sizes.ts b/src/theme/v33x-theme/base/sizes.ts new file mode 100644 index 000000000..014a3425f --- /dev/null +++ b/src/theme/v33x-theme/base/sizes.ts @@ -0,0 +1,26 @@ +import { spacing } from './space'; + +const container = { + sm: 640, + md: 768, + lg: 1024, + xl: 1280, +}; + +const sizes = { + ...spacing, + ...{ + '3xs': 224, + '2xs': 256, + 'xs': 320, + 'sm': 384, + 'md': 448, + 'lg': 512, + 'xl': 576, + '2xl': 672, + }, + container, +}; + +export type ISizes = keyof typeof sizes; +export default sizes; diff --git a/src/theme/v33x-theme/base/space.ts b/src/theme/v33x-theme/base/space.ts new file mode 100644 index 000000000..e77eecc75 --- /dev/null +++ b/src/theme/v33x-theme/base/space.ts @@ -0,0 +1,48 @@ +export const spacing = { + 'px': '1px', + '0': 0, + '0.5': 2, + '1': 4, + '1.5': 6, + '2': 8, + '2.5': 10, + '3': 12, + '3.5': 14, + '4': 16, + '5': 20, + '6': 24, + '7': 28, + '8': 32, + '9': 36, + '10': 40, + '12': 48, + '16': 64, + '20': 80, + '24': 96, + '32': 128, + '40': 160, + '48': 192, + '56': 224, + '64': 256, + '72': 288, + '80': 320, + '96': 384, + '1/2': '50%', + '1/3': '33.333%', + '2/3': '66.666%', + '1/4': '25%', + '2/4': '50%', + '3/4': '75%', + '1/5': '20%', + '2/5': '40%', + '3/5': '60%', + '4/5': '80%', + '1/6': '16.666%', + '2/6': '33.333%', + '3/6': '50%', + '4/6': '66.666%', + '5/6': '83.333%', + 'full': '100%', +}; + +export type ISpacing = keyof typeof spacing; diff --git a/src/theme/v33x-theme/base/types.ts b/src/theme/v33x-theme/base/types.ts new file mode 100644 index 000000000..31a075d3a --- /dev/null +++ b/src/theme/v33x-theme/base/types.ts @@ -0,0 +1,11 @@ +/* eslint no-use-before-define: 0 */ // --> OFF +// @ts-ignore +type Join = K extends string | number + ? P extends string | number + ? `${K}${'' extends P ? '' : '.'}${P}` + : never + : never; + +export type Leaves = T extends object + ? { [K in keyof T]-?: Join> }[keyof T] + : ''; diff --git a/src/theme/v33x-theme/base/typography.ts b/src/theme/v33x-theme/base/typography.ts new file mode 100644 index 000000000..94a157675 --- /dev/null +++ b/src/theme/v33x-theme/base/typography.ts @@ -0,0 +1,147 @@ +const typography = { + letterSpacings: { + 'xs': '-0.05em', + 'sm': '-0.025em', + 'md': 0, + 'lg': '0.025em', + 'xl': '0.05em', + '2xl': '0.1em', + }, + lineHeights: { + '2xs': '1em', + 'xs': '1.125em', + 'sm': '1.25em', + 'md': '1.375em', + 'lg': '1.5em', + 'xl': '1.75em', + '2xl': '2em', + '3xl': '2.5em', + '4xl': '3em', + '5xl': '4em', + }, + fontConfig: { + // Roboto: { + // 100: { + // normal: 'Roboto-Light', + // italic: 'Roboto-LightItalic', + // }, + // 200: { + // normal: 'Roboto-Light', + // italic: 'Roboto-LightItalic', + // }, + // 300: { + // normal: 'Roboto-Light', + // italic: 'Roboto-LightItalic', + // }, + // 400: { + // normal: 'Roboto-Regular', + // italic: 'Roboto-Italic', + // }, + // 500: { + // normal: 'Roboto-Medium', + // italic: 'Roboto-MediumItalic', + // }, + // 600: { + // normal: 'Roboto-Medium', + // italic: 'Roboto-MediumItalic', + // }, + // 700: { + // normal: 'Roboto-Bold', + // italic: 'Roboto-BoldItalic', + // }, + // 800: { + // normal: 'Roboto-Bold', + // italic: 'Roboto-BoldItalic', + // }, + // 900: { + // normal: 'Roboto-Bold', + // italic: 'Roboto-BoldItalic', + // }, + // }, + // Montserrat: { + // 100: { + // normal: 'Montserrat-Light', + // italic: 'Montserrat-LightItalic', + // }, + // 200: { + // normal: 'Montserrat-Light', + // italic: 'Montserrat-LightItalic', + // }, + // 300: { + // normal: 'Montserrat-Light', + // italic: 'Montserrat-LightItalic', + // }, + // 400: { + // normal: 'Montserrat-Regular', + // italic: 'Montserrat-Italic', + // }, + // 500: { + // normal: 'Montserrat-Medium', + // italic: 'Montserrat-MediumItalic', + // }, + // 600: { + // normal: 'Montserrat-SemiBold', + // italic: 'Montserrat-SemiBoldItalic', + // }, + // 700: { + // normal: 'Montserrat-Bold', + // italic: 'Montserrat-BoldItalic', + // }, + // 800: { + // normal: 'Montserrat-ExtraBold', + // italic: 'Montserrat-ExtraBoldItalic', + // }, + // 900: { + // normal: 'Montserrat-Black', + // italic: 'Montserrat-BlackItalic', + // }, + // }, + }, + fontWeights: { + hairline: 100, + thin: 200, + light: 300, + normal: 400, + medium: 500, + semibold: 600, + bold: 700, + extrabold: 800, + black: 900, + extraBlack: 950, + }, + fonts: { + heading: undefined, + body: undefined, + mono: undefined, + }, + fontSizes: { + '2xs': 10, + 'xs': 12, + 'sm': 14, + 'md': 16, + 'lg': 18, + 'xl': 20, + '2xl': 24, + '3xl': 30, + '4xl': 36, + '5xl': 48, + '6xl': 60, + '7xl': 72, + '8xl': 96, + '9xl': 128, + }, +}; + +export type ITypography = typeof typography; +export type IFontSize = keyof typeof typography.fontSizes; +export type ILetterSpacing = keyof typeof typography.letterSpacings; +export type ILineHeight = keyof typeof typography.lineHeights; +export type IFontWeight = keyof typeof typography.fontWeights; +// export type IFont = typeof typography.fonts; +export interface IFont { + heading?: string; + body?: string; + mono?: string; +} + +export default typography; diff --git a/src/theme/v33x-theme/components/accordion.ts b/src/theme/v33x-theme/components/accordion.ts new file mode 100644 index 000000000..b1079aef2 --- /dev/null +++ b/src/theme/v33x-theme/components/accordion.ts @@ -0,0 +1,51 @@ +import { mode } from '../tools/colors'; + +// Accordion +const accordionBaseStyle = (props: Record) => { + return { + borderWidth: 1, + borderColor: mode('gray.300', 'gray.600')(props), + borderRadius: 'lg', + }; +}; +export const Accordion = { + baseStyle: accordionBaseStyle, +}; + +// AccordionItem +export const AccordionItem = {}; + +// AccordionIcon +export const AccordionIcon = {}; + +// AccordionSummary +const accordionSummaryBaseStyle = (props: Record) => { + return { + borderTopWidth: 1, + borderTopColor: mode('gray.300', 'gray.600')(props), + p: 3, + _hover: { + bg: mode('primary.200', 'primary.300')(props), + }, + _expanded: { + bg: 'primary.600', + borderBottomColor: mode('gray.300', 'gray.600')(props), + _text: { color: 'white' }, + }, + _disabled: { + bg: mode('gray.200', 'gray.700')(props), + }, + }; +}; +export const AccordionSummary = { + baseStyle: accordionSummaryBaseStyle, +}; + +// AccordionDetails +const accordionPanelBaseStyle = { + p: 3, +}; + +export const AccordionDetails = { + baseStyle: accordionPanelBaseStyle, +}; diff --git a/src/theme/v33x-theme/components/actionsheet.ts b/src/theme/v33x-theme/components/actionsheet.ts new file mode 100644 index 000000000..72d816daf --- /dev/null +++ b/src/theme/v33x-theme/components/actionsheet.ts @@ -0,0 +1,61 @@ +import { mode } from '../tools'; +// Actionsheet +export const Actionsheet = { + defaultProps: { + size: 'full', + justifyContent: 'flex-end', + animationPreset: 'slide', + }, +}; + +// ActionsheetContent +export const ActionsheetContent = { + baseStyle: (props: any) => ({ + alignItems: 'center', + px: 2, + py: 2, + borderRadius: 'none', + roundedTop: 20, + _dragIndicator: { + bg: mode('gray.400', 'gray.400')(props), + height: 1, + width: 10, + borderRadius: 2, + }, + _dragIndicatorWrapper: { + pt: 3, + pb: 3, + mt: -2, + width: '100%', + alignItems: 'center', + collapsable: false, + }, + _dragIndicatorWrapperOffSet: { + py: 2, + collapsable: false, + }, + }), +}; + +// ActionsheetItem +export const ActionsheetItem = { + baseStyle: (props: any) => ({ + width: '100%', + justifyContent: 'flex-start', + p: 4, + _text: { + fontSize: 16, + fontWeight: 'normal', + color: mode('coolGray.800', 'warmGray.50')(props), + }, + _pressed: { + bg: mode('coolGray.300', 'gray.600')(props), + }, + _hover: { + bg: mode('coolGray.200', 'gray.500')(props), + }, + }), + defaultProps: { + variant: 'unstyled', + }, +}; diff --git a/src/theme/v33x-theme/components/alert-dialog.ts b/src/theme/v33x-theme/components/alert-dialog.ts new file mode 100644 index 000000000..b567495d4 --- /dev/null +++ b/src/theme/v33x-theme/components/alert-dialog.ts @@ -0,0 +1,135 @@ +import { Dimensions } from 'react-native'; +import { mode } from '../tools'; + +const sizes = { + xs: { + contentSize: { + width: '60%', + maxWidth: '280', + }, + }, + sm: { + contentSize: { + width: '65%', + maxWidth: '320', + }, + }, + md: { + contentSize: { + width: '75%', + maxWidth: '380', + }, + }, + lg: { + contentSize: { + width: '80%', + maxWidth: '520', + }, + }, + xl: { + contentSize: { + width: '90%', + maxWidth: '580', + }, + }, + full: { + contentSize: { + width: '100%', + }, + }, +}; + +export const AlertDialog = { + baseStyle: { + width: '100%', + height: '100%', + justifyContent: 'center', + alignItems: 'center', + _web: { pointerEvents: 'box-none' }, + _backdropFade: { exitDuration: 150, entryDuration: 200 }, + _fade: { exitDuration: 100, entryDuration: 200 }, + _slide: { duration: 200, overlay: false }, + }, + sizes, + defaultProps: { + size: 'md', + closeOnOverlayClick: true, + }, +}; + +export const AlertDialogContent = { + baseStyle: (props: Record) => { + return { + bg: mode('coolGray.50', 'gray.700')(props), + _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, + shadow: 1, + rounded: 'lg', + maxHeight: `${Dimensions.get('window').height - 150}px`, + overflow: 'hidden', + }; + }, +}; +export const AlertDialogCloseButton = { + baseStyle: (props: Record) => { + return { + position: 'absolute', + right: '3', + top: '3', + zIndex: '1', + colorScheme: 'coolGray', + p: '2', + _icon: { + size: '3', + color: mode('coolGray.600', 'coolGray.100')(props), + }, + }; + }, +}; +export const AlertDialogHeader = { + baseStyle: (props: Record) => { + return { + py: '4', + px: '3', + borderBottomWidth: '1', + borderColor: mode('coolGray.200', 'gray.600')(props), + _text: { + fontSize: 'md', + fontWeight: 'semibold', + color: mode('coolGray.800', 'warmGray.50')(props), + lineHeight: 'sm', + }, + }; + }, +}; +export const AlertDialogBody = { + baseStyle: (props: Record) => { + return { + pt: '2', + p: '3', + _text: { + color: mode('coolGray.600', 'coolGray.300')(props), + }, + }; + }, +}; +export const AlertDialogFooter = { + baseStyle: (props: Record) => { + return { + p: '3', + bg: mode('coolGray.100', 'gray.600')(props), + flexDirection: 'row', + justifyContent: 'flex-end', + flexWrap: 'wrap', + }; + }, +}; +export const AlertDialogOverlay = { + baseStyle: { + position: 'absolute', + left: '0', + top: '0', + opacity: '50', + right: '0', + bottom: '0', + }, +}; diff --git a/src/theme/v33x-theme/components/alert.ts b/src/theme/v33x-theme/components/alert.ts new file mode 100644 index 000000000..ea40d3225 --- /dev/null +++ b/src/theme/v33x-theme/components/alert.ts @@ -0,0 +1,129 @@ +import { mode, getColor, getColorScheme, transparentize } from '../tools'; + +function getBg(props: Record) { + let { theme, colorScheme, status, variant } = props; + + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + const lightBg = + variant === 'solid' + ? getColor(theme, `${colorScheme}.600`, colorScheme) + : getColor(theme, `${colorScheme}.100`, colorScheme); + + const darkBg = + variant === 'solid' + ? getColor(theme, `${colorScheme}.700`, colorScheme) + : getColor(theme, `${colorScheme}.200`, colorScheme); + return mode(lightBg, darkBg)(props); +} + +const variantSubtle = (props: Record) => { + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + bg: getBg(props), + _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + }; +}; + +const variantOutline = (props: Record) => { + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + borderWidth: 1, + borderColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), + _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + }; +}; +const variantOutlineLight = (props: Record) => { + let { colorScheme, status, theme } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + borderWidth: 1, + borderColor: transparentize( + mode(`${colorScheme}.600`, `${colorScheme}.500`)(props), + 0.2 + )(theme), + _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + }; +}; + +const variantSolid = (props: Record) => { + return { + borderWidth: 6, + borderColor: 'transparent', + bg: getBg(props), + _icon: { color: mode(`coolGray.50`, `warmGray.50`)(props) }, + }; +}; +const variantLeftAccent = (props: Record) => { + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + borderWidth: 4, + bg: getBg(props), + _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + borderColor: 'transparent', + borderLeftColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), + }; +}; +const variantTopAccent = (props: Record) => { + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + borderWidth: 4, + borderColor: 'transparent', + borderTopColor: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props), + bg: getBg(props), + _icon: { color: mode(`${colorScheme}.600`, `${colorScheme}.700`)(props) }, + }; +}; + +const variants = { + 'subtle': variantSubtle, + 'solid': variantSolid, + 'left-accent': variantLeftAccent, + 'top-accent': variantTopAccent, + 'outline': variantOutline, + 'outline-light': variantOutlineLight, +}; + +export const Alert = { + baseStyle: { + alignItems: 'center', + justifyContent: 'flex-start', + p: 3, + space: 3, + borderRadius: 'sm', + }, + variants, + defaultProps: { + colorScheme: 'primary', + variant: 'subtle', + }, +}; + +// AlertIcon + +export const AlertIcon = { + baseStyle: { + size: 4, + }, +}; diff --git a/src/theme/v33x-theme/components/app-bar.ts b/src/theme/v33x-theme/components/app-bar.ts new file mode 100644 index 000000000..02901feb9 --- /dev/null +++ b/src/theme/v33x-theme/components/app-bar.ts @@ -0,0 +1,17 @@ +import { mode, getColorScheme } from '../tools'; + +const baseStyle = (props: Record) => { + let colorScheme = getColorScheme(props); + return { + bg: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props), + px: 2, + }; +}; +const defaultProps = { + colorScheme: 'primary', +}; + +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/aspect-ratio.ts b/src/theme/v33x-theme/components/aspect-ratio.ts new file mode 100644 index 000000000..c56c562da --- /dev/null +++ b/src/theme/v33x-theme/components/aspect-ratio.ts @@ -0,0 +1,8 @@ +const baseStyle = {}; +const defaultProps = { + ratio: 4 / 3, +}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/avatar-badge.ts b/src/theme/v33x-theme/components/avatar-badge.ts new file mode 100644 index 000000000..31452c29b --- /dev/null +++ b/src/theme/v33x-theme/components/avatar-badge.ts @@ -0,0 +1,16 @@ +import { mode } from '../tools'; + +function baseStyle(props: Record) { + return { + borderRadius: 'full', + borderWidth: 2, + borderColor: mode('light.50', 'gray.800')(props), + bg: mode('gray.600', 'light.100')(props), + size: 3, + position: 'absolute', + right: 0, + bottom: 0, + }; +} + +export default { baseStyle }; diff --git a/src/theme/v33x-theme/components/avatar-group.ts b/src/theme/v33x-theme/components/avatar-group.ts new file mode 100644 index 000000000..8a8d65f63 --- /dev/null +++ b/src/theme/v33x-theme/components/avatar-group.ts @@ -0,0 +1,22 @@ +import { mode } from '../tools'; + +function baseStyle({ isVertical, ...props }: Record) { + return { + flexDirection: isVertical ? 'column-reverse' : 'row-reverse', + space: -4, + _avatar: { + borderColor: mode('gray.50', 'gray.800')(props), + borderWidth: 2, + }, + _hiddenAvatarPlaceholder: { + bg: mode('gray.600', 'gray.100')(props), + }, + }; +} + +export default { + baseStyle, + defaultProps: { + isVertical: false, + }, +}; diff --git a/src/theme/v33x-theme/components/avatar.ts b/src/theme/v33x-theme/components/avatar.ts new file mode 100644 index 000000000..d305c761d --- /dev/null +++ b/src/theme/v33x-theme/components/avatar.ts @@ -0,0 +1,60 @@ +import { randomColor, getRandomString, mode } from '../tools'; + +const baseStyle = (props: Record) => { + const { name, ...colorModeProps } = props; + const bg = name + ? randomColor({ string: getRandomString(5) + name }) + : 'gray.400'; + const borderColor = mode('gray.800', 'white')(colorModeProps); + return { + bg, + borderColor, + position: 'relative', + justifyContent: 'center', + alignItems: 'center', + borderRadius: 'full', + _text: { + fontWeight: 600, + }, + _image: { + borderRadius: 'full', + alt: '--', + _alt: { + fontWeight: 600, + }, + style: { + height: '100%', + width: '100%', + }, + }, + }; +}; + +function getSize(size: any, fontSize: string) { + return { + width: size, + height: size, + _text: { + fontSize: fontSize, + }, + }; +} + +const sizes = { + 'xs': getSize('6', '2xs'), + 'sm': getSize('8', 'xs'), + 'md': getSize('12', 'md'), + 'lg': getSize('16', 'xl'), + 'xl': getSize('24', '3xl'), + '2xl': getSize('32', '5xl'), +}; + +const defaultProps = { + size: 'md', +}; + +export default { + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/badge.ts b/src/theme/v33x-theme/components/badge.ts new file mode 100644 index 000000000..eea532c68 --- /dev/null +++ b/src/theme/v33x-theme/components/badge.ts @@ -0,0 +1,57 @@ +import { mode, getColorScheme } from '../tools'; + +const baseStyle = { + px: '2', + py: '0.5', + alignItems: 'center', + _text: { fontSize: 'xs', fontWeight: 'medium' }, +}; + +function variantSolid(props: Record) { + const colorScheme = getColorScheme(props); + return { + bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props), + _text: { color: mode(`coolGray.100`, `coolGray.800`)(props) }, + borderWidth: '1', + borderColor: 'transparent', + borderRadius: '2', + }; +} + +function variantSubtle(props: Record) { + const colorScheme = getColorScheme(props); + return { + bg: mode(`${colorScheme}.200`, `${colorScheme}.700`)(props), + _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + borderWidth: '1', + borderRadius: '2', + borderColor: 'transparent', + }; +} + +function variantOutline(props: Record) { + const colorScheme = getColorScheme(props); + return { + borderColor: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props), + _text: { color: mode(`${colorScheme}.500`, `${colorScheme}.400`)(props) }, + borderRadius: '2', + borderWidth: '1', + }; +} + +const variants = { + solid: variantSolid, + subtle: variantSubtle, + outline: variantOutline, +}; + +const defaultProps = { + variant: 'subtle', + colorScheme: 'coolGray', +}; + +export default { + baseStyle, + variants, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/box.ts b/src/theme/v33x-theme/components/box.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/box.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/breadcrumb.ts b/src/theme/v33x-theme/components/breadcrumb.ts new file mode 100644 index 000000000..21aba17ed --- /dev/null +++ b/src/theme/v33x-theme/components/breadcrumb.ts @@ -0,0 +1,26 @@ +const baseStyle = { + width: 'auto', + height: 'auto', + display: 'flex', + flexDirection: 'row', + spacing: '2', +}; +const defaultProps = { + direction: 'row', + wrap: 'wrap', +}; + +export const Breadcrumb = { + baseStyle, + defaultProps, +}; + +export const BreadcrumbText = { + baseStyle: { ...baseStyle, _current: { fontWeight: 'bold' } }, + defaultProps, +}; + +export const BreadcrumbIcon = { + baseStyle: { ...baseStyle }, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/button.ts b/src/theme/v33x-theme/components/button.ts new file mode 100644 index 000000000..1210b2b79 --- /dev/null +++ b/src/theme/v33x-theme/components/button.ts @@ -0,0 +1,280 @@ +import { Dict, mode, transparentize } from '../tools'; +import { Platform } from 'react-native'; +const disabledTextColor = (props: any) => mode(`muted.500`, `muted.300`)(props); + +const baseStyle = (props: any) => { + const { primary } = props.theme.colors; + const focusRing = + Platform.OS === 'web' + ? mode( + { boxShadow: `${primary[400]} 0px 0px 0px 2px`, zIndex: 1 }, + { boxShadow: `${primary[500]} 0px 0px 0px 2px`, zIndex: 1 } + )(props) + : {}; + + return { + borderRadius: 'sm', + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + _web: { + cursor: props.isDisabled + ? 'not-allowed' + : props.isLoading + ? 'default' + : 'pointer', + }, + _text: { + fontWeight: 'medium', + }, + _focusVisible: { + style: props.variant !== 'unstyled' ? { ...focusRing } : {}, + }, + _stack: { + space: 2, + alignItems: 'center', + }, + _loading: { + opacity: '80', + }, + _disabled: { + opacity: '50', + }, + _spinner: { + size: 'sm', + focusable: false, + }, + }; +}; + +function variantGhost(props: Dict) { + const { colorScheme: c } = props; + if (c === 'muted') { + return { + _text: { + color: disabledTextColor(props), + }, + }; + } + + return { + _text: { + color: props.isDisabled + ? disabledTextColor(props) + : mode(`${c}.500`, `${c}.300`)(props), + }, + bg: 'transparent', + _web: { + outlineWidth: '0', + }, + _hover: { + borderColor: mode(`${c}.500`, `${c}.200`)(props), + bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme), + }, + _focusVisible: { + borderColor: mode(`${c}.700`, `${c}.200`)(props), + bg: transparentize(mode(`${c}.200`, `${c}.400`)(props), 0.5)(props.theme), + }, + _pressed: { + borderColor: mode(`${c}.600`, `${c}.200`)(props), + bg: transparentize(mode(`${c}.300`, `${c}.500`)(props), 0.5)(props.theme), + }, + _spinner: { + size: 'sm', + }, + }; +} + +function variantOutline(props: Dict) { + const { colorScheme: c } = props; + const borderColor = mode(`muted.200`, `muted.500`)(props); + return { + borderWidth: '1', + borderColor: + c === 'muted' + ? borderColor + : props.isDisabled + ? disabledTextColor(props) + : mode(`${c}.300`, `${c}.300`)(props), + ...variantGhost(props), + }; +} + +function variantSolid(props: Dict) { + const { colorScheme: c } = props; + let bg = `${c}.500`; + if (props.isDisabled) { + bg = mode(`muted.300`, `muted.500`)(props); + } + + const styleObject = { + _web: { + outlineWidth: '0', + }, + bg, + _hover: { + bg: `${c}.600`, + }, + _pressed: { + bg: `${c}.700`, + }, + _focus: { + bg: `${c}.600`, + }, + _loading: { + bg: mode(`warmGray.50`, `${c}.300`)(props), + opacity: '50', + }, + _disabled: { bg: mode(`trueGray.300`, `trueGray.600`)(props) }, + }; + + return styleObject; +} + +// function getBg(props: Record) { +// const { theme, status, variant } = props; +// let { colorScheme } = props; + +// colorScheme = getColorScheme( +// props, +// colorScheme !== 'primary' ? colorScheme : status +// ); +// const lightBg = +// variant === 'solid' +// ? getColor(theme, `${colorScheme}.400`, colorScheme) +// : getColor(theme, `${colorScheme}.100`, colorScheme); + +// const darkBg = +// variant === 'solid' +// ? getColor(theme, `${colorScheme}.700`, colorScheme) +// : getColor(theme, `${colorScheme}.400`, colorScheme); +// return mode(lightBg, darkBg)(props); +// } + +function variantSubtle(props: Dict) { + const { colorScheme: c } = props; + let bg = `${c}.100`; + bg = mode(bg, `${c}.200`)(props); + let color; + if (props.isDisabled) { + bg = mode(`muted.300`, `muted.500`)(props); + } else { + color = mode(`${c}.500`, `${c}.600`)(props); + } + const styleObject = { + _text: { + color: color, + }, + _web: { + outlineWidth: '0', + }, + bg, + _hover: { + _text: { color: mode(`${c}.600`, `${c}.700`)(props) }, + bg: mode(`${c}.200`, `${c}.300`)(props), + }, + _pressed: { + _text: { color: mode(`${c}.700`, `${c}.800`)(props) }, + bg: mode(`${c}.300`, `${c}.400`)(props), + }, + }; + + return styleObject; +} + +function variantLink(props: Dict) { + const { colorScheme: c } = props; + + return { + ...variantGhost(props), + _text: { + textDecorationLine: Platform.select({ + ios: 'underline', + web: 'underline', + }), + color: + c === 'muted' + ? mode(`muted.800`, `${c}.200`)(props) + : props.isDisabled + ? disabledTextColor(props) + : mode(`${c}.500`, `${c}.300`)(props), + }, + _hover: { + _text: { + color: mode(`${c}.600`, `${c}.400`)(props), + textDecorationLine: 'underline', + }, + }, + _focusVisible: { + _text: { + color: mode(`${c}.600`, `${c}.400`)(props), + textDecorationLine: 'underline', + }, + }, + _pressed: { + _text: { color: mode(`${c}.700`, `${c}.500`)(props) }, + }, + }; +} + +function variantUnstyled() { + return {}; +} + +const variants = { + ghost: variantGhost, + outline: variantOutline, + solid: variantSolid, + subtle: variantSubtle, + link: variantLink, + unstyled: variantUnstyled, +}; + +const sizes = { + lg: { + px: '4', + py: '2', + _text: { + fontSize: 'md', + }, + }, + md: { + px: '3', + py: '2', + _text: { + fontSize: 'sm', + }, + }, + sm: { + px: '2', + py: '2', + _text: { + fontSize: 'xs', + }, + }, + xs: { + px: '2', + py: '2', + _text: { + fontSize: '2xs', + }, + }, +}; + +const defaultProps = { + variant: 'solid', + size: 'md', + colorScheme: 'primary', +}; + +export const ButtonGroup = { + baseStyle: { direction: 'row' }, + defaultProps: { space: 2 }, +}; + +export default { + baseStyle, + variants, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/card.ts b/src/theme/v33x-theme/components/card.ts new file mode 100644 index 000000000..27ddbd528 --- /dev/null +++ b/src/theme/v33x-theme/components/card.ts @@ -0,0 +1,11 @@ +const baseStyle = { + shadow: 4, + borderRadius: 'md', + padding: 4, + overflow: 'hidden', +}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/center.ts b/src/theme/v33x-theme/components/center.ts new file mode 100644 index 000000000..7646baa34 --- /dev/null +++ b/src/theme/v33x-theme/components/center.ts @@ -0,0 +1,36 @@ +// For Square and circle variation +const sizes = { + 'xs': { + height: 10, + width: 10, + }, + 'sm': { + height: 12, + width: 12, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 24, + width: 24, + }, + 'xl': { + height: 32, + width: 32, + }, + '2xl': { + height: 40, + width: 40, + }, +}; + +export default { + baseStyle: { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, + sizes, +}; diff --git a/src/theme/v33x-theme/components/checkbox-group.ts b/src/theme/v33x-theme/components/checkbox-group.ts new file mode 100644 index 000000000..357a3f4dc --- /dev/null +++ b/src/theme/v33x-theme/components/checkbox-group.ts @@ -0,0 +1,9 @@ +const baseStyle = () => { + return { + alignItems: 'flex-start', + }; +}; + +export default { + baseStyle, +}; diff --git a/src/theme/v33x-theme/components/checkbox.ts b/src/theme/v33x-theme/components/checkbox.ts new file mode 100644 index 000000000..f520b1aea --- /dev/null +++ b/src/theme/v33x-theme/components/checkbox.ts @@ -0,0 +1,99 @@ +import { mode, transparentize } from '../tools'; + +const baseStyle = (props: Record) => { + const { colorScheme, theme } = props; + + return { + justifyContent: 'flex-start', + flexDirection: 'row', + borderWidth: 2, + borderRadius: 'sm', + borderColor: mode('muted.300', 'muted.600')(props), + bg: mode('muted.50', 'muted.700')(props), // matching background color + opacity: 1, + _web: { + cursor: 'pointer', + }, + _stack: { + direction: 'row', + alignItems: 'center', + space: 2, + _web: { + cursor: props.isDisabled ? 'not-allowed' : 'pointer', + }, + }, + _text: { + ml: 2, + color: mode('darkText', 'lightText')(props), + }, + _interactionBox: { + position: 'absolute', + borderRadius: 'full', + p: 5, + w: '100%', + h: '100%', + zIndex: -1, + _web: { + transition: 'height 200ms, width 200ms', + pointerEvents: 'none', + }, + }, + _hover: { + _interactionBox: { + bg: transparentize('muted.200', 0.3)(theme), + }, + }, + _focus: { + _interactionBox: { + bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + }, + }, + _focusVisible: { + _interactionBox: { + bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + }, + }, + _disabled: { + _interactionBox: { + bg: 'transparent', + }, + _web: { + cursor: 'not-allowed', + }, + opacity: 0.4, + }, + _pressed: { + _interactionBox: { + bg: transparentize(`${colorScheme}.200`, 0.5)(theme), + }, + }, + _checked: { + borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), + bg: mode(`${colorScheme}.600`, `${colorScheme}.300`)(props), + }, + _invalid: { + borderColor: mode('error.600', 'error.400')(props), + }, + _icon: { + color: mode(`muted.50`, `muted.800`)(props), // matching background color + }, + }; +}; + +const sizes = { + lg: { _icon: { size: 6 }, _text: { fontSize: 'xl' } }, + md: { _icon: { size: 5 }, _text: { fontSize: 'lg' } }, + sm: { _icon: { size: 4 }, _text: { fontSize: 'md' } }, +}; + +const defaultProps = { + defaultIsChecked: false, + size: 'sm', + colorScheme: 'primary', +}; + +export default { + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/circle.ts b/src/theme/v33x-theme/components/circle.ts new file mode 100644 index 000000000..bb9adb345 --- /dev/null +++ b/src/theme/v33x-theme/components/circle.ts @@ -0,0 +1,37 @@ +const sizes = { + 'xs': { + height: 10, + width: 10, + }, + 'sm': { + height: 12, + width: 12, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 24, + width: 24, + }, + 'xl': { + height: 32, + width: 32, + }, + '2xl': { + height: 40, + width: 40, + }, +}; + +const baseStyle = { + rounded: 'full', + alignItems: 'center', + justifyContent: 'center', +}; + +export default { + baseStyle, + sizes, +}; diff --git a/src/theme/v33x-theme/components/circular-progress.ts b/src/theme/v33x-theme/components/circular-progress.ts new file mode 100644 index 000000000..2ebd72e70 --- /dev/null +++ b/src/theme/v33x-theme/components/circular-progress.ts @@ -0,0 +1,43 @@ +import { mode, getColorScheme } from '../tools'; + +const sizes = { + 'xs': { + height: 6, + width: 6, + }, + 'sm': { + height: 8, + width: 8, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 20, + width: 20, + }, + 'xl': { + height: 24, + width: 24, + }, + '2xl': { + height: 32, + width: 32, + }, +}; +const defaultProps = { + thickness: 8, + colorScheme: 'primary', + size: 'lg', +}; + +function baseStyle(props: Record) { + const colorScheme = getColorScheme(props); + return { + color: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props), + trackColor: mode(`${colorScheme}.200`, `${colorScheme}.800`)(props), + }; +} + +export default { baseStyle, sizes, defaultProps }; diff --git a/src/theme/v33x-theme/components/code.ts b/src/theme/v33x-theme/components/code.ts new file mode 100644 index 000000000..f0f9311e3 --- /dev/null +++ b/src/theme/v33x-theme/components/code.ts @@ -0,0 +1,20 @@ +import Badge from './badge'; +import { Platform } from 'react-native'; + +const { variants, defaultProps } = Badge; + +const baseStyle = { + _text: { + fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace', + fontSize: 'sm', + }, + borderRadius: 'sm', + px: 2, + py: 1, +}; + +export default { + baseStyle, + variants, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/container.ts b/src/theme/v33x-theme/components/container.ts new file mode 100644 index 000000000..228a9e1e4 --- /dev/null +++ b/src/theme/v33x-theme/components/container.ts @@ -0,0 +1,15 @@ +import type { Dict } from '../tools'; + +const baseStyle = (props: Dict) => { + const { centerContent } = props; + + return { + maxWidth: '80%', + alignItems: centerContent ? 'center' : 'flex-start', + _text: { textAlign: centerContent ? 'center' : 'left' }, + }; +}; + +export default { + baseStyle, +}; diff --git a/src/theme/v33x-theme/components/divider.ts b/src/theme/v33x-theme/components/divider.ts new file mode 100644 index 000000000..ff31fe3bc --- /dev/null +++ b/src/theme/v33x-theme/components/divider.ts @@ -0,0 +1,28 @@ +import { mode } from '../tools'; + +function baseStyle(props: Record) { + const { orientation, thickness } = props; + const orientationProps = + orientation === 'vertical' + ? { + width: `${thickness}px`, // handle for web : To be discussed + height: '100%', + } + : { + width: '100%', + height: `${thickness}px`, + }; + + return { + bg: mode('coolGray.200', 'gray.600')(props), + ...orientationProps, + }; +} + +export default { + baseStyle, + defaultProps: { + orientation: 'horizontal', + thickness: '1', + }, +}; diff --git a/src/theme/v33x-theme/components/fab.ts b/src/theme/v33x-theme/components/fab.ts new file mode 100644 index 000000000..68f764587 --- /dev/null +++ b/src/theme/v33x-theme/components/fab.ts @@ -0,0 +1,22 @@ +const placementProps: any = { + 'top-right': { top: 4, right: 4, position: 'absolute' }, + 'top-left': { top: 4, left: 4, position: 'absolute' }, + 'bottom-right': { bottom: 4, right: 4, position: 'absolute' }, + 'bottom-left': { bottom: 4, left: 4, position: 'absolute' }, +}; +const baseStyle = { + shadow: 7, + rounded: 'full', + zIndex: 20, + placementProps, + px: 4, + py: 4, +}; +const defaultProps = { + renderInPortal: true, + variant: 'solid', + colorScheme: 'primary', + placement: 'bottom-right', +}; + +export default { baseStyle, defaultProps }; diff --git a/src/theme/v33x-theme/components/flatList.ts b/src/theme/v33x-theme/components/flatList.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/flatList.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/flex.ts b/src/theme/v33x-theme/components/flex.ts new file mode 100644 index 000000000..fbb4f6b3b --- /dev/null +++ b/src/theme/v33x-theme/components/flex.ts @@ -0,0 +1,12 @@ +export const Flex = { + baseStyle: { + display: 'flex', + flexDirection: 'column', + }, +}; + +export const Spacer = { + baseStyle: { + flexGrow: 1, + }, +}; diff --git a/src/theme/v33x-theme/components/form-control.ts b/src/theme/v33x-theme/components/form-control.ts new file mode 100644 index 000000000..20cfb2c1f --- /dev/null +++ b/src/theme/v33x-theme/components/form-control.ts @@ -0,0 +1,54 @@ +import { mode } from '../tools'; + +// FormControl +export const FormControl = { + baseStyle: { + width: '100%', + }, +}; + +// FormControlErrorMessage +export const FormControlErrorMessage = { + baseStyle: (props: Record) => { + return { + mt: '2', + _text: { + fontSize: 'xs', + color: mode('danger.600', 'danger.300')(props), + }, + _stack: { space: 1, alignItems: 'center' }, + }; + }, +}; + +// FormControlLabel +export const FormControlLabel = { + baseStyle: (props: Record) => { + return { + flexDirection: 'row', + justifyContent: 'flex-start', + _text: { + fontSize: 'sm', + fontWeight: 'medium', + }, + _astrick: { + color: mode('danger.600', 'danger.300')(props), + }, + mb: '2', + mr: '3', + }; + }, +}; + +// FormControlHelperText +export const FormControlHelperText = { + baseStyle: (props: Record) => { + return { + mt: '2', + _text: { + fontSize: 'xs', + color: mode('muted.500', 'muted.400')(props), + }, + }; + }, +}; diff --git a/src/theme/v33x-theme/components/heading.ts b/src/theme/v33x-theme/components/heading.ts new file mode 100644 index 000000000..97cb9c347 --- /dev/null +++ b/src/theme/v33x-theme/components/heading.ts @@ -0,0 +1,40 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + color: mode('muted.700', 'white')(props), + fontWeight: 'bold', + lineHeight: 'sm', + }; +}; + +const sizes = { + '4xl': { + fontSize: ['6xl', null, '7xl'], + }, + '3xl': { + fontSize: ['5xl', null, '6xl'], + }, + '2xl': { + fontSize: ['4xl', null, '5xl'], + }, + 'xl': { + fontSize: ['3xl', null, '4xl'], + }, + 'lg': { + fontSize: ['2xl', null, '3xl'], + }, + 'md': { fontSize: 'xl' }, + 'sm': { fontSize: 'md' }, + 'xs': { fontSize: 'sm' }, +}; + +const defaultProps = { + size: 'lg', +}; + +export default { + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/hstack.ts b/src/theme/v33x-theme/components/hstack.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/hstack.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/icon-button.ts b/src/theme/v33x-theme/components/icon-button.ts new file mode 100644 index 000000000..de046a818 --- /dev/null +++ b/src/theme/v33x-theme/components/icon-button.ts @@ -0,0 +1,148 @@ +import { Dict, mode, transparentize } from '../tools'; +import { Platform } from 'react-native'; + +const baseStyle = (props: any) => { + const { primary } = props.theme.colors; + const focusRing = + Platform.OS === 'web' + ? { boxShadow: `${primary[400]} 0px 0px 0px 3px` } + : {}; + + return { + borderRadius: 'sm', + _web: { + cursor: props.isDisabled + ? 'not-allowed' + : props.isLoading + ? 'default' + : 'pointer', + }, + _focusVisible: { + style: props.variant !== 'unstyled' ? { ...focusRing } : {}, + }, + _disabled: { + opacity: 0.5, + }, + }; +}; + +function variantGhost(props: Dict) { + const { colorScheme } = props; + return { + bg: 'transparent', + _web: { + outlineWidth: 0, + }, + _hover: { + bg: transparentize( + mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), + 0.5 + )(props.theme), + }, + _focusVisible: { + bg: transparentize( + mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), + 0.5 + )(props.theme), + }, + _pressed: { + bg: transparentize( + mode(`${colorScheme}.200`, `${colorScheme}.500`)(props), + 0.6 + )(props.theme), + }, + }; +} + +function variantOutline(props: Dict) { + const { colorScheme } = props; + return { + borderWidth: '1', + borderColor: `${colorScheme}.300`, + _icon: { + color: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props), + }, + _web: { + outlineWidth: 0, + }, + _hover: { + bg: transparentize( + mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), + 0.5 + )(props.theme), + }, + _focusVisible: { + bg: transparentize( + mode(`${colorScheme}.200`, `${colorScheme}.400`)(props), + 0.5 + )(props.theme), + }, + _pressed: { + bg: transparentize( + mode(`${colorScheme}.300`, `${colorScheme}.500`)(props), + 0.6 + )(props.theme), + }, + }; +} + +function variantSolid(props: Dict) { + const { colorScheme } = props; + return { + bg: `${colorScheme}.500`, + _web: { + outlineWidth: 0, + }, + _disabled: { + bg: mode(`trueGray.300`, `trueGray.600`)(props), + }, + _hover: { + bg: `${colorScheme}.600`, + }, + _pressed: { + bg: `${colorScheme}.700`, + }, + _focus: { + bg: `${colorScheme}.600`, + }, + _icon: { + color: mode('gray.50', 'gray.800')(props), + }, + }; +} + +function variantUnstyled() { + return {}; +} + +const variants = { + ghost: variantGhost, + outline: variantOutline, + solid: variantSolid, + unstyled: variantUnstyled, +}; + +const defaultProps = { + variant: 'ghost', + size: 'md', + colorScheme: 'primary', +}; + +const sizes = { + lg: { + p: 3, + }, + md: { + p: 2, + }, + sm: { + p: 1, + }, +}; + +export default { + baseStyle, + variants, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/icon.ts b/src/theme/v33x-theme/components/icon.ts new file mode 100644 index 000000000..2d5ac47a8 --- /dev/null +++ b/src/theme/v33x-theme/components/icon.ts @@ -0,0 +1,24 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + color: mode('muted.800', 'muted.100')(props), + }; +}; + +const sizes = { + 'xxs': 2, + 'xs': 4, + 'sm': 6, + 'md': 8, + 'lg': 10, + 'xl': 12, + '2xl': 16, + '3xl': 20, + '4xl': 24, + '5xl': 32, + '6xl': 64, +}; + +const defaultProps = { size: 'md' }; +export default { baseStyle, sizes, defaultProps }; diff --git a/src/theme/v33x-theme/components/image.ts b/src/theme/v33x-theme/components/image.ts new file mode 100644 index 000000000..576b0aca5 --- /dev/null +++ b/src/theme/v33x-theme/components/image.ts @@ -0,0 +1,19 @@ +// Image +const sizes = { + '2xs': '6', + 'xs': '10', + 'sm': '16', + 'md': '20', + 'lg': '24', + 'xl': '32', + '2xl': '64', + 'full': '100%', +}; + +export const Image = { + baseStyle: { + maxWidth: '100%', + }, + sizes, + defaultProps: {}, +}; diff --git a/src/theme/v33x-theme/components/index.ts b/src/theme/v33x-theme/components/index.ts new file mode 100644 index 000000000..fb45f657b --- /dev/null +++ b/src/theme/v33x-theme/components/index.ts @@ -0,0 +1,222 @@ +import { + Accordion, + AccordionItem, + AccordionIcon, + AccordionSummary, + AccordionDetails, +} from './accordion'; +import { + Actionsheet, + ActionsheetContent, + // ActionsheetHeader, + // ActionsheetFooter, + ActionsheetItem, +} from './actionsheet'; +import { Select, SelectItem } from './select'; +import { Alert, AlertIcon } from './alert'; +import AspectRatio from './aspect-ratio'; +import Avatar from './avatar'; +import AvatarBadge from './avatar-badge'; +import AvatarGroup from './avatar-group'; +import Badge from './badge'; +import { Breadcrumb, BreadcrumbText, BreadcrumbIcon } from './breadcrumb'; +import Button, { ButtonGroup } from './button'; +import Card from './card'; +import Center from './center'; +import Checkbox from './checkbox'; +import CheckboxGroup from './checkbox-group'; +import Box from './box'; +import FlatList from './flatList'; +import KeyboardAvoidingView from './keyboardAvoidingView'; +import ScrollView from './scrollView'; +import SectionList from './sectionList'; +import StatusBar from './statusBar'; +import CircularProgress from './circular-progress'; +import Code from './code'; +import Container from './container'; +import HStack from './hstack'; +import VStack from './vstack'; +import Divider from './divider'; +import Circle from './circle'; +import SimpleGrid from './simple-grid'; +import { + FormControl, + FormControlLabel, + FormControlHelperText, + FormControlErrorMessage, +} from './form-control'; +import Heading from './heading'; +import Icon from './icon'; +import IconButton from './icon-button'; +import { Image } from './image'; +import { Input } from './input'; +import { Tooltip } from './tooltip'; +import Kbd from './kbd'; +import Link from './link'; +import { default as Menu, MenuGroup, MenuItem } from './menu'; +import { + Modal, + ModalContent, + ModalHeader, + ModalBody, + ModalFooter, + ModalOverlay, + ModalCloseButton, +} from './modal'; +import { + AlertDialog, + AlertDialogContent, + AlertDialogHeader, + AlertDialogBody, + AlertDialogFooter, + AlertDialogOverlay, + AlertDialogCloseButton, +} from './alert-dialog'; +import * as PopoverComponentTheme from './popover'; +import { default as NumberInput, NumberInputStepper } from './number-input'; +import PinInput from './pin-input'; +import Pressable from './pressable'; +import Progress from './progress'; +import Radio from './radio'; +import RadioGroup from './radio-group'; +import { Skeleton, SkeletonText } from './skeleton'; +import Spinner from './spinner'; +import Stat from './stat'; +import Switch from './switch'; +import Tabs from './tabs'; +import Tag from './tag'; +import Text from './text'; +import AppBar from './app-bar'; +import TextArea from './textarea'; +import { TextField } from './textField'; +import { Toast } from './toast'; +import { Fade, ScaleFade, Slide, SlideFade } from './transitions'; +import { List, ListItem, ListIcon } from './list'; +import { TypeAheadSearchItem } from './typeahead'; +import { Wrap } from './wrap'; +import { Flex, Spacer } from './flex'; +import Stack from './stack'; +import Square from './square'; +import View from './view'; +import ZStack from './zstack'; +import FAB from './fab'; +import { SliderTrack, Slider, SliderThumb, SliderFilledTrack } from './slider'; +import InputLeftAddon from './inputleftaddon'; +import InputRightAddon from './inputrightaddon'; +export default { + FlatList, + KeyboardAvoidingView, + ScrollView, + SectionList, + StatusBar, + Accordion, + AccordionItem, + AccordionIcon, + AccordionSummary, + AccordionDetails, + Actionsheet, + ActionsheetContent, + // ActionsheetHeader, + // ActionsheetFooter, + ActionsheetItem, + Alert, + // AlertDescription, + // AlertTitle, + AlertIcon, + AspectRatio, + Avatar, + AvatarBadge, + AvatarGroup, + Badge, + Box, + Breadcrumb, + BreadcrumbText, + BreadcrumbIcon, + Button, + ButtonGroup, + Card, + Center, + Circle, + Checkbox, + CheckboxGroup, + CircularProgress, + Code, + Container, + Divider, + Fade, + FAB, + Flex, + Spacer, + FormControl, + FormControlLabel, + FormControlHelperText, + FormControlErrorMessage, + Heading, + HStack, + VStack, + Icon, + IconButton, + Image, + Input, + InputLeftAddon, + InputRightAddon, + Kbd, + Link, + List, + ListItem, + ListIcon, + Menu, + MenuGroup, + MenuItem, + Modal, + ModalContent, + ModalHeader, + ModalBody, + ModalFooter, + ModalOverlay, + ModalCloseButton, + AlertDialog, + AlertDialogContent, + AlertDialogHeader, + AlertDialogBody, + AlertDialogFooter, + AlertDialogOverlay, + AlertDialogCloseButton, + NumberInput, + NumberInputStepper, + PinInput, + Pressable, + ...PopoverComponentTheme, + Progress, + Radio, + RadioGroup, + ScaleFade, + Select, + SelectItem, + SimpleGrid, + Skeleton, + SkeletonText, + SliderFilledTrack, + SliderThumb, + SliderTrack, + Slider, + Slide, + SlideFade, + Spinner, + Square, + Stack, + Stat, + Switch, + Tabs, + Tag, + Text, + AppBar, + TextArea, + TextField, + Toast, + TypeAheadSearchItem, + View, + Wrap, + ZStack, + Tooltip, +}; diff --git a/src/theme/v33x-theme/components/input.ts b/src/theme/v33x-theme/components/input.ts new file mode 100644 index 000000000..e1fc40565 --- /dev/null +++ b/src/theme/v33x-theme/components/input.ts @@ -0,0 +1,144 @@ +import { mode } from '../tools'; +import { Platform } from 'react-native'; + +function getSelectionColor(props: Record) { + if (Platform.OS === 'ios') { + return mode('coolGray.800', 'warmGray.50')(props); + } else if (Platform.OS === 'android') { + return mode('coolGray.800', 'warmGray.50')(props); + } +} + +const baseStyle = (props: Record) => { + // const { primary } = props.theme.colors; + // Todo: Resolve boxShadow Color or Provide some alternatiove prop for user to change focusRing color + // // Todo: Update to support similar focusRing on iOS , Android and Web + // const focusRing = + // Platform.OS === 'web' + // ? { + // boxShadow: + // props.variant !== 'underlined' + // ? `${primary[400]} 0px 0px 0px 1px` + // : `${primary[400]} 0px 1px 0px 0px`, + // zIndex: 1, + // } + // : { + // // boxShadow: `${useToken('colors', ['primary.400'])} 0px 0px 0px 1px`, + // }; + + return { + selectionColor: getSelectionColor(props), + fontFamily: 'body', + p: '2', + borderRadius: 'sm', + overflow: 'hidden', + color: mode('coolGray.800', 'warmGray.50')(props), + placeholderTextColor: 'muted.400', + borderColor: mode('muted.200', 'gray.500')(props), + _disabled: { + opacity: '80', + bg: mode('muted.100', 'muted.700')(props), + _web: { + disabled: true, + cursor: 'not-allowed', + }, + }, + _invalid: { + borderColor: mode('danger.600', 'danger.300')(props), + }, + _focus: { + borderColor: mode('primary.400', 'primary.500')(props), + }, + _web: { + outlineWidth: '0', + overflow: 'auto', + lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height + outline: 'none', + cursor: 'auto', + }, + _stack: { + flexDirection: 'row', + alignItems: 'center', + // justifyContent: 'space-between', + overflow: 'hidden', + }, + _input: { + bg: 'transparent', + flex: 1, + }, + }; +}; + +function roundedStyle(props: Record) { + return { + borderRadius: '25', + borderWidth: '1', + _hover: { + bg: mode('gray.100', 'gray.700')(props), + }, + }; +} +function outlineStyle(props: Record) { + return { + borderWidth: '1', + _hover: { + bg: mode('gray.100', 'gray.700')(props), + }, + }; +} +function filledStyle(props: Record) { + return { + bg: props.bg || mode('muted.200', 'muted.600')(props), + borderWidth: '1', + borderColor: 'transparent', + _hover: { + bg: mode('muted.300', 'muted.700')(props), + }, + }; +} +function unstyledStyle() { + return { + borderWidth: '0', + }; +} +function underlinedStyle() { + return { + borderRadius: '0', + borderTopWidth: '0', + borderLeftWidth: '0', + borderRightWidth: '0', + borderBottomWidth: '1', + }; +} + +const variants = { + outline: outlineStyle, + underlined: underlinedStyle, + rounded: roundedStyle, + filled: filledStyle, + unstyled: unstyledStyle, +}; + +const sizes = { + '2xl': { fontSize: 'xl' }, + 'xl': { fontSize: 'lg' }, + 'lg': { fontSize: 'md' }, + 'md': { fontSize: 'sm' }, + 'sm': { fontSize: 'xs' }, + 'xs': { fontSize: '2xs' }, +}; + +const defaultProps = { + size: 'sm', + variant: 'outline', +}; + +// Input +export const Input = { + baseStyle, + defaultProps, + variants, + sizes, +}; + +export default {}; diff --git a/src/theme/v33x-theme/components/inputleftaddon.ts b/src/theme/v33x-theme/components/inputleftaddon.ts new file mode 100644 index 000000000..53a5ee1f9 --- /dev/null +++ b/src/theme/v33x-theme/components/inputleftaddon.ts @@ -0,0 +1,20 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + borderRightWidth: '0', + roundedLeft: '4', + bg: mode('gray.50', 'gray.700')(props), + p: '2', + borderColor: mode('gray.300', 'gray.600')(props), + borderWidth: '1', + _text: { + color: mode('muted.400', 'muted.500')(props), + fontWeight: 600, + }, + alignItems: 'center', + justifyContent: 'center', + }; +}; + +export default { baseStyle }; diff --git a/src/theme/v33x-theme/components/inputrightaddon.ts b/src/theme/v33x-theme/components/inputrightaddon.ts new file mode 100644 index 000000000..9e671acb0 --- /dev/null +++ b/src/theme/v33x-theme/components/inputrightaddon.ts @@ -0,0 +1,20 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + borderLeftWidth: '0', + roundedRight: '4', + bg: mode('gray.50', 'gray.700')(props), + p: '2', + borderColor: mode('gray.300', 'gray.600')(props), + borderWidth: '1', + _text: { + color: mode('muted.400', 'muted.500')(props), + fontWeight: 600, + }, + alignItems: 'center', + justifyContent: 'center', + }; +}; + +export default { baseStyle }; diff --git a/src/theme/v33x-theme/components/kbd.ts b/src/theme/v33x-theme/components/kbd.ts new file mode 100644 index 000000000..0e654e94b --- /dev/null +++ b/src/theme/v33x-theme/components/kbd.ts @@ -0,0 +1,25 @@ +import { mode } from '../tools'; +import { Platform } from 'react-native'; + +function baseStyle(props: Record) { + return { + bg: mode('muted.200', 'muted.700')(props), + borderColor: mode('muted.300', 'muted.600')(props), + borderWidth: 2, + borderBottomWidth: 4, + shadow: 1, + borderRadius: 'md', + px: 2, + _text: { + fontSize: 'sm', + fontWeight: 'bold', + fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace', + }, + }; +} + +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/keyboardAvoidingView.ts b/src/theme/v33x-theme/components/keyboardAvoidingView.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/keyboardAvoidingView.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/link.ts b/src/theme/v33x-theme/components/link.ts new file mode 100644 index 000000000..5a74bc26c --- /dev/null +++ b/src/theme/v33x-theme/components/link.ts @@ -0,0 +1,17 @@ +const baseStyle = (props: Record) => { + const { isUnderlined } = props; + return { + _text: { + textDecorationLine: isUnderlined ? 'underline' : 'none', + }, + width: 'auto', + height: 'auto', + }; +}; + +export default { + baseStyle, + defaultProps: { + isUnderlined: true, + }, +}; diff --git a/src/theme/v33x-theme/components/list.ts b/src/theme/v33x-theme/components/list.ts new file mode 100644 index 000000000..5e33d6b4a --- /dev/null +++ b/src/theme/v33x-theme/components/list.ts @@ -0,0 +1,32 @@ +import { mode } from '../tools'; +// List +export const List = { + baseStyle: (props: Record) => { + return { + py: 2, + borderWidth: 1, + borderColor: 'gray.300', + _hover: { bg: mode('primary.100', 'primary.700')(props) }, + }; + }, +}; + +// ListItem +export const ListItem = { + baseStyle: { + // borderTopWidth: 1, + py: 2, + borderColor: 'gray.300', + }, + defaultProps: { + start: 1, + }, +}; + +// ListIcon +export const ListIcon = { + baseStyle: { + mr: 8, + size: 'md', + }, +}; diff --git a/src/theme/v33x-theme/components/menu.ts b/src/theme/v33x-theme/components/menu.ts new file mode 100644 index 000000000..98cd60f3b --- /dev/null +++ b/src/theme/v33x-theme/components/menu.ts @@ -0,0 +1,76 @@ +import { Platform, StyleSheet } from 'react-native'; +import { mode } from '../tools'; + +function baseStyle(props: Record) { + return { + bg: mode(`#fff`, `gray.700`)(props), + py: 2, + borderWidth: 1, + borderColor: mode(`coolGray.200`, `gray.600`)(props), + borderRadius: 'sm', + _presenceTransition: { + initial: { opacity: 0, translateY: -10 }, + animate: { + opacity: 1, + translateY: 0, + transition: { duration: 200 }, + }, + exit: { opacity: 0, translateY: -10, transition: { duration: 150 } }, + style: StyleSheet.absoluteFill, + }, + _overlay: {}, + _backdrop: { + bg: 'transparent', + }, + }; +} + +export default { + baseStyle, +}; + +export const MenuGroup = { + baseStyle: (props: any) => ({ + _title: { + fontSize: 'xs', + fontWeight: 600, + textTransform: 'uppercase', + color: mode(`gray.500`, `gray.300`)(props), + }, + p: 3, + }), +}; +export const MenuItem = { + baseStyle: (props: any) => ({ + px: 3, + py: 2, + outlineWidth: Platform.OS === 'web' ? 0 : undefined, + _stack: { + alignItems: 'center', + px: 3, + space: 3, + }, + _disabled: { + _text: { + color: mode('gray.400', 'gray.400')(props), + }, + }, + _focus: { + bg: mode(`coolGray.200`, `gray.600`)(props), + }, + _pressed: { + bg: mode(`coolGray.300`, `gray.500`)(props), + }, + _icon: { + size: 4, + color: mode('gray.500', 'gray.100')(props), + opacity: 0, + }, + _checked: { + _icon: { + opacity: 1, + }, + }, + }), + defaultProps: {}, +}; diff --git a/src/theme/v33x-theme/components/modal.ts b/src/theme/v33x-theme/components/modal.ts new file mode 100644 index 000000000..eebd0d2cf --- /dev/null +++ b/src/theme/v33x-theme/components/modal.ts @@ -0,0 +1,135 @@ +import { Dimensions } from 'react-native'; +import { mode } from '../tools'; + +const sizes = { + xs: { + contentSize: { + width: '60%', + maxWidth: '280', + }, + }, + sm: { + contentSize: { + width: '65%', + maxWidth: '320', + }, + }, + md: { + contentSize: { + width: '75%', + maxWidth: '380', + }, + }, + lg: { + contentSize: { + width: '80%', + maxWidth: '520', + }, + }, + xl: { + contentSize: { + width: '90%', + maxWidth: '580', + }, + }, + full: { + contentSize: { + width: '100%', + }, + }, +}; + +export const Modal = { + baseStyle: { + width: '100%', + height: '100%', + justifyContent: 'center', + alignItems: 'center', + _web: { pointerEvents: 'box-none' }, + _backdropFade: { exitDuration: 150, entryDuration: 200 }, + _slide: { overlay: false, duration: 200 }, + _fade: { exitDuration: 100, entryDuration: 200 }, + }, + sizes, + defaultProps: { + size: 'md', + closeOnOverlayClick: true, + }, +}; + +export const ModalContent = { + baseStyle: (props: Record) => { + return { + bg: mode('coolGray.50', 'gray.700')(props), + _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, + shadow: 1, + rounded: 'lg', + maxHeight: `${Dimensions.get('window').height - 150}px`, + overflow: 'hidden', + }; + }, +}; +export const ModalCloseButton = { + baseStyle: (props: Record) => { + return { + position: 'absolute', + right: '3', + top: '3', + zIndex: '1', + colorScheme: 'coolGray', + p: '2', + _icon: { + size: '3', + color: mode('coolGray.600', 'coolGray.100')(props), + }, + }; + }, +}; +export const ModalHeader = { + baseStyle: (props: Record) => { + return { + py: '4', + px: '3', + borderBottomWidth: '1', + borderColor: mode('coolGray.200', 'gray.600')(props), + _text: { + fontSize: 'md', + fontWeight: 'semibold', + color: mode('coolGray.800', 'warmGray.50')(props), + lineHeight: 'sm', + }, + }; + }, +}; +export const ModalBody = { + baseStyle: (props: Record) => { + return { + pt: '2', + p: '3', + _text: { + color: mode('coolGray.600', 'coolGray.300')(props), + }, + }; + }, +}; +export const ModalFooter = { + baseStyle: (props: Record) => { + return { + p: '3', + bg: mode('coolGray.100', 'gray.600')(props), + flexDirection: 'row', + justifyContent: 'flex-end', + flexWrap: 'wrap', + }; + }, +}; +export const ModalOverlay = { + baseStyle: { + position: 'absolute', + left: '0', + top: '0', + opacity: '50', + right: '0', + bottom: '0', + }, +}; diff --git a/src/theme/v33x-theme/components/number-input.ts b/src/theme/v33x-theme/components/number-input.ts new file mode 100644 index 000000000..c65bf6bd0 --- /dev/null +++ b/src/theme/v33x-theme/components/number-input.ts @@ -0,0 +1,35 @@ +import { mode } from '../tools'; + +const defaultProps = { + size: 'sm', + step: 1, + min: -Infinity, + max: Infinity, + defaultValue: '0', + keepWithinRange: true, + clampValueOnBlur: true, + focusInputOnChange: true, + getAriaValueText: true, +}; + +export default { + defaultProps, +}; + +//Steppers +const stepperbaseStyle = (props: Record) => { + return { + bg: mode('primary.600', 'primary.200')(props), + iconColor: mode('gray.50', 'gray.800')(props), + _active: {}, + _disabled: { + // iconColor: mode('gray.50', 'gray.300')(props), + // bg: mode('blackAlpha.200', 'whiteAlpha.300')(props), + opacity: 0.5, + }, + }; +}; + +export const NumberInputStepper = { + baseStyle: stepperbaseStyle, +}; diff --git a/src/theme/v33x-theme/components/pin-input.ts b/src/theme/v33x-theme/components/pin-input.ts new file mode 100644 index 000000000..310d9b5e8 --- /dev/null +++ b/src/theme/v33x-theme/components/pin-input.ts @@ -0,0 +1,62 @@ +const defaultProps = { + placeholder: 'â—‹', + size: 'md', + manageFocus: true, + space: 1, +}; + +const sizes = { + '2xl': { + fontSize: '2xl', + p: 3, + width: '56px', + height: '56px', + textAlign: 'center', + borderRadius: 'lg', + }, + 'xl': { + fontSize: 'xl', + p: 3, + width: '52px', + height: '52px', + textAlign: 'center', + borderRadius: 'lg', + }, + 'lg': { + fontSize: 'lg', + p: 2, + width: '48px', + height: '48px', + textAlign: 'center', + borderRadius: 'md', + }, + 'md': { + fontSize: 'md', + p: 2, + width: '40px', + height: '40px', + textAlign: 'center', + borderRadius: 'md', + }, + 'sm': { + fontSize: 'sm', + p: 1, + width: '30px', + height: '30px', + textAlign: 'center', + borderRadius: 'md', + }, + 'xs': { + fontSize: 'xs', + p: 1, + width: '24px', + height: '24px', + textAlign: 'center', + borderRadius: 'md', + }, +}; + +export default { + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/popover.ts b/src/theme/v33x-theme/components/popover.ts new file mode 100644 index 000000000..c3f82c6cf --- /dev/null +++ b/src/theme/v33x-theme/components/popover.ts @@ -0,0 +1,73 @@ +import { mode } from '../tools'; + +export const PopoverCloseButton = { + baseStyle: (props: any) => ({ + position: 'absolute', + right: 3, + top: 3, + zIndex: 1, + colorScheme: 'coolGray', + p: 2, + _icon: { + size: 3, + color: mode('coolGray.600', 'coolGray.100')(props), + }, + }), +}; + +export const PopoverBody = { + baseStyle: (props: any) => ({ + pt: '2', + p: '3', + _text: { + color: mode('coolGray.600', 'coolGray.300')(props), + }, + }), +}; + +export const PopoverContent = { + baseStyle: (props: any) => ({ + backgroundColor: mode('coolGray.50', 'gray.700')(props), + borderColor: mode('coolGray.200', 'coolGray.600')(props), + _text: { color: mode('coolGray.800', 'warmGray.50')(props) }, + borderWidth: 1, + rounded: 'md', + overflow: 'hidden', + }), +}; + +export const PopoverHeader = { + baseStyle: (props: any) => ({ + _web: { + accessibilityRole: 'header', + }, + py: '4', + px: '3', + borderBottomWidth: '1', + borderColor: mode('coolGray.200', 'gray.600')(props), + _text: { + fontSize: 'md', + fontWeight: 'semibold', + color: mode('coolGray.800', 'warmGray.50')(props), + lineHeight: 'sm', + }, + }), +}; + +export const PopoverArrow = { + baseStyle: (props: any) => ({ + borderColor: mode('coolGray.200', 'coolGray.600')(props), + }), +}; + +export const PopoverFooter = { + baseStyle: (props: Record) => { + return { + p: '3', + bg: mode('coolGray.100', 'gray.600')(props), + flexDirection: 'row', + justifyContent: 'flex-end', + flexWrap: 'wrap', + }; + }, +}; diff --git a/src/theme/v33x-theme/components/pressable.ts b/src/theme/v33x-theme/components/pressable.ts new file mode 100644 index 000000000..0c68aa1dd --- /dev/null +++ b/src/theme/v33x-theme/components/pressable.ts @@ -0,0 +1,4 @@ +export default { + baseStyle: {}, + defaultProps: {}, +}; diff --git a/src/theme/v33x-theme/components/progress.ts b/src/theme/v33x-theme/components/progress.ts new file mode 100644 index 000000000..643f01741 --- /dev/null +++ b/src/theme/v33x-theme/components/progress.ts @@ -0,0 +1,59 @@ +import { mode, getColorScheme } from '../tools'; + +const defaultProps = { + colorScheme: 'primary', + size: 'sm', + rounded: 'full', + min: 0, + max: 100, + value: 0, + isIndeterminate: false, +}; + +function baseStyle(props: Record) { + const colorScheme = getColorScheme(props); + + return { + bg: `${colorScheme}.200`, + overflow: 'hidden', + _filledTrack: { + bg: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props), + shadow: 0, + height: '100%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + _text: { + color: 'white', + fontWeight: 'bold', + }, + }, + }; +} + +const sizes = { + 'xs': { + height: 1, + }, + 'sm': { + height: 2, + }, + 'md': { + height: 3, + }, + 'lg': { + height: 4, + }, + 'xl': { + height: 5, + }, + '2xl': { + height: 6, + }, +}; + +export default { + baseStyle, + defaultProps, + sizes, +}; diff --git a/src/theme/v33x-theme/components/radio-group.ts b/src/theme/v33x-theme/components/radio-group.ts new file mode 100644 index 000000000..357a3f4dc --- /dev/null +++ b/src/theme/v33x-theme/components/radio-group.ts @@ -0,0 +1,9 @@ +const baseStyle = () => { + return { + alignItems: 'flex-start', + }; +}; + +export default { + baseStyle, +}; diff --git a/src/theme/v33x-theme/components/radio.ts b/src/theme/v33x-theme/components/radio.ts new file mode 100644 index 000000000..0c0303340 --- /dev/null +++ b/src/theme/v33x-theme/components/radio.ts @@ -0,0 +1,106 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + const { colorScheme } = props; + return { + borderWidth: 2, + borderRadius: 'full', + p: 0.5, + borderColor: mode('muted.300', 'muted.600')(props), + bg: mode('muted.50', 'muted.700')(props), // matching background color + + _stack: { + direction: 'row', + alignItems: 'center', + space: 2, + _web: { + cursor: props.isDisabled ? 'not-allowed' : 'pointer', + }, + }, + _interactionBox: { + borderRadius: 'full', + size: 3, + position: 'absolute', + zIndex: -1, + _web: { + transition: 'height 200ms, width 200ms', + pointerEvents: 'none', + }, + }, + _icon: { + color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), // matching background color + }, + _hover: { + _interactionBox: { + bg: 'muted.200:alpha.30', + size: 8, + }, + }, + _focus: { + _interactionBox: { + bg: `${colorScheme}.200:alpha.50`, + size: 8, + }, + }, + _focusVisible: { + _interactionBox: { + bg: `${colorScheme}.200:alpha.50`, + size: 8, + }, + }, + _checked: { + borderColor: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), + }, + _disabled: { + opacity: 0.4, + _interactionBox: { + bg: 'transparent', + }, + _icon: { + bg: 'transparent', + }, + _stack: { + opacity: '0.4', + }, + }, + _invalid: { + borderColor: mode('error.600', 'error.400')(props), + }, + _pressed: { + _interactionBox: { + bg: `${colorScheme}.200:alpha.50`, + size: 10, + }, + }, + }; +}; + +const sizes = { + lg: { + _icon: { size: 4 }, + // _interactionBox: { size: 5 }, + _text: { fontSize: 'lg' }, + }, + md: { + _icon: { size: 3 }, + // _interactionBox: { size: 16 }, + _text: { fontSize: 'md' }, + }, + sm: { + _icon: { size: 2 }, + // _interactionBox: { size: 3 }, + _text: { fontSize: 'sm' }, + }, +}; + +const defaultProps = { + defaultIsChecked: false, + size: 'md', + colorScheme: 'primary', +}; + +export default { + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/scrollView.ts b/src/theme/v33x-theme/components/scrollView.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/scrollView.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/sectionList.ts b/src/theme/v33x-theme/components/sectionList.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/sectionList.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/select.ts b/src/theme/v33x-theme/components/select.ts new file mode 100644 index 000000000..6ef5b7519 --- /dev/null +++ b/src/theme/v33x-theme/components/select.ts @@ -0,0 +1,56 @@ +import { mode } from '../tools'; +export const Select = { + baseStyle: (props: Record) => { + return { + _webSelect: { + appearance: 'none', + WebkitAppearance: 'none', + MozAppearance: 'none', + position: 'absolute', + width: '100%', + height: '100%', + opacity: 0, + zIndex: 1, + }, + customDropdownIconProps: { + size: '6', + p: '1', + pl: '0', + color: 'trueGray.400', + }, + _web: { + pointerEvents: 'none', + }, + _disabled: { + opacity: '80', + bg: mode('muted.100', 'muted.700')(props), + }, + _invalid: { + borderColor: mode('danger.600', 'danger.300')(props), + }, + _focus: { + borderColor: mode('primary.400', 'primary.500')(props), + }, + _hover: { + bg: mode('gray.100', 'gray.700')(props), + }, + _actionSheetBody: { + w: '100%', + }, + _actionSheetContent: {}, + }; + }, + defaultProps: { + optimized: true, + }, +}; + +// SelectIcon - only for custom variant +export const SelectItem = { + baseStyle: { + p: '1', + px: '2', + borderRadius: '0', + minH: '0', + }, +}; diff --git a/src/theme/v33x-theme/components/simple-grid.ts b/src/theme/v33x-theme/components/simple-grid.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/simple-grid.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/skeleton.ts b/src/theme/v33x-theme/components/skeleton.ts new file mode 100644 index 000000000..b85856d3e --- /dev/null +++ b/src/theme/v33x-theme/components/skeleton.ts @@ -0,0 +1,38 @@ +import { mode } from '../tools'; + +// Skeleton +export const Skeleton = { + baseStyle: (props: Record) => { + return { + startColor: mode('muted.200', 'muted.600')(props), + endColor: 'transparent', + overflow: 'hidden', + fadeDuration: 0.1, + speed: 1.0, + h: '10', + w: '100%', + }; + }, +}; + +// SkeletonText +export const SkeletonText = { + baseStyle: (props: Record) => { + return { + startColor: mode('muted.200', 'muted.600')(props), + endColor: 'transparent', + fadeDuration: 0.1, + w: '100%', + speed: 1.0, + flexDirection: 'column', + _line: { + h: 3, + rounded: 'full', + }, + }; + }, + defaultProps: { + lines: 3, + space: 3, + }, +}; diff --git a/src/theme/v33x-theme/components/slider.ts b/src/theme/v33x-theme/components/slider.ts new file mode 100644 index 000000000..dd69e20df --- /dev/null +++ b/src/theme/v33x-theme/components/slider.ts @@ -0,0 +1,87 @@ +import { getColorScheme, mode } from '../tools'; +export const SliderTrack = { + baseStyle: ({ isVertical, size, ...props }: any) => { + const simplifiedColorScheme = getColorScheme(props); + return { + bg: `${simplifiedColorScheme}.100`, + borderRadius: 'lg', + overflow: 'hidden', + style: { + height: isVertical ? '100%' : size, + width: !isVertical ? '100%' : size, + }, + _pressable: { + alignItems: 'center', + justifyContent: 'center', + height: isVertical ? '100%' : size, + width: !isVertical ? '100%' : size, + py: !isVertical ? '3' : undefined, + px: isVertical ? '3' : undefined, + }, + }; + }, +}; + +export const SliderThumb = { + baseStyle: (props: any) => { + const simplifiedColorScheme = getColorScheme(props); + return { + borderRadius: 99999, + zIndex: 999, + alignItems: 'center', + justifyContent: 'center', + bg: mode( + `${simplifiedColorScheme}.600`, + `${simplifiedColorScheme}.300` + )(props), + scaleOnPressed: 1.2, + }; + }, +}; + +export const SliderFilledTrack = { + baseStyle: ({ + orientation, + isReversed, + sliderTrackPosition, + size, + ...props + }: any) => { + const simplifiedColorScheme = getColorScheme(props); + return { + bg: mode( + `${simplifiedColorScheme}.600`, + `${simplifiedColorScheme}.300` + )(props), + left: orientation !== 'vertical' && !isReversed ? 0 : undefined, + bottom: orientation === 'vertical' && !isReversed ? 0 : undefined, + right: orientation !== 'vertical' && isReversed ? 0 : undefined, + top: orientation === 'vertical' && isReversed ? 0 : undefined, + style: + orientation === 'vertical' + ? { height: sliderTrackPosition, width: size } + : { width: sliderTrackPosition, height: size }, + }; + }, +}; + +const sizes = { + lg: { thumbSize: 6, sliderSize: 6 }, + md: { thumbSize: 5, sliderSize: 5 }, + sm: { thumbSize: 4, sliderSize: 4 }, +}; + +export const Slider = { + baseStyle: (props: any) => { + return { + alignItems: 'center', + justifyContent: 'center', + height: props.orientation === 'vertical' ? '100%' : undefined, + width: props.orientation !== 'vertical' ? '100%' : undefined, + }; + }, + defaultProps: { + size: 'sm', + }, + sizes, +}; diff --git a/src/theme/v33x-theme/components/spinner.ts b/src/theme/v33x-theme/components/spinner.ts new file mode 100644 index 000000000..bfcff6c94 --- /dev/null +++ b/src/theme/v33x-theme/components/spinner.ts @@ -0,0 +1,12 @@ +export default { + baseStyle: { + color: 'primary.500', + }, + sizes: { + sm: 'small', + lg: 'large', + }, + defaultProps: { + size: 'small', + }, +}; diff --git a/src/theme/v33x-theme/components/square.ts b/src/theme/v33x-theme/components/square.ts new file mode 100644 index 000000000..938b84dbb --- /dev/null +++ b/src/theme/v33x-theme/components/square.ts @@ -0,0 +1,36 @@ +const sizes = { + 'xs': { + height: 10, + width: 10, + }, + 'sm': { + height: 12, + width: 12, + }, + 'md': { + height: 16, + width: 16, + }, + 'lg': { + height: 24, + width: 24, + }, + 'xl': { + height: 32, + width: 32, + }, + '2xl': { + height: 40, + width: 40, + }, +}; + +const baseStyle = { + alignItems: 'center', + justifyContent: 'center', +}; + +export default { + baseStyle, + sizes, +}; diff --git a/src/theme/v33x-theme/components/stack.ts b/src/theme/v33x-theme/components/stack.ts new file mode 100644 index 000000000..1cf17979d --- /dev/null +++ b/src/theme/v33x-theme/components/stack.ts @@ -0,0 +1,19 @@ +const baseStyle = {}; +const defaultProps = {}; +// sizes in stack means the height or width of the spacer elements that get's added between the children, in other +// words it maps to space prop that user passes. +const sizes = { + 'gutter': 0, + '2xs': 1, + 'xs': 2, + 'sm': 3, + 'md': 4, + 'lg': 6, + 'xl': 7, + '2xl': 8, +}; +export default { + baseStyle, + defaultProps, + sizes, +}; diff --git a/src/theme/v33x-theme/components/stat.ts b/src/theme/v33x-theme/components/stat.ts new file mode 100644 index 000000000..57fd90f9e --- /dev/null +++ b/src/theme/v33x-theme/components/stat.ts @@ -0,0 +1,27 @@ +const defaultProps = { + _statLabel: { + fontSize: 'xl', + }, + _statNumber: { + fontSize: '4xl', + fontWeight: 'bold', + my: 2, + }, + _statHelpText: { + _text: { + color: 'gray.500', + fontSize: 'xl', + }, + flexDirection: 'row', + alignItems: 'center', + }, + _statGroup: { + flexWrap: 'wrap', + space: 4, + justifyContent: 'space-between', + }, +}; + +export default { + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/statusBar.ts b/src/theme/v33x-theme/components/statusBar.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/statusBar.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/switch.ts b/src/theme/v33x-theme/components/switch.ts new file mode 100644 index 000000000..079396f00 --- /dev/null +++ b/src/theme/v33x-theme/components/switch.ts @@ -0,0 +1,59 @@ +import { mode, getColorScheme } from '../tools'; +import { Platform } from 'react-native'; + +const baseStyle = (props: Record) => { + const colorScheme = getColorScheme(props); + //TODO: Use of Platform can be removed + return { + _disabled: { + opacity: 0.4, + }, + _invalid: { + borderWidth: 1, + borderRadius: 16, + borderColor: 'danger.600', + }, + offTrackColor: mode( + Platform.OS !== 'ios' ? 'gray.400' : 'gray.200', + Platform.OS !== 'ios' ? 'gray.700' : 'gray.600' + )(props), + onTrackColor: mode( + Platform.OS !== 'ios' ? `${colorScheme}.300` : `${colorScheme}.500`, + Platform.OS !== 'ios' ? `${colorScheme}.700` : `${colorScheme}.500` + )(props), + onThumbColor: mode( + Platform.OS !== 'ios' ? `${colorScheme}.600` : 'white', + Platform.OS !== 'ios' ? `${colorScheme}.500` : 'white' + )(props), + offThumbColor: mode( + Platform.OS !== 'ios' ? 'gray.100' : 'white', + Platform.OS !== 'ios' ? 'gray.200' : 'white' + )(props), + }; +}; + +const sizes = { + sm: { + style: { + transform: [{ scale: 0.75 }], + }, + }, + md: {}, + lg: { + style: { + transform: [{ scale: 1.25 }], + }, + margin: 1, + }, +}; + +const defaultProps = { + size: 'md', + colorScheme: 'primary', +}; + +export default { + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/tabs.ts b/src/theme/v33x-theme/components/tabs.ts new file mode 100644 index 000000000..942377b3c --- /dev/null +++ b/src/theme/v33x-theme/components/tabs.ts @@ -0,0 +1,244 @@ +import { getColorFormColorScheme, getColorScheme, mode } from '../tools'; + +function baseStyle(props: Record) { + const activeColor = getColorFormColorScheme(props); + return { + activeTabStyle: { + justifyContent: 'center', + alignItems: 'center', + mb: '-2px', + flexDirection: 'row', + _text: { fontSize: 'sm', fontWeight: 'bold' }, + }, + inactiveTabStyle: { + justifyContent: 'center', + alignItems: 'center', + mb: '-2px', + flexDirection: 'row', + _text: { + color: mode('gray.500', 'gray.400')(props), + fontSize: 'sm', + fontWeight: 'bold', + }, + }, + activeIconProps: { + color: activeColor, + name: 'home', + mx: 2, + }, + inactiveIconProps: { + name: 'home', + mx: 2, + }, + }; +} + +const sizes = { + sm: { + activeTabStyle: { + _text: { fontSize: 'sm' }, + py: 2, + px: 3, + }, + inactiveTabStyle: { + _text: { fontSize: 'sm' }, + py: 2, + px: 3, + }, + }, + md: { + activeTabStyle: { + _text: { fontSize: 'md' }, + py: 3, + px: 4, + }, + inactiveTabStyle: { + _text: { fontSize: 'md' }, + py: 3, + px: 4, + }, + }, + lg: { + activeTabStyle: { + _text: { fontSize: 'lg' }, + py: 4, + px: 5, + }, + inactiveTabStyle: { + _text: { fontSize: 'lg' }, + py: 4, + px: 5, + }, + }, +}; + +function variantOutline(props: Record) { + const activeColor = getColorFormColorScheme(props); + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + activeTabStyle: { + borderColor: activeColor, + _text: { + color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props), + }, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + borderBottomWidth: 2, + }, + inactiveTabStyle: { + borderColor: 'transparent', + borderBottomWidth: 2, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + }, + tabBarStyle: { + borderBottomWidth: 2, + borderColor: mode('muted.200', 'muted.500')(props), + }, + }; +} + +function variantFilled(props: Record) { + const activeColor = getColorFormColorScheme(props); + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + activeTabStyle: { + borderColor: activeColor, + _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + borderBottomWidth: 2, + bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props), + }, + inactiveTabStyle: { + borderColor: 'transparent', + borderBottomWidth: 2, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + }, + tabBarStyle: { + borderBottomWidth: 2, + borderColor: mode('muted.200', 'muted.500')(props), + }, + }; +} + +// function variantEnclosed(props: Record) { +// const activeColor = getColorFormColorScheme(props); +// return { +// activeTabStyle: { +// borderTopWidth: 2, +// borderLeftWidth: 2, +// borderRightWidth: 2, +// borderColor: activeColor, +// }, +// inactiveTabStyle: { +// borderColor: 'muted.200', +// borderBottomWidth: 2, +// }, +// tabBarStyle: {}, +// }; +// } + +function variantFilledOutline(props: Record) { + const activeColor = getColorFormColorScheme(props); + let { colorScheme, status } = props; + colorScheme = getColorScheme( + props, + colorScheme !== 'primary' ? colorScheme : status + ); + return { + activeTabStyle: { + borderColor: activeColor, + _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) }, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + borderBottomWidth: 2, + }, + inactiveTabStyle: { + borderColor: 'transparent', + borderBottomWidth: 2, + _hover: { + bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props), + }, + }, + tabBarStyle: { + borderBottomWidth: 2, + borderColor: mode('muted.200', 'muted.500')(props), + bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props), + }, + }; +} + +// function varientSoftRounded(props: Record) { +// const activeColor = getColorFormColorScheme(props); +// return { +// activeTabStyle: { +// borderRadius: 'full', +// bg: transparentize(activeColor, 0.7)(props.theme), +// color: 'white', +// }, +// inactiveTabStyle: {}, +// tabBarStyle: {}, +// }; +// } + +// function varientSolidRounded(props: Record) { +// const activeColor = getColorFormColorScheme(props); +// return { +// activeTabStyle: { +// borderRadius: 'full', +// bg: activeColor, +// color: 'white', +// }, +// inactiveTabStyle: {}, +// tabBarStyle: {}, +// }; +// } + +// function varientSolidBox(props: Record) { +// const activeColor = getColorFormColorScheme(props); +// return { +// activeTabStyle: { +// bg: activeColor, +// color: 'white', +// }, +// inactiveTabStyle: {}, +// tabBarStyle: {}, +// }; +// } + +const variants = { + 'outline': variantOutline, + 'filled': variantFilled, + 'filled-outline': variantFilledOutline, + // 'soft-rounded': varientSoftRounded, + // 'solid-rounded': varientSolidRounded, + // 'solid-box': varientSolidBox, +}; + +const defaultProps = { + size: 'md', + variant: 'outline', + colorScheme: 'primary', +}; + +export default { + baseStyle, + variants, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/tag.ts b/src/theme/v33x-theme/components/tag.ts new file mode 100644 index 000000000..8dd78e686 --- /dev/null +++ b/src/theme/v33x-theme/components/tag.ts @@ -0,0 +1,55 @@ +import Badge from './badge'; + +const { variants } = Badge; +const baseStyle = { + _text: { + fontWeight: 'medium', + // lineHeight: 1.2, + }, + alignItems: 'center', + justifyContent: 'center', + flexDirection: 'row', + display: 'flex', +}; +const sizes = { + sm: { + minH: 5, + minW: 5, + _text: { + fontSize: 'xs', + }, + p: 1, + borderRadius: 'sm', + }, + md: { + minH: 6, + minW: 6, + _text: { + fontSize: 'sm', + }, + borderRadius: 'md', + p: 2, + }, + lg: { + minH: 8, + minW: 8, + _text: { + fontSize: 'md', + }, + borderRadius: 'md', + p: 3, + }, +}; + +const defaultProps = { + size: 'md', + variant: 'subtle', + colorScheme: 'primary', +}; + +export default { + variants, + baseStyle, + sizes, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/text.ts b/src/theme/v33x-theme/components/text.ts new file mode 100644 index 000000000..83ae680ca --- /dev/null +++ b/src/theme/v33x-theme/components/text.ts @@ -0,0 +1,16 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + color: mode('coolGray.800', 'warmGray.50')(props), + fontWeight: '400', + fontFamily: 'body', + fontStyle: 'normal', + fontSize: 'sm', + letterSpacing: 'md', + lineHeight: 'lg', + }; +}; +const defaultProps = {}; + +export default { baseStyle, defaultProps }; diff --git a/src/theme/v33x-theme/components/textField.ts b/src/theme/v33x-theme/components/textField.ts new file mode 100644 index 000000000..9fe3f693b --- /dev/null +++ b/src/theme/v33x-theme/components/textField.ts @@ -0,0 +1,26 @@ +import { mode } from '../tools'; + +// TextField +const baseStyle = (props: Record) => { + return { + _errorMessageProps: { + mt: 1, + ml: 3, + fontSize: 'xs', + color: 'error.400', + }, + _helperTextProps: { + mt: 1, + ml: 3, + fontSize: 'xs', + color: mode('muted.400', 'muted.500')(props), + }, + }; +}; + +export const TextField = { + baseStyle, + defaultProps: { + component: 'input', + }, +}; diff --git a/src/theme/v33x-theme/components/textarea.ts b/src/theme/v33x-theme/components/textarea.ts new file mode 100644 index 000000000..b8a4318c3 --- /dev/null +++ b/src/theme/v33x-theme/components/textarea.ts @@ -0,0 +1,11 @@ +import { Platform } from 'react-native'; + +const baseStyle = { + multiline: true, + p: '2', + totalLines: 4, + h: Platform.select({ ios: 20 }), + textAlignVertical: 'top', +}; + +export default { baseStyle }; diff --git a/src/theme/v33x-theme/components/toast.ts b/src/theme/v33x-theme/components/toast.ts new file mode 100644 index 000000000..eb9d5e0e9 --- /dev/null +++ b/src/theme/v33x-theme/components/toast.ts @@ -0,0 +1,26 @@ +import { mode } from '../tools'; + +const baseStyle = (props: Record) => { + return { + bg: mode(`coolGray.600`, `warmGray.200`)(props), + p: '2', + rounded: 'sm', + shadow: 1, + _title: { + color: mode(`warmGray.200`, `coolGray.600`)(props), + fontWeight: 700, + }, + _description: { + color: mode(`warmGray.200`, `coolGray.600`)(props), + fontWeight: 400, + }, + _closeIcon: { + size: 4, + }, + }; +}; + +export const Toast = { + baseStyle, + defaultProps: {}, +}; diff --git a/src/theme/v33x-theme/components/tooltip.ts b/src/theme/v33x-theme/components/tooltip.ts new file mode 100644 index 000000000..7eaf200eb --- /dev/null +++ b/src/theme/v33x-theme/components/tooltip.ts @@ -0,0 +1,19 @@ +import { mode } from '../tools'; + +const baseStyle = (props: any) => { + return { + bg: mode(`gray.700`, `gray.300`)(props), + py: 1, + px: 2, + rounded: 'sm', + shadow: 1, + _text: { + color: mode(`gray.300`, `gray.700`)(props), + fontSize: 'sm', + }, + }; +}; + +export const Tooltip = { + baseStyle, +}; diff --git a/src/theme/v33x-theme/components/transitions.ts b/src/theme/v33x-theme/components/transitions.ts new file mode 100644 index 000000000..437221e65 --- /dev/null +++ b/src/theme/v33x-theme/components/transitions.ts @@ -0,0 +1,58 @@ +//Fade +// const fadeDefaultProps = { +// entryDuration: 500, +// exitDuration: 500, +// }; + +export const fadeBaseStyle = { + initial: { opacity: 0 }, + animate: { opacity: 1, transition: { duration: 500 } }, + exit: { opacity: 0, transition: { duration: 500 } }, +}; +export const Fade = { + baseStyle: fadeBaseStyle, +}; + +//ScaleFade +//Can be commented if not used anywhere else +// const scaleFadeDefaultProps = { +// duration: 500, +// initialScale: 0.9, +// }; + +const scaleBaseStyle = { + initial: { opacity: 0, scale: 0.9 }, + animate: { opacity: 1, scale: 1, transition: 500 }, + exit: { opacity: 0, scale: 0.9, transition: 500 }, +}; +export const ScaleFade = { + baseStyle: scaleBaseStyle, +}; + +//Slide +const slideDefaultProps = { + duration: 500, + placement: 'bottom', + overlay: true, + _overlay: { isOpen: true }, +}; + +export const Slide = { + baseStyle: { + h: '100%', + pointerEvents: 'box-none', + _overlay: { style: { overflow: 'hidden' } }, + }, + defaultProps: slideDefaultProps, +}; + +//SlideFade +const slideFadeDefaultProps = { + duration: 500, + offsetX: 10, + offsetY: 10, +}; + +export const SlideFade = { + defaultProps: slideFadeDefaultProps, +}; diff --git a/src/theme/v33x-theme/components/typeahead.ts b/src/theme/v33x-theme/components/typeahead.ts new file mode 100644 index 000000000..18931ad5e --- /dev/null +++ b/src/theme/v33x-theme/components/typeahead.ts @@ -0,0 +1,17 @@ +import { mode } from '../tools/colors'; + +const typeaheadSearchItemBaseStyle = (props: Record) => { + return { + backgroundColor: mode('gray.100', 'gray.600')(props), + _focus: { + backgroundColor: mode('primary.300', 'primary.700')(props), + }, + _disabled: { + backgroundColor: 'gray.200', + }, + }; +}; + +export const TypeAheadSearchItem = { + baseStyle: typeaheadSearchItemBaseStyle, +}; diff --git a/src/theme/v33x-theme/components/view.ts b/src/theme/v33x-theme/components/view.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/view.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/vstack.ts b/src/theme/v33x-theme/components/vstack.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/vstack.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/components/wrap.ts b/src/theme/v33x-theme/components/wrap.ts new file mode 100644 index 000000000..210875c74 --- /dev/null +++ b/src/theme/v33x-theme/components/wrap.ts @@ -0,0 +1,2 @@ +// Wrap +export const Wrap = {}; diff --git a/src/theme/v33x-theme/components/zstack.ts b/src/theme/v33x-theme/components/zstack.ts new file mode 100644 index 000000000..7d6cde895 --- /dev/null +++ b/src/theme/v33x-theme/components/zstack.ts @@ -0,0 +1,6 @@ +const baseStyle = {}; +const defaultProps = {}; +export default { + baseStyle, + defaultProps, +}; diff --git a/src/theme/v33x-theme/index.ts b/src/theme/v33x-theme/index.ts new file mode 100644 index 000000000..ccc21a690 --- /dev/null +++ b/src/theme/v33x-theme/index.ts @@ -0,0 +1,27 @@ +import base from './base'; +import components from './components'; +import * as tools from './tools'; +//@ts-ignore +import type { ColorModeOptions } from './../core/color-mode/types'; + +const config: ColorModeOptions = { + useSystemColorMode: false, // TODO: implement this + initialColorMode: 'light', + accessibleColors: false, +}; + +const v33xTheme = { + ...base, + components, + config, +}; + +export type V33xTheme = typeof v33xTheme & { fontConfig: any }; + +export interface ICustomTheme {} + +export interface IV33xTheme + extends ICustomTheme, + Omit {} + +export { v33xTheme, tools as themeTools }; diff --git a/src/theme/v33x-theme/tools/colors.ts b/src/theme/v33x-theme/tools/colors.ts new file mode 100644 index 000000000..b58636b28 --- /dev/null +++ b/src/theme/v33x-theme/tools/colors.ts @@ -0,0 +1,96 @@ +import get from 'lodash.get'; +import isEmpty from 'lodash.isempty'; +import Color from 'tinycolor2'; +import type { Dict } from './utils'; + +export function mode(light: any, dark: any) { + return (props: any) => (props.colorMode === 'dark' ? dark : light); +} + +export const transparentize = (color: string, opacity: number) => ( + theme: Dict +) => { + const raw = getColor(theme, color); + return Color(raw).setAlpha(opacity).toRgbString(); +}; + +export const getColor = (theme: Dict, color: string, fallback?: string) => { + const hex = get(theme, `colors.${color}`, color); + const isValid = Color(hex).isValid(); + return isValid ? hex : fallback; +}; + +export const tone = (color: string) => (theme: Dict) => { + const hex = getColor(theme, color); + const isDark = Color(hex).isDark(); + return isDark ? 'dark' : 'light'; +}; + +export const isDark = (color: string) => (theme: Dict) => + tone(color)(theme) === 'dark'; + +export const isLight = (color: string) => (theme: Dict) => + tone(color)(theme) === 'light'; + +interface RandomColorOptions { + /** + * If passed, string will be used to generate + * random color + */ + string?: string; + /** + * List of colors to pick from at random + */ + colors?: string[]; +} +export function randomColor(opts?: RandomColorOptions) { + const fallback = Color.random().toHexString(); + + if (!opts || isEmpty(opts)) { + return fallback; + } + + if (opts.string && opts.colors) { + return randomColorFromList(opts.string, opts.colors); + } + + if (opts.string && !opts.colors) { + return randomColorFromString(opts.string); + } + + if (opts.colors && !opts.string) { + return randomFromList(opts.colors); + } + + return fallback; +} + +function randomFromList(list: string[]) { + return list[Math.floor(Math.random() * list.length)]; +} + +function randomColorFromList(str: string, list: string[]) { + let index = 0; + if (str.length === 0) return list[0]; + for (let i = 0; i < str.length; i++) { + index = str.charCodeAt(i) + ((index << 5) - index); + index = index & index; + } + index = ((index % list.length) + list.length) % list.length; + return list[index]; +} + +function randomColorFromString(str: string) { + let hash = 0; + if (str.length === 0) return hash.toString(); + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + hash = hash & hash; + } + let color = '#'; + for (let j = 0; j < 3; j++) { + const value = (hash >> (j * 8)) & 255; + color += ('00' + value.toString(16)).substr(-2); + } + return color; +} diff --git a/src/theme/v33x-theme/tools/index.ts b/src/theme/v33x-theme/tools/index.ts new file mode 100644 index 000000000..1b65dd8d4 --- /dev/null +++ b/src/theme/v33x-theme/tools/index.ts @@ -0,0 +1,2 @@ +export * from './colors'; +export * from './utils'; diff --git a/src/theme/v33x-theme/tools/platformUnits.test.js b/src/theme/v33x-theme/tools/platformUnits.test.js new file mode 100644 index 000000000..0ee651233 --- /dev/null +++ b/src/theme/v33x-theme/tools/platformUnits.test.js @@ -0,0 +1,39 @@ +import { Platform } from 'react-native'; +import theme from '../base'; +import { platformSpecificSpaceUnits } from './utils'; + +describe('platform units on native', () => { + it('should convert px to absolute on native', () => { + Platform.OS = 'ios'; + const newTheme = { ...theme }; + newTheme.space = { xs: '1px' }; + const convertedTheme = platformSpecificSpaceUnits(newTheme); + expect(convertedTheme.space).toEqual({ xs: 1 }); + }); + + it('should convert rem to absolute on native', () => { + Platform.OS = 'ios'; + const newTheme = { ...theme }; + newTheme.space = { xs: '2rem' }; + const convertedTheme = platformSpecificSpaceUnits(newTheme); + expect(convertedTheme.space).toEqual({ xs: 32 }); + }); +}); + +describe('platform units on web', () => { + it('should not convert px to rem on web', () => { + Platform.OS = 'web'; + const newTheme = { ...theme }; + newTheme.space = { xs: '23px' }; + const convertedTheme = platformSpecificSpaceUnits(newTheme); + expect(convertedTheme.space).toEqual({ xs: '23px' }); + }); + + it('should convert absolute to rem on web', () => { + Platform.OS = 'web'; + const newTheme = { ...theme }; + newTheme.space = { xs: 23 }; + const convertedTheme = platformSpecificSpaceUnits(newTheme); + expect(convertedTheme.space).toEqual({ xs: '1.4375rem' }); + }); +}); diff --git a/src/theme/v33x-theme/tools/utils.ts b/src/theme/v33x-theme/tools/utils.ts new file mode 100644 index 000000000..c4d20560b --- /dev/null +++ b/src/theme/v33x-theme/tools/utils.ts @@ -0,0 +1,334 @@ +import omitBy from 'lodash.omitby'; +import isNil from 'lodash.isnil'; +import pick from 'lodash.pick'; +import omit from 'lodash.omit'; +import get from 'lodash.get'; +import type { IV33xTheme } from '../index'; +import { Platform } from 'react-native'; + +export const stylingProps = { + margin: [ + 'margin', + 'm', + 'marginTop', + 'mt', + 'marginRight', + 'mr', + 'marginBottom', + 'mb', + 'marginLeft', + 'ml', + 'marginX', + 'mx', + 'marginY', + 'my', + ], + padding: [ + 'padding', + 'p', + 'paddingTop', + 'pt', + 'paddingRight', + 'pr', + 'paddingBottom', + 'pb', + 'paddingLeft', + 'pl', + 'paddingX', + 'px', + 'paddingY', + 'py', + ], + border: [ + 'border', + 'borderWidth', + 'borderStyle', + 'borderColor', + 'borderRadius', + 'borderTop', + 'borderTopWidth', + 'borderTopStyle', + 'borderTopColor', + 'borderTopLeftRadius', + 'borderTopRightRadius', + 'borderRight', + 'borderRightWidth', + 'borderRightStyle', + 'borderRightColor', + 'borderBottom', + 'borderBottomWidth', + 'borderBottomStyle', + 'borderBottomColor', + 'borderBottomLeftRadius', + 'borderBottomRightRadius', + 'borderLeft', + 'borderLeftWidth', + 'borderLeftStyle', + 'borderLeftColor', + 'borderX', + 'borderY', + ], + layout: [ + 'width', + 'w', + 'height', + 'h', + 'display', + 'minWidth', + 'minW', + 'minH', + 'minHeight', + 'maxWidth', + 'maxW', + 'maxHeight', + 'maxH', + 'size', + 'verticalAlign', + 'overflow', + 'overflowX', + 'overflowY', + ], + flexbox: [ + 'alignItems', + 'alignContent', + 'justifyItems', + 'justifyContent', + 'flexWrap', + 'flexDirection', + 'flex', + 'flexGrow', + 'flexShrink', + 'flexBasis', + 'justifySelf', + 'alignSelf', + 'order', + ], + position: ['position', 'zIndex', 'top', 'right', 'bottom', 'left'], + background: ['bg', 'backgroundColor', 'bgColor'], +}; +export type Dict = Record; +export function omitUndefined(obj: any) { + return omitBy(obj, isNil); +} +export function getRandomString(length: number) { + var result = ''; + var characters = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + var charactersLength = characters.length; + for (var i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} +// Inefficient way for pick, but retains order of props. +function orderedPick(obj: any, values: any) { + const ret: any = {}; + Object.keys(obj).forEach((key: string) => { + if (values.includes(key)) { + ret[key] = obj[key]; + } + }); + return ret; +} +export function orderedExtractInObject(parent: any, values: Array) { + return [ + omitUndefined(orderedPick(parent, values)), + omitUndefined(omit(parent, values)), + ]; +} +/** + * + * @param parent The object from which data needs to extracted + * @param values Keys which needs to be extracted + * @returns [extractedProps, remainingProps] + */ +export function extractInObject(parent: any, values: Array) { + return [ + omitUndefined(pick(parent, values)), + omitUndefined(omit(parent, values)), + ]; +} +export function getColorFormColorScheme(props: Record) { + const { theme, colorScheme, isDisabled } = props; + const simpleColorScheme = colorScheme.split('.')[0]; + if (isDisabled) return 'gray.300'; + else if (simpleColorScheme in theme.colors) { + return theme.colors[simpleColorScheme][0] === '#' + ? simpleColorScheme + : theme.colors[simpleColorScheme][400] || + theme.colors[simpleColorScheme][200]; + } else return 'primary.200'; +} + +// TODO: This function can be removed. +export function getColorScheme( + props: Record, + customColorScheme?: string +) { + let { theme, colorScheme } = props; + colorScheme = customColorScheme || colorScheme; + if (!(colorScheme in theme.colors)) return 'primary'; + else { + if (typeof theme.colors[colorScheme] === 'object') return colorScheme; + } +} +export const inValidBreakpointProps = ['style', 'children', 'shadowOffset']; +export function hasValidBreakpointFormat( + breaks: any, + themeBreakpoints?: any, + property?: string +) { + if (property && inValidBreakpointProps.indexOf(property) !== -1) { + return false; + } else if (Array.isArray(breaks)) { + return breaks.length ? true : false; + } else if (typeof breaks === 'object' && breaks !== null) { + const keys = Object.keys(breaks); + const themeBreakPointKeys = Object.keys(themeBreakpoints); + for (let i = 0; i < keys.length; i++) { + if (themeBreakPointKeys.indexOf(keys[i]) === -1) { + return false; + } + } + return true; + } else { + return false; + } +} +export function findLastValidBreakpoint( + values: any, + themeBreakpoints: any, + currentBreakpoint: number +) { + const valArray = Array.isArray(values) + ? values + : Object.keys(themeBreakpoints).map((bPoint: string) => values[bPoint]); + return ( + valArray[currentBreakpoint] ?? + valArray + .slice(0, currentBreakpoint + 1) + .filter((v: any) => !isNil(v)) + .pop() + ); +} +export function getClosestBreakpoint( + values: Record, + point: number +) { + const dimValues = Object.values(values); + let index = -1; + let breakpointsObj: any = {}; + for (let i = 0; i < dimValues.length; i++) { + breakpointsObj[dimValues[i]] = i; + } + const breakpoints = Object.keys(breakpointsObj); + for (let i = 0; i < breakpoints.length; i++) { + if (parseInt(breakpoints[i]) === point) { + index = breakpointsObj[breakpoints[i]]; + break; + } else if (parseInt(breakpoints[i]) > point && i !== 0) { + index = breakpointsObj[breakpoints[i - 1]]; + break; + } + // If windowWidth is greater than last available breakpoint clamp it to last index + else if (parseInt(breakpoints[i]) < point && i === dimValues.length - 1) { + index = breakpointsObj[breakpoints[i]]; + break; + } + } + return index; +} + +export const baseFontSize = 16; + +export const convertAbsoluteToRem = (px: number) => { + return `${px / baseFontSize}rem`; +}; + +export const convertRemToAbsolute = (rem: number) => { + return rem * baseFontSize; +}; + +export const convertToDp = (value: number | string): number => { + const numberRegex = /^\d+$/; + + if (typeof value === 'number') { + return value; + } else { + const isAbsolute = numberRegex.test(value); + const isPx = !isAbsolute && value.endsWith('px'); + const isRem = !isAbsolute && value.endsWith('rem'); + const isEm = !isAbsolute && value.endsWith('em'); + + let finalDpValue = 0; + + if (isAbsolute || isPx) { + finalDpValue = parseFloat(value); + } else if (isEm) { + finalDpValue = convertRemToAbsolute(parseFloat(value)); + } else if (isRem) { + finalDpValue = convertRemToAbsolute(parseFloat(value)); + } + + return finalDpValue; + } +}; + +/** + * + * @param theme + * @description + - Converts space/sizes/lineHeights/letterSpacings/fontSizes to `rem` on web if the token value specified is an absolute number. + - Converts space/sizes/lineHeights/letterSpacings/fontSizes to absolute number on native if the token value specified is in `px` or `rem` +*/ +export const platformSpecificSpaceUnits = (theme: IV33xTheme) => { + const scales = ['space', 'sizes', 'fontSizes']; + + const newTheme = { ...theme }; + const isWeb = Platform.OS === 'web'; + scales.forEach((key) => { + const scale = get(theme, key, {}); + const newScale = { ...scale }; + for (const scaleKey in scale) { + const val = scale[scaleKey]; + if (typeof val !== 'object') { + const isAbsolute = typeof val === 'number'; + const isPx = !isAbsolute && val.endsWith('px'); + const isRem = !isAbsolute && val.endsWith('rem'); + + // If platform is web, we need to convert absolute unit to rem. e.g. 16 to 1rem + if (isWeb) { + if (isAbsolute) { + newScale[scaleKey] = convertAbsoluteToRem(val); + } + } + // If platform is not web, we need to convert px unit to absolute and rem unit to absolute. e.g. 16px to 16. 1rem to 16. + else { + if (isRem) { + newScale[scaleKey] = convertRemToAbsolute(parseFloat(val)); + } else if (isPx) { + newScale[scaleKey] = parseFloat(val); + } + } + } + } + //@ts-ignore + newTheme[key] = newScale; + }); + + return newTheme; +}; +export function isResponsiveAnyProp(props: Record, theme: any) { + if (props) { + const keys = Object.keys(props); + for (let i = 0; i < keys.length; i++) { + if ( + hasValidBreakpointFormat(props[keys[i]], theme.breakpoints, keys[i]) + ) { + return true; + } + } + } + + return false; +} From 3fae194141882be37a4d9b7dfe67e3dc4fbd5417 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 22 Mar 2022 17:52:28 +0530 Subject: [PATCH 121/172] fix: avatar badge design changes --- src/theme/components/avatar-badge.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/theme/components/avatar-badge.ts b/src/theme/components/avatar-badge.ts index ef825e05c..afc476c90 100644 --- a/src/theme/components/avatar-badge.ts +++ b/src/theme/components/avatar-badge.ts @@ -1,15 +1,18 @@ -import { mode } from './../tools'; - -function baseStyle(props: Record) { +function baseStyle() { return { borderRadius: 'full', borderWidth: 2, - borderColor: mode('light.50', 'gray.800')(props), - bg: mode('gray.600', 'light.100')(props), + bg: 'success.600', size: 3, position: 'absolute', right: 0, bottom: 0, + _light: { + borderColor: 'muted.50', + }, + _dark: { + borderColor: 'muted.900', + }, }; } From 5d8b4e5f5819f56842e67dad053ad7ba8d5b90e0 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Tue, 22 Mar 2022 17:53:27 +0530 Subject: [PATCH 122/172] fix: avatar group design changes --- src/theme/components/avatar-group.ts | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/theme/components/avatar-group.ts b/src/theme/components/avatar-group.ts index 8a8d65f63..1baf31401 100644 --- a/src/theme/components/avatar-group.ts +++ b/src/theme/components/avatar-group.ts @@ -1,15 +1,30 @@ -import { mode } from '../tools'; - -function baseStyle({ isVertical, ...props }: Record) { +function baseStyle({ isVertical }: Record) { return { flexDirection: isVertical ? 'column-reverse' : 'row-reverse', space: -4, _avatar: { - borderColor: mode('gray.50', 'gray.800')(props), borderWidth: 2, }, _hiddenAvatarPlaceholder: { - bg: mode('gray.600', 'gray.100')(props), + _text: { + color: 'text.50', + }, + }, + _light: { + _avatar: { + borderColor: 'muted.50', + }, + _hiddenAvatarPlaceholder: { + bg: 'gray.600', + }, + }, + _dark: { + _avatar: { + borderColor: 'muted.900', + }, + _hiddenAvatarPlaceholder: { + bg: 'gray.600', + }, }, }; } From b5fe731aaee4134f85e72c550a35fc27180084e3 Mon Sep 17 00:00:00 2001 From: Suraj Ahmed Date: Wed, 23 Mar 2022 13:15:04 +0530 Subject: [PATCH 123/172] v3.4.0-alpha.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d290e7071..47169ba4f 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "prettier --write" ] }, - "version": "3.3.7", + "version": "3.4.0-alpha.6", "license": "MIT", "private": false, "main": "lib/commonjs/index", From bc9f3eaa04597da666a7486a5d315192bff1afc8 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 23 Mar 2022 16:33:08 +0530 Subject: [PATCH 124/172] fix: flex darkmode text color --- .../components/primitives/Flex/basic.tsx | 164 +++++++++++++----- 1 file changed, 116 insertions(+), 48 deletions(-) diff --git a/example/storybook/stories/components/primitives/Flex/basic.tsx b/example/storybook/stories/components/primitives/Flex/basic.tsx index 3fe62576d..19b84f1bb 100644 --- a/example/storybook/stories/components/primitives/Flex/basic.tsx +++ b/example/storybook/stories/components/primitives/Flex/basic.tsx @@ -16,24 +16,41 @@ export function Example() { {/* flexDirection -> row */} row - -
+ +
100
-
+
200
-
+
300
-
+
400
@@ -41,72 +58,123 @@ export function Example() { {/* flexDirection -> column */} column - -
+ +
100
-
+
200
-
+
300
-
+
400
{/* flexDirection -> row-reverse */} row-reverse - -
+ +
100
-
+
200
-
+
300
-
+
400
{/* flexDirection -> column-reverse */} column-reverse - -
+ +
100
-
+
200
-
+
300
-
+
400
From 4fd0a96b2f1fffe49777142e12cfa3a1dd80fbe8 Mon Sep 17 00:00:00 2001 From: amars29 Date: Mon, 28 Mar 2022 11:34:04 +0530 Subject: [PATCH 125/172] feat: upgraded expo --- example/package.json | 42 +- example/yarn.lock | 5009 +++++++++++++++++------------------------- 2 files changed, 2031 insertions(+), 3020 deletions(-) diff --git a/example/package.json b/example/package.json index 518698c84..4dec2df33 100644 --- a/example/package.json +++ b/example/package.json @@ -16,27 +16,27 @@ "update-test": "yarn test -u" }, "dependencies": { - "@expo/vector-icons": "^12.0.2", + "@expo/vector-icons": "^12.0.0", "@react-native-aria/overlays": "^0.2.9", - "@react-native-async-storage/async-storage": "^1.15.7", - "expo": "~40.0.0", - "expo-font": "~8.4.0", - "expo-linear-gradient": "^9.1.0", - "expo-splash-screen": "^0.8.1", - "expo-status-bar": "~1.0.3", + "@react-native-async-storage/async-storage": "~1.15.0", + "expo": "^44.0.0", + "expo-font": "~10.0.4", + "expo-linear-gradient": "~11.0.3", + "expo-splash-screen": "~0.14.1", + "expo-status-bar": "~1.2.0", "formik": "^2.2.6", - "react": "16.13.1", + "react": "17.0.1", "react-hook-form": "^6.14.0", - "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz", + "react-native": "https://github.com/expo/react-native/archive/sdk-44.0.0.tar.gz", "react-native-keyboard-aware-scroll-view": "^0.9.4", - "react-native-safe-area-context": "^3.1.9", - "react-native-svg": "^12.1.0", - "react-native-web": "^0.16.5" + "react-native-safe-area-context": "3.3.2", + "react-native-svg": "12.1.1", + "react-native-web": "0.17.1" }, "devDependencies": { - "@babel/core": "~7.9.0", + "@babel/core": "^7.12.9", "@babel/runtime": "^7.12.5", - "@expo/webpack-config": "^0.12.51", + "@expo/webpack-config": "~0.16.2", "@storybook/addon-actions": "^5.3", "@storybook/addon-knobs": "^5.3", "@storybook/addon-links": "^5.3", @@ -45,20 +45,20 @@ "@storybook/addon-storyshots": "^6.3.4", "@storybook/react-native": "^5.3.23", "@storybook/react-native-server": "^5.3.23", - "@types/react": "~16.9.35", - "@types/react-dom": "~16.9.8", - "@types/react-native": "~0.63.2", + "@types/react": "~17.0.21", + "@types/react-dom": "~17.0.9", + "@types/react-native": "~0.64.12", "babel-loader": "^8.2.2", "babel-plugin-module-resolver": "^4.0.0", "core-js": "3.6.5", - "jest": "^27.0.6", - "jest-expo": "^42.0.1", + "jest": "^26.6.3", + "jest-expo": "^44.0.0", "metro-react-native-babel-preset": "^0.64.0", "patch-package": "^6.2.2", "postinstall-postinstall": "^2.1.0", - "react-dom": "^17.0.2", + "react-dom": "17.0.1", "react-test-renderer": "^17.0.2", - "typescript": "4.2.4" + "typescript": "~4.3.5" }, "private": false } diff --git a/example/yarn.lock b/example/yarn.lock index 67b17c66f..ddebb5769 100644 --- a/example/yarn.lock +++ b/example/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@babel/code-frame@7.10.4", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3", "@babel/code-frame@~7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -23,6 +30,13 @@ dependencies: "@babel/highlight" "^7.14.5" +"@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" @@ -33,6 +47,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.9.tgz#ac7996ceaafcf8f410119c8af0d1db4cf914a210" integrity sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw== +"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -77,7 +96,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.0", "@babel/core@^7.4.5": +"@babel/core@^7.0.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== @@ -98,7 +117,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.7.2", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.7.5": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== @@ -119,29 +138,28 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@~7.9.0": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" +"@babel/core@^7.1.6", "@babel/core@^7.12.9": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" + integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.8" + "@babel/parser" "^7.17.8" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" + semver "^6.3.0" -"@babel/generator@^7.12.10", "@babel/generator@^7.5.0", "@babel/generator@^7.9.0", "@babel/generator@^7.9.6": +"@babel/generator@^7.12.10", "@babel/generator@^7.5.0", "@babel/generator@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz#2b188fc329fb8e4f762181703beffc0fe6df3460" integrity sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww== @@ -150,7 +168,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.14.8", "@babel/generator@^7.14.9", "@babel/generator@^7.7.2": +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.14.8", "@babel/generator@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.9.tgz#23b19c597d38b4f7dc2e3fe42a69c88d9ecfaa16" integrity sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA== @@ -159,6 +177,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" @@ -173,6 +200,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" @@ -189,6 +223,14 @@ "@babel/helper-explode-assignable-expression" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-builder-react-jsx-experimental@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.10.tgz#a58cb96a793dc0fcd5c9ed3bb36d62fdc60534c2" @@ -226,6 +268,16 @@ browserslist "^4.16.6" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" @@ -249,6 +301,19 @@ "@babel/helper-replace-supers" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" + integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-regexp-features-plugin@^7.12.1": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" @@ -265,6 +330,14 @@ "@babel/helper-annotate-as-pure" "^7.14.5" regexpu-core "^4.7.1" +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" + "@babel/helper-define-map@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" @@ -302,6 +375,27 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-explode-assignable-expression@^7.10.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" @@ -316,6 +410,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" @@ -334,6 +435,15 @@ "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-get-function-arity@^7.10.4": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" @@ -348,6 +458,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -362,6 +479,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-member-expression-to-functions@^7.12.1": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" @@ -376,6 +500,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" @@ -390,6 +521,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.9.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" @@ -419,6 +557,20 @@ "@babel/traverse" "^7.14.8" "@babel/types" "^7.14.8" +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/helper-optimise-call-expression@^7.10.4": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" @@ -433,6 +585,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" @@ -443,6 +602,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + "@babel/helper-remap-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" @@ -461,6 +625,15 @@ "@babel/helper-wrap-function" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + "@babel/helper-replace-supers@^7.12.1": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" @@ -481,6 +654,17 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-simple-access@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" @@ -495,6 +679,13 @@ dependencies: "@babel/types" "^7.14.8" +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" @@ -509,6 +700,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" @@ -523,6 +721,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" @@ -533,6 +738,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -543,6 +753,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + "@babel/helper-wrap-function@^7.10.4": version "7.12.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" @@ -563,7 +778,17 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.9.0", "@babel/helpers@^7.9.6": +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.9.0": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== @@ -581,6 +806,15 @@ "@babel/traverse" "^7.14.8" "@babel/types" "^7.14.8" +"@babel/helpers@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" + integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -599,16 +833,37 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.7", "@babel/parser@^7.9.0", "@babel/parser@^7.9.6": +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.7", "@babel/parser@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81" integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA== -"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.14.9", "@babel/parser@^7.7.2": +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.9.tgz#596c1ad67608070058ebf8df50c1eaf65db895a4" integrity sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ== +"@babel/parser@^7.1.6", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" @@ -618,12 +873,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-external-helpers@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz#920baa1569a8df5d5710abc342c7b1ac8968ed76" - integrity sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" @@ -643,7 +900,16 @@ "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.4.4", "@babel/plugin-proposal-class-properties@^7.7.0": +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.7.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== @@ -651,6 +917,14 @@ "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-proposal-class-properties@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" @@ -668,6 +942,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-proposal-decorators@^7.12.12": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" @@ -677,14 +960,16 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-decorators" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.6.0": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" - integrity sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== +"@babel/plugin-proposal-decorators@^7.12.9": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz#4f0444e896bee85d35cf714a006fc5418f87ff00" + integrity sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-decorators" "^7.12.1" + "@babel/helper-create-class-features-plugin" "^7.17.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.17.0" + charcodes "^0.2.0" "@babel/plugin-proposal-dynamic-import@^7.12.1": version "7.12.1" @@ -702,6 +987,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-export-default-from@^7.0.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.1.tgz#c6e62d668a8abcfe0d28b82f560395fecb611c5a" @@ -734,6 +1027,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" @@ -750,6 +1051,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-proposal-logical-assignment-operators@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" @@ -766,7 +1075,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.7.4": +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== @@ -774,6 +1091,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" @@ -798,6 +1123,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.6.2": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" @@ -818,6 +1151,17 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.5" +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== + dependencies: + "@babel/compat-data" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" @@ -834,7 +1178,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.7.5": +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== @@ -843,6 +1195,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" +"@babel/plugin-proposal-optional-chaining@^7.1.0", "@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-optional-chaining@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" @@ -868,6 +1229,14 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-proposal-private-property-in-object@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" @@ -878,6 +1247,16 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" @@ -894,6 +1273,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-unicode-property-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -929,13 +1316,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz#81a8b535b284476c41be6de06853a8802b98c5dd" - integrity sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-decorators@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" @@ -943,6 +1323,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-decorators@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" + integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" @@ -978,6 +1365,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-flow@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" + integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -1006,6 +1400,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-jsx@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -1076,13 +1477,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.14.5", "@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-typescript@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" @@ -1097,6 +1505,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" @@ -1115,6 +1530,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.14.5" +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" @@ -1129,6 +1553,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" @@ -1143,6 +1574,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" @@ -1170,6 +1608,20 @@ "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" @@ -1184,6 +1636,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" @@ -1198,6 +1657,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" @@ -1214,6 +1680,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-dotall-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-duplicate-keys@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" @@ -1228,6 +1702,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" @@ -1244,6 +1725,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-flow-strip-types@^7.0.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.10.tgz#d85e30ecfa68093825773b7b857e5085bbd32c95" @@ -1252,6 +1741,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-flow" "^7.12.1" +"@babel/plugin-transform-flow-strip-types@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" + integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" @@ -1266,6 +1763,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" @@ -1282,6 +1786,15 @@ "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" @@ -1296,6 +1809,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" @@ -1310,6 +1830,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-modules-amd@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" @@ -1328,7 +1855,16 @@ "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.5.0": +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== @@ -1338,6 +1874,16 @@ "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.1.0", "@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz#d86b217c8e45bb5f2dbc11eefc8eab62cf980d19" + integrity sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA== + dependencies: + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-commonjs@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" @@ -1370,6 +1916,17 @@ "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-umd@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" @@ -1386,6 +1943,14 @@ "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" @@ -1400,6 +1965,13 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/plugin-transform-new-target@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" @@ -1414,6 +1986,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-object-assign@^7.0.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.1.tgz#9102b06625f60a5443cc292d32b565373665e1e4" @@ -1437,6 +2016,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" @@ -1451,6 +2038,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" @@ -1465,6 +2059,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-react-constant-elements@^7.2.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz#4471f0851feec3231cc9aaa0dccde39947c1ac1e" @@ -1528,6 +2129,17 @@ "@babel/plugin-syntax-jsx" "^7.14.5" "@babel/types" "^7.14.9" +"@babel/plugin-transform-react-jsx@^7.12.17": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" + integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/plugin-transform-react-pure-annotations@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" @@ -1550,6 +2162,13 @@ dependencies: regenerator-transform "^0.14.2" +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" + integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== + dependencies: + regenerator-transform "^0.14.2" + "@babel/plugin-transform-reserved-words@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" @@ -1564,6 +2183,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-runtime@^7.0.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz#af0fded4e846c4b37078e8e5d06deac6cd848562" @@ -1587,6 +2213,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" @@ -1603,6 +2236,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" @@ -1617,6 +2258,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" @@ -1631,6 +2279,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-typeof-symbol@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" @@ -1645,14 +2300,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-typescript@^7.12.1", "@babel/plugin-transform-typescript@^7.5.0": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" - integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.12.1" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-typescript@^7.14.5": version "7.14.6" @@ -1663,6 +2316,24 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript" "^7.14.5" +"@babel/plugin-transform-typescript@^7.16.7": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" + integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + +"@babel/plugin-transform-typescript@^7.5.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.12.1" + "@babel/plugin-transform-unicode-escapes@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" @@ -1677,6 +2348,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" @@ -1693,6 +2371,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/preset-env@^7.12.11": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.9.tgz#4a3bbbd745f20e9121d5925170bef040a21b7819" @@ -1772,7 +2458,87 @@ core-js-compat "^3.16.0" semver "^6.3.0" -"@babel/preset-env@^7.4.4", "@babel/preset-env@^7.4.5", "@babel/preset-env@^7.6.3": +"@babel/preset-env@^7.12.9": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" + +"@babel/preset-env@^7.4.5": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.10.tgz#ca981b95f641f2610531bd71948656306905e6ab" integrity sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA== @@ -1844,6 +2610,15 @@ core-js-compat "^3.8.0" semver "^5.5.0" +"@babel/preset-flow@^7.0.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" + integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-flow-strip-types" "^7.16.7" + "@babel/preset-modules@^0.1.3", "@babel/preset-modules@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" @@ -1855,6 +2630,17 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + "@babel/preset-react@^7.12.10": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" @@ -1867,6 +2653,15 @@ "@babel/plugin-transform-react-jsx-development" "^7.14.5" "@babel/plugin-transform-react-pure-annotations" "^7.14.5" +"@babel/preset-typescript@^7.1.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" + integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" + "@babel/preset-typescript@^7.12.7": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0" @@ -1876,15 +2671,6 @@ "@babel/helper-validator-option" "^7.14.5" "@babel/plugin-transform-typescript" "^7.14.5" -"@babel/preset-typescript@^7.3.3": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz#fc7df8199d6aae747896f1e6c61fc872056632a3" - integrity sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" - "@babel/plugin-transform-typescript" "^7.12.1" - "@babel/register@^7.0.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.10.tgz#19b87143f17128af4dbe7af54c735663b3999f60" @@ -1907,13 +2693,6 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b" - integrity sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" @@ -1953,7 +2732,16 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.9.0", "@babel/traverse@^7.9.6": +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== @@ -1968,7 +2756,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.9.tgz#016126b331210bf06fff29d52971eef8383e556f" integrity sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g== @@ -1983,7 +2771,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.9.0", "@babel/types@^7.9.6": +"@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260" integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw== @@ -2000,6 +2804,14 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2129,27 +2941,16 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@expo/babel-preset-cli@0.2.18": - version "0.2.18" - resolved "https://registry.yarnpkg.com/@expo/babel-preset-cli/-/babel-preset-cli-0.2.18.tgz#136acf8a0efe259e29ebc614b68552e5acb47d86" - integrity sha512-y2IZFynVtRxMQ4uxXYUnrnXZa+pvSH1R1aSUAfC6RsUb2UNOxC6zRehdLGSOyF4s9Wy+j3/CPm6fC0T5UJYoQg== - dependencies: - "@babel/core" "^7.4.5" - "@babel/plugin-proposal-class-properties" "^7.4.4" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4" - "@babel/plugin-proposal-optional-chaining" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" - "@babel/preset-env" "^7.4.4" - "@babel/preset-typescript" "^7.3.3" - -"@expo/config-plugins@3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-3.0.6.tgz#1ba148de2c971cc08c989281f18274d45bf0e5bc" - integrity sha512-hJfxEWfsWuqt4WG3X2F74+tL1JrXZomRBgShKLTMw1vvLe4md70rjTLbmaHkcGb+TfY3RtFZSK8p9oqFXCi8KA== - dependencies: - "@expo/config-types" "^42.0.0" - "@expo/json-file" "8.2.32" - "@expo/plist" "0.0.13" +"@expo/config-plugins@4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.6.tgz#ef52f0e4d96ddd52b4cd4cc8c6efbe3d9576c72d" + integrity sha512-K/KQaw/CU8uLQgk7sFnZC54YGHoGucKFfdjYeZx5ds2eyzbuMAiKzGFcxZ/S+1dVBZ8QHzwowsVBW3kuYhnQ3Q== + dependencies: + "@expo/config-types" "^43.0.1" + "@expo/json-file" "8.2.33" + "@expo/plist" "0.0.15" + "@react-native/normalize-color" "^2.0.0" + chalk "^4.1.2" debug "^4.3.1" find-up "~5.0.0" fs-extra "9.0.0" @@ -2159,45 +2960,66 @@ semver "^7.3.5" slash "^3.0.0" xcode "^3.0.1" - xml2js "^0.4.23" + xml2js "0.4.23" -"@expo/config-types@^40.0.0-beta.2": - version "40.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-40.0.0-beta.2.tgz#4fea4ef5654d02218b02b0b3772529a9ce5b0471" - integrity sha512-t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg== +"@expo/config-plugins@4.1.0", "@expo/config-plugins@^4.0.2": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.1.0.tgz#0365e2e51e2e3e3b4e7db1fbbada5be661798be6" + integrity sha512-+Uq7kzi1StUZZZivnnqNV6+v8b+SMF6MDgH+cEZxCoM9uwLXOK0rTAURzBGtl+C6EEbKnoZmnKGuzABBGPRP7A== + dependencies: + "@expo/config-types" "^44.0.0" + "@expo/json-file" "8.2.34" + "@expo/plist" "0.0.17" + "@expo/sdk-runtime-versions" "^1.0.0" + "@react-native/normalize-color" "^2.0.0" + chalk "^4.1.2" + debug "^4.3.1" + find-up "~5.0.0" + fs-extra "9.0.0" + getenv "^1.0.0" + glob "7.1.6" + resolve-from "^5.0.0" + semver "^7.3.5" + slash "^3.0.0" + xcode "^3.0.1" + xml2js "0.4.23" -"@expo/config-types@^42.0.0": - version "42.0.0" - resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-42.0.0.tgz#3e3e125ec092c0c34dbfaf19be5480402de3d677" - integrity sha512-Rj02OMZke2MrGa/1Y/EScmR7VuWbDEHPJyvfFyyLbadUt+Yv6isCdeFzDt71I7gJlPR9T4fzixeYLrtXXOTq0w== +"@expo/config-types@^43.0.1": + version "43.0.1" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-43.0.1.tgz#3e047dccb371741a540980eaff26fb0c95039c30" + integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ== -"@expo/config@3.3.21": - version "3.3.21" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-3.3.21.tgz#e4aad368cebd222053c72f82b67990bc98c7bfe2" - integrity sha512-xwWJMnStU1Lx4H+A63egfsiUmOp8VPFCibUEPd+fMn3KkqmLKnaNKZ5McF8Z59nw9UF8qH7AUS9jY77kDlNY5w== +"@expo/config-types@^44.0.0": + version "44.0.0" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-44.0.0.tgz#d3480fe2c99f9e895dae4ebba58b74ed72d03e26" + integrity sha512-d+gpdKOAhqaD5RmcMzGgKzNtvE1w+GCqpFQNSXLliYlXjj+Tv0eL8EPeAdPtvke0vowpPFwd5McXLA90dgY6Jg== + +"@expo/config@6.0.19", "@expo/config@^6.0.6": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.19.tgz#26a7f7ffb6419cc6e6d4205b3c7764aa9ecb551a" + integrity sha512-UkLnnKnt4zP382K7s0UDnUNY646Gdw8PoDWnxaIGAL515R9IX8oWef7+7hX/dZMi27d/WLJPmWNRYsEL8Q/3rw== dependencies: - "@babel/core" "7.9.0" - "@expo/babel-preset-cli" "0.2.18" - "@expo/config-types" "^40.0.0-beta.2" - "@expo/json-file" "8.2.25" - find-up "^5.0.0" - fs-extra "9.0.0" - getenv "0.7.0" + "@babel/code-frame" "~7.10.4" + "@expo/config-plugins" "4.1.0" + "@expo/config-types" "^44.0.0" + "@expo/json-file" "8.2.34" + getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" resolve-from "^5.0.0" - semver "^7.1.3" + semver "7.3.2" slugify "^1.3.4" + sucrase "^3.20.0" -"@expo/config@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-5.0.6.tgz#beb278df78b69b9bf44049259c72560bcbed943e" - integrity sha512-KnSEmlRYT4AsxOGa2OPEefeCEJSo4oMZI/2q3/vriiSYlI2J12/YZz2QaZtGUfKD6jm+5hCerYRQcAMhzj5/BA== +"@expo/config@6.0.6": + version "6.0.6" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.6.tgz#64b49b93f07cb046f5a8538a1793bef9070d8d52" + integrity sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "3.0.6" - "@expo/config-types" "^42.0.0" - "@expo/json-file" "8.2.32" + "@expo/config-plugins" "4.0.6" + "@expo/config-types" "^43.0.1" + "@expo/json-file" "8.2.33" getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" @@ -2206,68 +3028,105 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/configure-splash-screen@0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.3.1.tgz#a55b52718751907fd3fbaeb76dbd4162d282fa13" - integrity sha512-Wf9U8OYoIQojYjTuXgtTqDmlA4SdSEEQo9PxnVKuF8224FtJoYX1Kwc6kiVKc/4suplrqE71ZVJXOE2Uyh4SHw== +"@expo/configure-splash-screen@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39" + integrity sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew== dependencies: - "@react-native-community/cli-platform-android" "^4.10.0" - "@react-native-community/cli-platform-ios" "^4.10.0" color-string "^1.5.3" commander "^5.1.0" - core-js "^3.6.5" - deep-equal "^2.0.3" fs-extra "^9.0.0" + glob "^7.1.6" lodash "^4.17.15" pngjs "^5.0.0" xcode "^3.0.0" xml-js "^1.6.11" -"@expo/image-utils@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.9.tgz#10dc8044943c1bd34fe9658f2835a079e4041a0b" - integrity sha512-VarvpeNXtvPexmJSEllDF1RRHrjznsgf2Y0bZ2IehmOZwxdqz/YssGxY2ztMx5pn3utuhc9Enx140BHDBOp8UQ== +"@expo/image-utils@0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.18.tgz#36a41ab2925974ac5707e02cb0d3694349140497" + integrity sha512-77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA== dependencies: "@expo/spawn-async" "1.5.0" chalk "^4.0.0" fs-extra "9.0.0" - getenv "0.7.0" - jimp "0.12.1" + getenv "^1.0.0" + jimp-compact "0.16.1" mime "^2.4.4" node-fetch "^2.6.0" parse-png "^2.1.0" resolve-from "^5.0.0" - semver "6.1.1" + semver "7.3.2" tempy "0.3.0" -"@expo/json-file@8.2.25": - version "8.2.25" - resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.25.tgz#3f7f403612efab98b6043868b8bb8b27a7189ed1" - integrity sha512-KFX6grWVzttaDskq/NK8ByqFPgpDZGFnyeZVeecGoKx5kU61zuR7/xQM04OvN6BNXq3jTUst1TyS8fXEfJuscA== +"@expo/json-file@8.2.33": + version "8.2.33" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.33.tgz#78f56f33a2cfb807b23c81e00237a33159aa1f32" + integrity sha512-CDnhjdirUs6OdN5hOSTJ2y3i9EiJMk7Z5iDljC5xyCHCrUex7oyI8vbRsZEojAahxZccgL/PrO+CjakiFFWurg== dependencies: "@babel/code-frame" "~7.10.4" - fs-extra "9.0.0" json5 "^1.0.1" - lodash "^4.17.15" write-file-atomic "^2.3.0" -"@expo/json-file@8.2.32": - version "8.2.32" - resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.32.tgz#612e83433559637a3b853b170ae6d86cccb98064" - integrity sha512-VnpoEnjMptBQr/zgkfGHd7L8iJBme9g2AVpUIecI+aoW6qmeIRbBViPmyNABgH4UUQn3ObQCxe+q1dAdJo8KGg== +"@expo/json-file@8.2.34": + version "8.2.34" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.34.tgz#2f24e90a677195f7a81e167115460eb2902c3130" + integrity sha512-ZxtBodAZGxdLtgKzmsC+8ViUxt1mhFW642Clu2OuG3f6PAyAFsU/SqEGag9wKFaD3x3Wt8VhL+3y5fMJmUFgPw== dependencies: "@babel/code-frame" "~7.10.4" json5 "^1.0.1" write-file-atomic "^2.3.0" -"@expo/plist@0.0.13": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.13.tgz#700a48d9927aa2b0257c613e13454164e7371a96" - integrity sha512-zGPSq9OrCn7lWvwLLHLpHUUq2E40KptUFXn53xyZXPViI0k9lbApcR9KlonQZ95C+ELsf0BQ3gRficwK92Ivcw== +"@expo/metro-config@~0.2.6": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.2.8.tgz#c0fd56723e2fb9bb352e788e8f8fe0e218aaf663" + integrity sha512-8g0QrHfvSgTLzryuE4JXRwFwBZ7EmqE55zR39Yy7jEVR3epYL0JbBK0/IDFmf6auwsDFtMjAZjFL4WEhRN5bEQ== + dependencies: + "@expo/config" "6.0.6" + chalk "^4.1.0" + debug "^4.3.2" + getenv "^1.0.0" + sucrase "^3.20.0" + +"@expo/plist@0.0.15": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.15.tgz#41ef37b7bbe6b81c48bf4a5c359661c766bb9e90" + integrity sha512-LDxiS0KNZAGJu4fIJhbEKczmb+zeftl1NU0LE0tj0mozoMI5HSKdMUchgvnBm35bwBl8ekKkAfJJ0ONxljWQjQ== dependencies: + "@xmldom/xmldom" "~0.7.0" base64-js "^1.2.3" xmlbuilder "^14.0.0" - xmldom "~0.5.0" + +"@expo/plist@0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.17.tgz#0f6c594e116f45a28f5ed20998dadb5f3429f88b" + integrity sha512-5Ul3d/YOYE6mfum0jCE25XUnkKHZ5vGlU/X2275ZmCtGrpRn1Fl8Nq+jQKSaks3NqTfxdyXROi/TgH8Zxeg2wg== + dependencies: + "@xmldom/xmldom" "~0.7.0" + base64-js "^1.2.3" + xmlbuilder "^14.0.0" + +"@expo/prebuild-config@^3.0.15": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.1.0.tgz#9fa10f12745ecaa6d3d4957ba97142edb8747a85" + integrity sha512-Vwz2L3brsrvLVDBXj2gcB2QfeyAPKxa7rCOSFnPhyHf2qpxtmncv9IVrSdkHyWlPW7KmFVfiRsT3/nHXoataqQ== + dependencies: + "@expo/config" "6.0.19" + "@expo/config-plugins" "4.1.0" + "@expo/config-types" "^44.0.0" + "@expo/image-utils" "0.3.18" + "@expo/json-file" "8.2.34" + debug "^4.3.1" + expo-modules-autolinking "~0.5.1" + fs-extra "^9.0.0" + resolve-from "^5.0.0" + semver "7.3.2" + xml2js "0.4.23" + +"@expo/sdk-runtime-versions@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c" + integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ== "@expo/spawn-async@1.5.0": version "1.5.0" @@ -2276,22 +3135,10 @@ dependencies: cross-spawn "^6.0.5" -"@expo/vector-icons@^12.0.0": - version "12.0.1" - resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-12.0.1.tgz#a112dc51b5a1ad521621b2c0062b5225a60699f8" - integrity sha512-HIzNmnTtSPmsivQ2djqqttq5v7GvjsKz1ap5pbfJGxygtTymulm9j+2AdEY3JWUCBAUyjtOPorNGC9tuTSN3hw== - dependencies: - lodash.frompairs "^4.0.1" - lodash.isequal "^4.5.0" - lodash.isstring "^4.0.1" - lodash.omit "^4.5.0" - lodash.pick "^4.4.0" - lodash.template "^4.5.0" - -"@expo/vector-icons@^12.0.2": - version "12.0.2" - resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-12.0.2.tgz#ffb65a547091abcc529686be21b63ebf4cad041b" - integrity sha512-VJZDyMvSzgZrIKeytBcxZ7Ll0iBDBAXaVLVR7nMgmhAPERnxdbqUfP6/wrxl6tETzRnG0Xzu9d64jcQRtechlg== +"@expo/vector-icons@^12.0.0", "@expo/vector-icons@^12.0.4": + version "12.0.5" + resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-12.0.5.tgz#bc508ad05fb7e9a3e008704977cfec6c18aa7728" + integrity sha512-zWvHBmkpbi1KrPma6Y+r/bsGI6MjbM1MBSe6W9A4uYMLhNI5NR4JtTnqxhf7g1XdpaDtBdv5aOWKEx4d5rxnhg== dependencies: lodash.frompairs "^4.0.1" lodash.isequal "^4.5.0" @@ -2300,87 +3147,52 @@ lodash.pick "^4.4.0" lodash.template "^4.5.0" -"@expo/webpack-config@^0.12.51": - version "0.12.51" - resolved "https://registry.yarnpkg.com/@expo/webpack-config/-/webpack-config-0.12.51.tgz#978cf23443c86618bce74920191c164582036b06" - integrity sha512-cjRNg+Isp/Rf+Hd00hlb9Wv1oOZceWy3mmZYZdRTiQBohMZ6CtmZhkarKvVVqAtUrVYnOzEYw6lTmegbHGfbig== +"@expo/webpack-config@~0.16.2": + version "0.16.19" + resolved "https://registry.yarnpkg.com/@expo/webpack-config/-/webpack-config-0.16.19.tgz#310078c91b4797b00953f46a787a9e5b3f4aa320" + integrity sha512-VB8QNJ4Kvt46cy/y+AbBrJViOH2QY+AEfELNZRDifokZg0wPauxQCz/3Dk7qQnjLYsVOszoH7AtgfOdy/5NSjg== dependencies: "@babel/core" "7.9.0" - "@babel/runtime" "7.9.0" - "@expo/config" "3.3.21" - "@pmmmwh/react-refresh-webpack-plugin" "^0.3.3" + "@expo/config" "6.0.19" babel-loader "8.1.0" chalk "^4.0.0" clean-webpack-plugin "^3.0.0" copy-webpack-plugin "~6.0.3" css-loader "~3.6.0" - expo-pwa "0.0.57" + expo-pwa "0.0.114" file-loader "~6.0.0" find-yarn-workspace-root "~2.0.0" - getenv "^0.7.0" + getenv "^1.0.0" html-loader "~1.1.0" html-webpack-plugin "~4.3.0" + image-size "^1.0.0" is-wsl "^2.0.0" + loader-utils "^2.0.0" mini-css-extract-plugin "^0.5.0" node-html-parser "^1.2.12" optimize-css-assets-webpack-plugin "^5.0.3" pnp-webpack-plugin "^1.5.0" postcss-safe-parser "^4.0.2" - progress "^2.0.3" react-dev-utils "~11.0.1" - react-refresh "^0.8.2" + schema-utils "^3.1.1" + semver "~7.3.2" style-loader "~1.2.1" terser-webpack-plugin "^3.0.6" url-loader "~4.1.0" webpack "4.43.0" - webpack-deep-scope-plugin "1.6.0" webpack-manifest-plugin "~2.2.0" - webpackbar "^4.0.0" - workbox-webpack-plugin "^3.6.3" - worker-loader "^2.0.0" -"@expo/websql@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@expo/websql/-/websql-1.0.1.tgz#fff0cf9c1baa1f70f9e1d658b7c39a420d9b10a9" - integrity sha1-//DPnBuqH3D54dZYt8OaQg2bEKk= - dependencies: - argsarray "^0.0.1" - immediate "^3.2.2" - noop-fn "^1.0.0" - pouchdb-collections "^1.0.1" - tiny-queue "^0.2.1" - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.0.3": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" +"@hapi/hoek@^9.0.0": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" + integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: - "@hapi/hoek" "^8.3.0" + "@hapi/hoek" "^9.0.0" "@icons/material@^0.2.4": version "0.2.4" @@ -2418,15 +3230,6 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - "@jest/console@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" @@ -2439,16 +3242,16 @@ jest-util "^26.6.2" slash "^3.0.0" -"@jest/console@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" - integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" "@jest/core@^26.6.3": @@ -2485,40 +3288,12 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" - integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== +"@jest/create-cache-key-function@^26.5.0", "@jest/create-cache-key-function@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-26.6.2.tgz#04cf439207a4fd12418d8aee551cddc86f9ac5f5" + integrity sha512-LgEuqU1f/7WEIPYqwLPIvvHuc1sB6gMVbT6zWhin3txYUNYK/kGQrC1F2WR4gR34YlI9bBtViTm5z98RqVZAaw== dependencies: - "@jest/console" "^27.0.6" - "@jest/reporters" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.0.6" - jest-config "^27.0.6" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-resolve-dependencies "^27.0.6" - jest-runner "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - jest-watcher "^27.0.6" - micromatch "^4.0.4" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" + "@jest/types" "^26.6.2" "@jest/environment@^26.6.2": version "26.6.2" @@ -2530,25 +3305,6 @@ "@types/node" "*" jest-mock "^26.6.2" -"@jest/environment@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" - integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== - dependencies: - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - "@jest/fake-timers@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" @@ -2561,18 +3317,6 @@ jest-mock "^26.6.2" jest-util "^26.6.2" -"@jest/fake-timers@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" - integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== - dependencies: - "@jest/types" "^27.0.6" - "@sinonjs/fake-timers" "^7.0.2" - "@types/node" "*" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-util "^27.0.6" - "@jest/globals@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" @@ -2582,15 +3326,6 @@ "@jest/types" "^26.6.2" expect "^26.6.2" -"@jest/globals@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" - integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/types" "^27.0.6" - expect "^27.0.6" - "@jest/reporters@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" @@ -2623,45 +3358,6 @@ optionalDependencies: node-notifier "^8.0.0" -"@jest/reporters@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" - integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.0.0" - -"@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - "@jest/source-map@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" @@ -2671,24 +3367,6 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/source-map@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" - integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@jest/test-result@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" @@ -2699,13 +3377,13 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" - integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== dependencies: - "@jest/console" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" @@ -2720,387 +3398,66 @@ jest-runner "^26.6.3" jest-runtime "^26.6.3" -"@jest/test-sequencer@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" - integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== - dependencies: - "@jest/test-result" "^27.0.6" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-runtime "^27.0.6" - "@jest/transform@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/transform@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" - integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.0.6" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-regex-util "^27.0.6" - jest-util "^27.0.6" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" - integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jimp/bmp@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.12.1.tgz#43cf1f711797c029aa7570a492769b4778638da2" - integrity sha512-t16IamuBMv4GiGa1VAMzsgrVKVANxXG81wXECzbikOUkUv7pKJ2vHZDgkLBEsZQ9sAvFCneM1+yoSRpuENrfVQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - bmp-js "^0.1.0" - -"@jimp/core@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.12.1.tgz#a46341e5476e00115b1fab399627d65f9ab2d442" - integrity sha512-mWfjExYEjHxBal+1gPesGChOQBSpxO7WUQkrO9KM7orboitOdQ15G5UA75ce7XVZ+5t+FQPOLmVkVZzzTQSEJA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - any-base "^1.1.0" - buffer "^5.2.0" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "^0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" - -"@jimp/custom@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.12.1.tgz#e54d0fb2c29f4eb3b5b0bd00dc4cd25a78f48af4" - integrity sha512-bVClp8FEJ/11GFTKeRTrfH7NgUWvVO5/tQzO/68aOwMIhbz9BOYQGh533K9+mSy29VjZJo8jxZ0C9ZwYHuFwfA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/core" "^0.12.1" - -"@jimp/gif@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.12.1.tgz#e5fe9e25796ef6390044b9f1a595e2ef2ebe9fe8" - integrity sha512-cGn/AcvMGUGcqR6ByClGSnrja4AYmTwsGVXTQ1+EmfAdTiy6ztGgZCTDpZ/tq4SpdHXwm9wDHez7damKhTrH0g== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - omggif "^1.0.9" - -"@jimp/jpeg@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.12.1.tgz#adaacd30d819241cdddc978dc4facc882a0846ab" - integrity sha512-UoCUHbKLj2CDCETd7LrJnmK/ExDsSfJXmc1pKkfgomvepjXogdl2KTHf141wL6D+9CfSD2VBWQLC5TvjMvcr9A== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - jpeg-js "^0.4.0" - -"@jimp/plugin-blit@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.12.1.tgz#555a492fd71370820b7a1b85cc04ba3c58b0c4c7" - integrity sha512-VRBB6bx6EpQuaH0WX8ytlGNqUQcmuxXBbzL3e+cD0W6MluYibzQy089okvXcyUS72Q+qpSMmUDCVr3pDqLAsSA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-blur@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.12.1.tgz#93cf1b6c44e4c7bbb80914ef953c8bb3dac31295" - integrity sha512-rTFY0yrwVJFNgNsAlYGn2GYCRLVEcPQ6cqAuhNylXuR/7oH3Acul+ZWafeKtvN8D8uMlth/6VP74gruXvwffZw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-circle@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.12.1.tgz#56100e5b04c98b711e2c2188d0825c0e1766be69" - integrity sha512-+/OiBDjby7RBbQoDX8ZsqJRr1PaGPdTaaKUVGAsrE7KCNO9ODYNFAizB9lpidXkGgJ4Wx5R4mJy21i22oY/a4Q== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-color@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.12.1.tgz#193f4d851c29b5d393843b68385eee3d13b7ea7e" - integrity sha512-xlnK/msWN4uZ+Bu7+UrCs9oMzTSA9QE0jWFnF3h0aBsD8t1LGxozkckHe8nHtC/y/sxIa8BGKSfkiaW+r6FbnA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - tinycolor2 "^1.4.1" - -"@jimp/plugin-contain@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.12.1.tgz#6dffe0632e5acbc5d5d17671910f6671a4849c5a" - integrity sha512-WZ/D6G0jhnBh2bkBh610PEh/caGhAUIAxYLsQsfSSlOxPsDhbj3S6hMbFKRgnDvf0hsd5zTIA0j1B0UG4kh18A== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-cover@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.12.1.tgz#c0e9005d891efbaa6533ca4d6874d3e14cc51179" - integrity sha512-ddWwTQO40GcabJ2UwUYCeuNxnjV4rBTiLprnjGMqAJCzdz3q3Sp20FkRf+H+E22k2v2LHss8dIOFOF4i6ycr9Q== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-crop@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.12.1.tgz#44a5adb5f5222c3d3c6c94410b1995fe88041ada" - integrity sha512-CKjVkrNO8FDZKYVpMireQW4SgKBSOdF+Ip/1sWssHHe77+jGEKqOjhYju+VhT3dZJ3+75rJNI9II7Kethp+rTw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-displace@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.12.1.tgz#d83b5d4d45a35b5d7b7722ec8657d46a3ccc6da1" - integrity sha512-MQAw2iuf1/bVJ6P95WWTLA+WBjvIZ7TeGBerkvBaTK8oWdj+NSLNRIYOIoyPbZ7DTL8f1SN4Vd6KD6BZaoWrwg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-dither@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.12.1.tgz#1265a063423a20b9425f5055fe3ddafaa0eea9fe" - integrity sha512-mCrBHdx2ViTLJDLcrobqGLlGhZF/Mq41bURWlElQ2ArvrQ3/xR52We9DNDfC08oQ2JVb6q3v1GnCCdn0KNojGQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-fisheye@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.12.1.tgz#0afa268abbfcc88212f49b2b84b04da89f35cae2" - integrity sha512-CHvYSXtHNplzkkYzB44tENPDmvfUHiYCnAETTY+Hx58kZ0w8ERZ+OiLhUmiBcvH/QHm/US1iiNjgGUAfeQX6dg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-flip@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.12.1.tgz#b80415e69cf477d40f1960bc6081441ba0ce54dc" - integrity sha512-xi+Yayrnln8A/C9E3yQBExjxwBSeCkt/ZQg1CxLgszVyX/3Zo8+nkV8MJYpkTpj8LCZGTOKlsE05mxu/a3lbJQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-gaussian@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.12.1.tgz#7cd1fa2c7b6f6d91776af043d202aa595430c34a" - integrity sha512-7O6eKlhL37hsLfV6WAX1Cvce7vOqSwL1oWbBveC1agutDlrtvcTh1s2mQ4Pde654hCJu55mq1Ur10+ote5j3qw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-invert@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.12.1.tgz#9403089d9f740d54be72270faa28f392bf3dff9c" - integrity sha512-JTAs7A1Erbxwl+7ph7tgcb2PZ4WzB+3nb2WbfiWU8iCrKj17mMDSc5soaCCycn8wfwqvgB1vhRfGpseOLWxsuQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-mask@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.12.1.tgz#3cbf2c990c9ecb76b34e8c13c028bc469acfd593" - integrity sha512-bnDdY0RO/x5Mhqoy+056SN1wEj++sD4muAKqLD2CIT8Zq5M/0TA4hkdf/+lwFy3H2C0YTK39PSE9xyb4jPX3kA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-normalize@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.12.1.tgz#e1cc7724792f7ace9573ed550bd9cda57e06e560" - integrity sha512-4kSaI4JLM/PNjHwbnAHgyh51V5IlPfPxYvsZyZ1US32pebWtocxSMaSuOaJUg7OGSkwSDBv81UR2h5D+Dz1b5A== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-print@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.12.1.tgz#1e604cd796fcffd7a9188ce3e94a1f5f1bc56a9f" - integrity sha512-T0lNS3qU9SwCHOEz7AGrdp50+gqiWGZibOL3350/X/dqoFs1EvGDjKVeWncsGCyLlpfd7M/AibHZgu8Fx2bWng== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - load-bmfont "^1.4.0" - -"@jimp/plugin-resize@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.12.1.tgz#cb0347320eb392136a16e179c396f636891038af" - integrity sha512-sbNn4tdBGcgGlPt9XFxCuDl4ZOoxa8/Re8nAikyxYhRss2Dqz91ARbBQxOf1vlUGeicQMsjEuWbPQAogTSJRug== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-rotate@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.12.1.tgz#29101e949f96047bcee2afaba5008be8f92ed8e8" - integrity sha512-RYkLzwG2ervG6hHy8iepbIVeWdT1kz4Qz044eloqo6c66MK0KAqp228YI8+CAKm0joQnVDC/A0FgRIj/K8uyAw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - -"@jimp/plugin-scale@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.12.1.tgz#bf9c2e5af47dc07d48d8ab16fecba96b40af3734" - integrity sha512-zjNVI1fUj+ywfG78T1ZU33g9a5sk4rhEQkkhtny8koAscnVsDN2YaZEKoFli54kqaWh5kSS5DDL7a/9pEfXnFQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" -"@jimp/plugin-shadow@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.12.1.tgz#63508e3d321dbd057acc1e93b90c326257e0f1c3" - integrity sha512-Z82IwvunXWQ2jXegd3W3TYUXpfJcEvNbHodr7Z+oVnwhM1OoQ5QC6RSRQwsj2qXIhbGffQjH8eguHgEgAV+u5w== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" -"@jimp/plugin-threshold@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.12.1.tgz#deaa1ac912522b9b7353820e84c8706ff433aa04" - integrity sha512-PFezt5fSk0q+xKvdpuv0eLggy2I7EgYotrK8TRZOT0jimuYFXPF0Z514c6szumoW5kEsRz04L1HkPT1FqI97Yg== +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" -"@jimp/plugins@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.12.1.tgz#450a1312184f649d81b75fc1aeff265e99c8f2b3" - integrity sha512-7+Yp29T6BbYo+Oqnc+m7A5AH+O+Oy5xnxvxlfmsp48+SuwEZ4akJp13Gu2PSmRlylENzR7MlWOxzhas5ERNlIg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/plugin-blit" "^0.12.1" - "@jimp/plugin-blur" "^0.12.1" - "@jimp/plugin-circle" "^0.12.1" - "@jimp/plugin-color" "^0.12.1" - "@jimp/plugin-contain" "^0.12.1" - "@jimp/plugin-cover" "^0.12.1" - "@jimp/plugin-crop" "^0.12.1" - "@jimp/plugin-displace" "^0.12.1" - "@jimp/plugin-dither" "^0.12.1" - "@jimp/plugin-fisheye" "^0.12.1" - "@jimp/plugin-flip" "^0.12.1" - "@jimp/plugin-gaussian" "^0.12.1" - "@jimp/plugin-invert" "^0.12.1" - "@jimp/plugin-mask" "^0.12.1" - "@jimp/plugin-normalize" "^0.12.1" - "@jimp/plugin-print" "^0.12.1" - "@jimp/plugin-resize" "^0.12.1" - "@jimp/plugin-rotate" "^0.12.1" - "@jimp/plugin-scale" "^0.12.1" - "@jimp/plugin-shadow" "^0.12.1" - "@jimp/plugin-threshold" "^0.12.1" - timm "^1.6.1" - -"@jimp/png@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.12.1.tgz#85d99ed6304e7d37f8e5279b3b4b058ed28a7f67" - integrity sha512-tOUSJMJzcMAN82F9/Q20IToquIVWzvOe/7NIpVQJn6m+Lq6TtVmd7d8gdcna9AEFm2FIza5lhq2Kta6Xj0KXhQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.12.1" - pngjs "^3.3.3" +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== -"@jimp/tiff@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.12.1.tgz#ce2cd058d0f3a9fe43564866b6a64a815c141a9e" - integrity sha512-bzWDgv3202TKhaBGzV9OFF0PVQWEb4194h9kv5js348SSnbCusz/tzTE1EwKrnbDZThZPgTB1ryKs7D+Q9Mhmg== - dependencies: - "@babel/runtime" "^7.7.2" - utif "^2.0.1" +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@jimp/types@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.12.1.tgz#2671e228bd1abc7f086e2f4316097c15aa4b41c0" - integrity sha512-hg5OKXpWWeKGuDrfibrjWWhr7hqb7f552wqnPWSLQpVrdWgjH+hpOv6cOzdo9bsU78qGTelZJPxr0ERRoc+MhQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/bmp" "^0.12.1" - "@jimp/gif" "^0.12.1" - "@jimp/jpeg" "^0.12.1" - "@jimp/png" "^0.12.1" - "@jimp/tiff" "^0.12.1" - timm "^1.6.1" - -"@jimp/utils@^0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.12.1.tgz#e9ab43dcd55f88a8fdf250a84bcf43d09713bd9d" - integrity sha512-EjPkDQOzV/oZfbolEUgFT6SE++PtCccVBvjuACkttyCfl0P2jnpR49SwstyVLc2u8AwBAZEHHAw9lPYaMjtbXQ== +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== dependencies: - "@babel/runtime" "^7.7.2" - regenerator-runtime "^0.13.3" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@mdx-js/mdx@^1.6.22": version "1.6.22" @@ -3173,18 +3530,6 @@ dependencies: mkdirp "^1.0.4" -"@pmmmwh/react-refresh-webpack-plugin@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.3.3.tgz#40a3d674f42a011b7f30a9609aa8fb68ec3c39c9" - integrity sha512-uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw== - dependencies: - ansi-html "^0.0.7" - error-stack-parser "^2.0.6" - html-entities "^1.2.1" - lodash.debounce "^4.0.8" - native-url "^0.2.6" - schema-utils "^2.6.5" - "@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": version "2.9.2" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz#adea7b6953cbb34651766b0548468e743c6a2353" @@ -3279,37 +3624,37 @@ resolved "https://registry.yarnpkg.com/@react-native-aria/utils/-/utils-0.2.5.tgz#db3979cf96b1ac09f990a0e6977bf1efda567db2" integrity sha512-5YDAQa3j/85i3ZAHs0p4PMIGGSvjyKSLoUNtHAfVcuinvDyxiuirO2fhohOiSH5rGNN41a036yHayMfFh+t6wA== -"@react-native-async-storage/async-storage@^1.15.7": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.15.7.tgz#736ac5cfe211b081e70389e80c237398d1451f08" - integrity sha512-ctD51BxjBxSSZ/3xCxQ//e10nP3rWFuOABsOGCGCqCXO4ypznK+fcWONHI6fIZubfV5KdyBJnNXcKtXRjocE5Q== +"@react-native-async-storage/async-storage@~1.15.0": + version "1.15.17" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.15.17.tgz#0dae263a52e476ffce871086f1fef5b8e44708eb" + integrity sha512-NQCFs47aFEch9kya/bqwdpvSdZaVRtzU7YB02L8VrmLSLpKgQH/1VwzFUBPcc1/JI1s3GU4yOLVrEbwxq+Fqcw== dependencies: merge-options "^3.0.4" -"@react-native-community/cli-debugger-ui@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c" - integrity sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg== +"@react-native-community/cli-debugger-ui@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1.tgz#6b1f3367b8e5211e899983065ea2e72c1901d75f" + integrity sha512-5gGKaaXYOVE423BUqxIfvfAVSj5Cg1cU/TpGbeg/iqpy2CfqyWqJB3tTuVUbOOiOvR5wbU8tti6pIi1pchJ+oA== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-hermes@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d" - integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ== +"@react-native-community/cli-hermes@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-5.0.1.tgz#039d064bf2dcd5043beb7dcd6cdf5f5cdd51e7fc" + integrity sha512-nD+ZOFvu5MfjLB18eDJ01MNiFrzj8SDtENjGpf0ZRFndOWASDAmU54/UlU/wj8OzTToK1+S1KY7j2P2M1gleww== dependencies: - "@react-native-community/cli-platform-android" "^4.13.0" - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-platform-android" "^5.0.1" + "@react-native-community/cli-tools" "^5.0.1" chalk "^3.0.0" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@^4.10.0", "@react-native-community/cli-platform-android@^4.13.0", "@react-native-community/cli-platform-android@^4.7.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02" - integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA== +"@react-native-community/cli-platform-android@^5.0.1", "@react-native-community/cli-platform-android@^5.0.1-alpha.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-5.0.1.tgz#7f761e1818e5a099877ec59a1b739553fd6a6905" + integrity sha512-qv9GJX6BJ+Y4qvV34vgxKwwN1cnveXUdP6y2YmTW7XoAYs5YUzKqHajpY58EyucAL2y++6+573t5y4U/9IIoww== dependencies: - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-tools" "^5.0.1" chalk "^3.0.0" execa "^1.0.0" fs-extra "^8.1.0" @@ -3320,12 +3665,12 @@ slash "^3.0.0" xmldoc "^1.1.2" -"@react-native-community/cli-platform-ios@^4.10.0", "@react-native-community/cli-platform-ios@^4.7.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef" - integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA== +"@react-native-community/cli-platform-ios@^5.0.1-alpha.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-5.0.2.tgz#62485534053c0dad28a67de188248de177f4b0fb" + integrity sha512-IAJ2B3j2BTsQUJZ4R6cVvnTbPq0Vza7+dOgP81ISz2BKRtQ0VqNFv+VOALH2jLaDzf4t7NFlskzIXFqWqy2BLg== dependencies: - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-tools" "^5.0.1" chalk "^3.0.0" glob "^7.1.3" js-yaml "^3.13.1" @@ -3333,25 +3678,25 @@ plist "^3.0.1" xcode "^2.0.0" -"@react-native-community/cli-server-api@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz#bee7ee9702afce848e9d6ca3dcd5669b99b125bd" - integrity sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ== +"@react-native-community/cli-server-api@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-5.0.1.tgz#3cf92dac766fab766afedf77df3fe4d5f51e4d2b" + integrity sha512-OOxL+y9AOZayQzmSW+h5T54wQe+QBc/f67Y9QlWzzJhkKJdYx+S4VOooHoD5PFJzGbYaxhu2YF17p517pcEIIA== dependencies: - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-debugger-ui" "^5.0.1" + "@react-native-community/cli-tools" "^5.0.1" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.0" nocache "^2.1.0" - pretty-format "^25.1.0" + pretty-format "^26.6.2" serve-static "^1.13.1" ws "^1.1.0" -"@react-native-community/cli-tools@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b" - integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg== +"@react-native-community/cli-tools@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-5.0.1.tgz#9ee564dbe20448becd6bce9fbea1b59aa5797919" + integrity sha512-XOX5w98oSE8+KnkMZZPMRT7I5TaP8fLbDl0tCu40S7Epz+Zz924n80fmdu6nUDIfPT1nV6yH1hmHmWAWTDOR+Q== dependencies: chalk "^3.0.0" lodash "^4.17.15" @@ -3360,22 +3705,24 @@ open "^6.2.0" shell-quote "1.6.1" -"@react-native-community/cli-types@^4.10.1": - version "4.10.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9" - integrity sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ== - -"@react-native-community/cli@^4.7.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.14.0.tgz#bb106a98341bfa2db36060091ff90bfe82ea4f55" - integrity sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q== - dependencies: - "@hapi/joi" "^15.0.3" - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-hermes" "^4.13.0" - "@react-native-community/cli-server-api" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" - "@react-native-community/cli-types" "^4.10.1" +"@react-native-community/cli-types@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-5.0.1.tgz#8c5db4011988b0836d27a5efe230cb34890915dc" + integrity sha512-BesXnuFFlU/d1F3+sHhvKt8fUxbQlAbZ3hhMEImp9A6sopl8TEtryUGJ1dbazGjRXcADutxvjwT/i3LJVTIQug== + dependencies: + ora "^3.4.0" + +"@react-native-community/cli@^5.0.1-alpha.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-5.0.1.tgz#1f7a66d813d5daf102e593f3c550650fa0cc8314" + integrity sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw== + dependencies: + "@react-native-community/cli-debugger-ui" "^5.0.1" + "@react-native-community/cli-hermes" "^5.0.1" + "@react-native-community/cli-server-api" "^5.0.1" + "@react-native-community/cli-tools" "^5.0.1" + "@react-native-community/cli-types" "^5.0.1" + appdirsjs "^1.2.4" chalk "^3.0.0" command-exists "^1.2.8" commander "^2.19.0" @@ -3387,25 +3734,47 @@ fs-extra "^8.1.0" glob "^7.1.3" graceful-fs "^4.1.3" - inquirer "^3.0.6" + joi "^17.2.1" leven "^3.1.0" lodash "^4.17.15" - metro "^0.59.0" - metro-config "^0.59.0" - metro-core "^0.59.0" - metro-react-native-babel-transformer "^0.59.0" - metro-resolver "^0.59.0" + metro "^0.64.0" + metro-config "^0.64.0" + metro-core "^0.64.0" + metro-react-native-babel-transformer "^0.64.0" + metro-resolver "^0.64.0" + metro-runtime "^0.64.0" minimist "^1.2.0" mkdirp "^0.5.1" node-stream-zip "^1.9.1" ora "^3.4.0" - pretty-format "^25.2.0" + pretty-format "^26.6.2" + prompts "^2.4.0" semver "^6.3.0" serve-static "^1.13.1" strip-ansi "^5.2.0" sudo-prompt "^9.0.0" wcwidth "^1.0.1" +"@react-native/assets@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" + integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== + +"@react-native/normalize-color@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-1.0.0.tgz#c52a99d4fe01049102d47dc45d40cbde4f720ab6" + integrity sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg== + +"@react-native/normalize-color@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567" + integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw== + +"@react-native/polyfills@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-1.0.0.tgz#05bb0031533598f9458cf65a502b8df0eecae780" + integrity sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w== + "@react-stately/overlays@^3.1.1": version "3.1.1" resolved "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.1.1.tgz#6c1a393b77148184f7b1df22ece832d694d5a8b4" @@ -3441,6 +3810,23 @@ resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.5.0.tgz#dbc90e8fe711967e66d6f3ce0e17d34b24bd6283" integrity sha512-997Me7AegwJOI10ye/Q5ds6fT+VBc6XcsXYzPqOD+HIbyL1kUQNDF/VoO37ib7KEH8jXH9aceoX9blz3Q1QcpA== +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -3455,13 +3841,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^7.0.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@storybook/addon-actions@^5.3": version "5.3.21" resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.3.21.tgz#16eed3eb24996adfcbf70bd476a261324d6de593" @@ -4403,7 +4782,7 @@ resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.15" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== @@ -4515,14 +4894,6 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/istanbul-reports@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" @@ -4555,6 +4926,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-schema@^7.0.8": + version "7.0.10" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" + integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + "@types/markdown-to-jsx@^6.11.3": version "6.11.3" resolved "https://registry.yarnpkg.com/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz#cdd1619308fecbc8be7e6a26f3751260249b020e" @@ -4624,7 +5000,7 @@ resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== -"@types/prettier@^2.0.0", "@types/prettier@^2.1.5": +"@types/prettier@^2.0.0": version "2.3.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== @@ -4672,17 +5048,17 @@ "@types/react" "*" "@types/reactcss" "*" -"@types/react-dom@~16.9.8": - version "16.9.10" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.10.tgz#4485b0bec3d41f856181b717f45fd7831101156f" - integrity sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw== +"@types/react-dom@~17.0.9": + version "17.0.14" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.14.tgz#c8f917156b652ddf807711f5becbd2ab018dea9f" + integrity sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ== dependencies: - "@types/react" "^16" + "@types/react" "*" -"@types/react-native@~0.63.2": - version "0.63.50" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.50.tgz#cea13fb272983ec585179807d0cb4f84db0952f6" - integrity sha512-jWxsHDG/AHEaOrqqcI0Cth0WdPsgyaJ1nel5pS0uCzpt2RjwtkvEUAfu39paPr4i+9oUUgbJq3vkVXaj7n8RdQ== +"@types/react-native@~0.64.12": + version "0.64.24" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.64.24.tgz#54d8aaadc12d429004b0a573dc3a65ad27430cc6" + integrity sha512-qgqOJub7BYsAkcg3VSL3w63cgJdLoMmAX6TSTAPL53heCzUkIdtpWqjyNRH0n7jPjxPGG1Qmsv6GSUh7IfyqRg== dependencies: "@types/react" "*" @@ -4715,20 +5091,13 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^16": - version "16.14.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" - integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/react@~16.9.35": - version "16.9.56" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz#ea25847b53c5bec064933095fc366b1462e2adf0" - integrity sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ== +"@types/react@~17.0.21": + version "17.0.42" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.42.tgz#8242b9219bf8a911c47f248e327206fea3f4ee5a" + integrity sha512-nuab3x3CpJ7VFeNA+3HTUuEkvClYHXqWtWd7Ud6AZYW7Z3NH9WKtgU+tFB0ZLcHq+niB/HnzLcaZPqMJ95+k5Q== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" "@types/reactcss@*": @@ -4738,16 +5107,16 @@ dependencies: "@types/react" "*" +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -4823,13 +5192,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^15.0.0": version "15.0.11" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c" @@ -4844,21 +5206,6 @@ dependencies: "@types/yargs-parser" "*" -"@unimodules/core@~6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-6.0.0.tgz#c76ca5ca92128a059c62bb0c24d0372aaf908408" - integrity sha512-+KCVh+NjU33lkHOFiRfJZR6dDsSF8zCY1CVARMYJbQ7w1epRsalpKnCK08JoNYHQqkPR79d2zQSWMxd20zBvoA== - dependencies: - compare-versions "^3.4.0" - -"@unimodules/react-native-adapter@~5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-5.7.0.tgz#c5b7c660c5c69e77a7baeaed62be73cfe18dd7b0" - integrity sha512-L557/+sc8ZKJVgo1734HF1QNCxrt/fpqdmdNgySJT+kErux/AJNfPq3flsK0fyJduVmniTutYIMyW48cFoPKDA== - dependencies: - invariant "^2.2.4" - lodash "^4.5.0" - "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -5004,6 +5351,11 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@xmldom/xmldom@~0.7.0": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d" + integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -5036,6 +5388,14 @@ absolute-path@^0.0.0: resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c= +accepts@^1.3.7: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -5152,26 +5512,12 @@ ansi-align@^3.0.0: dependencies: string-width "^3.0.0" -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: +ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -5199,25 +5545,11 @@ ansi-fragments@^0.2.1: slice-ansi "^2.0.0" strip-ansi "^5.0.0" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - -ansi-html@0.0.7, ansi-html@^0.0.7: +ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -5228,7 +5560,7 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0, ansi-regex@^4.1.0: +ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -5238,6 +5570,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -5269,16 +5606,6 @@ ansi-to-html@^0.6.11: dependencies: entities "^1.1.2" -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -5313,6 +5640,11 @@ app-root-dir@^1.0.2: resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= +appdirsjs@^1.2.4: + version "1.2.6" + resolved "https://registry.yarnpkg.com/appdirsjs/-/appdirsjs-1.2.6.tgz#fccf9ee543315492867cacfcfd4a2b32257d30ac" + integrity sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w== + aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -5333,44 +5665,21 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argsarray@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb" - integrity sha1-bnIHtOzbObCviDA/pa4ivajfYcs= - -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" @@ -5407,11 +5716,6 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -5502,6 +5806,13 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -5512,6 +5823,11 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async@^2.4.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -5547,13 +5863,6 @@ autoprefixer@^9.7.2, autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" -available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== - dependencies: - array-filter "^1.0.0" - babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -5563,12 +5872,10 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-extract-comments@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" - integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== - dependencies: - babylon "^6.18.0" +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== babel-helper-evaluate-path@^0.5.0: version "0.5.0" @@ -5619,20 +5926,6 @@ babel-jest@^26.6.3: graceful-fs "^4.2.4" slash "^3.0.0" -babel-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" - integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== - dependencies: - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.0.6" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - babel-loader@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -5718,16 +6011,6 @@ babel-plugin-jest-hoist@^26.6.2: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" - integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0, babel-plugin-macros@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" @@ -5822,17 +6105,6 @@ babel-plugin-minify-type-constructors@^0.4.3: dependencies: babel-helper-is-void-0 "^0.4.3" -babel-plugin-module-resolver@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" - integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== - dependencies: - find-babel-config "^1.1.0" - glob "^7.1.2" - pkg-up "^2.0.0" - reselect "^3.0.1" - resolve "^1.4.0" - babel-plugin-module-resolver@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.0.0.tgz#8f3a3d9d48287dc1d3b0d5595113adabd36a847f" @@ -5844,6 +6116,17 @@ babel-plugin-module-resolver@^4.0.0: reselect "^4.0.0" resolve "^1.13.1" +babel-plugin-module-resolver@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" + integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== + dependencies: + find-babel-config "^1.2.0" + glob "^7.1.6" + pkg-up "^3.1.0" + reselect "^4.0.0" + resolve "^1.13.1" + babel-plugin-polyfill-corejs2@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" @@ -5853,6 +6136,15 @@ babel-plugin-polyfill-corejs2@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + babel-plugin-polyfill-corejs3@^0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" @@ -5869,6 +6161,14 @@ babel-plugin-polyfill-corejs3@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" core-js-compat "^3.14.0" +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" @@ -5876,10 +6176,17 @@ babel-plugin-polyfill-regenerator@^0.2.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" -babel-plugin-react-native-web@~0.13.6: - version "0.13.18" - resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.13.18.tgz#f0b640412b81acd02d8036b7a935ffb3ab446e4e" - integrity sha512-f8pAxyKqXBNRIh8l4Sqju055BNec+DQlItdtutByYxULU0iJ1F7evIYE3skPKAkTB/xJH17l+n3Z8dVabGIIGg== +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +babel-plugin-react-native-web@~0.17.1: + version "0.17.7" + resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.17.7.tgz#1580e27a2e3c6692127535d3880fe1e247ef6414" + integrity sha512-UBLfIsfU3vi//Ab4i0WSWAfm1whLTK9uJoH0RPZ6a67eS/h9JGYjKy7+1RpHxSBviHi9NIMiYfWseTLjyIsE1g== babel-plugin-require-context-hook@^1.0.0: version "1.0.0" @@ -5891,11 +6198,6 @@ babel-plugin-syntax-jsx@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: version "7.0.0-beta.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" @@ -5921,14 +6223,6 @@ babel-plugin-transform-minify-booleans@^6.9.4: resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - babel-plugin-transform-property-literals@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" @@ -5986,49 +6280,17 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-expo@~8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-8.3.0.tgz#d77065f6e079a64de6e6830e58770fdb9b3240fa" - integrity sha512-KmoFiEJ0A8QUH0OTh+mj3RBvv069FQsQ1hvZDi6tVMSzrW+Y/imsJMXgVboZN+XGOYnWFaGEKQ8BqNvBX+zKjA== +babel-preset-expo@~9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.0.2.tgz#018bafbe29c61491d55bf5c1b603534b54a13bf1" + integrity sha512-NKVichCkbmb+ZIJ4hvuxzX3PnvHUKT42NxYIYTsKAfHPUKuaSAawtpsmMThph6pUc0GUYcLvCRql8ZX5A1zYNw== dependencies: - "@babel/plugin-proposal-decorators" "^7.6.0" - "@babel/preset-env" "^7.6.3" - babel-plugin-module-resolver "^3.2.0" - babel-plugin-react-native-web "~0.13.6" - metro-react-native-babel-preset "~0.59.0" - -babel-preset-fbjs@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + "@babel/plugin-proposal-decorators" "^7.12.9" + "@babel/plugin-transform-react-jsx" "^7.12.17" + "@babel/preset-env" "^7.12.9" + babel-plugin-module-resolver "^4.1.0" + babel-plugin-react-native-web "~0.17.1" + metro-react-native-babel-preset "~0.64.0" babel-preset-fbjs@^3.3.0: version "3.3.0" @@ -6071,14 +6333,6 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" - integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== - dependencies: - babel-plugin-jest-hoist "^27.0.6" - babel-preset-current-node-syntax "^1.0.0" - "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.1" resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz#25f5d0bce36ec818be80338d0e594106e21eaa9f" @@ -6108,24 +6362,6 @@ babel-preset-jest@^27.0.6: babel-plugin-transform-undefined-to-void "^6.9.4" lodash "^4.17.11" -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -badgin@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/badgin/-/badgin-1.2.2.tgz#cbb0b71b047230c681a68911eb24136f0632adc6" - integrity sha512-XtoSjNhy2D09qGiLhFWBJmBwBlmleQuwyYyjddWNCJ3gqGRBOBR25VGcd8CAOSghpEUmghB3LD4NpHrUG89zCg== - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -6136,7 +6372,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1: +base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -6203,11 +6439,6 @@ blueimp-md5@^2.10.0: resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935" integrity sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q== -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: version "4.11.9" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" @@ -6410,6 +6641,17 @@ browserslist@^4.16.6: escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.17.5, browserslist@^4.19.1: + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== + dependencies: + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -6430,16 +6672,6 @@ buffer-alloc@^1.1.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" @@ -6464,14 +6696,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -6633,7 +6857,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -6668,6 +6892,11 @@ caniuse-lite@^1.0.30001219: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz#26ab45e340f155ea5da2920dadb76a533cb8ebce" integrity sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw== +caniuse-lite@^1.0.30001317: + version "1.0.30001320" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz#8397391bec389b8ccce328636499b7284ee13285" + integrity sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -6726,6 +6955,14 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -6746,10 +6983,10 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= +charcodes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" + integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== chardet@^0.7.0: version "0.7.0" @@ -6822,20 +7059,15 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -ci-info@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -6850,11 +7082,6 @@ cjs-module-lexer@^0.6.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -6953,15 +7180,6 @@ clipboard@^2.0.0: select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -6971,15 +7189,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -7068,11 +7277,6 @@ color-string@^1.5.3, color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" @@ -7138,16 +7342,16 @@ commander@^6.2.1: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== -common-tags@^1.4.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -7193,7 +7397,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -7213,11 +7417,6 @@ connect@^3.6.5: parseurl "~1.3.3" utils-merge "1.0.1" -consola@^2.10.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9" - integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ== - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -7318,6 +7517,14 @@ core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.8.1: browserslist "^4.16.6" semver "7.0.0" +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== + dependencies: + browserslist "^4.19.1" + semver "7.0.0" + core-js-compat@^3.8.0: version "3.8.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.1.tgz#8d1ddd341d660ba6194cbe0ce60f4c794c87a36e" @@ -7346,11 +7553,6 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.4.0, core-js@^2.4.1: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - core-js@^3.0.1, core-js@^3.0.4, core-js@^3.6.5: version "3.8.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47" @@ -7496,7 +7698,7 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@7.0.3, cross-spawn@^7.0.0: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -7505,15 +7707,6 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -7795,6 +7988,13 @@ debug@^4.1.0: dependencies: ms "2.1.2" +debug@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -7810,11 +8010,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - deep-equal@^1.0.1, deep-equal@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -7827,27 +8022,6 @@ deep-equal@^1.0.1, deep-equal@^1.1.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-equal@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" - integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== - dependencies: - call-bind "^1.0.0" - es-get-iterator "^1.1.1" - get-intrinsic "^1.0.1" - is-arguments "^1.0.4" - is-date-object "^1.0.2" - is-regex "^1.1.1" - isarray "^2.0.5" - object-is "^1.1.4" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" - which-boxed-primitive "^1.0.1" - which-collection "^1.0.1" - which-typed-array "^1.1.2" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -7863,14 +8037,6 @@ deep-object-diff@^1.1.0: resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== -deep-scope-analyser@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz#23015b3a1d23181b1d9cebd25b783a7378ead8da" - integrity sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA== - dependencies: - esrecurse "^4.2.1" - estraverse "^4.2.0" - deepmerge@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" @@ -8011,11 +8177,6 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" - integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -8248,6 +8409,11 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.792.tgz#791b0d8fcf7411885d086193fb49aaef0c1594ca" integrity sha512-RM2O2xrNarM7Cs+XF/OE2qX/aBROyOZqqgP+8FXMXSuWuUqCfUUzg7NytQrzZU3aSqk1Qq6zqnVkJsbfMkIatg== +electron-to-chromium@^1.4.84: + version "1.4.92" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.92.tgz#88996e9aceb3a500710fd439abfa89b6cc1ac56c" + integrity sha512-YAVbvQIcDE/IJ/vzDMjD484/hsRbFPW2qXJPaYTfOhtligmfYEYOep+5QojpaEU9kq6bMvNeC2aG7arYvTHYsA== + element-resize-detector@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.1.tgz#b0305194447a4863155e58f13323a0aef30851d1" @@ -8280,11 +8446,6 @@ emittery@^0.7.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -8435,7 +8596,7 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.0.2, es-get-iterator@^1.1.1: +es-get-iterator@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.1.tgz#b93ddd867af16d5118e00881396533c1c6647ad9" integrity sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw== @@ -8508,19 +8669,19 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esrecurse@^4.1.0, esrecurse@^4.2.1: +esrecurse@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -8545,11 +8706,6 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -8608,26 +8764,6 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -8658,27 +8794,15 @@ expect@^26.6.2: jest-message-util "^26.6.2" jest-regex-util "^26.0.0" -expect@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" - integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== - dependencies: - "@jest/types" "^27.0.6" - ansi-styles "^5.0.0" - jest-get-type "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" - -expo-application@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-2.4.1.tgz#f8eb4a3a05a0b8a8f38f2e981f587a815945b685" - integrity sha512-VHDvXz55LIYdLoE1aR0AFycB1jz4ggbMToUbKAbCEjro+PdUNm/Gj8gQeFgH6wL2oAztQH4qJ+uiOwrw8SFK+Q== +expo-application@~4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-4.0.2.tgz#860dbd12132a56de7cf75fe7b5146b6cd97ed30e" + integrity sha512-ngTaFplTkWn0X45gMC+VNXGyJfGxX4wOwKmtr17rNMVWOQUhhLlyMkTj9bAamzsuwZh35l3S/eD/N1aMWWUwMw== -expo-asset@~8.2.1: - version "8.2.1" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.2.1.tgz#1b69724f29ca4260805f2e6368c4428d8ad90cc6" - integrity sha512-M97jZU83Gm6wWGkrCwTzDVlufQCmnrCbmW4AMOH6xl3XhwOpgsQ6m6xrwT0Sq1tto7JUuL0tPbB9vb9L7yLfyg== +expo-asset@~8.4.6: + version "8.4.6" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.4.6.tgz#1c40e9badac66dbd3d2be2810711937e5b9b09bd" + integrity sha512-Kpzcmmf1lceHnZkAdJOvq7l7SU/hCL59vAj2xUZS66U6lFkUf7LNEA/NzILA56loCd4cka5ShYlWs+BMchyFDQ== dependencies: blueimp-md5 "^2.10.0" invariant "^2.2.4" @@ -8686,153 +8810,112 @@ expo-asset@~8.2.1: path-browserify "^1.0.0" url-parse "^1.4.4" -expo-constants@~9.3.3: - version "9.3.4" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-9.3.4.tgz#0fc8b6dca8feb6ddf095f016d4854f9f41e839f8" - integrity sha512-tZrZ4Ohdf9YWQK0dI2qU+ArugFaTrotFHmcZg12ehMIeJCy0xkPcEQpxhCECdrbD8zNiyGRog9jEA0dxWI7j9Q== +expo-constants@~13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-13.0.2.tgz#b489ecd575cc82a9a0b3dfbf2385d45a44300eb1" + integrity sha512-vGs/kI65vplPFvG8z4W1ariGEtVHHp9Avl28G0zJprt2v/q1E/BnXjwvFSBPc1GB+Zb/7crWSHWRwjaFULBjsg== dependencies: - fbjs "1.0.0" + "@expo/config" "^6.0.6" uuid "^3.3.2" -expo-error-recovery@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-1.4.0.tgz#2a05c21b056fb7d68af2fc30032858d19747302a" - integrity sha512-NIXHe7oVfosFw/ZNZr9NBo5XJ6CmsGeK6ozldvN+RTSISmJmn+MZ3PAHuFZxLjCkOQe20J4g3S+F6aMkcD949Q== - dependencies: - fbjs "1.0.0" +expo-error-recovery@~3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-3.0.5.tgz#1802b733e998606a8fcfb0abe6682c334319ef75" + integrity sha512-VM6OOecjt0aPu5/eCdGGJfNjvAZIemaQym0JF/+SA5IlLiPpEfbVCDTO/5yiS8Zb5fKpeABx+GCRmtfnFqvRRw== -expo-file-system@~9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-9.3.0.tgz#844c5197dbebf6c144d38e307372a49f3173186a" - integrity sha512-x83IVep6PVfzGLpzR5fhWgKGlDaF95vfRzvmLyOMnbSuM8gY9a8C92taxZxfitryy9+D46lbRcnxPvBqFkXMNg== +expo-file-system@~13.1.3: + version "13.1.4" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-13.1.4.tgz#08fc20d49b2182e1fd195d95c40cf7eddfe7bd91" + integrity sha512-/C2FKCzrdWuEt4m8Pzl9J4MhKgfU0denVLbqoKjidv8DnsLQrscFNlLhXuiooqWwsxB2OWAtGEVnPGJBWVuNEQ== dependencies: + "@expo/config-plugins" "^4.0.2" uuid "^3.4.0" -expo-font@~8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-8.4.0.tgz#7cb4cc9d852dd8d0977ce425146b94221b40c1d5" - integrity sha512-CPGcHLUkPP+yf618fiw2bWTFLojIYCCqWonco/JONcM3tsv6wjkafx4Qw1mMCRoFL7XoiBfHylkKnD0avpzQIQ== +expo-font@~10.0.4, expo-font@~10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-10.0.5.tgz#8010060ec5326b3b462f7a1ac6b232dc4d1a7317" + integrity sha512-x9YwM0xLkDdSvFjeNbyuh33Q1Hk3uc2jbMuuAN5W2ZVcUZqG0M8GCX/KV/D/7rYqdXKbliQA5r44MyDwZe/XRw== dependencies: - fbjs "1.0.0" fontfaceobserver "^2.1.0" -expo-keep-awake@~8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-8.4.0.tgz#346d0988e6364c46050fef4b7829f302ef3e603d" - integrity sha512-gozpL5Azfaht/YIMFOHRHjHuJ9KT6hJH4y71Al+/YfQSwHS5sqhoKGPgSxaktqbxRrWVUH9q7wSl3EXRK9bYjA== - -expo-linear-gradient@^9.1.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-9.2.0.tgz#5ae16fcb8f141b1c51dc36bd4493dfd6566a9511" - integrity sha512-LnW2u9OT6GeyC6T8qEGjFYfNSk4KIBAwU0aRSjM4Y8hckWqhtKngGDz46DqGmJBzvZMSKuZZvj5xKn794r54ag== +expo-keep-awake@~10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-10.0.2.tgz#706bda839782bb3e8ad4cbe43bde471a56368813" + integrity sha512-Ro1lgyKldbFs4mxhWM+goX9sg0S2SRR8FiJJeOvaRzf8xNhrZfWA00Zpr+/3ocCoWQ3eEL+X9UF4PXXHf0KoOg== -expo-linear-gradient@~8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-8.4.0.tgz#34e6f960b1971c57dacf7211c747ba490a76bf63" - integrity sha512-f9JOXaIl0MR8RBYRIud5UAsEi52oz81XhQs73VUpujemHjOyHmrZa6dqwf399YOwI/WBwbpcINcUIw/mCYE1mA== +expo-linear-gradient@~11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-11.0.3.tgz#bc559b9a251c9dc8aa37fb6c66c7a497fe92993c" + integrity sha512-LuzTM5+iEHCQfC2TBHAAI+ZjPvf0TvGiA7GYMsyTnakGA2r4JtsV8Ah/miQPKhfG06jLDOo4grUoSMGqbmSrEw== -expo-linking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-2.0.0.tgz#c39f610825e99ef0d10e8d82fbcf7beed8456b00" - integrity sha512-/48/+MHa96l3/YgL0uM/hbli+H0J8XXAUWgMCBpTIcmUc0POYw4Xp+7BhXcTbPRZsVoOiAHAmKIsEjFVTd5L+A== +expo-modules-autolinking@0.5.5, expo-modules-autolinking@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.5.tgz#6bcc42072dcbdfca79d207b7f549f1fdb54a2b74" + integrity sha512-bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA== dependencies: - expo-constants "~9.3.3" - qs "^6.5.0" - url-parse "^1.4.4" - -expo-location@~10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/expo-location/-/expo-location-10.0.0.tgz#2923411649434f2f079343b163b13c5c9eee8b2d" - integrity sha512-QLEb0iaBv4/blLxxfKRj2/HPisY+1t+g6MgegqZ1j1U/0qih4dvzUQrxie9ZOZyQB9gnXFCRnZv3QzHEb52dcA== + chalk "^4.1.0" + commander "^7.2.0" + fast-glob "^3.2.5" + find-up "^5.0.0" + fs-extra "^9.1.0" -expo-permissions@~10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-10.0.0.tgz#5b31c54d561d00c7e46cd02321bc3704c51c584b" - integrity sha512-b6oitd4JmFdQ7DxczZ2WRS9aDyqgVM7lEhy3JyKZ2dbU19C6NyHyLCcwssZgfzOfGnp2owoaWn3KU4zdrF5MIA== +expo-modules-core@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.5.tgz#39a1b2f00af66e0bd03acb1f86a25bd29e1a95a5" + integrity sha512-h/9+SJ3m8XkDUV1QrPO8WeXaeRYWLBJrOqhokDyhgWUYSqe6JOuRx1ZkoGq/GmTiwjouRDbXPsXUBiU9HWLYyA== + dependencies: + compare-versions "^3.4.0" + invariant "^2.2.4" -expo-pwa@0.0.57: - version "0.0.57" - resolved "https://registry.yarnpkg.com/expo-pwa/-/expo-pwa-0.0.57.tgz#f6a0615364a1597ece927aab0ed26c5a6143ae1d" - integrity sha512-5yWdnZcuLveQX4Re3gDrtHIVBlVVpqySAAQwxuJgK4xAiCwEpdWhNtXcuTGh+0DPwf3aOkmfPDvLrKmKf902pA== +expo-pwa@0.0.114: + version "0.0.114" + resolved "https://registry.yarnpkg.com/expo-pwa/-/expo-pwa-0.0.114.tgz#252989fb8050e2d1f91ad10707b8b6e12fd8d021" + integrity sha512-vJCpKROPULPrTnLTCytZuxBkm23yS9CBXBald2BDeizgKsJV19vOc2+lmTk4fL5hh+TgHQybwtt6UwEy3ORjgg== dependencies: - "@expo/config" "3.3.21" - "@expo/image-utils" "0.3.9" - "@expo/json-file" "8.2.25" + "@expo/config" "6.0.19" + "@expo/image-utils" "0.3.18" chalk "^4.0.0" commander "2.20.0" - fs-extra "9.0.0" update-check "1.5.3" -expo-secure-store@~9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-9.3.0.tgz#b716d5d115cc50a34037d1afef84fe4b8ea0745c" - integrity sha512-dNhKcoUUn+1kmEfFVxSU7h+YsqODqlExZQJcQgxgeiuCeeDvJWkE10t3jjrO6aNfrdM5i/X2l3oh401EDslWsQ== - -expo-splash-screen@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.8.1.tgz#de4a018c82af879eeaa9b697013ef37d9567453a" - integrity sha512-7NQo8OgkfQ4sv4mIHE58fkiQTGyl5dOP70uAUTb5YXC/QUsHIqEpKQ6ZXDpkLU1cbZ32c8Vtok4r2FRIUrzxcg== - dependencies: - "@expo/configure-splash-screen" "0.3.1" - -expo-sqlite@~8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/expo-sqlite/-/expo-sqlite-8.5.0.tgz#236b87b72b6855a01db8869514dfa2da3da563ac" - integrity sha512-8VMFrjagl8qE+BWqdacl2I0KLwF6SPMFHqJHHB5vlT/cxOi4PAk1SpmCIvALgZhrtO6UXG6eOG27gICONZtlVg== +expo-splash-screen@~0.14.1: + version "0.14.2" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.2.tgz#2598d6980e71ecd8b7467ca821fb9dbfb80f355b" + integrity sha512-X25D/0E2AWEFGgDWIVXZ5Bl7FhYk7TgVhEWvplBqrDY7G7vg5l1aoH6PelOQINWPsa1dcRyA7REdN2ltO+0LAw== dependencies: - "@expo/websql" "^1.0.1" - lodash "^4.17.15" + "@expo/configure-splash-screen" "^0.6.0" + "@expo/prebuild-config" "^3.0.15" -expo-status-bar@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.0.3.tgz#62b4d6145680abd43ba6ecfa465f835e88bf6263" - integrity sha512-/Orgla1nkIrfswNHbuAOTbPVq0g3+GrhoQVk7MRafY2dwrFLgXhaPExS+eN2hpmzqPv2LG5cqAZDCQUAjmZYBQ== +expo-status-bar@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.2.0.tgz#16e73205da563f9536f562e439081e30e318a82e" + integrity sha512-pVZZ/kDCXFK79E4dCtRecs3XLC8aiwlciutSd/fFmUPJSQZ1Txia6hlKajPt0GAYft8/YnT0V3URXzWZOBniYQ== -expo@~40.0.0: - version "40.0.0" - resolved "https://registry.yarnpkg.com/expo/-/expo-40.0.0.tgz#6caf03587532cd18b482991332a8b75eeca2fcb7" - integrity sha512-LT6Ae/Ms0qtRyJlJsj/FMB5AQpj6nED39SY9KqY4zK/uFG+R7DJ/4VUzkPued1mWtRUrtaqR+t88pA3p0vAWcg== +expo@^44.0.0: + version "44.0.6" + resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.6.tgz#5454f08abb07166e55eb55b5fc4d45b5ad416ff4" + integrity sha512-iHnra6uD5kXZgdSUrvxZ3sLjg1FtgtA4p4uaSKVQ39IaMHJBngo8RKqFUJ+BF2kPDpBLJ251eLlhgYUlnAyuag== dependencies: - "@babel/runtime" "^7.1.2" - "@expo/vector-icons" "^12.0.0" - "@unimodules/core" "~6.0.0" - "@unimodules/react-native-adapter" "~5.7.0" - babel-preset-expo "~8.3.0" - badgin "^1.1.2" + "@babel/runtime" "^7.14.0" + "@expo/metro-config" "~0.2.6" + "@expo/vector-icons" "^12.0.4" + babel-preset-expo "~9.0.2" cross-spawn "^6.0.5" - expo-application "~2.4.1" - expo-asset "~8.2.1" - expo-constants "~9.3.3" - expo-error-recovery "~1.4.0" - expo-file-system "~9.3.0" - expo-font "~8.4.0" - expo-keep-awake "~8.4.0" - expo-linear-gradient "~8.4.0" - expo-linking "~2.0.0" - expo-location "~10.0.0" - expo-permissions "~10.0.0" - expo-secure-store "~9.3.0" - expo-sqlite "~8.5.0" + expo-application "~4.0.2" + expo-asset "~8.4.6" + expo-constants "~13.0.2" + expo-file-system "~13.1.3" + expo-font "~10.0.5" + expo-keep-awake "~10.0.2" + expo-modules-autolinking "0.5.5" + expo-modules-core "0.6.5" fbemitter "^2.1.1" - invariant "^2.2.2" - lodash "^4.6.0" + invariant "^2.2.4" md5-file "^3.2.3" - nullthrows "^1.1.0" - pretty-format "^26.4.0" - react-native-safe-area-context "3.1.9" - serialize-error "^2.1.0" - unimodules-app-loader "~1.4.0" - unimodules-barcode-scanner-interface "~5.4.0" - unimodules-camera-interface "~5.4.0" - unimodules-constants-interface "~5.4.0" - unimodules-face-detector-interface "~5.4.0" - unimodules-file-system-interface "~5.4.0" - unimodules-font-interface "~5.4.0" - unimodules-image-loader-interface "~5.4.0" - unimodules-permissions-interface "~5.4.0" - unimodules-sensors-interface "~5.4.0" - unimodules-task-manager-interface "~5.4.0" + pretty-format "^26.5.2" uuid "^3.4.0" + optionalDependencies: + expo-error-recovery "~3.0.5" express@^4.17.0, express@^4.17.1: version "4.17.1" @@ -8870,13 +8953,6 @@ express@^4.17.0, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -8897,15 +8973,6 @@ extend@^3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -8929,16 +8996,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" @@ -8973,6 +9030,17 @@ fast-glob@^3.1.1, fast-glob@^3.2.4: micromatch "^4.0.2" picomatch "^2.2.1" +fast-glob@^3.2.5: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -9023,36 +9091,6 @@ fbjs-css-vars@^1.0.0: resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== -fbjs-scripts@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27" - integrity sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ== - dependencies: - "@babel/core" "^7.0.0" - ansi-colors "^1.0.1" - babel-preset-fbjs "^3.2.0" - core-js "^2.4.1" - cross-spawn "^5.1.0" - fancy-log "^1.3.2" - object-assign "^4.0.1" - plugin-error "^0.1.2" - semver "^5.1.0" - through2 "^2.0.0" - -fbjs@1.0.0, fbjs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" - integrity sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA== - dependencies: - core-js "^2.4.1" - fbjs-css-vars "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - fbjs@^0.8.4: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" @@ -9131,11 +9169,6 @@ file-system-cache@^1.0.5: fs-extra "^0.30.0" ramda "^0.21.0" -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -9181,7 +9214,7 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-babel-config@^1.1.0, find-babel-config@^1.2.0: +find-babel-config@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== @@ -9257,6 +9290,16 @@ find-yarn-workspace-root@~2.0.0: dependencies: micromatch "^4.0.2" +flow-parser@0.*: + version "0.174.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.174.1.tgz#bb81e17fe45a1e64d9752090e819a6744a539fa0" + integrity sha512-nDMOvlFR+4doLpB3OJpseHZ7uEr3ENptlF6qMas/kzQmNcLzMwfQeFX0gGJ/+em7UdldB/nGsk55tDTOvjbCuw== + +flow-parser@^0.121.0: + version "0.121.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" + integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -9282,11 +9325,6 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - fork-ts-checker-webpack-plugin@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" @@ -9415,7 +9453,7 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^4.0.2, fs-extra@^4.0.3: +fs-extra@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== @@ -9452,7 +9490,7 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-extra@^9.0.1: +fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -9497,7 +9535,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.1.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -9551,7 +9589,7 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -9574,11 +9612,6 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -9598,21 +9631,11 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getenv@0.7.0, getenv@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/getenv/-/getenv-0.7.0.tgz#39b91838707e2086fd1cf6ef8777d1c93e14649e" - integrity sha1-ObkYOHB+IIb9HPbvh3fRyT4UZJ4= - getenv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31" @@ -9648,7 +9671,7 @@ glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -9707,7 +9730,7 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global@^4.3.2, global@^4.4.0, global@~4.4.0: +global@^4.3.2, global@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== @@ -9806,6 +9829,11 @@ graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -10001,10 +10029,10 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-engine@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09" - integrity sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg== +hermes-engine@~0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.7.2.tgz#303cd99d23f68e708b223aec2d49d5872985388b" + integrity sha512-E2DkRaO97gwL98LPhgfkMqhHiNsrAjIfEk3wWYn2Y31xdkdWn0572H7RnVcGujMJVqZNJvtknxlpsUb8Wzc3KA== hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -10037,11 +10065,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== - hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -10076,7 +10099,7 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" -html-entities@^1.2.0, html-entities@^1.2.1: +html-entities@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== @@ -10236,17 +10259,12 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -10267,7 +10285,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -10297,10 +10315,12 @@ image-size@^0.6.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== -immediate@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== +image-size@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.1.tgz#86d6cfc2b1d19eab5d2b368d4b9194d9e48541c5" + integrity sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ== + dependencies: + queue "6.0.2" immer@1.10.0: version "1.10.0" @@ -10442,26 +10462,6 @@ inquirer@6.5.0: strip-ansi "^5.1.0" through "^2.3.6" -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - inquirer@^7.0.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" @@ -10512,7 +10512,7 @@ intl-messageformat@^2.2.0: dependencies: intl-messageformat-parser "1.4.0" -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -10578,11 +10578,6 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== -is-bigint@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -10597,13 +10592,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== - dependencies: - call-bind "^1.0.0" - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -10626,13 +10614,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== - dependencies: - ci-info "^3.1.1" - is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -10673,7 +10654,7 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1, is-date-object@^1.0.2: +is-date-object@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== @@ -10804,11 +10785,6 @@ is-negative-zero@^2.0.0: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== -is-number-object@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -10821,11 +10797,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -10892,11 +10863,6 @@ is-regex@^1.1.2: call-bind "^1.0.2" has-symbols "^1.0.2" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -10922,7 +10888,7 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.4, is-string@^1.0.5: +is-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== @@ -10941,32 +10907,11 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.1" -is-typed-array@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.4.tgz#1f66f34a283a3c94a4335434661ca53fff801120" - integrity sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA== - dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" - foreach "^2.0.5" - has-symbols "^1.0.1" - is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakset@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.1.tgz#e9a0af88dbd751589f5e50d80f4c98b780884f83" - integrity sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw== - is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -11009,13 +10954,6 @@ isarray@^2.0.5: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isemail@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" - integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== - dependencies: - punycode "2.x.x" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -11109,40 +11047,6 @@ jest-changed-files@^26.6.2: execa "^4.0.0" throat "^5.0.0" -jest-changed-files@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" - integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== - dependencies: - "@jest/types" "^27.0.6" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" - integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.0.6" - is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - jest-cli@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" @@ -11162,24 +11066,6 @@ jest-cli@^26.6.3: prompts "^2.0.1" yargs "^15.4.1" -jest-cli@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" - integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== - dependencies: - "@jest/core" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - prompts "^2.0.1" - yargs "^16.0.3" - jest-config@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" @@ -11204,33 +11090,6 @@ jest-config@^26.6.3: micromatch "^4.0.2" pretty-format "^26.6.2" -jest-config@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" - integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.6" - "@jest/types" "^27.0.6" - babel-jest "^27.0.6" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - is-ci "^3.0.0" - jest-circus "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-get-type "^27.0.6" - jest-jasmine2 "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runner "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - micromatch "^4.0.4" - pretty-format "^27.0.6" - jest-diff@^26.0.0, jest-diff@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" @@ -11241,16 +11100,6 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" - integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -11258,13 +11107,6 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-docblock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" - integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== - dependencies: - detect-newline "^3.0.0" - jest-each@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" @@ -11276,17 +11118,6 @@ jest-each@^26.6.2: jest-util "^26.6.2" pretty-format "^26.6.2" -jest-each@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" - integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== - dependencies: - "@jest/types" "^27.0.6" - chalk "^4.0.0" - jest-get-type "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - jest-environment-jsdom@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" @@ -11300,19 +11131,6 @@ jest-environment-jsdom@^26.6.2: jest-util "^26.6.2" jsdom "^16.4.0" -jest-environment-jsdom@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" - integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" - jsdom "^16.6.0" - jest-environment-node@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" @@ -11325,68 +11143,27 @@ jest-environment-node@^26.6.2: jest-mock "^26.6.2" jest-util "^26.6.2" -jest-environment-node@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" - integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== +jest-expo@^44.0.0: + version "44.0.1" + resolved "https://registry.yarnpkg.com/jest-expo/-/jest-expo-44.0.1.tgz#2f39d8ed94f04d8f29b29d960d70f4b8a1049229" + integrity sha512-pGncycmLBlg2rOiZjdWGFujlVe3X+SHutKN42rZPoG3zOvv66/E0VpSQxPyn3DN3JCNKpWlK7CkwpCweg0qKtA== dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" - -jest-expo@^42.0.1: - version "42.1.0" - resolved "https://registry.yarnpkg.com/jest-expo/-/jest-expo-42.1.0.tgz#d8ae08ce16557e0e494256f9594b733c82a6cde5" - integrity sha512-pcV54N6LJ9paWIxYcli1cB1KU2TQ3UifcCcqO8P5hO/mNyFCSBtouUwIgr2VGrixIVbgK5EvPm4EncgrNlwLcQ== - dependencies: - "@expo/config" "^5.0.3" + "@expo/config" "^6.0.6" + "@jest/create-cache-key-function" "^26.6.2" babel-jest "^26.6.3" find-up "^5.0.0" - jest "^26.6.3" jest-watch-select-projects "^2.0.0" - jest-watch-typeahead "0.6.2" + jest-watch-typeahead "0.6.4" json5 "^2.1.0" - lodash "^4.5.0" - react-test-renderer "~16.11.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + lodash "^4.17.19" + react-test-renderer "~17.0.1" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" - integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-haste-map@^26.6.2: +jest-haste-map@^26.5.2, jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== @@ -11407,26 +11184,6 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" - integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== - dependencies: - "@jest/types" "^27.0.6" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.0.6" - jest-serializer "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - jest-jasmine2@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" @@ -11444,36 +11201,12 @@ jest-jasmine2@^26.6.3: is-generator-fn "^2.0.0" jest-each "^26.6.2" jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-jasmine2@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" - integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.0.6" - is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - throat "^6.0.1" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" jest-leak-detector@^26.6.2: version "26.6.2" @@ -11483,14 +11216,6 @@ jest-leak-detector@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-leak-detector@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" - integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== - dependencies: - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - jest-matcher-utils@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" @@ -11501,30 +11226,6 @@ jest-matcher-utils@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-matcher-utils@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" - integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== - dependencies: - chalk "^4.0.0" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - jest-message-util@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" @@ -11540,28 +11241,21 @@ jest-message-util@^26.6.2: slash "^3.0.0" stack-utils "^2.0.2" -jest-message-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" - integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.0.6" + "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^27.0.6" + pretty-format "^27.5.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - jest-mock@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" @@ -11570,14 +11264,6 @@ jest-mock@^26.6.2: "@jest/types" "^26.6.2" "@types/node" "*" -jest-mock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" - integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== - dependencies: - "@jest/types" "^27.0.6" - "@types/node" "*" - jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -11588,10 +11274,10 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-regex-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" - integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== +jest-regex-util@^27.0.0: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== jest-resolve-dependencies@^26.6.3: version "26.6.3" @@ -11602,15 +11288,6 @@ jest-resolve-dependencies@^26.6.3: jest-regex-util "^26.0.0" jest-snapshot "^26.6.2" -jest-resolve-dependencies@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" - integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== - dependencies: - "@jest/types" "^27.0.6" - jest-regex-util "^27.0.6" - jest-snapshot "^27.0.6" - jest-resolve@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" @@ -11625,21 +11302,6 @@ jest-resolve@^26.6.2: resolve "^1.18.1" slash "^3.0.0" -jest-resolve@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" - integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== - dependencies: - "@jest/types" "^27.0.6" - chalk "^4.0.0" - escalade "^3.1.1" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^27.0.6" - jest-validate "^27.0.6" - resolve "^1.20.0" - slash "^3.0.0" - jest-runner@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" @@ -11666,34 +11328,6 @@ jest-runner@^26.6.3: source-map-support "^0.5.6" throat "^5.0.0" -jest-runner@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" - integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-haste-map "^27.0.6" - jest-leak-detector "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runtime "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - source-map-support "^0.5.6" - throat "^6.0.1" - jest-runtime@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" @@ -11727,43 +11361,6 @@ jest-runtime@^26.6.3: strip-bom "^4.0.0" yargs "^15.4.1" -jest-runtime@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" - integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/globals" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.0.3" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== - jest-serializer@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" @@ -11772,14 +11369,6 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" -jest-serializer@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" - integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - jest-snapshot@^26.3.0, jest-snapshot@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" @@ -11802,36 +11391,6 @@ jest-snapshot@^26.3.0, jest-snapshot@^26.6.2: pretty-format "^26.6.2" semver "^7.3.2" -jest-snapshot@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" - integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.0.6" - graceful-fs "^4.2.4" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - jest-haste-map "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - natural-compare "^1.4.0" - pretty-format "^27.0.6" - semver "^7.3.2" - jest-specific-snapshot@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jest-specific-snapshot/-/jest-specific-snapshot-4.0.0.tgz#a52a2e223e7576e610dbeaf341207c557ac20554" @@ -11839,24 +11398,6 @@ jest-specific-snapshot@^4.0.0: dependencies: jest-snapshot "^26.3.0" -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - jest-util@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" @@ -11869,31 +11410,19 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" - integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^3.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-validate@^26.6.2: +jest-validate@^26.5.2, jest-validate@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== @@ -11905,18 +11434,6 @@ jest-validate@^26.6.2: leven "^3.1.0" pretty-format "^26.6.2" -jest-validate@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" - integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== - dependencies: - "@jest/types" "^27.0.6" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.0.6" - leven "^3.1.0" - pretty-format "^27.0.6" - jest-watch-select-projects@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz#4373d7e4de862aae28b46e036b669a4c913ea867" @@ -11926,20 +11443,20 @@ jest-watch-select-projects@^2.0.0: chalk "^3.0.0" prompts "^2.2.1" -jest-watch-typeahead@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.2.tgz#f3ea6518a2a497baad09a8d39f658140e6778e26" - integrity sha512-JKcDGEKWjhXo+/+RZMhtCsCA7J6KfbRXb7AbnQqoG9SH8AOGAkJFx8dHd80uIbkSxSVGEwI4ub62pET7a5BRPg== +jest-watch-typeahead@0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.4.tgz#ea70bf1bec34bd4f55b5b72d471b02d997899c3e" + integrity sha512-tGxriteVJqonyrDj/xZHa0E2glKMiglMLQqISLCjxLUfeueRBh9VoRF2FKQyYO2xOqrWDTg7781zUejx411ZXA== dependencies: ansi-escapes "^4.3.1" chalk "^4.0.0" - jest-regex-util "^26.0.0" - jest-watcher "^26.3.0" + jest-regex-util "^27.0.0" + jest-watcher "^27.0.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" -jest-watcher@^26.3.0, jest-watcher@^26.6.2: +jest-watcher@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== @@ -11952,27 +11469,19 @@ jest-watcher@^26.3.0, jest-watcher@^26.6.2: jest-util "^26.6.2" string-length "^4.0.1" -jest-watcher@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" - integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== +jest-watcher@^27.0.0: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== dependencies: - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.0.6" + jest-util "^27.5.1" string-length "^4.0.1" -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - jest-worker@^25.4.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" @@ -11981,7 +11490,7 @@ jest-worker@^25.4.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: +jest-worker@^26.0.0, jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -11990,15 +11499,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" @@ -12008,44 +11508,26 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" -jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" - integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== - dependencies: - "@jest/core" "^27.0.6" - import-local "^3.0.2" - jest-cli "^27.0.6" - jetifier@^1.6.2: version "1.6.6" resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.6.tgz#fec8bff76121444c12dc38d2dad6767c421dab68" integrity sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ== -jimp@0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.12.1.tgz#3e58fdd16ebb2b8f00a09be3dd5c54f79ffae04a" - integrity sha512-0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/custom" "^0.12.1" - "@jimp/plugins" "^0.12.1" - "@jimp/types" "^0.12.1" - regenerator-runtime "^0.13.3" +jimp-compact@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" + integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== -joi@^11.1.1: - version "11.4.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" - integrity sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA== +joi@^17.2.1: + version "17.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== dependencies: - hoek "4.x.x" - isemail "3.x.x" - topo "2.x.x" - -jpeg-js@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" - integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" js-string-escape@^1.0.1: version "1.0.1" @@ -12075,7 +11557,32 @@ jsc-android@^245459.0.0: resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9" integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg== -jsdom@^16.4.0, jsdom@^16.6.0: +jscodeshift@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f" + integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g== + dependencies: + "@babel/core" "^7.1.6" + "@babel/parser" "^7.1.6" + "@babel/plugin-proposal-class-properties" "^7.1.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0" + "@babel/plugin-proposal-optional-chaining" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-typescript" "^7.1.0" + "@babel/register" "^7.0.0" + babel-core "^7.0.0-bridge.0" + colors "^1.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^3.1.10" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.20.3" + temp "^0.8.1" + write-file-atomic "^2.3.0" + +jsdom@^16.4.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -12133,13 +11640,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json3@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -12204,11 +11704,6 @@ junk@^3.1.0: resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -12294,20 +11789,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -load-bmfont@^1.3.1, load-bmfont@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" - integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^2.9.1" - xhr "^2.0.1" - xtend "^4.0.0" - loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -12331,7 +11812,7 @@ loader-utils@2.0.0, loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -12415,7 +11896,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.template@^4.4.0, lodash.template@^4.5.0: +lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -12440,12 +11921,12 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@^4.5.0, lodash@^4.6.0: +"lodash@>=3.5 <5", lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -lodash@^4.17.21, lodash@^4.3.0, lodash@^4.7.0: +lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -12496,14 +11977,6 @@ lowlight@~1.11.0: fault "^1.0.2" highlight.js "~9.13.0" -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -12691,13 +12164,6 @@ merge-options@^3.0.4: dependencies: is-plain-obj "^2.1.0" -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -12713,10 +12179,10 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -metro-babel-register@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43" - integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg== +metro-babel-register@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.64.0.tgz#1a2d23f68da8b8ee42e78dca37ad21a5f4d3647d" + integrity sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ== dependencies: "@babel/core" "^7.0.0" "@babel/plugin-proposal-class-properties" "^7.0.0" @@ -12727,107 +12193,73 @@ metro-babel-register@0.59.0: "@babel/register" "^7.0.0" escape-string-regexp "^1.0.5" -metro-babel-transformer@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d" - integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w== +metro-babel-transformer@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz#a21f8a989a5ea60c1109456e21bd4d9374194ea0" + integrity sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw== dependencies: "@babel/core" "^7.0.0" - metro-source-map "0.59.0" + metro-source-map "0.64.0" + nullthrows "^1.1.1" + +metro-cache-key@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.64.0.tgz#98d0a94332453c4c52b74f72c07cc62a5c264c4f" + integrity sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg== -metro-cache@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.59.0.tgz#ef3c055f276933979b731455dc8317d7a66f0f2d" - integrity sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA== +metro-cache@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.64.0.tgz#a769503e12521d9e9d95ce5840ffb2efdb4e8703" + integrity sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg== dependencies: - jest-serializer "^24.9.0" - metro-core "0.59.0" + metro-core "0.64.0" mkdirp "^0.5.1" rimraf "^2.5.4" -metro-config@0.59.0, metro-config@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.59.0.tgz#9844e388069321dd7403e49f0d495a81f9aa0fef" - integrity sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA== +metro-config@0.64.0, metro-config@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.64.0.tgz#b634fa05cffd06b1e50e4339c200f90a42924afb" + integrity sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ== dependencies: cosmiconfig "^5.0.5" - jest-validate "^24.9.0" - metro "0.59.0" - metro-cache "0.59.0" - metro-core "0.59.0" + jest-validate "^26.5.2" + metro "0.64.0" + metro-cache "0.64.0" + metro-core "0.64.0" + metro-runtime "0.64.0" -metro-core@0.59.0, metro-core@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.59.0.tgz#958cde3fe5c8cd84a78e1899af801ad69e9c83b1" - integrity sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ== +metro-core@0.64.0, metro-core@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.64.0.tgz#7616b27acfe7baa476f6cd6bd9e70ae64fa62541" + integrity sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ== dependencies: - jest-haste-map "^24.9.0" + jest-haste-map "^26.5.2" lodash.throttle "^4.1.1" - metro-resolver "0.59.0" - wordwrap "^1.0.0" + metro-resolver "0.64.0" + +metro-hermes-compiler@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz#e6043d7aa924e5b2be99bd3f602e693685d15386" + integrity sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA== -metro-inspector-proxy@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz#39d1390772d13767fc595be9a1a7074e2425cf8e" - integrity sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ== +metro-inspector-proxy@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz#9a481b3f49773d5418e028178efec68f861bec88" + integrity sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA== dependencies: connect "^3.6.5" debug "^2.2.0" ws "^1.1.5" - yargs "^14.2.0" + yargs "^15.3.1" -metro-minify-uglify@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5" - integrity sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw== +metro-minify-uglify@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz#da6ab4dda030e3211f5924e7f41ed308d466068f" + integrity sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.59.0, metro-react-native-babel-preset@~0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225" - integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-assign" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-react-native-babel-preset@^0.64.0: +metro-react-native-babel-preset@0.64.0, metro-react-native-babel-preset@^0.64.0, metro-react-native-babel-preset@~0.64.0: version "0.64.0" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz#76861408681dfda3c1d962eb31a8994918c976f8" integrity sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ== @@ -12872,109 +12304,142 @@ metro-react-native-babel-preset@^0.64.0: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.59.0, metro-react-native-babel-transformer@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be" - integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ== +metro-react-native-babel-transformer@0.64.0, metro-react-native-babel-transformer@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz#eafef756972f20efdc51bd5361d55f8598355623" + integrity sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w== dependencies: "@babel/core" "^7.0.0" babel-preset-fbjs "^3.3.0" - metro-babel-transformer "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-source-map "0.59.0" + metro-babel-transformer "0.64.0" + metro-react-native-babel-preset "0.64.0" + metro-source-map "0.64.0" + nullthrows "^1.1.1" -metro-resolver@0.59.0, metro-resolver@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.59.0.tgz#fbc9d7c95f094c52807877d0011feffb9e896fad" - integrity sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w== +metro-resolver@0.64.0, metro-resolver@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.64.0.tgz#21126b44f31346ac2ce0b06b77ef65e8c9e2294a" + integrity sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA== dependencies: absolute-path "^0.0.0" -metro-source-map@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7" - integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ== +metro-runtime@0.64.0, metro-runtime@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.64.0.tgz#cdaa1121d91041bf6345f2a69eb7c2fb289eff7b" + integrity sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ== + +metro-source-map@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.64.0.tgz#4310e17c3d4539c6369688022494ad66fa4d39a1" + integrity sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g== dependencies: "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" invariant "^2.2.4" - metro-symbolicate "0.59.0" - ob1 "0.59.0" + metro-symbolicate "0.64.0" + nullthrows "^1.1.1" + ob1 "0.64.0" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54" - integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw== +metro-symbolicate@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz#405c21438ab553c29f6841da52ca76ee87bb06ac" + integrity sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ== dependencies: invariant "^2.2.4" - metro-source-map "0.59.0" + metro-source-map "0.64.0" + nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro@0.59.0, metro@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.59.0.tgz#64a87cd61357814a4f279518e0781b1eab5934b8" - integrity sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg== +metro-transform-plugins@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz#41d3dce0f2966bbd79fea1ecff61bcc8a00e4665" + integrity sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A== + dependencies: + "@babel/core" "^7.0.0" + "@babel/generator" "^7.5.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + nullthrows "^1.1.1" + +metro-transform-worker@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz#f94429b2c42b13cb1c93be4c2e25e97f2d27ca60" + integrity sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ== + dependencies: + "@babel/core" "^7.0.0" + "@babel/generator" "^7.5.0" + "@babel/parser" "^7.0.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.3.0" + metro "0.64.0" + metro-babel-transformer "0.64.0" + metro-cache "0.64.0" + metro-cache-key "0.64.0" + metro-hermes-compiler "0.64.0" + metro-source-map "0.64.0" + metro-transform-plugins "0.64.0" + nullthrows "^1.1.1" + +metro@0.64.0, metro@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.64.0.tgz#0091a856cfbcc94dd576da563eee466e96186195" + integrity sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.0.0" "@babel/generator" "^7.5.0" "@babel/parser" "^7.0.0" - "@babel/plugin-external-helpers" "^7.0.0" "@babel/template" "^7.0.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" absolute-path "^0.0.0" + accepts "^1.3.7" async "^2.4.0" - babel-preset-fbjs "^3.3.0" - buffer-crc32 "^0.2.13" - chalk "^2.4.1" + chalk "^4.0.0" ci-info "^2.0.0" - concat-stream "^1.6.0" connect "^3.6.5" debug "^2.2.0" denodeify "^1.2.1" error-stack-parser "^2.0.6" - eventemitter3 "^3.0.0" - fbjs "^1.0.0" fs-extra "^1.0.0" graceful-fs "^4.1.3" image-size "^0.6.0" invariant "^2.2.4" - jest-haste-map "^24.9.0" - jest-worker "^24.9.0" - json-stable-stringify "^1.0.1" + jest-haste-map "^26.5.2" + jest-worker "^26.0.0" lodash.throttle "^4.1.1" - merge-stream "^1.0.1" - metro-babel-register "0.59.0" - metro-babel-transformer "0.59.0" - metro-cache "0.59.0" - metro-config "0.59.0" - metro-core "0.59.0" - metro-inspector-proxy "0.59.0" - metro-minify-uglify "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-resolver "0.59.0" - metro-source-map "0.59.0" - metro-symbolicate "0.59.0" - mime-types "2.1.11" + metro-babel-register "0.64.0" + metro-babel-transformer "0.64.0" + metro-cache "0.64.0" + metro-cache-key "0.64.0" + metro-config "0.64.0" + metro-core "0.64.0" + metro-hermes-compiler "0.64.0" + metro-inspector-proxy "0.64.0" + metro-minify-uglify "0.64.0" + metro-react-native-babel-preset "0.64.0" + metro-resolver "0.64.0" + metro-runtime "0.64.0" + metro-source-map "0.64.0" + metro-symbolicate "0.64.0" + metro-transform-plugins "0.64.0" + metro-transform-worker "0.64.0" + mime-types "^2.1.27" mkdirp "^0.5.1" node-fetch "^2.2.0" nullthrows "^1.1.1" - resolve "^1.5.0" rimraf "^2.5.4" serialize-error "^2.1.0" source-map "^0.5.6" - strip-ansi "^4.0.0" + strip-ansi "^6.0.0" temp "0.8.3" - throat "^4.1.0" - wordwrap "^1.0.0" + throat "^5.0.0" ws "^1.1.5" - xpipe "^1.0.5" - yargs "^14.2.0" + yargs "^15.3.1" microevent.ts@~0.1.1: version "0.1.1" @@ -13034,23 +12499,16 @@ mime-db@1.49.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + "mime-db@>= 1.43.0 < 2": version "1.45.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== -mime-db@~1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" - integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk= - -mime-types@2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" - integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw= - dependencies: - mime-db "~1.23.0" - mime-types@^2.1.12: version "2.1.32" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" @@ -13065,7 +12523,14 @@ mime-types@^2.1.27, mime-types@~2.1.24: dependencies: mime-db "1.44.0" -mime@1.6.0, mime@^1.3.4: +mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -13118,6 +12583,13 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -13268,13 +12740,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -native-url@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" - integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== - dependencies: - querystring "^0.2.0" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -13285,6 +12750,11 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -13313,6 +12783,13 @@ nocache@^2.1.0: resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + dependencies: + minimatch "^3.0.2" + node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -13394,16 +12871,16 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + node-stream-zip@^1.9.1: version "1.12.0" resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.12.0.tgz#f69af78799531b928662f4900d345387fa0b3777" integrity sha512-HZ3XehqShTFj9gHauRJ3Bri9eiCTOII7/crtXzURtT14NdnOFs9Ia5E82W7z3izVBNx760tqwddxrBJVG52Y1Q== -noop-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/noop-fn/-/noop-fn-1.0.0.tgz#5f33d47f13d2150df93e0cb036699e982f78ffbf" - integrity sha1-XzPUfxPSFQ35PgywNmmemC94/78= - normalize-css-color@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" @@ -13448,7 +12925,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -13472,7 +12949,7 @@ nth-check@^1.0.2, nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -nullthrows@^1.1.0, nullthrows@^1.1.1: +nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== @@ -13492,10 +12969,10 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -ob1@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36" - integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ== +ob1@0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.64.0.tgz#f254a55a53ca395c4f9090e28a85483eac5eba19" + integrity sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -13521,7 +12998,7 @@ object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-is@^1.0.1, object-is@^1.1.4: +object-is@^1.0.1: version "1.1.4" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== @@ -13541,7 +13018,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -13597,11 +13074,6 @@ object.values@^1.1.0: es-abstract "^1.18.0-next.1" has "^1.0.3" -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -13628,7 +13100,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -13833,7 +13305,7 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^1.0.5, pako@~1.0.5: +pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -13873,24 +13345,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= - -parse-bmfont-xml@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" - integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== - dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.4.5" - parse-entities@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" @@ -13915,11 +13369,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -13938,11 +13387,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - parse-png@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338" @@ -14074,10 +13518,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" @@ -14123,13 +13567,6 @@ pirates@^4.0.0, pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= - dependencies: - pngjs "^3.0.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -14151,7 +13588,7 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-up@2.0.0, pkg-up@^2.0.0: +pkg-up@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= @@ -14174,18 +13611,7 @@ plist@^3.0.1: xmlbuilder "^9.0.7" xmldom "0.1.x" -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - -pngjs@^3.0.0, pngjs@^3.3.0, pngjs@^3.3.3: +pngjs@^3.3.0: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== @@ -14608,11 +14034,6 @@ postinstall-postinstall@^2.1.0: resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== -pouchdb-collections@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-1.0.1.tgz#fe63a17da977611abef7cb8026cb1a9553fd8359" - integrity sha1-/mOhfal3YRq+98uAJssalVP9g1k= - preact-render-to-string@^5.1.19: version "5.1.19" resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.1.19.tgz#ffae7c3bd1680be5ecf5991d41fe3023b3051e0e" @@ -14628,12 +14049,7 @@ prelude-ls@~1.1.2: prettier@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-error@^2.1.1: version "2.1.2" @@ -14643,27 +14059,7 @@ pretty-error@^2.1.1: lodash "^4.17.20" renderkid "^2.0.4" -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^25.1.0, pretty-format@^25.2.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== - dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -pretty-format@^26.0.0, pretty-format@^26.4.0, pretty-format@^26.6.2: +pretty-format@^26.0.0, pretty-format@^26.5.2, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== @@ -14673,13 +14069,12 @@ pretty-format@^26.0.0, pretty-format@^26.4.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" - integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== dependencies: - "@jest/types" "^27.0.6" - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -14693,11 +14088,6 @@ pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - prismjs@^1.21.0, prismjs@~1.24.0: version "1.24.1" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" @@ -14727,11 +14117,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -14816,11 +14201,6 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -14868,16 +14248,16 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -14895,7 +14275,7 @@ qs@^6.10.0: dependencies: side-channel "^1.0.4" -qs@^6.5.0, qs@^6.6.0: +qs@^6.6.0: version "6.9.4" resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== @@ -14915,6 +14295,13 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + ramda@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" @@ -15100,6 +14487,15 @@ react-devtools-core@^4.6.0: shell-quote "^1.6.1" ws "^7" +react-dom@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" + integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.1" + react-dom@^16.8.3: version "16.14.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" @@ -15110,15 +14506,6 @@ react-dom@^16.8.3: prop-types "^15.6.2" scheduler "^0.19.1" -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - react-draggable@^4.0.3, react-draggable@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.3.tgz#0727f2cae5813e36b0e4962bf11b2f9ef2b406f3" @@ -15209,16 +14596,16 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - "react-is@^16.12.0 || ^17.0.0", react-is@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + react-is@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" @@ -15236,6 +14623,15 @@ react-native-animatable@1.3.3: dependencies: prop-types "^15.7.2" +react-native-codegen@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.6.tgz#b3173faa879cf71bfade8d030f9c4698388f6909" + integrity sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg== + dependencies: + flow-parser "^0.121.0" + jscodeshift "^0.11.0" + nullthrows "^1.1.1" + react-native-iphone-x-helper@^1.0.3: version "1.3.1" resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz#20c603e9a0e765fd6f97396638bdeb0e5a60b010" @@ -15272,15 +14668,15 @@ react-native-modal@^11.0.2: prop-types "^15.6.2" react-native-animatable "1.3.3" -react-native-safe-area-context@3.1.9, react-native-safe-area-context@^3.1.9: - version "3.1.9" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.1.9.tgz#48864ea976b0fa57142a2cc523e1fd3314e7247e" - integrity sha512-wmcGbdyE/vBSL5IjDPReoJUEqxkZsywZw5gPwsVUV1NBpw5eTIdnL6Y0uNKHE25Z661moxPHQz6kwAkYQyorxA== +react-native-safe-area-context@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.2.tgz#9549a2ce580f2374edb05e49d661258d1b8bcaed" + integrity sha512-yOwiiPJ1rk+/nfK13eafbpW6sKW0jOnsRem2C1LPJjM3tfTof6hlvV5eWHATye3XOpu2cJ7N+HdkUvUDGwFD2Q== -react-native-svg@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.1.0.tgz#acfe48c35cd5fca3d5fd767abae0560c36cfc03d" - integrity sha512-1g9qBRci7man8QsHoXn6tP3DhCDiypGgc6+AOWq+Sy+PmP6yiyf8VmvKuoqrPam/tf5x+ZaBT2KI0gl7bptZ7w== +react-native-svg@12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.1.1.tgz#5f292410b8bcc07bbc52b2da7ceb22caf5bcaaee" + integrity sha512-NIAJ8jCnXGCqGWXkkJ1GTzO4a3Md5at5sagYV8Vh4MXYnL4z5Rh428Wahjhh+LIjx40EE5xM5YtwyJBqOIba2Q== dependencies: css-select "^2.1.0" css-tree "^1.0.0-alpha.39" @@ -15290,10 +14686,10 @@ react-native-swipe-gestures@^1.0.4: resolved "https://registry.yarnpkg.com/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.5.tgz#a172cb0f3e7478ccd681fd36b8bfbcdd098bde7c" integrity sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw== -react-native-web@^0.16.5: - version "0.16.5" - resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.16.5.tgz#859e95cae21e63330a1dabbce8cd0d953b2239f2" - integrity sha512-bsoSq9pnjPerNKC1uzvJi7464to3SSMbGG9QFdj6woV3xk5fhq2jB2vQ5+iH/KC7F5lpDRukcb2hMHL1rzKJUQ== +react-native-web@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.17.1.tgz#90d473c89dd99b88bc9830b2a9fcdd2fc5f04902" + integrity sha512-lUnn+2O8ynQ6/gJKylSxm7DLi2vHw6AujdDV1+LSa8Epe1bYFJNUcJTEhJf0jNYUFGOujzMtuG8Mkz3HdWTkag== dependencies: array-find-index "^1.0.2" create-react-class "^15.7.0" @@ -15303,37 +14699,42 @@ react-native-web@^0.16.5: normalize-css-color "^1.0.2" prop-types "^15.6.0" -"react-native@https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz": - version "0.63.2" - resolved "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz#5a545ad0b464824817ad699bb104d031d6ff6c39" - dependencies: - "@babel/runtime" "^7.0.0" - "@react-native-community/cli" "^4.7.0" - "@react-native-community/cli-platform-android" "^4.7.0" - "@react-native-community/cli-platform-ios" "^4.7.0" +"react-native@https://github.com/expo/react-native/archive/sdk-44.0.0.tar.gz": + version "0.64.3" + resolved "https://github.com/expo/react-native/archive/sdk-44.0.0.tar.gz#2c14f8540f9d4418142ec752a9f346381ca3d718" + dependencies: + "@jest/create-cache-key-function" "^26.5.0" + "@react-native-community/cli" "^5.0.1-alpha.1" + "@react-native-community/cli-platform-android" "^5.0.1-alpha.1" + "@react-native-community/cli-platform-ios" "^5.0.1-alpha.1" + "@react-native/assets" "1.0.0" + "@react-native/normalize-color" "1.0.0" + "@react-native/polyfills" "1.0.0" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" event-target-shim "^5.0.1" - fbjs "^1.0.0" - fbjs-scripts "^1.1.0" - hermes-engine "~0.5.0" + hermes-engine "~0.7.0" invariant "^2.2.4" jsc-android "^245459.0.0" - metro-babel-register "0.59.0" - metro-react-native-babel-transformer "0.59.0" - metro-source-map "0.59.0" + metro-babel-register "0.64.0" + metro-react-native-babel-transformer "0.64.0" + metro-runtime "0.64.0" + metro-source-map "0.64.0" nullthrows "^1.1.1" - pretty-format "^24.9.0" + pretty-format "^26.5.2" promise "^8.0.3" prop-types "^15.7.2" react-devtools-core "^4.6.0" + react-native-codegen "^0.0.6" react-refresh "^0.4.0" regenerator-runtime "^0.13.2" - scheduler "0.19.1" + scheduler "^0.20.1" + shelljs "^0.8.4" stacktrace-parser "^0.1.3" use-subscription "^1.0.0" whatwg-fetch "^3.0.0" + ws "^6.1.4" react-popper-tooltip@^2.8.3: version "2.11.1" @@ -15378,11 +14779,6 @@ react-refresh@^0.4.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA== -react-refresh@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" - integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== - react-select@^3.0.8: version "3.1.1" resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.1.tgz#156a5b4a6c22b1e3d62a919cb1fd827adb4060bc" @@ -15447,7 +14843,7 @@ react-syntax-highlighter@^13.5.3: prismjs "^1.21.0" refractor "^3.1.0" -"react-test-renderer@^16.8.0 || ^17.0.0", react-test-renderer@^17.0.2: +"react-test-renderer@^16.8.0 || ^17.0.0", react-test-renderer@^17.0.2, react-test-renderer@~17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== @@ -15457,16 +14853,6 @@ react-syntax-highlighter@^13.5.3: react-shallow-renderer "^16.13.1" scheduler "^0.20.2" -react-test-renderer@~16.11.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.11.0.tgz#72574566496462c808ac449b0287a4c0a1a7d8f8" - integrity sha512-nh9gDl8R4ut+ZNNb2EeKO5VMvTKxwzurbSMuGBoKtjpjbg8JK/u3eVPVNi1h1Ue+eYK9oSzJjb+K3lzLxyA4ag== - dependencies: - object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.17.0" - react-textarea-autosize@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz#70fdb333ef86bcca72717e25e623e90c336e2cda" @@ -15494,14 +14880,13 @@ react-transition-group@^4.3.0: loose-envify "^1.4.0" prop-types "^15.6.2" -react@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== +react@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" + integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" react@^16.6.0, react@^16.8.3: version "16.14.0" @@ -15583,6 +14968,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +recast@^0.20.3: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -15615,6 +15010,13 @@ refractor@^3.1.0: parse-entities "^2.0.0" prismjs "~1.24.0" +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -15622,16 +15024,11 @@ regenerate-unicode-properties@^8.2.0: dependencies: regenerate "^1.4.0" -regenerate@^1.4.0: +regenerate@^1.4.0, regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -15677,6 +15074,18 @@ regexpu-core@^4.7.1: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + registry-auth-token@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" @@ -15697,6 +15106,11 @@ regjsgen@^0.5.1: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + regjsparser@^0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" @@ -15704,6 +15118,13 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -15803,11 +15224,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" - integrity sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc= - reselect@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" @@ -15845,7 +15261,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.4.0: +resolve@^1.1.6, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2: version "1.19.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== @@ -15853,7 +15269,7 @@ resolve@^1.1.6, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3. is-core-module "^2.1.0" path-parse "^1.0.6" -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.5.0: +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.19.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -15916,6 +15332,13 @@ rimraf@~2.2.6: resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -15946,18 +15369,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - rxjs@^6.4.0, rxjs@^6.6.0: version "6.6.3" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" @@ -16019,7 +15430,7 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@0.19.1, scheduler@^0.19.1: +scheduler@^0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== @@ -16027,15 +15438,7 @@ scheduler@0.19.1, scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" - integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.20.2: +scheduler@^0.20.1, scheduler@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== @@ -16052,14 +15455,6 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^0.4.0: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -16087,21 +15482,25 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + select@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" - integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== - semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -16117,14 +15516,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.3: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.2: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -16288,6 +15680,15 @@ shelljs@^0.8.3: interpret "^1.0.0" rechoir "^0.6.2" +shelljs@^0.8.4: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -16310,7 +15711,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -16541,13 +15942,6 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - stack-utils@^2.0.2, stack-utils@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" @@ -16585,13 +15979,6 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -std-env@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b" - integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ== - dependencies: - ci-info "^1.6.0" - store2@^2.12.0, store2@^2.7.1: version "2.12.0" resolved "https://registry.yarnpkg.com/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf" @@ -16659,7 +16046,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -16738,15 +16125,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -16780,14 +16158,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-comments@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" - integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== - dependencies: - babel-extract-comments "^1.0.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -16878,13 +16248,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -16985,6 +16348,13 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +temp@^0.8.1: + version "0.8.4" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" + integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== + dependencies: + rimraf "~2.6.2" + tempy@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" @@ -17094,7 +16464,7 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-table@0.2.0, text-table@^0.2.0: +text-table@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -17113,21 +16483,11 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - throttle-debounce@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2" @@ -17151,11 +16511,6 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - timers-browserify@^2.0.4: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -17163,11 +16518,6 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timm@^1.6.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" - integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -17178,11 +16528,6 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-queue@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046" - integrity sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY= - tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" @@ -17257,13 +16602,6 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -topo@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" - integrity sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI= - dependencies: - hoek "4.x.x" - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -17325,6 +16663,11 @@ tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tslib@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" @@ -17402,10 +16745,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" - integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== +typescript@~4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== ua-parser-js@^0.7.18: version "0.7.23" @@ -17443,6 +16786,11 @@ unicode-canonical-property-names-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + unicode-match-property-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" @@ -17451,16 +16799,34 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + unicode-property-aliases-ecmascript@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + unified@9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" @@ -17473,61 +16839,6 @@ unified@9.2.0: trough "^1.0.0" vfile "^4.0.0" -unimodules-app-loader@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unimodules-app-loader/-/unimodules-app-loader-1.4.0.tgz#8ab738a379b46798aec9e4fda317f17750cd2f92" - integrity sha512-qBxfXIOLy1KmBDThgmLBPJSNI0xV+6Xz2Sfsu3Hz2ewijaNlgRjSBH3McXIPU/nSVb/vVtcEtDvXuGw3udM0fQ== - -unimodules-barcode-scanner-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-5.4.0.tgz#75ff1ef9272d3f6b607871f64b3c087577453676" - integrity sha512-UXQpZlXA3UbC6cYJJe6W+KL5yL+kwXHBLSWgzJ18n7GsJbbCitQlA5wehXR+bY5sFAlP/AKBk0Y2XPTmtDrPaw== - -unimodules-camera-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-camera-interface/-/unimodules-camera-interface-5.4.0.tgz#4dc285dd2f851694fccd45154be033ff2f4c987f" - integrity sha512-v8UTe24xxP5+7r1ltx/DvATRZMGKCjFynsM3TKZ8BiRFNM+xB6HVROZBftSPRVkbwPXoKRrH58Dmv6hiT/t5Tw== - -unimodules-constants-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-constants-interface/-/unimodules-constants-interface-5.4.0.tgz#a0e70c22f7aeb225a32c5734f1bbb05064159f7f" - integrity sha512-6oqSt9zuI+dES56TABBi390FkVCozTN+hYfX0Kf6HdlnDpXTQqKZNfyWQgP7E78dIyB9b0q+kH7kTLLq+HNfOQ== - -unimodules-face-detector-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-face-detector-interface/-/unimodules-face-detector-interface-5.4.0.tgz#a46df503befe553d3d065df0593d3ec7b970a015" - integrity sha512-rM04XtxHnxmRMC65hu2yDxPSZHAeyBdgOXBFDomv9HT5nTPb+9NiHwWS21angly8oOyPZKSPtWLldqeg2MNYKA== - -unimodules-file-system-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-file-system-interface/-/unimodules-file-system-interface-5.4.0.tgz#80cae6962319be1ba6116b9a2e3c445932bbca4d" - integrity sha512-+9oZ2TuZfSaC7vMa3QzxOeHak7H0uyhzXMBSO0kFIzKUZNmbuq7lY/bn5RXggmN/ITDoXuedFaaeWloD/zKdoA== - -unimodules-font-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-font-interface/-/unimodules-font-interface-5.4.0.tgz#8b6ed50ad56c969baaa80bee10e4b94f88eb328c" - integrity sha512-uy1TgyWPWGTeoYlROJToaNEwcuvxjwD7dGOXrcyle0e0toXZhpP07/uD270AO+X6aKs7KNkpdHDIDdTvDB/LyA== - -unimodules-image-loader-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-image-loader-interface/-/unimodules-image-loader-interface-5.4.0.tgz#f31ec5a0747bc8069af78150fb6a8d8cea7ece8d" - integrity sha512-kJfJWhf7B4ResjKkpgK1cbOavM14jpjKsKdsFcXN04wlLh83mh6mHAOlUIVzA44a5Kzun/mCb2JzKjyo3qQJuA== - -unimodules-permissions-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-permissions-interface/-/unimodules-permissions-interface-5.4.0.tgz#cdadfdcca8b50660b9d4027c6487323346bedb0e" - integrity sha512-mb+uiWvf2M/og7bA28CYOH6uKsAg/7oRBodZNsXVRH/h5LjQlBd5lTECH/L3Hkm3Ta7NSQUnENtXUCO4jfnVkg== - -unimodules-sensors-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-sensors-interface/-/unimodules-sensors-interface-5.4.0.tgz#cd6a65665a8e6111b5f23d6a32e4cc16cc3cf04e" - integrity sha512-QxjP8XiiQ3rnjQE2/oRMweRa262hIxeg2SCAgSVNUSC1sTIC44nZgjsfpFk0omkfUpXi3lqSt0wjZjkSgJ1NeQ== - -unimodules-task-manager-interface@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/unimodules-task-manager-interface/-/unimodules-task-manager-interface-5.4.0.tgz#f971a93fe86a12a4b8f43e590726492148ec4753" - integrity sha512-5QvPqR41fg9tsce+H6ZBzHxSbce+xPUWKoPZiP5pF4Gq4C3r0AdAfQXz+KkzTDrpj7EqNrjG0xkUfPKmizZ55Q== - union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -17763,13 +17074,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -17841,15 +17145,6 @@ v8-to-istanbul@^7.0.0: convert-source-map "^1.6.0" source-map "^0.7.3" -v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -17969,13 +17264,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-deep-scope-plugin@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.0.tgz#5a3a26dc8a40863c7c362840df1fb63f5ca4c441" - integrity sha512-ZYldKNeWQtk9SoV70x7Eb2NRmvHMtNBOjscs0wUdg/pfymntiF+0W/D9v2o76ztufjND6RNFjNVnyFQww25AZg== - dependencies: - deep-scope-analyser "^1.6.0" - webpack-dev-middleware@^3.7.0: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -18133,20 +17421,6 @@ webpack@^4.33.0, webpack@^4.38.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpackbar@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-4.0.0.tgz#ee7a87f16077505b5720551af413c8ecd5b1f780" - integrity sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - consola "^2.10.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^6.0.0" - websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -18187,45 +17461,11 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-boxed-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz#cbe8f838ebe91ba2471bb69e9edbda67ab5a5ec1" - integrity sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ== - dependencies: - is-bigint "^1.0.0" - is-boolean-object "^1.0.0" - is-number-object "^1.0.3" - is-string "^1.0.4" - is-symbol "^1.0.2" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which-typed-array@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" - integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== - dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" - foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" - which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -18259,138 +17499,6 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -workbox-background-sync@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" - integrity sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q== - dependencies: - workbox-core "^3.6.3" - -workbox-broadcast-cache-update@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" - integrity sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg== - dependencies: - workbox-core "^3.6.3" - -workbox-build@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" - integrity sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g== - dependencies: - babel-runtime "^6.26.0" - common-tags "^1.4.0" - fs-extra "^4.0.2" - glob "^7.1.2" - joi "^11.1.1" - lodash.template "^4.4.0" - pretty-bytes "^4.0.2" - stringify-object "^3.2.2" - strip-comments "^1.0.2" - workbox-background-sync "^3.6.3" - workbox-broadcast-cache-update "^3.6.3" - workbox-cache-expiration "^3.6.3" - workbox-cacheable-response "^3.6.3" - workbox-core "^3.6.3" - workbox-google-analytics "^3.6.3" - workbox-navigation-preload "^3.6.3" - workbox-precaching "^3.6.3" - workbox-range-requests "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" - workbox-streams "^3.6.3" - workbox-sw "^3.6.3" - -workbox-cache-expiration@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" - integrity sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA== - dependencies: - workbox-core "^3.6.3" - -workbox-cacheable-response@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" - integrity sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg== - dependencies: - workbox-core "^3.6.3" - -workbox-core@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" - integrity sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ== - -workbox-google-analytics@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" - integrity sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig== - dependencies: - workbox-background-sync "^3.6.3" - workbox-core "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" - -workbox-navigation-preload@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" - integrity sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw== - dependencies: - workbox-core "^3.6.3" - -workbox-precaching@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" - integrity sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw== - dependencies: - workbox-core "^3.6.3" - -workbox-range-requests@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" - integrity sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A== - dependencies: - workbox-core "^3.6.3" - -workbox-routing@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" - integrity sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ== - dependencies: - workbox-core "^3.6.3" - -workbox-strategies@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" - integrity sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g== - dependencies: - workbox-core "^3.6.3" - -workbox-streams@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" - integrity sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w== - dependencies: - workbox-core "^3.6.3" - -workbox-sw@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" - integrity sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg== - -workbox-webpack-plugin@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz#a807bb891b4e4e3c808df07e58f17de2d5ba6182" - integrity sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ== - dependencies: - babel-runtime "^6.26.0" - json-stable-stringify "^1.0.1" - workbox-build "^3.6.3" - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -18398,14 +17506,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" - integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== - dependencies: - loader-utils "^1.0.0" - schema-utils "^0.4.0" - worker-rpc@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" @@ -18413,16 +17513,7 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.0.0, wrap-ansi@^6.2.0: +wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -18431,15 +17522,6 @@ wrap-ansi@^6.0.0, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -18472,6 +17554,13 @@ ws@^1.1.0, ws@^1.1.5: options ">=0.0.5" ultron "1.0.x" +ws@^6.1.4: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + ws@^7, ws@^7.1.2: version "7.4.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" @@ -18498,16 +17587,6 @@ xcode@^3.0.0, xcode@^3.0.1: simple-plist "^1.1.0" uuid "^7.0.3" -xhr@^2.0.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - xml-js@^1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" @@ -18520,12 +17599,7 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= - -xml2js@^0.4.23, xml2js@^0.4.5: +xml2js@0.4.23: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== @@ -18565,16 +17639,6 @@ xmldom@0.1.x: resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== -xmldom@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" - integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== - -xpipe@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" - integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= - xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -18585,16 +17649,6 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -18615,14 +17669,6 @@ yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -18631,29 +17677,7 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^14.2.0: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yargs@^15.1.0, yargs@^15.4.1: +yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== @@ -18670,19 +17694,6 @@ yargs@^15.1.0, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From c1ae4edb27045c4e03a0728abd1cee99bf5cc0f3 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 12:24:07 +0530 Subject: [PATCH 126/172] fix: badge testing --- .../components/composites/Badge/icons.tsx | 8 +++--- src/components/composites/Badge/index.tsx | 28 +++++++++++++------ src/components/composites/Badge/types.tsx | 15 ++++++++-- src/theme/components/badge.ts | 11 +++++++- 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/example/storybook/stories/components/composites/Badge/icons.tsx b/example/storybook/stories/components/composites/Badge/icons.tsx index 8f5526f68..361a8474d 100644 --- a/example/storybook/stories/components/composites/Badge/icons.tsx +++ b/example/storybook/stories/components/composites/Badge/icons.tsx @@ -4,13 +4,13 @@ import { Badge, Stack, AddIcon } from 'native-base'; export const Example = () => { return ( - }> + }> SUCCESS } + colorScheme="warning" + variant="outline" + startIcon={} > SUCCESS diff --git a/src/components/composites/Badge/index.tsx b/src/components/composites/Badge/index.tsx index 95ded6e4a..9f4147d1a 100644 --- a/src/components/composites/Badge/index.tsx +++ b/src/components/composites/Badge/index.tsx @@ -1,14 +1,24 @@ import React, { memo, forwardRef } from 'react'; +import HStack from '../../primitives/Stack/HStack'; import Box from '../../primitives/Box'; import type { IBadgeProps } from './types'; import { usePropsResolution } from '../../../hooks/useThemeProps'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const Badge = ( - { children, startIcon, rightIcon, leftIcon, endIcon, ...props }: IBadgeProps, + { + children, + startIcon, + rightIcon, + leftIcon, + endIcon, + + ...props + }: IBadgeProps, ref: any ) => { - const newProps = usePropsResolution('Badge', props); + const { _icon, _text, ...newProps } = usePropsResolution('Badge', props); + //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -26,8 +36,8 @@ const Badge = ( endIcon, (child: JSX.Element, index: number) => { return React.cloneElement(child, { - key: `button-end-icon-${index}`, - ...newProps._text, + key: `badge-end-icon-${index}`, + ..._icon, ...child.props, }); } @@ -38,8 +48,8 @@ const Badge = ( startIcon, (child: JSX.Element, index: number) => { return React.cloneElement(child, { - key: `button-start-icon-${index}`, - ...newProps._text, + key: `badge-start-icon-${index}`, + ..._icon, ...child.props, }); } @@ -47,11 +57,11 @@ const Badge = ( } return ( - + {startIcon ? startIcon : null} - {children} + {children} {endIcon ? endIcon : null} - + ); }; diff --git a/src/components/composites/Badge/types.tsx b/src/components/composites/Badge/types.tsx index 57f54fc0b..1f35b3f47 100644 --- a/src/components/composites/Badge/types.tsx +++ b/src/components/composites/Badge/types.tsx @@ -1,7 +1,8 @@ import type { VariantType } from '../../types'; -import type { IBoxProps } from '../../primitives'; - -export interface IBadgeProps extends IBoxProps { +import type { IStackProps } from '../../primitives//Stack'; +import type { ITextProps } from '../../primitives/Text/types'; +import type { IIconProps } from '../../primitives/Icon'; +export interface IBadgeProps extends IStackProps { /** * The style variant of the badge. * @default subtle @@ -27,4 +28,12 @@ export interface IBadgeProps extends IBoxProps { * The end icon element to use in the button. */ endIcon?: JSX.Element | Array; + /** + * Props to style the child text + */ + _text?: ITextProps; + /** + * Props to be passed to the Icon used inside of Button. + */ + _icon?: IIconProps; } diff --git a/src/theme/components/badge.ts b/src/theme/components/badge.ts index fcf084269..a9daa59bc 100644 --- a/src/theme/components/badge.ts +++ b/src/theme/components/badge.ts @@ -2,7 +2,7 @@ import { getColorScheme } from '../tools'; const baseStyle = { flexDirection: 'row', - gap: 1, + space: 1, px: '2', py: '0.5', alignItems: 'center', @@ -15,6 +15,9 @@ function variantSolid(props: Record) { _text: { color: 'text.50', }, + _icon: { + color: 'text.50', + }, bg: `${colorScheme}.600`, borderWidth: '1', borderColor: 'transparent', @@ -26,6 +29,7 @@ function variantSubtle(props: Record) { const colorScheme = getColorScheme(props); return { _text: { color: `${colorScheme}.900` }, + _icon: { color: `${colorScheme}.900` }, _light: { bg: `${colorScheme}.100` }, _dark: { bg: `${colorScheme}.300` }, borderWidth: '1', @@ -39,12 +43,16 @@ function variantOutline(props: Record) { return { _light: { _text: { color: `${colorScheme}.600` }, + _icon: { color: `${colorScheme}.600` }, borderColor: `${colorScheme}.600`, }, _dark: { _text: { color: `${colorScheme}.300`, }, + _icon: { + color: `${colorScheme}.300`, + }, borderColor: `${colorScheme}.300`, }, borderRadius: '2', @@ -61,6 +69,7 @@ const variants = { const defaultProps = { variant: 'subtle', colorScheme: 'muted', + size: 'md', }; export default { From 7d5e8344bad1b4ba99642bcc17070e8c095e6781 Mon Sep 17 00:00:00 2001 From: amars29 Date: Mon, 28 Mar 2022 12:32:08 +0530 Subject: [PATCH 127/172] fix: space between Select dropdown and right border --- src/components/primitives/Select/Select.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/primitives/Select/Select.tsx b/src/components/primitives/Select/Select.tsx index bf901b37b..657ee8be4 100644 --- a/src/components/primitives/Select/Select.tsx +++ b/src/components/primitives/Select/Select.tsx @@ -128,7 +128,7 @@ const Select = ( ) : dropdownIcon ? ( dropdownIcon ) : ( - + ); const handleClose = () => { From 1ab8cd571133002844ae9be8400d1600f6ddc5e9 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Mon, 28 Mar 2022 13:28:07 +0530 Subject: [PATCH 128/172] fix: status not changing bg of alert From 14149910e88a8c78ec4fdf2df163b45b0d0874b9 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 13:30:51 +0530 Subject: [PATCH 129/172] fix: checkbox disabled styling issue --- src/components/primitives/Checkbox/Checkbox.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/primitives/Checkbox/Checkbox.tsx b/src/components/primitives/Checkbox/Checkbox.tsx index ab239ecf8..035668955 100644 --- a/src/components/primitives/Checkbox/Checkbox.tsx +++ b/src/components/primitives/Checkbox/Checkbox.tsx @@ -163,6 +163,7 @@ const CheckboxComponent = React.memo( return ( Date: Mon, 28 Mar 2022 13:37:07 +0530 Subject: [PATCH 130/172] fix: status not changing bg of alert --- src/theme/components/alert.ts | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/src/theme/components/alert.ts b/src/theme/components/alert.ts index 5cdb8c9d8..444888bf1 100644 --- a/src/theme/components/alert.ts +++ b/src/theme/components/alert.ts @@ -3,10 +3,7 @@ import { getColor, getColorScheme, transparentize } from '../tools'; function getBg(props: Record) { let { theme, colorScheme, status, variant } = props; - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); const lightBg = variant === 'solid' @@ -25,10 +22,7 @@ const variantSubtle = (props: Record) => { let { colorScheme, status } = props; const { lightBg, darkBg } = getBg(props); - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); return { _light: { @@ -45,10 +39,7 @@ const variantSubtle = (props: Record) => { const variantOutline = (props: Record) => { let { colorScheme, status } = props; - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); return { borderWidth: 1, @@ -66,10 +57,7 @@ const variantOutline = (props: Record) => { const variantOutlineLight = (props: Record) => { let { colorScheme, status, theme } = props; - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); return { borderWidth: 1, @@ -101,10 +89,7 @@ const variantLeftAccent = (props: Record) => { let { colorScheme, status } = props; const { lightBg, darkBg } = getBg(props); - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); return { borderLeftWidth: 4, @@ -125,10 +110,7 @@ const variantTopAccent = (props: Record) => { let { colorScheme, status } = props; const { lightBg, darkBg } = getBg(props); - colorScheme = getColorScheme( - props, - colorScheme !== 'primary' ? colorScheme : status - ); + colorScheme = getColorScheme(props, !status ? colorScheme : status); return { borderTopWidth: 4, From ce193a5ce5d1943176754e31755d7816b0279cd6 Mon Sep 17 00:00:00 2001 From: amars29 Date: Mon, 28 Mar 2022 15:23:33 +0530 Subject: [PATCH 131/172] fix: removing shadow from Header --- src/theme/components/alert-dialog.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/theme/components/alert-dialog.ts b/src/theme/components/alert-dialog.ts index 67da003bd..1f614fdd5 100644 --- a/src/theme/components/alert-dialog.ts +++ b/src/theme/components/alert-dialog.ts @@ -123,7 +123,6 @@ export const AlertDialogHeader = { return { p: '4', borderBottomWidth: '1', - shadow: '6', _text: { fontSize: 'md', fontWeight: 'semibold', From 196e1bdd866b39c32fbceb0c905d5c21771f13f5 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Mon, 28 Mar 2022 15:29:50 +0530 Subject: [PATCH 132/172] fix: filled track border radius --- src/theme/components/progress.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/theme/components/progress.ts b/src/theme/components/progress.ts index bf1f5c827..a3e4641df 100644 --- a/src/theme/components/progress.ts +++ b/src/theme/components/progress.ts @@ -19,6 +19,7 @@ function baseStyle(props: Record) { display: 'flex', alignItems: 'center', justifyContent: 'center', + rounded: 'full', _text: { color: 'white', fontWeight: 'bold', From ea43627f842c4b7442ba8d84ab7053abe8f72c42 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 15:30:04 +0530 Subject: [PATCH 133/172] fix: radio --- src/components/primitives/Radio/Radio.tsx | 1 + src/theme/components/radio.ts | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/primitives/Radio/Radio.tsx b/src/components/primitives/Radio/Radio.tsx index 3796bc753..e1c916ae2 100644 --- a/src/components/primitives/Radio/Radio.tsx +++ b/src/components/primitives/Radio/Radio.tsx @@ -97,6 +97,7 @@ const RadioComponent = memo( return ( ) => { return { borderWidth: 2, borderRadius: 'full', - p: 0.5, + p: 1, _light: { bg: 'muted.50', @@ -79,7 +79,7 @@ const baseStyle = (props: Record) => { }, _disabled: { - opacity: 0.4, + opacity: '0.6', _interactionBox: { bg: 'transparent', }, @@ -87,27 +87,26 @@ const baseStyle = (props: Record) => { bg: 'transparent', }, _stack: { - opacity: '0.4', + opacity: '0.6', }, }, _focus: { _interactionBox: { bg: `${c}.400`, - size: 6, + p: '3', }, }, _focusVisible: { _interactionBox: { bg: `${c}.400`, - size: 6, + p: '3', }, }, _interactionBox: { borderRadius: 'full', - size: 3, position: 'absolute', zIndex: -1, _web: { @@ -121,17 +120,16 @@ const baseStyle = (props: Record) => { const sizes = { lg: { _icon: { size: 4 }, - // _interactionBox: { size: 5 }, + _interactionBox: { size: 8 }, _text: { fontSize: 'lg' }, }, md: { _icon: { size: 3 }, - // _interactionBox: { size: 16 }, + _interactionBox: { size: 7 }, _text: { fontSize: 'md' }, }, sm: { _icon: { size: 2 }, - // _interactionBox: { size: 3 }, _text: { fontSize: 'sm' }, }, }; From 061a2762a6a07a40c908f0b5985f3b5533d71ea9 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Mon, 28 Mar 2022 15:55:50 +0530 Subject: [PATCH 134/172] fix: outline warning --- src/theme/components/input.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index e44064562..37312a8bd 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -34,7 +34,7 @@ const baseStyle = () => { outlineWidth: '0', overflow: 'auto', lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height - outline: 'none', + style: { outline: 'none' }, cursor: 'auto', }, _stack: { From 8d8688d8b935fa5f74500d2c73f0d92d948f3ff0 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Mon, 28 Mar 2022 15:57:28 +0530 Subject: [PATCH 135/172] fix: shadow replaced with border --- src/theme/components/popover.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/theme/components/popover.ts b/src/theme/components/popover.ts index 361718f18..19575a90e 100644 --- a/src/theme/components/popover.ts +++ b/src/theme/components/popover.ts @@ -60,7 +60,8 @@ export const PopoverBody = { export const PopoverContent = { baseStyle: () => ({ - shadow: '6', + //TODO: Box inside PopperContent is not able to resolve shadow + // shadow: '6', _light: { borderColor: 'muted.300', _text: { @@ -73,6 +74,7 @@ export const PopoverContent = { color: 'text.50', }, }, + borderWidth: 1, rounded: 'md', overflow: 'hidden', }), From f621801fbbee349988097795b66d6267a781126e Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 16:09:15 +0530 Subject: [PATCH 136/172] fix: example --- example/storybook/stories/components/primitives/Radio/size.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/storybook/stories/components/primitives/Radio/size.tsx b/example/storybook/stories/components/primitives/Radio/size.tsx index f8bc3b85c..d8ac370bd 100644 --- a/example/storybook/stories/components/primitives/Radio/size.tsx +++ b/example/storybook/stories/components/primitives/Radio/size.tsx @@ -10,7 +10,7 @@ export const Example = () => { > Date: Mon, 28 Mar 2022 17:14:50 +0530 Subject: [PATCH 137/172] fix: disabled state opacity issue --- src/theme/components/slider.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index 870335266..52317f656 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -21,6 +21,9 @@ export const SliderTrack = { _dark: { bg: 'muted.700', }, + _disabled: { + opacity: 0.7, + }, }; }, }; @@ -39,6 +42,9 @@ export const SliderThumb = { _dark: { bg: 'primary.500', }, + _disabled: { + opacity: 0.7, + }, shadow: 6, }; }, @@ -61,6 +67,9 @@ export const SliderFilledTrack = { _dark: { bg: 'primary.500', }, + _disabled: { + opacity: 0.7, + }, }; }, }; From 4e1ab2379d3226600f007e3668189dcd2cbbe720 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 17:20:36 +0530 Subject: [PATCH 138/172] fix: avatar design fixes --- .../composites/Avatar/AvatarBadge.tsx | 52 +++++++++++++++++-- src/components/composites/Avatar/Avatar.tsx | 4 +- src/theme/components/avatar.ts | 16 +++--- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/example/storybook/stories/components/composites/Avatar/AvatarBadge.tsx b/example/storybook/stories/components/composites/Avatar/AvatarBadge.tsx index 8f130f785..28a55ba3a 100644 --- a/example/storybook/stories/components/composites/Avatar/AvatarBadge.tsx +++ b/example/storybook/stories/components/composites/Avatar/AvatarBadge.tsx @@ -1,15 +1,16 @@ import React from 'react'; -import { Avatar, HStack } from 'native-base'; +import { Avatar, VStack } from 'native-base'; export const Example = () => { return ( - + NB @@ -20,10 +21,55 @@ export const Example = () => { uri: 'https://images.unsplash.com/photo-1614289371518-722f2615943d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80', }} + size="sm" > NB - + + NB + + + + NB + + + + NB + + + + NB + + + ); }; diff --git a/src/components/composites/Avatar/Avatar.tsx b/src/components/composites/Avatar/Avatar.tsx index 0a06d06cf..ea45f813c 100644 --- a/src/components/composites/Avatar/Avatar.tsx +++ b/src/components/composites/Avatar/Avatar.tsx @@ -6,7 +6,7 @@ import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const Avatar = ({ children, ...props }: IAvatarProps, ref: any) => { const [error, setError] = React.useState(false); - const { _image, source, ...resolvedProps } = usePropsResolution( + const { _image, _badgeSize, source, ...resolvedProps } = usePropsResolution( 'Avatar', props ); @@ -19,7 +19,7 @@ const Avatar = ({ children, ...props }: IAvatarProps, ref: any) => { typeof child?.type === 'object' && child?.type.displayName === 'AvatarBadge' ) { - Badge = child; + Badge = React.cloneElement(child, { size: _badgeSize[0] }); } else { remainingChildren.push(child); } diff --git a/src/theme/components/avatar.ts b/src/theme/components/avatar.ts index e8c583289..781d74445 100644 --- a/src/theme/components/avatar.ts +++ b/src/theme/components/avatar.ts @@ -13,6 +13,7 @@ const baseStyle = (props: Record) => { borderRadius: 'full', _text: { fontWeight: 600, + color: 'text.50', }, _image: { borderRadius: 'full', @@ -34,23 +35,24 @@ const baseStyle = (props: Record) => { }; }; -function getSize(size: any, fontSize: string) { +function getSize(size: any, fontSize: string, badgeSize: any) { return { width: size, height: size, _text: { fontSize: fontSize, }, + _badgeSize: badgeSize, }; } const sizes = { - 'xs': getSize('6', '2xs'), - 'sm': getSize('8', 'xs'), - 'md': getSize('12', 'md'), - 'lg': getSize('16', 'xl'), - 'xl': getSize('24', '3xl'), - '2xl': getSize('32', '5xl'), + 'xs': getSize('6', '2xs', '2'), + 'sm': getSize('8', 'xs', '3'), + 'md': getSize('12', 'md', '4'), + 'lg': getSize('16', 'xl', '5'), + 'xl': getSize('24', '3xl', '6'), + '2xl': getSize('32', '5xl', '7'), }; const defaultProps = { From 9e1e1a51f929110bad98da49b4bdddd68cd4ff96 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Mon, 28 Mar 2022 17:50:23 +0530 Subject: [PATCH 139/172] fix: iconbutton design fixes --- src/theme/components/icon-button.ts | 72 +++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 14 deletions(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 31bd84ca5..f31d45b77 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -70,27 +70,51 @@ function variantOutline({ colorScheme }: Record) { borderWidth: '1px', _light: { - borderColor: 'muted.300', + borderColor: `${colorScheme}.600`, _icon: { color: `${colorScheme}.600`, }, _hover: { - bg: `${colorScheme}.600:alpha.10`, + bg: `${colorScheme}.700`, + _icon: { + color: 'muted.50', + }, }, _pressed: { - bg: `${colorScheme}.600:alpha.20`, + bg: `${colorScheme}.800`, + _icon: { + color: 'muted.50', + }, + }, + _focus: { + bg: `${colorScheme}.600`, + _icon: { + color: 'muted.50', + }, }, }, _dark: { - borderColor: 'muted.700', + borderColor: `${colorScheme}.500`, _icon: { color: `${colorScheme}.500`, }, _hover: { - bg: `${colorScheme}.500:alpha.10`, + bg: `${colorScheme}.400`, + _icon: { + color: 'muted.900', + }, }, _pressed: { - bg: `${colorScheme}.500:alpha.20`, + bg: `${colorScheme}.300`, + _icon: { + color: 'muted.900', + }, + }, + _focus: { + bg: `${colorScheme}.600`, + _icon: { + color: 'muted.900', + }, }, }, }; @@ -98,10 +122,6 @@ function variantOutline({ colorScheme }: Record) { function variantSolid({ colorScheme }: Record) { return { - _icon: { - color: 'text.50', - }, - _light: { bg: `${colorScheme}.600`, _hover: { @@ -110,14 +130,23 @@ function variantSolid({ colorScheme }: Record) { _pressed: { bg: `${colorScheme}.800`, }, + _icon: { + color: 'muted.50', + }, }, _dark: { - bg: `${colorScheme}.600`, + bg: `${colorScheme}.500`, _hover: { - bg: `${colorScheme}.700`, + bg: `${colorScheme}.400`, }, _pressed: { - bg: `${colorScheme}.800`, + bg: `${colorScheme}.300`, + _icon: { + color: 'muted.900', + }, + }, + _icon: { + color: 'muted.900', }, }, }; @@ -191,13 +220,28 @@ function variantLink({ colorScheme }: Record) { }; } +function variantUnstyled() { + return { + _light: { + _icon: { + color: 'muted.900', + }, + }, + _dark: { + _icon: { + color: 'muted.50', + }, + }, + }; +} + const variants = { ghost: variantGhost, outline: variantOutline, solid: variantSolid, subtle: variantSubtle, link: variantLink, - unstyled: {}, + unstyled: variantUnstyled, }; const sizes = { From a9e2fb04abe8abe570bbeb41bdc45ad0cb969f92 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Mon, 28 Mar 2022 19:07:11 +0530 Subject: [PATCH 140/172] fix: button fixes --- src/theme/components/button.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/theme/components/button.ts b/src/theme/components/button.ts index 5d0212ae1..3b4da7739 100644 --- a/src/theme/components/button.ts +++ b/src/theme/components/button.ts @@ -212,11 +212,21 @@ function variantLink({ colorScheme }: Record) { _text: { color: `${colorScheme}.600`, }, + _pressed: { + _text: { + color: `${colorScheme}.800`, + }, + }, }, _dark: { _text: { color: `${colorScheme}.500`, }, + _pressed: { + _text: { + color: `${colorScheme}.300`, + }, + }, }, }; } From bbb18221151c7c0fbc9a5c081728e6b6a7a241e0 Mon Sep 17 00:00:00 2001 From: amars29 Date: Mon, 28 Mar 2022 19:25:05 +0530 Subject: [PATCH 141/172] fix: resolved Select for web --- src/theme/components/input.ts | 10 ++++++++++ src/theme/components/select.ts | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index e44064562..bcdc25ea0 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -143,6 +143,15 @@ function filledStyle(props: Record) { function unstyledStyle() { return { borderWidth: '0', + _light: { + _focus: { placeholderTextColor: 'text.900' }, + }, + _dark: { + _focus: { placeholderTextColor: 'text.50' }, + }, + _focus: { + bg: 'transparent', + }, }; } function underlinedStyle() { @@ -155,6 +164,7 @@ function underlinedStyle() { _invalid: { borderBottomWidth: '2', }, + borderRadius: '0', }; } diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index f0c420e28..1f37695b1 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -15,6 +15,7 @@ export const Select = { }, _disabled: { bg: 'muted.100', + placeholderTextColor: 'muted.700', }, _invalid: { borderColor: 'error.600', @@ -32,6 +33,7 @@ export const Select = { }, _disabled: { bg: 'muted.800', + placeholderTextColor: 'text.50', }, _invalid: { borderColor: 'error.500', From 88e71968dd823ff2b204deed8dddc25b1d198aab Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 11:28:43 +0530 Subject: [PATCH 142/172] bg color on focused --- src/theme/components/select.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index 1f37695b1..3ae8922bb 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -11,7 +11,7 @@ export const Select = { }, _focus: { borderColor: 'primary.600', - bg: transparentize('primary.600', 0.1)(theme), + // bg: transparentize('primary.600', 0.1)(theme), }, _disabled: { bg: 'muted.100', @@ -29,7 +29,7 @@ export const Select = { }, _focus: { borderColor: 'primary.500', - bg: transparentize('primary.500', 0.1)(theme), + // bg: transparentize('primary.500', 0.1)(theme), }, _disabled: { bg: 'muted.800', From 5f778c07cb6c55a7bb76311aed855991a57e5767 Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 12:08:39 +0530 Subject: [PATCH 143/172] fix: Input for web --- src/theme/components/input.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index e44064562..0db45b525 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -66,6 +66,9 @@ const baseStyle = () => { _android: { selectionColor: 'coolGray.800', }, + _disabled: { + placeholderTextColor: 'muted.700', + }, }, _dark: { placeholderTextColor: 'text.600', @@ -86,6 +89,9 @@ const baseStyle = () => { _android: { selectionColor: 'warmGray.50', }, + _disabled: { + placeholderTextColor: 'text.50', + }, }, }; }; @@ -148,9 +154,11 @@ function unstyledStyle() { function underlinedStyle() { return { borderWidth: '0', + pl: '0', borderBottomWidth: '1', _focus: { borderBottomWidth: '2', + fontWeight: '500', }, _invalid: { borderBottomWidth: '2', From 9f470b5599164f791a2a63f9a4e99974f525758f Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 12:48:31 +0530 Subject: [PATCH 144/172] fix: variants example in Input --- .../components/primitives/Input/Variant.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/example/storybook/stories/components/primitives/Input/Variant.tsx b/example/storybook/stories/components/primitives/Input/Variant.tsx index 6ba04310b..f4cf92ec6 100644 --- a/example/storybook/stories/components/primitives/Input/Variant.tsx +++ b/example/storybook/stories/components/primitives/Input/Variant.tsx @@ -2,14 +2,12 @@ import React from 'react'; import { Input, Stack, Center } from 'native-base'; export const Example = () => { return ( -
- - - - - - - -
+ + + + + + + ); }; From 3f3ca99bdfe0837edee5a177647b0026ffaa9119 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Tue, 29 Mar 2022 14:25:16 +0530 Subject: [PATCH 145/172] fix: opacity and cursor --- src/theme/components/slider.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index 52317f656..fa299ee8d 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -21,9 +21,6 @@ export const SliderTrack = { _dark: { bg: 'muted.700', }, - _disabled: { - opacity: 0.7, - }, }; }, }; @@ -42,9 +39,6 @@ export const SliderThumb = { _dark: { bg: 'primary.500', }, - _disabled: { - opacity: 0.7, - }, shadow: 6, }; }, @@ -67,9 +61,6 @@ export const SliderFilledTrack = { _dark: { bg: 'primary.500', }, - _disabled: { - opacity: 0.7, - }, }; }, }; @@ -87,6 +78,12 @@ export const Slider = { justifyContent: 'center', height: props.orientation === 'vertical' ? '100%' : undefined, width: props.orientation !== 'vertical' ? '100%' : undefined, + _disabled: { + opacity: 0.5, + _web: { + cursor: 'not-allowed', + }, + }, }; }, defaultProps: { From f05434062d409506ef8970f995516fe8389422eb Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 15:09:03 +0530 Subject: [PATCH 146/172] fix: color change in disabled state --- src/theme/components/input.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 0db45b525..7d0a5ce6b 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -68,6 +68,9 @@ const baseStyle = () => { }, _disabled: { placeholderTextColor: 'muted.700', + _hover: { + borderColor: 'muted.300', + }, }, }, _dark: { @@ -91,6 +94,9 @@ const baseStyle = () => { }, _disabled: { placeholderTextColor: 'text.50', + _hover: { + borderColor: 'muted.700', + }, }, }, }; From 63c7050c8a56b7dd7e100087a99758a3bad776cd Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 15:31:16 +0530 Subject: [PATCH 147/172] fix: borderradius in underLined --- src/theme/components/input.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 7d0a5ce6b..99cc6d360 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -34,7 +34,7 @@ const baseStyle = () => { outlineWidth: '0', overflow: 'auto', lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height - outline: 'none', + style: { outline: 'none' }, cursor: 'auto', }, _stack: { @@ -140,6 +140,9 @@ function filledStyle(props: Record) { }, _hover: { borderWidth: '1', + _disabled: { + borderWidth: 0, + }, }, _invalid: { borderWidth: '2', @@ -169,6 +172,7 @@ function underlinedStyle() { _invalid: { borderBottomWidth: '2', }, + borderradius: 0, }; } From 89d64e9478aed7d3b1511a84ba873ebc1ba30c27 Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 15:33:26 +0530 Subject: [PATCH 148/172] fix: input underlined --- src/theme/components/input.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/input.ts b/src/theme/components/input.ts index 99cc6d360..ec692ee04 100644 --- a/src/theme/components/input.ts +++ b/src/theme/components/input.ts @@ -172,7 +172,7 @@ function underlinedStyle() { _invalid: { borderBottomWidth: '2', }, - borderradius: 0, + borderRadius: 0, }; } From fed1e6c6593f4a1d04dcd45cc36555ec420147e8 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 29 Mar 2022 15:49:55 +0530 Subject: [PATCH 149/172] fix: color change --- src/theme/base/colors.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/theme/base/colors.ts b/src/theme/base/colors.ts index a791191b0..4f3389a23 100644 --- a/src/theme/base/colors.ts +++ b/src/theme/base/colors.ts @@ -335,14 +335,14 @@ const colors = { tertiary: {} as IColorHues, }; -colors.danger = colors.red; -colors.error = colors.rose; -colors.success = colors.emerald; +colors.danger = colors.rose; +colors.error = colors.red; +colors.success = colors.green; colors.warning = colors.orange; colors.muted = colors.trueGray; colors.primary = colors.cyan; colors.secondary = colors.pink; -colors.tertiary = colors.green; +colors.tertiary = colors.emerald; colors.info = colors.lightBlue; colors.light = colors.warmGray; From d896765ec33356bba692be6f44b616f120395450 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 29 Mar 2022 17:12:23 +0530 Subject: [PATCH 150/172] fix: hover issue --- src/theme/components/checkbox.ts | 14 ++++++++++++++ src/theme/components/radio.ts | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/theme/components/checkbox.ts b/src/theme/components/checkbox.ts index 8509d18ff..188ca4c9d 100644 --- a/src/theme/components/checkbox.ts +++ b/src/theme/components/checkbox.ts @@ -24,6 +24,10 @@ const baseStyle = (props: Record) => { _hover: { borderColor: `${c}.700`, bg: `${c}.700`, + _disabled: { + borderColor: `${c}.600`, + bg: `${c}.600`, + }, }, _pressed: { borderColor: `${c}.800`, @@ -32,6 +36,9 @@ const baseStyle = (props: Record) => { }, _hover: { borderColor: 'muted.500', + _disabled: { + borderColor: 'muted.400', + }, }, _pressed: { borderColor: 'muted.600', @@ -56,6 +63,10 @@ const baseStyle = (props: Record) => { _hover: { borderColor: `${c}.400`, bg: `${c}.400`, + _disabled: { + borderColor: `${c}.500`, + bg: `${c}.500`, + }, }, _pressed: { borderColor: `${c}.300`, @@ -64,6 +75,9 @@ const baseStyle = (props: Record) => { }, _hover: { borderColor: 'muted.400', + _disabled: { + borderColor: 'muted.500', + }, }, _pressed: { borderColor: 'muted.300', diff --git a/src/theme/components/radio.ts b/src/theme/components/radio.ts index 7fefb2928..528ff6858 100644 --- a/src/theme/components/radio.ts +++ b/src/theme/components/radio.ts @@ -17,6 +17,12 @@ const baseStyle = (props: Record) => { _hover: { borderColor: `${c}.700`, _icon: { color: `${c}.700` }, + _disabled: { + borderColor: `${c}.600`, + _icon: { + color: `${c}.600`, + }, + }, }, _pressed: { borderColor: `${c}.800`, @@ -26,6 +32,9 @@ const baseStyle = (props: Record) => { _hover: { borderColor: 'muted.500', + _disabled: { + borderColor: 'muted.400', + }, }, _pressed: { @@ -49,6 +58,12 @@ const baseStyle = (props: Record) => { _hover: { borderColor: `${c}.400`, _icon: { color: `${c}.400` }, + _disabled: { + borderColor: `${c}.500`, + _icon: { + color: `${c}.500`, + }, + }, }, _pressed: { borderColor: `${c}.300`, @@ -58,6 +73,9 @@ const baseStyle = (props: Record) => { _hover: { borderColor: 'muted.400', + _disabled: { + borderColor: 'muted.500', + }, }, _pressed: { From b17aa16374aba29a4ccea50e01c762d0bd4993f1 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Tue, 29 Mar 2022 19:11:45 +0530 Subject: [PATCH 151/172] fix: toast example --- .../composites/Toast/ToastPositions.tsx | 1 - .../composites/Toast/VariantRecipies.tsx | 29 ++++++++++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/example/storybook/stories/components/composites/Toast/ToastPositions.tsx b/example/storybook/stories/components/composites/Toast/ToastPositions.tsx index f5039a9b7..e96efe9c0 100644 --- a/example/storybook/stories/components/composites/Toast/ToastPositions.tsx +++ b/example/storybook/stories/components/composites/Toast/ToastPositions.tsx @@ -45,7 +45,6 @@ export const Example = () => { toast.show({ title: 'Hello world', placement: 'top-right', - backgroundColor: 'pink.400', }) } > diff --git a/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx b/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx index 54673c68e..5257be722 100644 --- a/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx +++ b/example/storybook/stories/components/composites/Toast/VariantRecipies.tsx @@ -73,7 +73,13 @@ export const Example = () => { fontSize="md" fontWeight="medium" flexShrink={1} - color={variant === 'solid' ? 'lightText' : 'darkText'} + color={ + variant === 'solid' + ? 'lightText' + : variant !== 'outline' + ? 'darkText' + : null + } > {title} @@ -81,17 +87,24 @@ export const Example = () => { {isClosable ? ( - } + icon={} + _icon={{ + color: variant === 'solid' ? 'lightText' : 'darkText', + }} onPress={() => toast.close(id)} /> ) : null} - + {description} From 6124a7953290969c54b85bd1e2fd1167b368f7b7 Mon Sep 17 00:00:00 2001 From: amars29 Date: Tue, 29 Mar 2022 19:49:13 +0530 Subject: [PATCH 152/172] fixs: moving space of DownIcon in theme --- src/components/primitives/Select/Select.tsx | 2 +- src/theme/components/select.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/primitives/Select/Select.tsx b/src/components/primitives/Select/Select.tsx index 657ee8be4..bf901b37b 100644 --- a/src/components/primitives/Select/Select.tsx +++ b/src/components/primitives/Select/Select.tsx @@ -128,7 +128,7 @@ const Select = ( ) : dropdownIcon ? ( dropdownIcon ) : ( - + ); const handleClose = () => { diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index 3ae8922bb..a2dee2ca6 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -5,7 +5,7 @@ export const Select = { const { theme } = props; return { _light: { - customDropdownIconProps: { color: 'muted.500' }, + customDropdownIconProps: { color: 'muted.500', mr: '3' }, _hover: { borderColor: 'primary.600', }, @@ -23,7 +23,7 @@ export const Select = { }, _dark: { - customDropdownIconProps: { color: 'muted.400' }, + customDropdownIconProps: { color: 'muted.400', mr: '3' }, _hover: { borderColor: 'primary.500', }, From 765fb80f192c526955ac78c98ffb232b70a2053f Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 30 Mar 2022 09:59:55 +0530 Subject: [PATCH 153/172] fix: bg color on focus for outline variant --- src/theme/components/icon-button.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index f31d45b77..81643b029 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -111,7 +111,7 @@ function variantOutline({ colorScheme }: Record) { }, }, _focus: { - bg: `${colorScheme}.600`, + bg: `${colorScheme}.500`, _icon: { color: 'muted.900', }, From 8bc76a68b7d3fa0da3c901e64475979ae9c81fcd Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 30 Mar 2022 11:55:57 +0530 Subject: [PATCH 154/172] fix: disabled opacity --- src/theme/components/slider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/slider.ts b/src/theme/components/slider.ts index fa299ee8d..7700d211d 100644 --- a/src/theme/components/slider.ts +++ b/src/theme/components/slider.ts @@ -79,7 +79,7 @@ export const Slider = { height: props.orientation === 'vertical' ? '100%' : undefined, width: props.orientation !== 'vertical' ? '100%' : undefined, _disabled: { - opacity: 0.5, + opacity: 0.4, _web: { cursor: 'not-allowed', }, From 0acf4fb27df29fdacad34295bc6b223b9133a0cb Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 30 Mar 2022 12:14:53 +0530 Subject: [PATCH 155/172] fix: button disabled --- src/theme/components/button.ts | 13 ++++++++----- src/theme/styled-system.ts | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/theme/components/button.ts b/src/theme/components/button.ts index 3b4da7739..ad861ad7a 100644 --- a/src/theme/components/button.ts +++ b/src/theme/components/button.ts @@ -17,11 +17,14 @@ const baseStyle = (props: any) => { justifyContent: 'center', alignItems: 'center', _web: { - cursor: props.isDisabled - ? 'not-allowed' - : props.isLoading - ? 'default' - : 'pointer', + _disabled: { + cursor: 'not-allowed', + }, + _loading: { + cursor: 'not-allowed', + }, + cursor: 'pointer', + userSelect: 'none', }, _focusVisible: { _web: { diff --git a/src/theme/styled-system.ts b/src/theme/styled-system.ts index 5aa3d4dd0..6dc36a527 100644 --- a/src/theme/styled-system.ts +++ b/src/theme/styled-system.ts @@ -571,6 +571,7 @@ const extraProps = { }, cursor: true, overflow: true, + userSelect: { property: 'userSelect' }, } as const; export const propConfig = { From 78c76275db2ca42da045ae43ee57435ae21c47f3 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 30 Mar 2022 12:37:14 +0530 Subject: [PATCH 156/172] fix: focus border --- src/theme/components/icon-button.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 81643b029..32cada4fc 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -2,6 +2,7 @@ import { mode } from './../tools'; const baseStyle = (props: any) => { const { primary } = props.theme.colors; + const { colorScheme } = props; const focusRing = mode( { boxShadow: `${primary[400]} 0px 0px 0px 2px`, @@ -23,6 +24,10 @@ const baseStyle = (props: any) => { ? 'default' : 'pointer', }, + _focus: { + borderWidth: 2, + borderColor: `${colorScheme}.400`, + }, _focusVisible: { _web: { outlineWidth: '0', @@ -68,7 +73,6 @@ function variantGhost({ colorScheme }: Record) { function variantOutline({ colorScheme }: Record) { return { borderWidth: '1px', - _light: { borderColor: `${colorScheme}.600`, _icon: { From 68941236cf1723e68d7a59f74ed8a62cc9a2e5aa Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 30 Mar 2022 12:46:21 +0530 Subject: [PATCH 157/172] fix: disabled text selection --- src/theme/components/icon-button.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 32cada4fc..3df5b8475 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -18,11 +18,14 @@ const baseStyle = (props: any) => { justifyContent: 'center', alignItems: 'center', _web: { - cursor: props.isDisabled - ? 'not-allowed' - : props.isLoading - ? 'default' - : 'pointer', + _disabled: { + cursor: 'not-allowed', + }, + _loading: { + cursor: 'not-allowed', + }, + cursor: 'pointer', + userSelect: 'none', }, _focus: { borderWidth: 2, From f92a5846523894245b2d0a9020b2383440c47382 Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 30 Mar 2022 13:00:26 +0530 Subject: [PATCH 158/172] fix: focus ring color --- src/theme/components/icon-button.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 3df5b8475..0d7ffec3f 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -1,14 +1,13 @@ import { mode } from './../tools'; const baseStyle = (props: any) => { - const { primary } = props.theme.colors; const { colorScheme } = props; const focusRing = mode( { - boxShadow: `${primary[400]} 0px 0px 0px 2px`, + boxShadow: `${colorScheme[400]} 0px 0px 0px 2px`, }, { - boxShadow: `${primary[500]} 0px 0px 0px 2px`, + boxShadow: `${colorScheme[500]} 0px 0px 0px 2px`, } )(props); From b6c791a47912113d8ace537cd18ded2f12553491 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 30 Mar 2022 13:51:12 +0530 Subject: [PATCH 159/172] fix: theme fixes --- src/theme/components/actionsheet.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/theme/components/actionsheet.ts b/src/theme/components/actionsheet.ts index 89361ace0..d7bb60a99 100644 --- a/src/theme/components/actionsheet.ts +++ b/src/theme/components/actionsheet.ts @@ -15,13 +15,17 @@ export const ActionsheetContent = { py: 2, borderRadius: 'none', roundedTop: 20, - _dragIndicator: { - _light: { + _light: { + _dragIndicator: { bg: 'muted.500', }, - _dark: { + }, + _dark: { + _dragIndicator: { bg: 'muted.400', }, + }, + _dragIndicator: { height: 1, width: 10, borderRadius: 2, From 24c8c8c30c5da7b2d6940416faa7964751b0b23f Mon Sep 17 00:00:00 2001 From: Suraj Ahmed Date: Wed, 30 Mar 2022 14:48:32 +0530 Subject: [PATCH 160/172] fix: type issue --- package.json | 2 +- src/theme/components/select.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 47169ba4f..c0726167f 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "prettier --write" ] }, - "version": "3.4.0-alpha.6", + "version": "3.4.0-alpha.7", "license": "MIT", "private": false, "main": "lib/commonjs/index", diff --git a/src/theme/components/select.ts b/src/theme/components/select.ts index a2dee2ca6..4cfc655b5 100644 --- a/src/theme/components/select.ts +++ b/src/theme/components/select.ts @@ -1,8 +1,5 @@ -import { transparentize } from '../tools'; - export const Select = { - baseStyle: (props: Record) => { - const { theme } = props; + baseStyle: () => { return { _light: { customDropdownIconProps: { color: 'muted.500', mr: '3' }, From 10a5d03d8f33640d8e693a40fc547ba8fb27e631 Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Fri, 25 Mar 2022 01:45:45 +0530 Subject: [PATCH 161/172] fix: merging fixes for extended theme --- .../useThemeProps/usePropsResolution.tsx | 244 +++++++++--------- 1 file changed, 124 insertions(+), 120 deletions(-) diff --git a/src/hooks/useThemeProps/usePropsResolution.tsx b/src/hooks/useThemeProps/usePropsResolution.tsx index 22a9f2bf6..a04abec3d 100644 --- a/src/hooks/useThemeProps/usePropsResolution.tsx +++ b/src/hooks/useThemeProps/usePropsResolution.tsx @@ -1,5 +1,6 @@ import get from 'lodash.get'; import merge from 'lodash.merge'; +import isEmpty from 'lodash.isempty'; import { Platform } from 'react-native'; import { useNativeBase } from '../useNativeBase'; import { useColorMode } from '../../core/color-mode'; @@ -135,16 +136,9 @@ export function usePropsResolution( } ) { const { theme } = useNativeBase(); - let componentTheme = + const componentTheme = config?.componentTheme ?? get(theme, `components.${component}`, {}); - if (config?.extendTheme) { - config?.extendTheme.map((componentName: string) => { - const currentTheme = get(theme, `components.${componentName}`, {}); - componentTheme = merge(componentTheme, currentTheme); - }); - } - if (process.env.NODE_ENV === 'development' && incomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -228,6 +222,62 @@ export const usePropsResolutionWithComponentTheme = ( const { theme } = useNativeBase(); const colorModeProps = useColorMode(); + const extendedTheme: Array = []; + if (config?.extendTheme) { + config?.extendTheme.map((componentName: string) => { + extendedTheme.push(get(theme, `components.${componentName}`, {})); + }); + } + if (!isEmpty(componentTheme)) extendedTheme.push(componentTheme); + + const resolveComponentTheme = ( + themeType: Array, + providedTheme: any + ): any => { + try { + if (themeType[1]) { + return typeof providedTheme[themeType[0]][themeType[1]] !== 'function' + ? providedTheme[themeType[0]][themeType[1]] + : providedTheme[themeType[0]][themeType[1]]({ + theme, + ...incomingWithDefaultProps, + ...colorModeProps, + }); + } else { + return typeof providedTheme[themeType[0]] !== 'function' + ? providedTheme[themeType[0]] + : providedTheme[themeType[0]]({ + theme, + ...incomingWithDefaultProps, + ...colorModeProps, + }); + } + } catch { + return {}; + } + }; + const callPropsFlattener = ( + targetProps = {}, + latestSpecifictyMap = {}, + specificity = 1 + ): any => { + return propsFlattener( + { + props: + process.env.NODE_ENV === 'development' && cleanIncomingProps.debug + ? { ...targetProps, debug: true } + : targetProps, + platform: Platform.OS, + colormode: colorModeProps.colorMode, + state: state || {}, + currentSpecificityMap: latestSpecifictyMap, + previouslyFlattenProps: flattenProps || {}, + cascadePseudoProps: config?.cascadePseudoProps, + }, + specificity + ); + }; + // STEP 1: combine default props and incoming props const incomingWithDefaultProps = merge( @@ -235,6 +285,54 @@ export const usePropsResolutionWithComponentTheme = ( componentTheme.defaultProps || {}, cleanIncomingProps ); + + // STEP 1.5: resolving component theme + let combinedBaseStyle = {}; + let combinedVariantStyle = {}; + let combinedSizeStyle = {}; + extendedTheme.map((extededComponentTheme: any) => { + if (extededComponentTheme.baseStyle) { + combinedBaseStyle = { + ...combinedBaseStyle, + ...resolveComponentTheme(['baseStyle'], extededComponentTheme), + }; + } + if (incomingWithDefaultProps.variant) { + if (extededComponentTheme.variants) { + combinedVariantStyle = { + ...combinedVariantStyle, + ...resolveComponentTheme( + ['variants', incomingWithDefaultProps.variant], + extededComponentTheme + ), + }; + } + } + if ( + incomingWithDefaultProps.size && + extededComponentTheme?.sizes[incomingWithDefaultProps.size] + ) { + if ( + typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] === + 'string' || + typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] === + 'number' + ) { + incomingWithDefaultProps.size = + extededComponentTheme.sizes[incomingWithDefaultProps.size]; + } else { + combinedSizeStyle = { + ...combinedSizeStyle, + ...resolveComponentTheme( + ['sizes', incomingWithDefaultProps.size], + extededComponentTheme + ), + }; + incomingWithDefaultProps.size = undefined; + } + } + }); + // STEP 2: flatten them if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) { /* eslint-disable-next-line */ @@ -243,19 +341,11 @@ export const usePropsResolutionWithComponentTheme = ( 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;' ); } - let [flattenProps, specificityMap] = propsFlattener( - { - props: incomingWithDefaultProps, - platform: Platform.OS, - colormode: colorModeProps.colorMode, - state: state || {}, - previouslyFlattenProps: {}, - cascadePseudoProps: config?.cascadePseudoProps, - }, + let [flattenProps, specificityMap] = callPropsFlattener( + incomingWithDefaultProps, + {}, 2 ); - // console.log(resolveResponsively); - // Not work for SSR const responsiveProps = {}; if (disableCSSMediaQueries) { // STEP 2.5: resolving responsive props @@ -282,18 +372,8 @@ export const usePropsResolutionWithComponentTheme = ( // STEP 3: Pass it to baseStyle, then variant and then size and resolve them. // NOTE: Resoloving baseStyle - let componentBaseStyle = {}, - flattenBaseStyle, - baseSpecificityMap; - if (componentTheme.baseStyle) { - componentBaseStyle = - typeof componentTheme.baseStyle !== 'function' - ? componentTheme.baseStyle - : componentTheme.baseStyle({ - theme, - ...flattenProps, - ...colorModeProps, - }); + let flattenBaseStyle, baseSpecificityMap; + if (combinedBaseStyle) { if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -301,41 +381,16 @@ export const usePropsResolutionWithComponentTheme = ( 'background: #4b5563; color: #eee; font-weight: 700; padding: 2px 8px;' ); } - [flattenBaseStyle, baseSpecificityMap] = propsFlattener( - { - props: - process.env.NODE_ENV === 'development' && cleanIncomingProps.debug - ? { ...componentBaseStyle, debug: true } - : componentBaseStyle, - platform: Platform.OS, - colormode: colorModeProps.colorMode, - state: state || {}, - currentSpecificityMap: specificityMap, - previouslyFlattenProps: flattenProps, - cascadePseudoProps: config?.cascadePseudoProps, - }, - 1 + [flattenBaseStyle, baseSpecificityMap] = callPropsFlattener( + combinedBaseStyle, + specificityMap ); } // NOTE: Resolving variants - const variant = flattenProps.variant; - - let componentVariantProps = {}, - flattenVariantStyle, - variantSpecificityMap; + let flattenVariantStyle, variantSpecificityMap; // Extracting props from variant - if (variant && componentTheme.variants && componentTheme.variants[variant]) { - componentVariantProps = - typeof componentTheme.variants[variant] !== 'function' - ? componentTheme.variants[variant] - : //@ts-ignore - componentTheme.variants[variant]({ - theme, - ...flattenProps, - ...colorModeProps, - }); - + if (combinedVariantStyle) { if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -343,21 +398,9 @@ export const usePropsResolutionWithComponentTheme = ( 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;' ); } - [flattenVariantStyle, variantSpecificityMap] = propsFlattener( - { - props: - process.env.NODE_ENV === 'development' && cleanIncomingProps.debug - ? { ...componentVariantProps, debug: true } - : componentVariantProps, - platform: Platform.OS, - colormode: colorModeProps.colorMode, - state: state || {}, - currentSpecificityMap: baseSpecificityMap || specificityMap, - // NOTE: Ideally flattenBaseStyle and flattenProps should be deeply merged to create previouslyFlattenProps. - previouslyFlattenProps: flattenProps, - cascadePseudoProps: config?.cascadePseudoProps, - }, - 1 + [flattenVariantStyle, variantSpecificityMap] = callPropsFlattener( + combinedVariantStyle, + baseSpecificityMap || specificityMap ); // We remove variant from original props if we found it in the componentTheme @@ -366,37 +409,10 @@ export const usePropsResolutionWithComponentTheme = ( } // NOTE: Resolving size - const size = flattenProps.size; - let componentSizeProps = {}, - flattenSizeStyle, - sizeSpecificityMap; + let flattenSizeStyle, sizeSpecificityMap; // Extracting props from size - if (size && componentTheme.sizes && componentTheme.sizes[size]) { - // Type - sizes: {lg: 1}. Refer icon theme - if ( - typeof componentTheme.sizes[size] === 'string' || - typeof componentTheme.sizes[size] === 'number' - ) { - flattenProps.size = componentTheme.sizes[size]; - //@ts-ignore - // componentSizeProps.size = componentTheme.sizes[size]; - } - // Type - sizes: (props) => ({lg: {px: 1}}). Refer heading theme - else if (typeof componentTheme.sizes[size] === 'function') { - flattenProps.size = undefined; - //@ts-ignore - componentSizeProps = componentTheme.sizes[size]({ - theme, - ...flattenProps, - ...colorModeProps, - }); - } - // Type - sizes: {lg: {px: 1}}. Refer button theme - else { - flattenProps.size = undefined; - componentSizeProps = componentTheme.sizes[size]; - } + if (combinedSizeStyle) { if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) { /* eslint-disable-next-line */ console.log( @@ -404,21 +420,9 @@ export const usePropsResolutionWithComponentTheme = ( 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;' ); } - [flattenSizeStyle, sizeSpecificityMap] = propsFlattener( - { - props: - process.env.NODE_ENV === 'development' && cleanIncomingProps.debug - ? { ...componentSizeProps, debug: true } - : componentSizeProps, - platform: Platform.OS, - colormode: colorModeProps.colorMode, - state: state || {}, - currentSpecificityMap: - variantSpecificityMap || baseSpecificityMap || specificityMap, - previouslyFlattenProps: flattenProps, - cascadePseudoProps: config?.cascadePseudoProps, - }, - 1 + [flattenSizeStyle, sizeSpecificityMap] = callPropsFlattener( + combinedSizeStyle, + variantSpecificityMap || baseSpecificityMap || specificityMap ); } From a24378b0cb0b8df428cbffad615317c450d6a9ab Mon Sep 17 00:00:00 2001 From: MD-REHMAN Date: Fri, 25 Mar 2022 15:13:32 +0530 Subject: [PATCH 162/172] fix: textarea theme changes --- src/theme/components/textarea.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/theme/components/textarea.ts b/src/theme/components/textarea.ts index b8a4318c3..ea3c89cc4 100644 --- a/src/theme/components/textarea.ts +++ b/src/theme/components/textarea.ts @@ -8,4 +8,10 @@ const baseStyle = { textAlignVertical: 'top', }; -export default { baseStyle }; +export default { + baseStyle, + defaultProps: { + size: 'sm', + variant: 'outline', + }, +}; From 649da1d401a6c29ae089d155faa47e20df03429b Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Wed, 30 Mar 2022 15:44:42 +0530 Subject: [PATCH 163/172] fix: extendComponent theme sizes check --- src/hooks/useThemeProps/usePropsResolution.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hooks/useThemeProps/usePropsResolution.tsx b/src/hooks/useThemeProps/usePropsResolution.tsx index a04abec3d..f6530e926 100644 --- a/src/hooks/useThemeProps/usePropsResolution.tsx +++ b/src/hooks/useThemeProps/usePropsResolution.tsx @@ -310,6 +310,7 @@ export const usePropsResolutionWithComponentTheme = ( } if ( incomingWithDefaultProps.size && + extededComponentTheme?.sizes && extededComponentTheme?.sizes[incomingWithDefaultProps.size] ) { if ( From acad5b265a6aabcaf636e5bef0bdd36c0adb1b28 Mon Sep 17 00:00:00 2001 From: mayank-96 Date: Wed, 30 Mar 2022 16:10:08 +0530 Subject: [PATCH 164/172] fix: alert close icon focus --- example/storybook/stories/components/composites/Alert/action.tsx | 1 + example/storybook/stories/components/composites/Alert/basic.tsx | 1 + .../stories/components/composites/Alert/colorScheme.tsx | 1 + .../stories/components/composites/Alert/composition.tsx | 1 + example/storybook/stories/components/composites/Alert/status.tsx | 1 + example/storybook/stories/components/composites/Alert/usage.tsx | 1 + 6 files changed, 6 insertions(+) diff --git a/example/storybook/stories/components/composites/Alert/action.tsx b/example/storybook/stories/components/composites/Alert/action.tsx index 37a8cbbc5..94f98249c 100644 --- a/example/storybook/stories/components/composites/Alert/action.tsx +++ b/example/storybook/stories/components/composites/Alert/action.tsx @@ -36,6 +36,7 @@ export function Example() { } onPress={() => setShow(false)} /> diff --git a/example/storybook/stories/components/composites/Alert/basic.tsx b/example/storybook/stories/components/composites/Alert/basic.tsx index 2b9b23373..421430164 100644 --- a/example/storybook/stories/components/composites/Alert/basic.tsx +++ b/example/storybook/stories/components/composites/Alert/basic.tsx @@ -29,6 +29,7 @@ export const Example = () => { } /> diff --git a/example/storybook/stories/components/composites/Alert/colorScheme.tsx b/example/storybook/stories/components/composites/Alert/colorScheme.tsx index d38719458..ec142bb06 100644 --- a/example/storybook/stories/components/composites/Alert/colorScheme.tsx +++ b/example/storybook/stories/components/composites/Alert/colorScheme.tsx @@ -30,6 +30,7 @@ export function Example() { } /> diff --git a/example/storybook/stories/components/composites/Alert/composition.tsx b/example/storybook/stories/components/composites/Alert/composition.tsx index b1df66517..54821f92c 100644 --- a/example/storybook/stories/components/composites/Alert/composition.tsx +++ b/example/storybook/stories/components/composites/Alert/composition.tsx @@ -34,6 +34,7 @@ export function Example() { } /> diff --git a/example/storybook/stories/components/composites/Alert/status.tsx b/example/storybook/stories/components/composites/Alert/status.tsx index 74f8740e2..960e76c95 100644 --- a/example/storybook/stories/components/composites/Alert/status.tsx +++ b/example/storybook/stories/components/composites/Alert/status.tsx @@ -45,6 +45,7 @@ export function Example() { } /> diff --git a/example/storybook/stories/components/composites/Alert/usage.tsx b/example/storybook/stories/components/composites/Alert/usage.tsx index 8fec435c2..22ac55320 100644 --- a/example/storybook/stories/components/composites/Alert/usage.tsx +++ b/example/storybook/stories/components/composites/Alert/usage.tsx @@ -28,6 +28,7 @@ export function Example() { } /> From ee4651c03b51b2ed52cc08961198871ad16d0fbb Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 30 Mar 2022 16:37:17 +0530 Subject: [PATCH 165/172] fix: input _stack type issue --- src/components/primitives/Input/types.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/primitives/Input/types.ts b/src/components/primitives/Input/types.ts index 6d8b933bc..d4fdc20b1 100644 --- a/src/components/primitives/Input/types.ts +++ b/src/components/primitives/Input/types.ts @@ -4,7 +4,7 @@ import type { PlatformProps, VariantType } from '../../types'; import type { IBoxProps } from '../Box'; import type { ResponsiveValue } from '../../../components/types'; import type { ISizes } from '../../../theme/base/sizes'; - +import type { IStackProps } from '../../primitives/Stack'; export interface IInputProps extends PlatformProps, Omit, @@ -96,6 +96,10 @@ export interface IInputProps * props are passed to InputBase component */ _input?: {}; + /** + * Props to be passed to the Stack used inside. + */ + _stack?: IStackProps; } export interface IInputGroupProps extends IBoxProps { From 7d136b8880956482e573783958f698fcbd2b6ad2 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 30 Mar 2022 19:28:47 +0530 Subject: [PATCH 166/172] fix: button from patch fix --- src/components/primitives/Button/Button.tsx | 35 +++++++-------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/src/components/primitives/Button/Button.tsx b/src/components/primitives/Button/Button.tsx index 2bc42d6ec..a96955952 100644 --- a/src/components/primitives/Button/Button.tsx +++ b/src/components/primitives/Button/Button.tsx @@ -1,6 +1,7 @@ import React, { memo, forwardRef } from 'react'; import Spinner from '../Spinner'; import { usePropsResolution } from '../../../hooks/useThemeProps'; +import { default as Box, IBoxProps } from '../Box'; import HStack from '../Stack/HStack'; import { Pressable } from '../Pressable'; import type { IButtonProps } from './types'; @@ -12,8 +13,6 @@ import { } from '../../primitives/Pressable/Pressable'; import { useFocusRing } from '@react-native-aria/focus'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; -import { useContrastText } from '../../../hooks'; -import type { IBoxProps } from '../Box'; const Button = ( { @@ -50,7 +49,6 @@ const Button = ( _text, _stack, _spinner, - _icon, isLoadingText, ...resolvedProps } = usePropsResolution('Button', props, { @@ -62,22 +60,6 @@ const Button = ( isFocusVisible: isFocusVisibleProp || isFocusVisible, }); - // Setting contrast text then no color is comming - const contrastTextColor = useContrastText( - resolvedProps.bg || resolvedProps.backgroundColor || resolvedProps.bgColor, - _text?.color - ); - - if ( - (resolvedProps.bg || - resolvedProps.backgroundColor || - resolvedProps.bgColor) && - contrastTextColor && - _text.color === undefined - ) { - _text.color = contrastTextColor; - } - //TODO: refactor for responsive prop if (useHasResponsiveProps(props)) { return null; @@ -95,7 +77,7 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-end-icon-${index}`, - ..._icon, + ..._text, ...child.props, }); } @@ -107,15 +89,22 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-start-icon-${index}`, - ..._icon, + ..._text, ...child.props, }); } ); } - const boxChildren = isLoading && isLoadingText ? isLoadingText : children; - const spinnerElement = spinner ? spinner : ; + const spinnerElement = spinner ? ( + spinner + ) : ( + + ); + + const boxChildren = (child: any) => { + return {child}; + }; return ( Date: Wed, 30 Mar 2022 19:29:11 +0530 Subject: [PATCH 167/172] fix: matched Input Addons and Actionsheet design --- .../primitives/Input/InputGroup.tsx | 28 +++++++++++++++++++ src/theme/components/actionsheet.ts | 17 ++++++++++- src/theme/components/inputleftaddon.ts | 1 + src/theme/components/inputrightaddon.ts | 1 + 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/components/primitives/Input/InputGroup.tsx b/src/components/primitives/Input/InputGroup.tsx index 413e5ea92..dd930c769 100644 --- a/src/components/primitives/Input/InputGroup.tsx +++ b/src/components/primitives/Input/InputGroup.tsx @@ -6,6 +6,34 @@ import { extractInObject, stylingProps } from '../../../theme/tools/utils'; import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps'; const supplyPropsToChildren = (children: any, props: any) => { + if (children.length >= 2) { + const result = []; + const firstChild = children[0]; + const firstChildProps = { + ...firstChild.props.children, + borderTopRightRadius: 0, + borderBottomRightRadius: 0, + }; + result.push( + React.cloneElement(firstChild, firstChildProps, firstChild.props.children) + ); + for (let i = 1; i < children.length - 1; i++) { + const child = children[i]; + const newProps = { ...props, borderRadius: '0' }; + result.push(React.cloneElement(child, newProps, child.props.children)); + } + const lastChild = children[children.length - 1]; + const lastChildProps = { + ...lastChild.props.children, + borderTopLeftRadius: 0, + borderBottomLeftRadius: 0, + }; + result.push( + React.cloneElement(lastChild, lastChildProps, lastChild.props.children) + ); + return result; + } + return React.Children.map(children, (child: JSX.Element) => { return React.cloneElement(child, props, child.props.children); }); diff --git a/src/theme/components/actionsheet.ts b/src/theme/components/actionsheet.ts index d7bb60a99..3841bf677 100644 --- a/src/theme/components/actionsheet.ts +++ b/src/theme/components/actionsheet.ts @@ -63,6 +63,14 @@ export const ActionsheetItem = { bg: 'muted.200', }, _pressed: { + bg: 'muted.400', + }, + _focusVisible: { + _web: { + outlineWidth: '0', + style: { boxShadow: `none` }, + bg: 'muted.300', + }, bg: 'muted.300', }, }, @@ -74,7 +82,14 @@ export const ActionsheetItem = { bg: 'muted.700', }, _pressed: { - bg: 'muted.600', + bg: 'muted.500', + }, + _focusVisible: { + _web: { + outlineWidth: '0', + style: { boxShadow: `none` }, + bg: 'muted.600', + }, }, }, }), diff --git a/src/theme/components/inputleftaddon.ts b/src/theme/components/inputleftaddon.ts index a3fa9e5d7..cf8f4a898 100644 --- a/src/theme/components/inputleftaddon.ts +++ b/src/theme/components/inputleftaddon.ts @@ -4,6 +4,7 @@ const baseStyle = () => { p: '2', borderWidth: '1', borderRightWidth: '0', + borderLeftRadius: 'sm', _text: { fontWeight: 400, }, diff --git a/src/theme/components/inputrightaddon.ts b/src/theme/components/inputrightaddon.ts index fe5f9fe65..e8de38dfa 100644 --- a/src/theme/components/inputrightaddon.ts +++ b/src/theme/components/inputrightaddon.ts @@ -4,6 +4,7 @@ const baseStyle = () => { p: '2', borderWidth: '1', borderLeftWidth: '0', + borderRightRadius: 'sm', _text: { fontWeight: 400, }, From b30740aee822c35746f02703cb749ebc9f1eb097 Mon Sep 17 00:00:00 2001 From: Viraj-10 Date: Wed, 30 Mar 2022 19:37:52 +0530 Subject: [PATCH 168/172] fix: adding _icon back --- src/components/primitives/Button/Button.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/primitives/Button/Button.tsx b/src/components/primitives/Button/Button.tsx index a96955952..7c971327a 100644 --- a/src/components/primitives/Button/Button.tsx +++ b/src/components/primitives/Button/Button.tsx @@ -50,6 +50,7 @@ const Button = ( _stack, _spinner, isLoadingText, + _icon, ...resolvedProps } = usePropsResolution('Button', props, { isDisabled, @@ -77,7 +78,7 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-end-icon-${index}`, - ..._text, + ..._icon, ...child.props, }); } @@ -89,7 +90,7 @@ const Button = ( (child: JSX.Element, index: number) => { return React.cloneElement(child, { key: `button-start-icon-${index}`, - ..._text, + ..._icon, ...child.props, }); } From 444c545312cab9350594be6a2377245952ce905d Mon Sep 17 00:00:00 2001 From: amars29 Date: Thu, 31 Mar 2022 10:27:23 +0530 Subject: [PATCH 169/172] fix: design of IconButton on active state --- src/theme/components/icon-button.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/components/icon-button.ts b/src/theme/components/icon-button.ts index 0d7ffec3f..2e26632d6 100644 --- a/src/theme/components/icon-button.ts +++ b/src/theme/components/icon-button.ts @@ -27,10 +27,10 @@ const baseStyle = (props: any) => { userSelect: 'none', }, _focus: { - borderWidth: 2, borderColor: `${colorScheme}.400`, }, _focusVisible: { + borderWidth: 2, _web: { outlineWidth: '0', style: { ...focusRing }, From 50c8de5fa5d2527e0e51efad9d432dcef857d72a Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 31 Mar 2022 10:30:32 +0530 Subject: [PATCH 170/172] fix: formcontrol example --- .../stories/components/composites/FormControl/Usage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/storybook/stories/components/composites/FormControl/Usage.tsx b/example/storybook/stories/components/composites/FormControl/Usage.tsx index 7c6a33752..7d4c1e838 100644 --- a/example/storybook/stories/components/composites/FormControl/Usage.tsx +++ b/example/storybook/stories/components/composites/FormControl/Usage.tsx @@ -10,7 +10,7 @@ import { export const Example = () => { return ( - + Password From c13339c21f030c1e1cf3dbe050693edeb2108d6c Mon Sep 17 00:00:00 2001 From: ankit-tailor Date: Thu, 31 Mar 2022 11:16:42 +0530 Subject: [PATCH 171/172] fix: icon size --- .../storybook/stories/components/primitives/Icon/CustomIcon.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/storybook/stories/components/primitives/Icon/CustomIcon.tsx b/example/storybook/stories/components/primitives/Icon/CustomIcon.tsx index 4e5d63000..fc5267626 100644 --- a/example/storybook/stories/components/primitives/Icon/CustomIcon.tsx +++ b/example/storybook/stories/components/primitives/Icon/CustomIcon.tsx @@ -4,7 +4,7 @@ import { Path, G } from 'react-native-svg'; export const Example = () => { return (
- + Date: Thu, 31 Mar 2022 11:44:00 +0530 Subject: [PATCH 172/172] v3.4.0-rc.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 22a197977..14adfadf0 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "prettier --write" ] }, - "version": "3.4.0-alpha.7", + "version": "3.4.0-rc.0", "license": "MIT", "private": false, "main": "lib/commonjs/index",