From e31a2b4d66c71286a647056dfc30e2b8d7afe25e Mon Sep 17 00:00:00 2001 From: Bibazavr Date: Fri, 17 May 2024 13:05:48 +0300 Subject: [PATCH] feat: move to px --- dimensionCompare/new/fold-flip.png | Bin 0 -> 69684 bytes dimensionCompare/new/fold-open.png | Bin 0 -> 83539 bytes dimensionCompare/new/ipad.png | Bin 0 -> 72945 bytes dimensionCompare/new/iphoneSE.png | Bin 0 -> 45605 bytes dimensionCompare/new/medium.png | Bin 0 -> 68176 bytes dimensionCompare/new/small.png | Bin 0 -> 44702 bytes dimensionCompare/was/fold-flip.png | Bin 0 -> 98545 bytes dimensionCompare/was/fold-open.png | Bin 0 -> 115743 bytes dimensionCompare/was/ipad.png | Bin 0 -> 109882 bytes dimensionCompare/was/iphoneSE.png | Bin 0 -> 45696 bytes dimensionCompare/was/medium.png | Bin 0 -> 72432 bytes dimensionCompare/was/small.png | Bin 0 -> 44203 bytes ios/MobyDick.xcodeproj/project.pbxproj | 30 +- .../AppIcon.appiconset/Contents.json | 156 +- lib/__mocks__/globalMock.js | 43 + lib/__mocks__/svgMock.js | 3 + lib/e2e/const.js | 9 + lib/e2e/core/cta/button.e2e.js | 47 + lib/e2e/functions.js | 18 + lib/e2e/jest.config.js | 14 + lib/package.json | 104 + lib/packages/KeyboardAware/index.js | 17 + .../src/KeyboardAwareScrollView.js | 73 + lib/packages/KeyboardAware/src/index.js | 8 + lib/packages/calendar/index.js | 17 + .../calendar/src/Calendar/Calendar.js | 276 ++ .../calendar/src/Calendar/ModalCalendar.js | 45 + .../src/Calendar/__tests__/Calendar.test.js | 179 + .../Calendar/__tests__/ModalCalendar.test.js | 59 + .../src/Calendar/__tests__/functions.test.js | 320 ++ .../src/Calendar/components/CalendarHeader.js | 40 + .../src/Calendar/components/Months.js | 37 + .../calendar/src/Calendar/components/Years.js | 37 + .../__tests__/CalendarHeader.test.js | 20 + .../components/__tests__/Months.test.js | 24 + .../components/__tests__/Years.test.js | 27 + .../calendar/src/Calendar/constants.js | 11 + .../calendar/src/Calendar/functions.js | 181 + .../src/Calendar/helpers/mergeObjects.js | 15 + .../src/Calendar/helpers/typedKeys.js | 6 + lib/packages/calendar/src/Calendar/index.js | 25 + .../calendar/src/Calendar/localeConfig.js | 44 + .../calendar/src/Calendar/stylesCreate.js | 18 + lib/packages/calendar/src/Calendar/types.js | 20 + lib/packages/calendar/src/index.js | 17 + lib/packages/chart/index.js | 17 + lib/packages/chart/src/BarChart/index.js | 179 + lib/packages/chart/src/LineChart/index.js | 192 + lib/packages/chart/src/components/CoordX.js | 28 + lib/packages/chart/src/components/CoordY.js | 33 + .../chart/src/components/Coordinates.js | 43 + lib/packages/chart/src/components/Line.js | 9 + .../chart/src/components/LineOfPeriod.js | 34 + .../chart/src/components/LinePoints.js | 17 + lib/packages/chart/src/components/Lines.js | 19 + lib/packages/chart/src/components/Point.js | 8 + .../chart/src/components/PointOfLine.js | 16 + .../chart/src/components/PointerPopup.js | 112 + lib/packages/chart/src/components/Section.js | 29 + .../chart/src/components/SectionButton.js | 24 + lib/packages/chart/src/components/index.js | 21 + lib/packages/chart/src/index.js | 21 + lib/packages/chart/src/types.js | 2 + lib/packages/chart/src/utils/constants.js | 16 + lib/packages/chart/src/utils/generateBar.js | 46 + .../src/utils/generateCoordinatesPath.js | 13 + .../chart/src/utils/generateLinePath.js | 25 + .../src/utils/generatePeriodsWithBarPaths.js | 29 + .../src/utils/generatePeriodsWithLinePaths.js | 42 + .../chart/src/utils/getCoordinateValues.js | 64 + .../chart/src/utils/getLinesMinMax.js | 21 + lib/packages/chart/src/utils/index.js | 24 + lib/packages/core/index.js | 17 + .../basic/components/Button/ButtonWrapper.js | 8 + .../Button/__tests__/Button.test.js | 13 + .../core/src/basic/components/Button/index.js | 23 + .../core/src/basic/components/Button/types.js | 2 + .../src/basic/components/FlatList/FlatList.js | 9 + .../FlatList/__tests__/FlatList.test.js | 17 + .../src/basic/components/FlatList/index.js | 23 + .../src/basic/components/FlatList/types.js | 2 + .../basic/components/Pressable/Pressable.js | 8 + .../Pressable/__tests__/Pressable.test.js | 13 + .../src/basic/components/Pressable/index.js | 23 + .../src/basic/components/Pressable/types.js | 2 + .../basic/components/ScrollView/ScrollView.js | 8 + .../ScrollView/__tests__/ScrollView.test.js | 13 + .../src/basic/components/ScrollView/index.js | 23 + .../src/basic/components/ScrollView/types.js | 2 + .../core/src/basic/components/Text/Text.js | 9 + .../components/Text/__tests__/Text.test.js | 13 + .../core/src/basic/components/Text/index.js | 23 + .../core/src/basic/components/Text/types.js | 2 + .../basic/components/TextInput/TextInput.js | 7 + .../TextInput/__tests__/TextInput.test.js | 13 + .../src/basic/components/TextInput/index.js | 23 + .../src/basic/components/TextInput/types.js | 2 + .../TouchableHighlight/TouchableHighlight.js | 8 + .../__tests__/TouchableHighlight.test.js | 16 + .../components/TouchableHighlight/index.js | 23 + .../components/TouchableHighlight/types.js | 2 + .../TouchableOpacity/TouchableOpacity.js | 6 + .../__tests__/TouchableOpacity.test.js | 13 + .../components/TouchableOpacity/index.js | 23 + .../components/TouchableOpacity/types.js | 2 + .../core/src/basic/components/View/View.js | 6 + .../components/View/__tests__/View.test.js | 13 + .../core/src/basic/components/View/index.js | 23 + .../core/src/basic/components/View/types.js | 2 + .../core/src/basic/components/index.js | 25 + .../src/basic/config/__tests__/config.test.js | 12 + lib/packages/core/src/basic/config/index.js | 12 + lib/packages/core/src/basic/index.js | 18 + .../core/src/chat/components/ChatInput.js | 38 + .../src/chat/components/ChatInputField.js | 40 + .../core/src/chat/components/ChatMessage.js | 70 + .../src/chat/components/ChatMessageAvatar.js | 34 + .../src/chat/components/ChatPressableIcon.js | 30 + .../components/__tests__/ChatInput.test.js | 39 + .../__tests__/ChatInputField.test.js | 26 + .../components/__tests__/ChatMessage.test.js | 30 + .../__tests__/ChatMessageAvatar.test.js | 21 + .../__tests__/ChatPressableIcon.test.js | 21 + .../core/src/chat/components/index.js | 16 + .../__tests__/isValidMessageTime.test.js | 33 + .../src/chat/functions/isValidMessageTime.js | 8 + lib/packages/core/src/chat/index.js | 18 + lib/packages/core/src/chat/types.js | 2 + .../core/src/controls/CheckBox/CheckBox.js | 19 + .../core/src/controls/CheckBox/CheckSquare.js | 18 + .../CheckBox/__tests__/CheckBox.test.js | 28 + .../core/src/controls/CheckBox/index.js | 8 + .../src/controls/CheckBox/stylesCreate.js | 24 + lib/packages/core/src/controls/Control.js | 12 + .../controls/ControlsLists/ControlsList.js | 15 + .../ControlsLists/__tests__/ControlsList.js | 75 + .../__tests__/useCloneControls.js | 63 + .../core/src/controls/ControlsLists/index.js | 23 + .../controls/ControlsLists/stylesCreate.js | 9 + .../core/src/controls/ControlsLists/types.js | 2 + .../ControlsLists/useCloneControls.js | 31 + .../core/src/controls/Radio/Circle.js | 13 + lib/packages/core/src/controls/Radio/Radio.js | 18 + .../controls/Radio/__tests__/Circle.test.js | 24 + .../controls/Radio/__tests__/Radio.test.js | 25 + lib/packages/core/src/controls/Radio/index.js | 23 + .../core/src/controls/Radio/stylesCreate.js | 33 + lib/packages/core/src/controls/Radio/types.js | 2 + .../core/src/controls/Slider/Slider.js | 170 + .../controls/Slider/__tests__/Slider.test.js | 179 + .../controls/Slider/components/HighThumb.js | 19 + .../controls/Slider/components/LowThumb.js | 18 + .../src/controls/Slider/components/Rail.js | 17 + .../Slider/components/SelectedRail.js | 16 + .../src/controls/Slider/components/Thumb.js | 27 + .../core/src/controls/Slider/helpers.js | 28 + .../core/src/controls/Slider/hooks.js | 68 + .../core/src/controls/Slider/index.js | 8 + .../core/src/controls/Slider/stylesCreate.js | 38 + lib/packages/core/src/controls/Swipe/Swipe.js | 85 + .../controls/Swipe/__tests__/Swipe.test.js | 85 + lib/packages/core/src/controls/Swipe/index.js | 23 + .../core/src/controls/Swipe/stylesCreate.js | 23 + lib/packages/core/src/controls/Swipe/types.js | 2 + lib/packages/core/src/controls/constants.js | 8 + lib/packages/core/src/controls/index.js | 22 + lib/packages/core/src/controls/types.js | 2 + .../core/src/cta/components/Button/Button.js | 55 + .../Button/__tests__/Button.test.js | 87 + .../cta/components/Button/getDefaultFont.js | 30 + .../core/src/cta/components/Button/index.js | 23 + .../src/cta/components/Button/stylesCreate.js | 100 + .../core/src/cta/components/Button/types.js | 18 + lib/packages/core/src/cta/components/index.js | 17 + lib/packages/core/src/cta/index.js | 18 + .../core/src/cta/utils/getCounterType.js | 20 + lib/packages/core/src/cta/utils/index.js | 8 + lib/packages/core/src/index.js | 27 + .../inputs/components/Base/InputSubtitle.js | 23 + .../src/inputs/components/Base/InputTitle.js | 22 + .../core/src/inputs/components/Base/index.js | 10 + .../inputs/components/DropDown/DropDown.js | 107 + .../DropDown/__tests__/DropDown.test.js | 148 + .../components/DropDown/components/Chip.js | 44 + .../DropDown/components/ChipList.js | 27 + .../DropDown/components/DropDownIcon.js | 16 + .../DropDown/components/ListEmptySelector.js | 13 + .../DropDown/components/Selector.js | 95 + .../components/__tests__/Chip.test.js | 20 + .../components/__tests__/ChipList.test.js | 19 + .../components/__tests__/DropDownIcon.test.js | 26 + .../__tests__/ListEmptySelector.test.js | 17 + .../components/__tests__/Selector.test.js | 120 + .../DropDown/components/stylesCreate.js | 19 + .../components/DropDown/constants/index.js | 14 + .../src/inputs/components/DropDown/index.js | 23 + .../components/DropDown/stylesCreate.js | 55 + .../src/inputs/components/DropDown/types.js | 2 + .../__tests__/getDropDownDimensions.test.js | 67 + .../utils/__tests__/getSelectedItems.test.js | 34 + .../DropDown/utils/getDropDownDimensions.js | 18 + .../DropDown/utils/getSelectedItems.js | 13 + .../components/InputField/InputField.js | 74 + .../InputField/__tests__/InputField.test.js | 64 + .../inputs/components/InputField/constants.js | 7 + .../src/inputs/components/InputField/index.js | 23 + .../components/InputField/stylesCreate.js | 52 + .../src/inputs/components/InputField/types.js | 2 + .../src/inputs/components/Search/Search.js | 32 + .../Search/__tests__/Search.test.js | 27 + .../src/inputs/components/Search/constants.js | 6 + .../src/inputs/components/Search/index.js | 23 + .../inputs/components/Search/stylesCreate.js | 34 + .../src/inputs/components/Search/types.js | 2 + .../components/Verification/CodeField.js | 29 + .../Verification/__tests__/CodeField.test.js | 32 + .../inputs/components/Verification/index.js | 23 + .../components/Verification/stylesCreate.js | 24 + .../inputs/components/Verification/types.js | 2 + .../core/src/inputs/components/index.js | 22 + .../core/src/inputs/components/types.js | 10 + lib/packages/core/src/inputs/index.js | 18 + .../core/src/inputs/style/disabledStyle.js | 11 + lib/packages/core/src/inputs/style/index.js | 19 + .../core/src/inputs/style/validStyle.js | 11 + .../core/src/inputs/style/wrongStyle.js | 11 + .../components/PanelHeader/PanelHeader.js | 24 + .../PanelHeader/__tests__/PanelHeader.test.js | 55 + .../PanelHeader/components/ContentHeader.js | 73 + .../PanelHeader/components/index.js | 8 + .../navbars/components/PanelHeader/index.js | 8 + .../core/src/navbars/components/Tabs/Tab.js | 39 + .../core/src/navbars/components/Tabs/Tabs.js | 25 + .../components/Tabs/__tests__/Tab.test.js | 44 + .../components/Tabs/__tests__/Tabs.test.js | 19 + .../core/src/navbars/components/Tabs/index.js | 10 + .../navbars/components/Tabs/stylesCreate.js | 20 + .../core/src/navbars/components/index.js | 18 + lib/packages/core/src/navbars/index.js | 18 + lib/packages/core/src/navbars/types.js | 2 + .../src/other/components/Avatar/Avatar.js | 62 + .../other/components/Avatar/AvatarGroup.js | 68 + .../Avatar/__tests__/Avatar.test.js | 101 + .../Avatar/__tests__/AvatarGroup.test.js | 54 + .../Avatar/components/AvatarBadge.js | 46 + .../Avatar/components/AvatarWithoutImage.js | 22 + .../Avatar/components/IconAvatar.js | 27 + .../Avatar/components/TextAvatar.js | 24 + .../components/__tests__/IconAvatar.test.js | 30 + .../components/__tests__/TextAvatar.test.js | 35 + .../core/src/other/components/Avatar/index.js | 25 + .../other/components/Avatar/stylesCreate.js | 56 + .../core/src/other/components/Avatar/types.js | 25 + .../Badge/BadgeIndicator/BadgeIndicator.js | 38 + .../__tests__/BadgeIndicator.js | 18 + .../components/Badge/BadgeIndicator/index.js | 23 + .../components/Badge/BadgeIndicator/types.js | 8 + .../other/components/Badge/Counter/Counter.js | 25 + .../Badge/Counter/__tests__/Counter.test.js | 54 + .../other/components/Badge/Counter/index.js | 23 + .../components/Badge/Counter/stylesCreate.js | 54 + .../other/components/Badge/Counter/types.js | 17 + .../core/src/other/components/Badge/index.js | 18 + .../other/components/Carousel/AutoCarousel.js | 10 + .../components/Carousel/AutoLoopCarousel.js | 10 + .../src/other/components/Carousel/Carousel.js | 132 + .../other/components/Carousel/LoopCarousel.js | 17 + .../Carousel/__tests__/AutoCarousel.test.js | 29 + .../__tests__/AutoLoopCarousel.test.js | 28 + .../Carousel/__tests__/Carousel.test.js | 296 ++ .../Carousel/__tests__/LoopCarousel.test.js | 124 + .../Carousel/components/EmptyFirstItem.js | 11 + .../src/other/components/Carousel/index.js | 29 + .../other/components/Carousel/stylesCreate.js | 11 + .../src/other/components/Carousel/types.js | 8 + .../components/Collapsible/Collapsible.js | 58 + .../Collapsible/__tests__/Collapsible.test.js | 44 + .../src/other/components/Collapsible/index.js | 23 + .../src/other/components/Collapsible/types.js | 2 + .../components/CrossedText/CrossedText.js | 35 + .../CrossedText/__tests__/CrossesText.test.js | 17 + .../src/other/components/CrossedText/index.js | 23 + .../src/other/components/CrossedText/types.js | 2 + .../core/src/other/components/Dots/Dot.js | 27 + .../core/src/other/components/Dots/Dots.js | 127 + .../components/Dots/__tests__/Dots.test.js | 68 + .../Dots/__tests__/stylesCreate.test.js | 27 + .../src/other/components/Dots/constants.js | 17 + .../core/src/other/components/Dots/index.js | 25 + .../src/other/components/Dots/stylesCreate.js | 21 + .../core/src/other/components/Dots/types.js | 2 + .../src/other/components/Status/Status.js | 13 + .../Status/__tests__/Status.test.js | 54 + .../components/Status/components/StatusDot.js | 46 + .../components/Status/components/StatusTag.js | 70 + .../core/src/other/components/Status/index.js | 23 + .../core/src/other/components/Status/types.js | 16 + .../core/src/other/components/index.js | 23 + .../core/src/other/constants/LABELS.js | 23 + .../core/src/other/constants/index.js | 5 + .../core/src/other/functions/isNumber.js | 7 + lib/packages/core/src/other/index.js | 18 + .../src/popups/MobyDickPopup/MobyDickPopup.js | 17 + .../__tests__/MobyDickPopup.test.js | 53 + .../core/src/popups/MobyDickPopup/index.js | 33 + .../core/src/popups/MobyDickPopup/types.js | 2 + .../ActionSheetBase/ActionSheetBase.js | 22 + .../popups/components/ActionSheetBase/Item.js | 26 + .../__tests__/ActionSheetBase.test.js | 22 + .../ActionSheetBase/__tests__/Item.test.js | 42 + .../ActionSheetBase/content/Contents.js | 37 + .../components/ActionSheetBase/index.js | 23 + .../ActionSheetBase/stylesCreate.js | 73 + .../components/ActionSheetBase/types.js | 11 + .../components/ModalBase/AlertContent.js | 20 + .../popups/components/ModalBase/CloseIcon.js | 17 + .../ModalBase/HorizontalButtonsView.js | 19 + .../popups/components/ModalBase/ImageView.js | 13 + .../popups/components/ModalBase/ModalBase.js | 34 + .../components/ModalBase/TextContent.js | 22 + .../components/ModalBase/VerticalButton.js | 11 + .../ModalBase/VerticalButtonsView.js | 14 + .../ModalBase/__tests__/AlertContent.test.js | 17 + .../ModalBase/__tests__/CloseIcon.test.js | 13 + .../__tests__/HorizontalButtonsView.test.js | 26 + .../ModalBase/__tests__/ImageView.test.js | 18 + .../ModalBase/__tests__/ModalBase.test.js | 17 + .../ModalBase/__tests__/TextContent.text.js | 29 + .../__tests__/VerticalButtonsView.test.js | 17 + .../src/popups/components/ModalBase/index.js | 8 + .../components/ModalBase/stylesCreate.js | 71 + .../src/popups/components/Modals/ModalAsk.js | 22 + .../popups/components/Modals/ModalError.js | 24 + .../popups/components/Modals/ModalLoading.js | 25 + .../popups/components/Modals/ModalSuccess.js | 22 + .../Modals/__tests__/ModalAsk.test.js | 18 + .../Modals/__tests__/ModalError.test.js | 17 + .../Modals/__tests__/ModalLoading.test.js | 17 + .../Modals/__tests__/ModalSuccess.test.js | 17 + .../src/popups/components/Modals/index.js | 14 + .../popups/components/Modals/stylesCreate.js | 17 + .../src/popups/components/Modals/types.js | 2 + .../popups/components/PopupBase/PopupBase.js | 31 + .../PopupBase/__tests__/PopupBase.test.js | 39 + .../popups/components/PopupBase/constants.js | 7 + .../src/popups/components/PopupBase/index.js | 23 + .../components/PopupBase/stylesCreate.js | 13 + .../src/popups/components/PopupBase/types.js | 2 + .../components/SnackbarBase/SnackbarBase.js | 32 + .../popups/components/SnackbarBase/Title.js | 16 + .../__tests__/SnackbarBase.test.js | 22 + .../SnackbarBase/__tests__/Title.test.js | 17 + .../popups/components/SnackbarBase/index.js | 23 + .../components/SnackbarBase/stylesCreate.js | 44 + .../popups/components/SnackbarBase/types.js | 2 + .../popups/components/TooltipBase/Arrow.js | 37 + .../components/TooltipBase/DescriptionText.js | 16 + .../components/TooltipBase/LeftButton.js | 13 + .../popups/components/TooltipBase/Title.js | 16 + .../components/TooltipBase/TooltipBase.js | 76 + .../TooltipBase/__tests__/Arrow.test.js | 23 + .../__tests__/DescriptionText.test.js | 17 + .../TooltipBase/__tests__/LeftButton.test.js | 14 + .../TooltipBase/__tests__/Title.test.js | 17 + .../TooltipBase/__tests__/TooltipBase.test.js | 49 + .../popups/components/TooltipBase/index.js | 23 + .../components/TooltipBase/stylesCreate.js | 69 + .../popups/components/TooltipBase/types.js | 9 + .../core/src/popups/components/index.js | 22 + .../core/src/popups/context/PopupsContext.js | 14 + .../core/src/popups/context/PopupsProvider.js | 50 + .../context/__tests__/PopupsProvider.test.js | 45 + .../core/src/popups/context/constants.js | 4 + lib/packages/core/src/popups/context/index.js | 25 + lib/packages/core/src/popups/context/types.js | 2 + .../functions/__tests__/returnTrue.text.js | 8 + .../core/src/popups/functions/index.js | 5 + .../core/src/popups/functions/returnTrue.js | 5 + .../popups/hooks/__tests__/usePopup.test.js | 56 + .../popups/hooks/__tests__/usePopups.test.js | 16 + lib/packages/core/src/popups/hooks/index.js | 10 + .../core/src/popups/hooks/usePopup.js | 26 + .../core/src/popups/hooks/usePopups.js | 9 + lib/packages/core/src/popups/index.js | 24 + .../popups/reducer/__tests__/reducer.test.js | 9 + .../core/src/popups/reducer/actions.js | 18 + .../core/src/popups/reducer/constatnts.js | 6 + lib/packages/core/src/popups/reducer/index.js | 20 + .../core/src/popups/reducer/reducer.js | 33 + lib/packages/core/src/popups/reducer/types.js | 2 + lib/packages/core/src/popups/types.js | 8 + .../components/Indicator/Indicator.js | 36 + .../Indicator/__tests__/Indicator.test.js | 10 + .../progress/components/Indicator/index.js | 23 + .../components/Indicator/stylesCreate.js | 16 + .../progress/components/Indicator/types.js | 2 + .../components/PanelSpinner/PanelSpinner.js | 41 + .../__tests__/PanelSpinner.test.js | 24 + .../progress/components/PanelSpinner/index.js | 23 + .../components/PanelSpinner/stylesCreate.js | 36 + .../progress/components/PanelSpinner/types.js | 2 + .../src/progress/components/Spinner/Loader.js | 28 + .../progress/components/Spinner/Spinner.js | 35 + .../Spinner/__tests__/Loader.test.js | 26 + .../Spinner/__tests__/Spinner.test.js | 19 + .../src/progress/components/Spinner/index.js | 23 + .../src/progress/components/Spinner/types.js | 11 + .../core/src/progress/components/index.js | 19 + lib/packages/core/src/progress/index.js | 17 + .../core/src/styles/constants/HIT_SLOP.js | 12 + .../core/src/styles/constants/colors/color.js | 281 ++ .../core/src/styles/constants/colors/index.js | 18 + .../core/src/styles/constants/colors/types.js | 2 + .../src/styles/constants/defaultSpaces.js | 23 + .../core/src/styles/constants/index.js | 25 + .../core/src/styles/constants/theme.js | 54 + .../core/src/styles/context/ThemeProvider.js | 29 + .../context/__tests__/ThemeProvider.test.js | 13 + .../core/src/styles/context/context.js | 23 + lib/packages/core/src/styles/context/index.js | 10 + .../styles/hooks/__tests__/useStyles.tests.js | 16 + .../styles/hooks/__tests__/useTheme.test.js | 16 + lib/packages/core/src/styles/hooks/index.js | 10 + .../core/src/styles/hooks/useStyles.js | 11 + .../core/src/styles/hooks/useTheme.js | 9 + .../core/src/styles/icons/font/SimpleIcon.js | 28 + .../src/styles/icons/font/SimpleIconAlbum.js | 47 + .../icons/font/__tests__/SimpleIcon.test.js | 13 + .../font/__tests__/SimpleIconAlbum.test.js | 24 + .../core/src/styles/icons/font/index.js | 34 + .../src/styles/icons/font/unicodesMap.json | 103 + lib/packages/core/src/styles/icons/index.js | 18 + .../core/src/styles/icons/svg/index.js | 18 + lib/packages/core/src/styles/index.js | 23 + .../core/src/styles/shadows/getShadows.js | 95 + lib/packages/core/src/styles/shadows/index.js | 17 + lib/packages/core/src/styles/types.js | 2 + .../src/styles/utils/__tests__/rem.test.js | 30 + .../core/src/styles/utils/createStyles.js | 6 + lib/packages/core/src/styles/utils/index.js | 12 + lib/packages/core/src/styles/utils/px.js | 7 + lib/packages/core/src/styles/utils/rem.js | 23 + .../components/Typography/Typography.js | 15 + .../Typography/__tests__/Typography.test.js | 10 + .../typography/components/Typography/index.js | 17 + .../core/src/typography/components/index.js | 17 + .../hooks/__tests__/useFont.test.js | 26 + .../core/src/typography/hooks/index.js | 17 + .../core/src/typography/hooks/useFont.js | 24 + lib/packages/core/src/typography/index.js | 20 + lib/packages/core/src/typography/types.js | 28 + .../core/src/typography/utils/getSize.js | 24 + .../core/src/typography/utils/index.js | 17 + lib/packages/dragAndDrop/index.js | 17 + .../src/DragAndDrop/DragAndDrop.js | 132 + .../src/DragAndDrop/DragAndDropList.js | 75 + .../dragAndDrop/src/DragAndDrop/index.js | 25 + .../dragAndDrop/src/DragAndDrop/types.js | 2 + .../dragAndDrop/src/DragAndDrop/utils.js | 25 + lib/packages/dragAndDrop/src/index.js | 17 + lib/packages/markdown/index.js | 17 + .../markdown/src/Markdown/Markdown.js | 42 + lib/packages/markdown/src/Markdown/index.js | 23 + lib/packages/markdown/src/Markdown/types.js | 2 + lib/packages/markdown/src/index.js | 17 + lib/packages/utils/index.js | 17 + .../src/hooks/__tests__/useDebounce.test.js | 35 + .../hooks/__tests__/useIsForeground.test.js | 25 + .../src/hooks/__tests__/useLatest.test.js | 14 + .../src/hooks/__tests__/useThrottle.test.js | 27 + .../src/hooks/__tests__/useToggle.test.js | 19 + lib/packages/utils/src/hooks/index.js | 16 + lib/packages/utils/src/hooks/useDebounce.js | 24 + .../utils/src/hooks/useIsForeground.js | 16 + lib/packages/utils/src/hooks/useLatest.js | 11 + lib/packages/utils/src/hooks/useThrottle.js | 23 + lib/packages/utils/src/hooks/useToggle.js | 9 + lib/packages/utils/src/index.js | 17 + lib/scripts/release.js | 121 + .../__tests__/getIncrementedVersion.test.js | 42 + lib/scripts/release/getIncrementedVersion.js | 58 + lib/scripts/release/getPackageList.js | 25 + lib/scripts/release/publishPackage.js | 22 + lib/scripts/release/setPackageVersion.js | 34 + lib/scripts/semantic-release.js | 97 + lib/scripts/utils/logger.js | 21 + lib/src/app/ui/index.js | 20 + lib/src/entities/index.js | 2 + .../pages/MainStack/Home/Calendar/ui/index.js | 17 + .../MainStack/Home/Chart/BarChart/ui/index.js | 19 + .../Home/Chart/LineChart/ui/index.js | 19 + .../pages/MainStack/Home/Chart/ui/index.js | 18 + .../pages/MainStack/Home/Core/CTA/ui/index.js | 15 + .../MainStack/Home/Core/Chat/ui/index.js | 15 + .../MainStack/Home/Core/Controls/ui/index.js | 19 + .../Home/Core/DragAndDrop/ui/index.js | 26 + .../MainStack/Home/Core/Inputs/ui/index.js | 15 + .../MainStack/Home/Core/Navbars/ui/index.js | 20 + .../MainStack/Home/Core/Other/ui/index.js | 27 + .../MainStack/Home/Core/Popup/ui/index.js | 25 + .../MainStack/Home/Core/Progress/ui/index.js | 19 + .../MainStack/Home/Core/Styles/ui/index.js | 18 + .../Home/Core/Typography/ui/index.js | 31 + lib/src/pages/MainStack/Home/Core/ui/index.js | 26 + ...dAwareScrollViewWithBottomAndTabsScreen.js | 17 + .../KeyboardAwareScrollViewWithTabsScreen.js | 16 + .../KeyboardAware/ScrollView/Tabs/ui/index.js | 15 + .../ui/KeyboardAwareScrollViewScreen.js | 16 + ...KeyboardAwareScrollViewWithBottomScreen.js | 17 + .../MainStack/Home/KeyboardAware/ui/index.js | 19 + .../pages/MainStack/Home/Markdown/ui/index.js | 15 + .../pages/MainStack/Home/Utils/ui/index.js | 12 + lib/src/pages/MainStack/Home/ui/index.js | 23 + lib/src/pages/MainStack/Settings/ui/index.js | 19 + lib/src/pages/MainStack/ui/index.js | 86 + .../lib/constants/rootStackParamList.js | 3 + lib/src/shared/lib/constants/screens.js | 32 + .../__tests__/useNavigationTheme.test.js | 22 + .../shared/lib/hooks/useNavigationTheme.js | 20 + lib/src/shared/lib/index.js | 17 + lib/src/shared/lib/navigationRef.js | 51 + lib/src/shared/lib/test/data/avatar.js | 32 + lib/src/shared/lib/test/data/chart.js | 121 + lib/src/shared/styles/getScreenStyles.js | 12 + lib/src/shared/ui/BlockView.js | 24 + lib/src/shared/ui/Header.js | 7 + lib/src/shared/ui/NavigationButton.js | 19 + lib/src/shared/ui/index.js | 22 + lib/src/widgets/Calendar/ui/CalendarWidget.js | 22 + .../Calendar/ui/ModalCalendarWidget.js | 25 + lib/src/widgets/Chart/ui/RenderHeader.js | 53 + lib/src/widgets/Chart/ui/RenderSectionItem.js | 58 + lib/src/widgets/Core/CTA/ui/ButtonWidget.js | 64 + lib/src/widgets/Core/Chat/ui/ChatWidget.js | 46 + .../Core/Controls/ui/ControlListWidget.js | 40 + .../widgets/Core/Controls/ui/SliderWidget.js | 31 + .../widgets/Core/Controls/ui/SwipeWidget.js | 13 + .../widgets/Core/Inputs/ui/DropDownExample.js | 69 + .../widgets/Core/Inputs/ui/ExampleSearch.js | 28 + lib/src/widgets/Core/Inputs/ui/InputList.js | 34 + .../widgets/Core/Inputs/ui/InputsWidget.js | 18 + .../widgets/Core/Inputs/ui/Verification.js | 91 + .../Core/Navbars/ui/PanelHeaderWidget.js | 14 + lib/src/widgets/Core/Navbars/ui/TabsWidget.js | 35 + lib/src/widgets/Core/Other/ui/AvatarWidget.js | 91 + lib/src/widgets/Core/Other/ui/BadgeWidget.js | 39 + .../widgets/Core/Other/ui/CarouselWidget.js | 31 + .../Core/Other/ui/CollapsibleWidget.js | 28 + .../Core/Other/ui/CrossedTextWidget.js | 26 + lib/src/widgets/Core/Other/ui/DotsWidget.js | 47 + lib/src/widgets/Core/Other/ui/StatusWidget.js | 43 + .../Core/Popup/ui/ActionSheetWidget.js | 20 + lib/src/widgets/Core/Popup/ui/ModalWidget.js | 32 + lib/src/widgets/Core/Popup/ui/ModalsWidget.js | 25 + .../widgets/Core/Popup/ui/PopupBaseWidget.js | 20 + .../widgets/Core/Popup/ui/SnackbarWidget.js | 23 + .../widgets/Core/Popup/ui/TooltipWidget.js | 33 + .../Core/Progress/ui/IndicatorWidget.js | 22 + .../Core/Progress/ui/PanelSpinnerWidget.js | 35 + .../widgets/Core/Progress/ui/SpinnerWidget.js | 30 + .../widgets/Core/Styles/ui/ShadowWidget.js | 60 + .../Core/Styles/ui/SimpleIconWidget.js | 18 + lib/src/widgets/KeyboardAware/Bottom.js | 20 + lib/src/widgets/KeyboardAware/Inputs.js | 16 + lib/src/widgets/Markdown/ui/MarkdownWidget.js | 144 + packages/calendar/src/Calendar/Calendar.tsx | 10 +- .../__snapshots__/Calendar.test.tsx.snap | 3204 ++++++++--------- .../__snapshots__/ModalCalendar.test.tsx.snap | 998 ++--- .../src/Calendar/__tests__/functions.test.ts | 14 +- .../Calendar/components/CalendarHeader.tsx | 6 +- .../CalendarHeader.test.tsx.snap | 20 +- .../__snapshots__/Months.test.tsx.snap | 240 +- .../__snapshots__/Years.test.tsx.snap | 320 +- packages/calendar/src/Calendar/functions.ts | 8 +- .../calendar/src/Calendar/stylesCreate.ts | 6 +- .../src/chat/components/ChatInputField.tsx | 7 +- .../core/src/chat/components/ChatMessage.tsx | 10 +- .../src/chat/components/ChatPressableIcon.tsx | 6 +- .../__snapshots__/ChatInput.test.tsx.snap | 134 +- .../ChatInputField.test.tsx.snap | 128 +- .../__snapshots__/ChatMessage.test.tsx.snap | 146 +- .../ChatMessageAvatar.test.tsx.snap | 88 +- .../ChatPressableIcon.test.tsx.snap | 30 +- .../src/controls/CheckBox/CheckSquare.tsx | 6 +- .../__snapshots__/CheckBox.test.tsx.snap | 26 +- .../src/controls/CheckBox/stylesCreate.ts | 4 +- .../__snapshots__/ControlsList.tsx.snap | 162 +- .../__snapshots__/Circle.test.tsx.snap | 18 +- .../__snapshots__/Radio.test.tsx.snap | 36 +- .../core/src/controls/Radio/stylesCreate.ts | 10 +- packages/core/src/controls/Slider/Slider.tsx | 6 +- packages/core/src/controls/Swipe/Swipe.tsx | 4 +- .../core/src/controls/Swipe/stylesCreate.ts | 8 +- .../__snapshots__/Button.test.tsx.snap | 270 +- .../src/cta/components/Button/stylesCreate.ts | 6 +- .../__snapshots__/DropDown.test.tsx.snap | 262 +- .../components/__tests__/Selector.test.tsx | 4 +- .../__snapshots__/Chip.test.tsx.snap | 32 +- .../__snapshots__/ChipList.test.tsx.snap | 34 +- .../__snapshots__/DropDownIcon.test.tsx.snap | 8 +- .../ListEmptySelector.test.tsx.snap | 12 +- .../__snapshots__/Selector.test.tsx.snap | 254 +- .../components/DropDown/constants/index.ts | 14 +- .../components/DropDown/stylesCreate.tsx | 4 +- .../__tests__/getDropDownDimensions.test.ts | 18 +- .../components/InputField/InputField.tsx | 6 +- .../__snapshots__/InputField.test.tsx.snap | 366 +- .../components/InputField/stylesCreate.ts | 7 +- .../src/inputs/components/Search/Search.tsx | 4 +- .../__snapshots__/Search.test.tsx.snap | 32 +- .../inputs/components/Search/stylesCreate.ts | 7 +- .../__snapshots__/CodeField.test.tsx.snap | 24 +- .../components/Verification/stylesCreate.tsx | 7 +- .../__snapshots__/PanelHeader.test.tsx.snap | 138 +- .../PanelHeader/components/ContentHeader.tsx | 12 +- .../__tests__/__snapshots__/Tab.test.tsx.snap | 28 +- .../__snapshots__/Tabs.test.tsx.snap | 36 +- .../other/components/Avatar/AvatarGroup.tsx | 8 +- .../__snapshots__/Avatar.test.tsx.snap | 184 +- .../__snapshots__/AvatarGroup.test.tsx.snap | 294 +- .../Avatar/components/AvatarBadge.tsx | 4 +- .../Avatar/components/IconAvatar.tsx | 10 +- .../__snapshots__/IconAvatar.test.tsx.snap | 10 +- .../__snapshots__/TextAvatar.test.tsx.snap | 30 +- .../other/components/Avatar/stylesCreate.ts | 29 +- .../Badge/BadgeIndicator/BadgeIndicator.tsx | 8 +- .../__snapshots__/BadgeIndicator.tsx.snap | 16 +- .../__snapshots__/Counter.test.tsx.snap | 126 +- .../components/Badge/Counter/stylesCreate.ts | 4 +- .../other/components/Carousel/Carousel.tsx | 4 +- .../__snapshots__/AutoCarousel.test.tsx.snap | 14 +- .../AutoLoopCarousel.test.tsx.snap | 24 +- .../__snapshots__/Carousel.test.tsx.snap | 716 ++-- .../__snapshots__/LoopCarousel.test.tsx.snap | 374 +- .../__snapshots__/Collapsible.test.tsx.snap | 30 +- .../components/CrossedText/CrossedText.tsx | 4 +- .../__snapshots__/CrossesText.test.tsx.snap | 14 +- .../__snapshots__/Dots.test.tsx.snap | 1172 +++--- .../Dots/__tests__/stylesCreate.test.ts | 12 +- .../src/other/components/Dots/constants.ts | 10 +- .../src/other/components/Dots/stylesCreate.ts | 6 +- .../__snapshots__/Status.test.tsx.snap | 102 +- .../ActionSheetBase.test.tsx.snap | 16 +- .../__snapshots__/Item.test.tsx.snap | 148 +- .../ActionSheetBase/stylesCreate.ts | 8 +- .../components/ModalBase/AlertContent.tsx | 4 +- .../__snapshots__/AlertContent.test.tsx.snap | 8 +- .../__snapshots__/CloseIcon.test.tsx.snap | 6 +- .../HorizontalButtonsView.test.tsx.snap | 120 +- .../__snapshots__/ImageView.test.tsx.snap | 4 +- .../__snapshots__/ModalBase.test.tsx.snap | 10 +- .../__snapshots__/TextContent.text.tsx.snap | 58 +- .../VerticalButtonsView.test.tsx.snap | 14 +- .../popups/components/Modals/ModalLoading.tsx | 4 +- .../__snapshots__/ModalAsk.test.tsx.snap | 124 +- .../__snapshots__/ModalError.test.tsx.snap | 92 +- .../__snapshots__/ModalLoading.test.tsx.snap | 88 +- .../__snapshots__/ModalSuccess.test.tsx.snap | 92 +- .../__snapshots__/SnackbarBase.test.tsx.snap | 16 +- .../__snapshots__/Title.test.tsx.snap | 16 +- .../__snapshots__/Arrow.test.tsx.snap | 24 +- .../DescriptionText.test.tsx.snap | 16 +- .../__snapshots__/LeftButton.test.tsx.snap | 14 +- .../__snapshots__/Title.test.tsx.snap | 12 +- .../__snapshots__/TooltipBase.test.tsx.snap | 32 +- .../__snapshots__/Indicator.test.tsx.snap | 6 +- .../components/PanelSpinner/PanelSpinner.tsx | 6 +- .../__snapshots__/PanelSpinner.test.tsx.snap | 50 +- .../components/PanelSpinner/stylesCreate.ts | 8 +- .../core/src/styles/constants/HIT_SLOP.ts | 8 +- .../src/styles/constants/defaultSpaces.ts | 30 +- .../core/src/styles/icons/font/SimpleIcon.tsx | 4 +- .../src/styles/icons/font/SimpleIconAlbum.tsx | 6 +- .../__snapshots__/SimpleIcon.test.tsx.snap | 2 +- .../SimpleIconAlbum.test.tsx.snap | 720 ++-- packages/core/src/styles/utils/index.ts | 3 +- packages/core/src/styles/utils/px.ts | 7 + packages/core/src/styles/utils/rem.ts | 6 +- .../__snapshots__/Typography.test.tsx.snap | 6 +- .../hooks/__tests__/useFont.test.ts | 12 +- .../core/src/typography/utils/getSize.tsx | 26 +- packages/markdown/src/Markdown/Markdown.tsx | 8 +- .../Home/Core/DragAndDrop/ui/index.tsx | 4 +- src/widgets/Core/Other/ui/CarouselWidget.tsx | 4 +- 684 files changed, 23130 insertions(+), 6208 deletions(-) create mode 100644 dimensionCompare/new/fold-flip.png create mode 100644 dimensionCompare/new/fold-open.png create mode 100644 dimensionCompare/new/ipad.png create mode 100644 dimensionCompare/new/iphoneSE.png create mode 100644 dimensionCompare/new/medium.png create mode 100644 dimensionCompare/new/small.png create mode 100644 dimensionCompare/was/fold-flip.png create mode 100644 dimensionCompare/was/fold-open.png create mode 100644 dimensionCompare/was/ipad.png create mode 100644 dimensionCompare/was/iphoneSE.png create mode 100644 dimensionCompare/was/medium.png create mode 100644 dimensionCompare/was/small.png create mode 100644 lib/__mocks__/globalMock.js create mode 100644 lib/__mocks__/svgMock.js create mode 100644 lib/e2e/const.js create mode 100644 lib/e2e/core/cta/button.e2e.js create mode 100644 lib/e2e/functions.js create mode 100644 lib/e2e/jest.config.js create mode 100644 lib/package.json create mode 100644 lib/packages/KeyboardAware/index.js create mode 100644 lib/packages/KeyboardAware/src/KeyboardAwareScrollView.js create mode 100644 lib/packages/KeyboardAware/src/index.js create mode 100644 lib/packages/calendar/index.js create mode 100644 lib/packages/calendar/src/Calendar/Calendar.js create mode 100644 lib/packages/calendar/src/Calendar/ModalCalendar.js create mode 100644 lib/packages/calendar/src/Calendar/__tests__/Calendar.test.js create mode 100644 lib/packages/calendar/src/Calendar/__tests__/ModalCalendar.test.js create mode 100644 lib/packages/calendar/src/Calendar/__tests__/functions.test.js create mode 100644 lib/packages/calendar/src/Calendar/components/CalendarHeader.js create mode 100644 lib/packages/calendar/src/Calendar/components/Months.js create mode 100644 lib/packages/calendar/src/Calendar/components/Years.js create mode 100644 lib/packages/calendar/src/Calendar/components/__tests__/CalendarHeader.test.js create mode 100644 lib/packages/calendar/src/Calendar/components/__tests__/Months.test.js create mode 100644 lib/packages/calendar/src/Calendar/components/__tests__/Years.test.js create mode 100644 lib/packages/calendar/src/Calendar/constants.js create mode 100644 lib/packages/calendar/src/Calendar/functions.js create mode 100644 lib/packages/calendar/src/Calendar/helpers/mergeObjects.js create mode 100644 lib/packages/calendar/src/Calendar/helpers/typedKeys.js create mode 100644 lib/packages/calendar/src/Calendar/index.js create mode 100644 lib/packages/calendar/src/Calendar/localeConfig.js create mode 100644 lib/packages/calendar/src/Calendar/stylesCreate.js create mode 100644 lib/packages/calendar/src/Calendar/types.js create mode 100644 lib/packages/calendar/src/index.js create mode 100644 lib/packages/chart/index.js create mode 100644 lib/packages/chart/src/BarChart/index.js create mode 100644 lib/packages/chart/src/LineChart/index.js create mode 100644 lib/packages/chart/src/components/CoordX.js create mode 100644 lib/packages/chart/src/components/CoordY.js create mode 100644 lib/packages/chart/src/components/Coordinates.js create mode 100644 lib/packages/chart/src/components/Line.js create mode 100644 lib/packages/chart/src/components/LineOfPeriod.js create mode 100644 lib/packages/chart/src/components/LinePoints.js create mode 100644 lib/packages/chart/src/components/Lines.js create mode 100644 lib/packages/chart/src/components/Point.js create mode 100644 lib/packages/chart/src/components/PointOfLine.js create mode 100644 lib/packages/chart/src/components/PointerPopup.js create mode 100644 lib/packages/chart/src/components/Section.js create mode 100644 lib/packages/chart/src/components/SectionButton.js create mode 100644 lib/packages/chart/src/components/index.js create mode 100644 lib/packages/chart/src/index.js create mode 100644 lib/packages/chart/src/types.js create mode 100644 lib/packages/chart/src/utils/constants.js create mode 100644 lib/packages/chart/src/utils/generateBar.js create mode 100644 lib/packages/chart/src/utils/generateCoordinatesPath.js create mode 100644 lib/packages/chart/src/utils/generateLinePath.js create mode 100644 lib/packages/chart/src/utils/generatePeriodsWithBarPaths.js create mode 100644 lib/packages/chart/src/utils/generatePeriodsWithLinePaths.js create mode 100644 lib/packages/chart/src/utils/getCoordinateValues.js create mode 100644 lib/packages/chart/src/utils/getLinesMinMax.js create mode 100644 lib/packages/chart/src/utils/index.js create mode 100644 lib/packages/core/index.js create mode 100644 lib/packages/core/src/basic/components/Button/ButtonWrapper.js create mode 100644 lib/packages/core/src/basic/components/Button/__tests__/Button.test.js create mode 100644 lib/packages/core/src/basic/components/Button/index.js create mode 100644 lib/packages/core/src/basic/components/Button/types.js create mode 100644 lib/packages/core/src/basic/components/FlatList/FlatList.js create mode 100644 lib/packages/core/src/basic/components/FlatList/__tests__/FlatList.test.js create mode 100644 lib/packages/core/src/basic/components/FlatList/index.js create mode 100644 lib/packages/core/src/basic/components/FlatList/types.js create mode 100644 lib/packages/core/src/basic/components/Pressable/Pressable.js create mode 100644 lib/packages/core/src/basic/components/Pressable/__tests__/Pressable.test.js create mode 100644 lib/packages/core/src/basic/components/Pressable/index.js create mode 100644 lib/packages/core/src/basic/components/Pressable/types.js create mode 100644 lib/packages/core/src/basic/components/ScrollView/ScrollView.js create mode 100644 lib/packages/core/src/basic/components/ScrollView/__tests__/ScrollView.test.js create mode 100644 lib/packages/core/src/basic/components/ScrollView/index.js create mode 100644 lib/packages/core/src/basic/components/ScrollView/types.js create mode 100644 lib/packages/core/src/basic/components/Text/Text.js create mode 100644 lib/packages/core/src/basic/components/Text/__tests__/Text.test.js create mode 100644 lib/packages/core/src/basic/components/Text/index.js create mode 100644 lib/packages/core/src/basic/components/Text/types.js create mode 100644 lib/packages/core/src/basic/components/TextInput/TextInput.js create mode 100644 lib/packages/core/src/basic/components/TextInput/__tests__/TextInput.test.js create mode 100644 lib/packages/core/src/basic/components/TextInput/index.js create mode 100644 lib/packages/core/src/basic/components/TextInput/types.js create mode 100644 lib/packages/core/src/basic/components/TouchableHighlight/TouchableHighlight.js create mode 100644 lib/packages/core/src/basic/components/TouchableHighlight/__tests__/TouchableHighlight.test.js create mode 100644 lib/packages/core/src/basic/components/TouchableHighlight/index.js create mode 100644 lib/packages/core/src/basic/components/TouchableHighlight/types.js create mode 100644 lib/packages/core/src/basic/components/TouchableOpacity/TouchableOpacity.js create mode 100644 lib/packages/core/src/basic/components/TouchableOpacity/__tests__/TouchableOpacity.test.js create mode 100644 lib/packages/core/src/basic/components/TouchableOpacity/index.js create mode 100644 lib/packages/core/src/basic/components/TouchableOpacity/types.js create mode 100644 lib/packages/core/src/basic/components/View/View.js create mode 100644 lib/packages/core/src/basic/components/View/__tests__/View.test.js create mode 100644 lib/packages/core/src/basic/components/View/index.js create mode 100644 lib/packages/core/src/basic/components/View/types.js create mode 100644 lib/packages/core/src/basic/components/index.js create mode 100644 lib/packages/core/src/basic/config/__tests__/config.test.js create mode 100644 lib/packages/core/src/basic/config/index.js create mode 100644 lib/packages/core/src/basic/index.js create mode 100644 lib/packages/core/src/chat/components/ChatInput.js create mode 100644 lib/packages/core/src/chat/components/ChatInputField.js create mode 100644 lib/packages/core/src/chat/components/ChatMessage.js create mode 100644 lib/packages/core/src/chat/components/ChatMessageAvatar.js create mode 100644 lib/packages/core/src/chat/components/ChatPressableIcon.js create mode 100644 lib/packages/core/src/chat/components/__tests__/ChatInput.test.js create mode 100644 lib/packages/core/src/chat/components/__tests__/ChatInputField.test.js create mode 100644 lib/packages/core/src/chat/components/__tests__/ChatMessage.test.js create mode 100644 lib/packages/core/src/chat/components/__tests__/ChatMessageAvatar.test.js create mode 100644 lib/packages/core/src/chat/components/__tests__/ChatPressableIcon.test.js create mode 100644 lib/packages/core/src/chat/components/index.js create mode 100644 lib/packages/core/src/chat/functions/__tests__/isValidMessageTime.test.js create mode 100644 lib/packages/core/src/chat/functions/isValidMessageTime.js create mode 100644 lib/packages/core/src/chat/index.js create mode 100644 lib/packages/core/src/chat/types.js create mode 100644 lib/packages/core/src/controls/CheckBox/CheckBox.js create mode 100644 lib/packages/core/src/controls/CheckBox/CheckSquare.js create mode 100644 lib/packages/core/src/controls/CheckBox/__tests__/CheckBox.test.js create mode 100644 lib/packages/core/src/controls/CheckBox/index.js create mode 100644 lib/packages/core/src/controls/CheckBox/stylesCreate.js create mode 100644 lib/packages/core/src/controls/Control.js create mode 100644 lib/packages/core/src/controls/ControlsLists/ControlsList.js create mode 100644 lib/packages/core/src/controls/ControlsLists/__tests__/ControlsList.js create mode 100644 lib/packages/core/src/controls/ControlsLists/__tests__/useCloneControls.js create mode 100644 lib/packages/core/src/controls/ControlsLists/index.js create mode 100644 lib/packages/core/src/controls/ControlsLists/stylesCreate.js create mode 100644 lib/packages/core/src/controls/ControlsLists/types.js create mode 100644 lib/packages/core/src/controls/ControlsLists/useCloneControls.js create mode 100644 lib/packages/core/src/controls/Radio/Circle.js create mode 100644 lib/packages/core/src/controls/Radio/Radio.js create mode 100644 lib/packages/core/src/controls/Radio/__tests__/Circle.test.js create mode 100644 lib/packages/core/src/controls/Radio/__tests__/Radio.test.js create mode 100644 lib/packages/core/src/controls/Radio/index.js create mode 100644 lib/packages/core/src/controls/Radio/stylesCreate.js create mode 100644 lib/packages/core/src/controls/Radio/types.js create mode 100644 lib/packages/core/src/controls/Slider/Slider.js create mode 100644 lib/packages/core/src/controls/Slider/__tests__/Slider.test.js create mode 100644 lib/packages/core/src/controls/Slider/components/HighThumb.js create mode 100644 lib/packages/core/src/controls/Slider/components/LowThumb.js create mode 100644 lib/packages/core/src/controls/Slider/components/Rail.js create mode 100644 lib/packages/core/src/controls/Slider/components/SelectedRail.js create mode 100644 lib/packages/core/src/controls/Slider/components/Thumb.js create mode 100644 lib/packages/core/src/controls/Slider/helpers.js create mode 100644 lib/packages/core/src/controls/Slider/hooks.js create mode 100644 lib/packages/core/src/controls/Slider/index.js create mode 100644 lib/packages/core/src/controls/Slider/stylesCreate.js create mode 100644 lib/packages/core/src/controls/Swipe/Swipe.js create mode 100644 lib/packages/core/src/controls/Swipe/__tests__/Swipe.test.js create mode 100644 lib/packages/core/src/controls/Swipe/index.js create mode 100644 lib/packages/core/src/controls/Swipe/stylesCreate.js create mode 100644 lib/packages/core/src/controls/Swipe/types.js create mode 100644 lib/packages/core/src/controls/constants.js create mode 100644 lib/packages/core/src/controls/index.js create mode 100644 lib/packages/core/src/controls/types.js create mode 100644 lib/packages/core/src/cta/components/Button/Button.js create mode 100644 lib/packages/core/src/cta/components/Button/__tests__/Button.test.js create mode 100644 lib/packages/core/src/cta/components/Button/getDefaultFont.js create mode 100644 lib/packages/core/src/cta/components/Button/index.js create mode 100644 lib/packages/core/src/cta/components/Button/stylesCreate.js create mode 100644 lib/packages/core/src/cta/components/Button/types.js create mode 100644 lib/packages/core/src/cta/components/index.js create mode 100644 lib/packages/core/src/cta/index.js create mode 100644 lib/packages/core/src/cta/utils/getCounterType.js create mode 100644 lib/packages/core/src/cta/utils/index.js create mode 100644 lib/packages/core/src/index.js create mode 100644 lib/packages/core/src/inputs/components/Base/InputSubtitle.js create mode 100644 lib/packages/core/src/inputs/components/Base/InputTitle.js create mode 100644 lib/packages/core/src/inputs/components/Base/index.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/DropDown.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/__tests__/DropDown.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/Chip.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/ChipList.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/DropDownIcon.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/ListEmptySelector.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/Selector.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/__tests__/Chip.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/__tests__/ChipList.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/__tests__/DropDownIcon.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/__tests__/ListEmptySelector.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/components/stylesCreate.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/constants/index.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/index.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/stylesCreate.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/types.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getSelectedItems.test.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/utils/getDropDownDimensions.js create mode 100644 lib/packages/core/src/inputs/components/DropDown/utils/getSelectedItems.js create mode 100644 lib/packages/core/src/inputs/components/InputField/InputField.js create mode 100644 lib/packages/core/src/inputs/components/InputField/__tests__/InputField.test.js create mode 100644 lib/packages/core/src/inputs/components/InputField/constants.js create mode 100644 lib/packages/core/src/inputs/components/InputField/index.js create mode 100644 lib/packages/core/src/inputs/components/InputField/stylesCreate.js create mode 100644 lib/packages/core/src/inputs/components/InputField/types.js create mode 100644 lib/packages/core/src/inputs/components/Search/Search.js create mode 100644 lib/packages/core/src/inputs/components/Search/__tests__/Search.test.js create mode 100644 lib/packages/core/src/inputs/components/Search/constants.js create mode 100644 lib/packages/core/src/inputs/components/Search/index.js create mode 100644 lib/packages/core/src/inputs/components/Search/stylesCreate.js create mode 100644 lib/packages/core/src/inputs/components/Search/types.js create mode 100644 lib/packages/core/src/inputs/components/Verification/CodeField.js create mode 100644 lib/packages/core/src/inputs/components/Verification/__tests__/CodeField.test.js create mode 100644 lib/packages/core/src/inputs/components/Verification/index.js create mode 100644 lib/packages/core/src/inputs/components/Verification/stylesCreate.js create mode 100644 lib/packages/core/src/inputs/components/Verification/types.js create mode 100644 lib/packages/core/src/inputs/components/index.js create mode 100644 lib/packages/core/src/inputs/components/types.js create mode 100644 lib/packages/core/src/inputs/index.js create mode 100644 lib/packages/core/src/inputs/style/disabledStyle.js create mode 100644 lib/packages/core/src/inputs/style/index.js create mode 100644 lib/packages/core/src/inputs/style/validStyle.js create mode 100644 lib/packages/core/src/inputs/style/wrongStyle.js create mode 100644 lib/packages/core/src/navbars/components/PanelHeader/PanelHeader.js create mode 100644 lib/packages/core/src/navbars/components/PanelHeader/__tests__/PanelHeader.test.js create mode 100644 lib/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.js create mode 100644 lib/packages/core/src/navbars/components/PanelHeader/components/index.js create mode 100644 lib/packages/core/src/navbars/components/PanelHeader/index.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/Tab.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/Tabs.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/__tests__/Tab.test.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/__tests__/Tabs.test.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/index.js create mode 100644 lib/packages/core/src/navbars/components/Tabs/stylesCreate.js create mode 100644 lib/packages/core/src/navbars/components/index.js create mode 100644 lib/packages/core/src/navbars/index.js create mode 100644 lib/packages/core/src/navbars/types.js create mode 100644 lib/packages/core/src/other/components/Avatar/Avatar.js create mode 100644 lib/packages/core/src/other/components/Avatar/AvatarGroup.js create mode 100644 lib/packages/core/src/other/components/Avatar/__tests__/Avatar.test.js create mode 100644 lib/packages/core/src/other/components/Avatar/__tests__/AvatarGroup.test.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/AvatarBadge.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/AvatarWithoutImage.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/IconAvatar.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/TextAvatar.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/__tests__/IconAvatar.test.js create mode 100644 lib/packages/core/src/other/components/Avatar/components/__tests__/TextAvatar.test.js create mode 100644 lib/packages/core/src/other/components/Avatar/index.js create mode 100644 lib/packages/core/src/other/components/Avatar/stylesCreate.js create mode 100644 lib/packages/core/src/other/components/Avatar/types.js create mode 100644 lib/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.js create mode 100644 lib/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/BadgeIndicator.js create mode 100644 lib/packages/core/src/other/components/Badge/BadgeIndicator/index.js create mode 100644 lib/packages/core/src/other/components/Badge/BadgeIndicator/types.js create mode 100644 lib/packages/core/src/other/components/Badge/Counter/Counter.js create mode 100644 lib/packages/core/src/other/components/Badge/Counter/__tests__/Counter.test.js create mode 100644 lib/packages/core/src/other/components/Badge/Counter/index.js create mode 100644 lib/packages/core/src/other/components/Badge/Counter/stylesCreate.js create mode 100644 lib/packages/core/src/other/components/Badge/Counter/types.js create mode 100644 lib/packages/core/src/other/components/Badge/index.js create mode 100644 lib/packages/core/src/other/components/Carousel/AutoCarousel.js create mode 100644 lib/packages/core/src/other/components/Carousel/AutoLoopCarousel.js create mode 100644 lib/packages/core/src/other/components/Carousel/Carousel.js create mode 100644 lib/packages/core/src/other/components/Carousel/LoopCarousel.js create mode 100644 lib/packages/core/src/other/components/Carousel/__tests__/AutoCarousel.test.js create mode 100644 lib/packages/core/src/other/components/Carousel/__tests__/AutoLoopCarousel.test.js create mode 100644 lib/packages/core/src/other/components/Carousel/__tests__/Carousel.test.js create mode 100644 lib/packages/core/src/other/components/Carousel/__tests__/LoopCarousel.test.js create mode 100644 lib/packages/core/src/other/components/Carousel/components/EmptyFirstItem.js create mode 100644 lib/packages/core/src/other/components/Carousel/index.js create mode 100644 lib/packages/core/src/other/components/Carousel/stylesCreate.js create mode 100644 lib/packages/core/src/other/components/Carousel/types.js create mode 100644 lib/packages/core/src/other/components/Collapsible/Collapsible.js create mode 100644 lib/packages/core/src/other/components/Collapsible/__tests__/Collapsible.test.js create mode 100644 lib/packages/core/src/other/components/Collapsible/index.js create mode 100644 lib/packages/core/src/other/components/Collapsible/types.js create mode 100644 lib/packages/core/src/other/components/CrossedText/CrossedText.js create mode 100644 lib/packages/core/src/other/components/CrossedText/__tests__/CrossesText.test.js create mode 100644 lib/packages/core/src/other/components/CrossedText/index.js create mode 100644 lib/packages/core/src/other/components/CrossedText/types.js create mode 100644 lib/packages/core/src/other/components/Dots/Dot.js create mode 100644 lib/packages/core/src/other/components/Dots/Dots.js create mode 100644 lib/packages/core/src/other/components/Dots/__tests__/Dots.test.js create mode 100644 lib/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.js create mode 100644 lib/packages/core/src/other/components/Dots/constants.js create mode 100644 lib/packages/core/src/other/components/Dots/index.js create mode 100644 lib/packages/core/src/other/components/Dots/stylesCreate.js create mode 100644 lib/packages/core/src/other/components/Dots/types.js create mode 100644 lib/packages/core/src/other/components/Status/Status.js create mode 100644 lib/packages/core/src/other/components/Status/__tests__/Status.test.js create mode 100644 lib/packages/core/src/other/components/Status/components/StatusDot.js create mode 100644 lib/packages/core/src/other/components/Status/components/StatusTag.js create mode 100644 lib/packages/core/src/other/components/Status/index.js create mode 100644 lib/packages/core/src/other/components/Status/types.js create mode 100644 lib/packages/core/src/other/components/index.js create mode 100644 lib/packages/core/src/other/constants/LABELS.js create mode 100644 lib/packages/core/src/other/constants/index.js create mode 100644 lib/packages/core/src/other/functions/isNumber.js create mode 100644 lib/packages/core/src/other/index.js create mode 100644 lib/packages/core/src/popups/MobyDickPopup/MobyDickPopup.js create mode 100644 lib/packages/core/src/popups/MobyDickPopup/__tests__/MobyDickPopup.test.js create mode 100644 lib/packages/core/src/popups/MobyDickPopup/index.js create mode 100644 lib/packages/core/src/popups/MobyDickPopup/types.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/ActionSheetBase.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/Item.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/__tests__/ActionSheetBase.test.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/__tests__/Item.test.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/content/Contents.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/index.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/ActionSheetBase/types.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/AlertContent.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/CloseIcon.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/HorizontalButtonsView.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/ImageView.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/ModalBase.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/TextContent.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/VerticalButton.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/VerticalButtonsView.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/AlertContent.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/CloseIcon.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/HorizontalButtonsView.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/ImageView.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/ModalBase.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/TextContent.text.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/__tests__/VerticalButtonsView.test.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/index.js create mode 100644 lib/packages/core/src/popups/components/ModalBase/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/Modals/ModalAsk.js create mode 100644 lib/packages/core/src/popups/components/Modals/ModalError.js create mode 100644 lib/packages/core/src/popups/components/Modals/ModalLoading.js create mode 100644 lib/packages/core/src/popups/components/Modals/ModalSuccess.js create mode 100644 lib/packages/core/src/popups/components/Modals/__tests__/ModalAsk.test.js create mode 100644 lib/packages/core/src/popups/components/Modals/__tests__/ModalError.test.js create mode 100644 lib/packages/core/src/popups/components/Modals/__tests__/ModalLoading.test.js create mode 100644 lib/packages/core/src/popups/components/Modals/__tests__/ModalSuccess.test.js create mode 100644 lib/packages/core/src/popups/components/Modals/index.js create mode 100644 lib/packages/core/src/popups/components/Modals/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/Modals/types.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/PopupBase.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/__tests__/PopupBase.test.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/constants.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/index.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/PopupBase/types.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/SnackbarBase.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/Title.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/__tests__/SnackbarBase.test.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/__tests__/Title.test.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/index.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/SnackbarBase/types.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/Arrow.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/DescriptionText.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/LeftButton.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/Title.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/TooltipBase.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/__tests__/Arrow.test.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/__tests__/DescriptionText.test.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/__tests__/LeftButton.test.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/__tests__/Title.test.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/__tests__/TooltipBase.test.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/index.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/stylesCreate.js create mode 100644 lib/packages/core/src/popups/components/TooltipBase/types.js create mode 100644 lib/packages/core/src/popups/components/index.js create mode 100644 lib/packages/core/src/popups/context/PopupsContext.js create mode 100644 lib/packages/core/src/popups/context/PopupsProvider.js create mode 100644 lib/packages/core/src/popups/context/__tests__/PopupsProvider.test.js create mode 100644 lib/packages/core/src/popups/context/constants.js create mode 100644 lib/packages/core/src/popups/context/index.js create mode 100644 lib/packages/core/src/popups/context/types.js create mode 100644 lib/packages/core/src/popups/functions/__tests__/returnTrue.text.js create mode 100644 lib/packages/core/src/popups/functions/index.js create mode 100644 lib/packages/core/src/popups/functions/returnTrue.js create mode 100644 lib/packages/core/src/popups/hooks/__tests__/usePopup.test.js create mode 100644 lib/packages/core/src/popups/hooks/__tests__/usePopups.test.js create mode 100644 lib/packages/core/src/popups/hooks/index.js create mode 100644 lib/packages/core/src/popups/hooks/usePopup.js create mode 100644 lib/packages/core/src/popups/hooks/usePopups.js create mode 100644 lib/packages/core/src/popups/index.js create mode 100644 lib/packages/core/src/popups/reducer/__tests__/reducer.test.js create mode 100644 lib/packages/core/src/popups/reducer/actions.js create mode 100644 lib/packages/core/src/popups/reducer/constatnts.js create mode 100644 lib/packages/core/src/popups/reducer/index.js create mode 100644 lib/packages/core/src/popups/reducer/reducer.js create mode 100644 lib/packages/core/src/popups/reducer/types.js create mode 100644 lib/packages/core/src/popups/types.js create mode 100644 lib/packages/core/src/progress/components/Indicator/Indicator.js create mode 100644 lib/packages/core/src/progress/components/Indicator/__tests__/Indicator.test.js create mode 100644 lib/packages/core/src/progress/components/Indicator/index.js create mode 100644 lib/packages/core/src/progress/components/Indicator/stylesCreate.js create mode 100644 lib/packages/core/src/progress/components/Indicator/types.js create mode 100644 lib/packages/core/src/progress/components/PanelSpinner/PanelSpinner.js create mode 100644 lib/packages/core/src/progress/components/PanelSpinner/__tests__/PanelSpinner.test.js create mode 100644 lib/packages/core/src/progress/components/PanelSpinner/index.js create mode 100644 lib/packages/core/src/progress/components/PanelSpinner/stylesCreate.js create mode 100644 lib/packages/core/src/progress/components/PanelSpinner/types.js create mode 100644 lib/packages/core/src/progress/components/Spinner/Loader.js create mode 100644 lib/packages/core/src/progress/components/Spinner/Spinner.js create mode 100644 lib/packages/core/src/progress/components/Spinner/__tests__/Loader.test.js create mode 100644 lib/packages/core/src/progress/components/Spinner/__tests__/Spinner.test.js create mode 100644 lib/packages/core/src/progress/components/Spinner/index.js create mode 100644 lib/packages/core/src/progress/components/Spinner/types.js create mode 100644 lib/packages/core/src/progress/components/index.js create mode 100644 lib/packages/core/src/progress/index.js create mode 100644 lib/packages/core/src/styles/constants/HIT_SLOP.js create mode 100644 lib/packages/core/src/styles/constants/colors/color.js create mode 100644 lib/packages/core/src/styles/constants/colors/index.js create mode 100644 lib/packages/core/src/styles/constants/colors/types.js create mode 100644 lib/packages/core/src/styles/constants/defaultSpaces.js create mode 100644 lib/packages/core/src/styles/constants/index.js create mode 100644 lib/packages/core/src/styles/constants/theme.js create mode 100644 lib/packages/core/src/styles/context/ThemeProvider.js create mode 100644 lib/packages/core/src/styles/context/__tests__/ThemeProvider.test.js create mode 100644 lib/packages/core/src/styles/context/context.js create mode 100644 lib/packages/core/src/styles/context/index.js create mode 100644 lib/packages/core/src/styles/hooks/__tests__/useStyles.tests.js create mode 100644 lib/packages/core/src/styles/hooks/__tests__/useTheme.test.js create mode 100644 lib/packages/core/src/styles/hooks/index.js create mode 100644 lib/packages/core/src/styles/hooks/useStyles.js create mode 100644 lib/packages/core/src/styles/hooks/useTheme.js create mode 100644 lib/packages/core/src/styles/icons/font/SimpleIcon.js create mode 100644 lib/packages/core/src/styles/icons/font/SimpleIconAlbum.js create mode 100644 lib/packages/core/src/styles/icons/font/__tests__/SimpleIcon.test.js create mode 100644 lib/packages/core/src/styles/icons/font/__tests__/SimpleIconAlbum.test.js create mode 100644 lib/packages/core/src/styles/icons/font/index.js create mode 100644 lib/packages/core/src/styles/icons/font/unicodesMap.json create mode 100644 lib/packages/core/src/styles/icons/index.js create mode 100644 lib/packages/core/src/styles/icons/svg/index.js create mode 100644 lib/packages/core/src/styles/index.js create mode 100644 lib/packages/core/src/styles/shadows/getShadows.js create mode 100644 lib/packages/core/src/styles/shadows/index.js create mode 100644 lib/packages/core/src/styles/types.js create mode 100644 lib/packages/core/src/styles/utils/__tests__/rem.test.js create mode 100644 lib/packages/core/src/styles/utils/createStyles.js create mode 100644 lib/packages/core/src/styles/utils/index.js create mode 100644 lib/packages/core/src/styles/utils/px.js create mode 100644 lib/packages/core/src/styles/utils/rem.js create mode 100644 lib/packages/core/src/typography/components/Typography/Typography.js create mode 100644 lib/packages/core/src/typography/components/Typography/__tests__/Typography.test.js create mode 100644 lib/packages/core/src/typography/components/Typography/index.js create mode 100644 lib/packages/core/src/typography/components/index.js create mode 100644 lib/packages/core/src/typography/hooks/__tests__/useFont.test.js create mode 100644 lib/packages/core/src/typography/hooks/index.js create mode 100644 lib/packages/core/src/typography/hooks/useFont.js create mode 100644 lib/packages/core/src/typography/index.js create mode 100644 lib/packages/core/src/typography/types.js create mode 100644 lib/packages/core/src/typography/utils/getSize.js create mode 100644 lib/packages/core/src/typography/utils/index.js create mode 100644 lib/packages/dragAndDrop/index.js create mode 100644 lib/packages/dragAndDrop/src/DragAndDrop/DragAndDrop.js create mode 100644 lib/packages/dragAndDrop/src/DragAndDrop/DragAndDropList.js create mode 100644 lib/packages/dragAndDrop/src/DragAndDrop/index.js create mode 100644 lib/packages/dragAndDrop/src/DragAndDrop/types.js create mode 100644 lib/packages/dragAndDrop/src/DragAndDrop/utils.js create mode 100644 lib/packages/dragAndDrop/src/index.js create mode 100644 lib/packages/markdown/index.js create mode 100644 lib/packages/markdown/src/Markdown/Markdown.js create mode 100644 lib/packages/markdown/src/Markdown/index.js create mode 100644 lib/packages/markdown/src/Markdown/types.js create mode 100644 lib/packages/markdown/src/index.js create mode 100644 lib/packages/utils/index.js create mode 100644 lib/packages/utils/src/hooks/__tests__/useDebounce.test.js create mode 100644 lib/packages/utils/src/hooks/__tests__/useIsForeground.test.js create mode 100644 lib/packages/utils/src/hooks/__tests__/useLatest.test.js create mode 100644 lib/packages/utils/src/hooks/__tests__/useThrottle.test.js create mode 100644 lib/packages/utils/src/hooks/__tests__/useToggle.test.js create mode 100644 lib/packages/utils/src/hooks/index.js create mode 100644 lib/packages/utils/src/hooks/useDebounce.js create mode 100644 lib/packages/utils/src/hooks/useIsForeground.js create mode 100644 lib/packages/utils/src/hooks/useLatest.js create mode 100644 lib/packages/utils/src/hooks/useThrottle.js create mode 100644 lib/packages/utils/src/hooks/useToggle.js create mode 100644 lib/packages/utils/src/index.js create mode 100644 lib/scripts/release.js create mode 100644 lib/scripts/release/__tests__/getIncrementedVersion.test.js create mode 100644 lib/scripts/release/getIncrementedVersion.js create mode 100644 lib/scripts/release/getPackageList.js create mode 100644 lib/scripts/release/publishPackage.js create mode 100644 lib/scripts/release/setPackageVersion.js create mode 100644 lib/scripts/semantic-release.js create mode 100644 lib/scripts/utils/logger.js create mode 100644 lib/src/app/ui/index.js create mode 100644 lib/src/entities/index.js create mode 100644 lib/src/pages/MainStack/Home/Calendar/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Chart/BarChart/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Chart/LineChart/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Chart/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/CTA/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Chat/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Controls/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Inputs/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Navbars/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Other/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Popup/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Progress/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Styles/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/Typography/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Core/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithBottomAndTabsScreen.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithTabsScreen.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewScreen.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewWithBottomScreen.js create mode 100644 lib/src/pages/MainStack/Home/KeyboardAware/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Markdown/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/Utils/ui/index.js create mode 100644 lib/src/pages/MainStack/Home/ui/index.js create mode 100644 lib/src/pages/MainStack/Settings/ui/index.js create mode 100644 lib/src/pages/MainStack/ui/index.js create mode 100644 lib/src/shared/lib/constants/rootStackParamList.js create mode 100644 lib/src/shared/lib/constants/screens.js create mode 100644 lib/src/shared/lib/hooks/__tests__/useNavigationTheme.test.js create mode 100644 lib/src/shared/lib/hooks/useNavigationTheme.js create mode 100644 lib/src/shared/lib/index.js create mode 100644 lib/src/shared/lib/navigationRef.js create mode 100644 lib/src/shared/lib/test/data/avatar.js create mode 100644 lib/src/shared/lib/test/data/chart.js create mode 100644 lib/src/shared/styles/getScreenStyles.js create mode 100644 lib/src/shared/ui/BlockView.js create mode 100644 lib/src/shared/ui/Header.js create mode 100644 lib/src/shared/ui/NavigationButton.js create mode 100644 lib/src/shared/ui/index.js create mode 100644 lib/src/widgets/Calendar/ui/CalendarWidget.js create mode 100644 lib/src/widgets/Calendar/ui/ModalCalendarWidget.js create mode 100644 lib/src/widgets/Chart/ui/RenderHeader.js create mode 100644 lib/src/widgets/Chart/ui/RenderSectionItem.js create mode 100644 lib/src/widgets/Core/CTA/ui/ButtonWidget.js create mode 100644 lib/src/widgets/Core/Chat/ui/ChatWidget.js create mode 100644 lib/src/widgets/Core/Controls/ui/ControlListWidget.js create mode 100644 lib/src/widgets/Core/Controls/ui/SliderWidget.js create mode 100644 lib/src/widgets/Core/Controls/ui/SwipeWidget.js create mode 100644 lib/src/widgets/Core/Inputs/ui/DropDownExample.js create mode 100644 lib/src/widgets/Core/Inputs/ui/ExampleSearch.js create mode 100644 lib/src/widgets/Core/Inputs/ui/InputList.js create mode 100644 lib/src/widgets/Core/Inputs/ui/InputsWidget.js create mode 100644 lib/src/widgets/Core/Inputs/ui/Verification.js create mode 100644 lib/src/widgets/Core/Navbars/ui/PanelHeaderWidget.js create mode 100644 lib/src/widgets/Core/Navbars/ui/TabsWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/AvatarWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/BadgeWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/CarouselWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/CollapsibleWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/CrossedTextWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/DotsWidget.js create mode 100644 lib/src/widgets/Core/Other/ui/StatusWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/ActionSheetWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/ModalWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/ModalsWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/PopupBaseWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/SnackbarWidget.js create mode 100644 lib/src/widgets/Core/Popup/ui/TooltipWidget.js create mode 100644 lib/src/widgets/Core/Progress/ui/IndicatorWidget.js create mode 100644 lib/src/widgets/Core/Progress/ui/PanelSpinnerWidget.js create mode 100644 lib/src/widgets/Core/Progress/ui/SpinnerWidget.js create mode 100644 lib/src/widgets/Core/Styles/ui/ShadowWidget.js create mode 100644 lib/src/widgets/Core/Styles/ui/SimpleIconWidget.js create mode 100644 lib/src/widgets/KeyboardAware/Bottom.js create mode 100644 lib/src/widgets/KeyboardAware/Inputs.js create mode 100644 lib/src/widgets/Markdown/ui/MarkdownWidget.js create mode 100644 packages/core/src/styles/utils/px.ts diff --git a/dimensionCompare/new/fold-flip.png b/dimensionCompare/new/fold-flip.png new file mode 100644 index 0000000000000000000000000000000000000000..54adaff0502acd40097381a22e35b935feb74b8f GIT binary patch literal 69684 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
  • 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 TQF$O!802r=xtS$>|LK1N>^5$H literal 0 HcmV?d00001 diff --git a/dimensionCompare/new/fold-open.png b/dimensionCompare/new/fold-open.png new file mode 100644 index 0000000000000000000000000000000000000000..d23970604e2b4e20d64fce61ec33dbd99ab6947e GIT binary patch literal 83539 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 Wy+*V2mhmLwE^l&zd}_S;$NmN{*zLXm literal 0 HcmV?d00001 diff --git a/dimensionCompare/new/ipad.png b/dimensionCompare/new/ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..1063cc5db54377dc3f1489b48620b825ac4bb329 GIT binary patch literal 72945 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 literal 0 HcmV?d00001 diff --git a/dimensionCompare/new/iphoneSE.png b/dimensionCompare/new/iphoneSE.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7799a43a681e766251b7ef27e23319122868ac GIT binary patch literal 45605 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%0DMsQKF4O*sssIH=&W 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 z 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 literal 0 HcmV?d00001 diff --git a/dimensionCompare/was/fold-open.png b/dimensionCompare/was/fold-open.png new file mode 100644 index 0000000000000000000000000000000000000000..9a82fc22a20cb838f2f5e2791c5fb9611becfa86 GIT binary patch literal 115743 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%0AWU2i%Vceo>VnO~1E{?(4oU{rJF67W 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 Y;nPc7@7X-s3aS`9UHx3vIVCg!0Klnvf&c&j literal 0 HcmV?d00001 diff --git a/dimensionCompare/was/medium.png b/dimensionCompare/was/medium.png new file mode 100644 index 0000000000000000000000000000000000000000..edb195e084dc714b5e5a4258066842f344fecbb8 GIT binary patch literal 72432 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 VTL_+|2jHQKcr-k;;SX`2{~i4~@gD#H literal 0 HcmV?d00001 diff --git a/dimensionCompare/was/small.png b/dimensionCompare/was/small.png new file mode 100644 index 0000000000000000000000000000000000000000..6dac6b366286655bb013d3793ebab9b18fd0fed5 GIT binary patch literal 44203 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

    OL~p-EUerwDvQa)A=g;YLQCAKvZ`u4HETs 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"; }; 00E356F21AD99517003FC87E /* MobyDickTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MobyDickTests.m; sourceTree = ""; }; - 02F15C12586E476E859A462E /* Inter-BoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-BoldItalic.ttf"; sourceTree = ""; }; - 0F4B870A4D224592AB180528 /* Inter-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Medium.ttf"; sourceTree = ""; }; + 02F15C12586E476E859A462E /* Inter-BoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-BoldItalic.ttf"; sourceTree = ""; }; + 0F4B870A4D224592AB180528 /* Inter-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Medium.ttf"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* MobyDick.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MobyDick.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = MobyDick/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = MobyDick/AppDelegate.mm; sourceTree = ""; }; @@ -50,14 +50,14 @@ 5709B34CF0A7D63546082F79 /* Pods-MobyDick.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobyDick.release.xcconfig"; path = "Target Support Files/Pods-MobyDick/Pods-MobyDick.release.xcconfig"; sourceTree = ""; }; 5B7EB9410499542E8C5724F5 /* Pods-MobyDick-MobyDickTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobyDick-MobyDickTests.debug.xcconfig"; path = "Target Support Files/Pods-MobyDick-MobyDickTests/Pods-MobyDick-MobyDickTests.debug.xcconfig"; sourceTree = ""; }; 5DCACB8F33CDC322A6C60F78 /* libPods-MobyDick.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MobyDick.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 67B4FAB9822A49BB973439F8 /* Inter-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Bold.ttf"; sourceTree = ""; }; + 67B4FAB9822A49BB973439F8 /* Inter-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Bold.ttf"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = MobyDick/LaunchScreen.storyboard; sourceTree = ""; }; 89C6BE57DB24E9ADA2F236DE /* Pods-MobyDick-MobyDickTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobyDick-MobyDickTests.release.xcconfig"; path = "Target Support Files/Pods-MobyDick-MobyDickTests/Pods-MobyDick-MobyDickTests.release.xcconfig"; sourceTree = ""; }; - AC09545204134690B5D0062E /* Inter-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Italic.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Italic.ttf"; sourceTree = ""; }; - B72366087416423695188D1F /* Neotis.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = Neotis.ttf; path = "../node_modules/@lad-tech/mobydick-core/src/styles/icons/font/assets/fonts/Neotis.ttf"; sourceTree = ""; }; - C9208F4754A44ACDB1009C42 /* Inter-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Regular.ttf"; sourceTree = ""; }; + AC09545204134690B5D0062E /* Inter-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Italic.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Italic.ttf"; sourceTree = ""; }; + B72366087416423695188D1F /* Neotis.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Neotis.ttf; path = "../node_modules/@lad-tech/mobydick-core/src/styles/icons/font/assets/fonts/Neotis.ttf"; sourceTree = ""; }; + C9208F4754A44ACDB1009C42 /* Inter-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Regular.ttf"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - ED3C107DB30644458A97FAC3 /* Inter-SemiBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBold.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-SemiBold.ttf"; sourceTree = ""; }; + ED3C107DB30644458A97FAC3 /* Inter-SemiBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBold.ttf"; path = "../node_modules/@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-SemiBold.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -516,8 +516,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.mobydick; PRODUCT_NAME = MobyDick; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -542,7 +545,10 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.mobydick; PRODUCT_NAME = MobyDick; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; @@ -617,10 +623,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; @@ -692,10 +695,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; diff --git a/ios/MobyDick/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/MobyDick/Images.xcassets/AppIcon.appiconset/Contents.json index d48fcc0a6..f78687a21 100644 --- a/ios/MobyDick/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/MobyDick/Images.xcassets/AppIcon.appiconset/Contents.json @@ -150,6 +150,66 @@ "scale" : "1x", "size" : "1024x1024" }, + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, { "filename" : "48.png", "idiom" : "watch", @@ -180,6 +240,13 @@ "scale" : "3x", "size" : "29x29" }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, { "filename" : "80.png", "idiom" : "watch", @@ -196,6 +263,13 @@ "size" : "44x44", "subtype" : "40mm" }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, { "filename" : "100.png", "idiom" : "watch", @@ -204,6 +278,20 @@ "size" : "50x50", "subtype" : "44mm" }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, { "filename" : "172.png", "idiom" : "watch", @@ -229,70 +317,24 @@ "subtype" : "44mm" }, { - "filename" : "1024.png", - "idiom" : "watch-marketing", - "scale" : "1x", - "size" : "1024x1024" - }, - { - "filename" : "16.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "16x16" - }, - { - "filename" : "32.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "16x16" - }, - { - "filename" : "32.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "32x32" - }, - { - "filename" : "64.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "32x32" - }, - { - "filename" : "128.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "128x128" - }, - { - "filename" : "256.png", - "idiom" : "mac", + "idiom" : "watch", + "role" : "quickLook", "scale" : "2x", - "size" : "128x128" - }, - { - "filename" : "256.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "256x256" + "size" : "117x117", + "subtype" : "45mm" }, { - "filename" : "512.png", - "idiom" : "mac", + "idiom" : "watch", + "role" : "quickLook", "scale" : "2x", - "size" : "256x256" - }, - { - "filename" : "512.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "512x512" + "size" : "129x129", + "subtype" : "49mm" }, { "filename" : "1024.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "512x512" + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { diff --git a/lib/__mocks__/globalMock.js b/lib/__mocks__/globalMock.js new file mode 100644 index 000000000..5affb8f33 --- /dev/null +++ b/lib/__mocks__/globalMock.js @@ -0,0 +1,43 @@ +"use strict"; +// RN do Object.freeze for Style in __DEV__ +// https://github.com/facebook/react-native/commit/a8e3c7f5780516eb0297830632862484ad032c10#r74968198 +// And I don't know why +jest.mock('react-native/Libraries/StyleSheet/StyleSheet.js', () => { + const real = jest.requireActual('react-native/Libraries/StyleSheet/StyleSheet.js'); + return { + ...real, + create: (obj) => obj, + }; +}); +// Somehow Platform.isTesting === undefined when running in jest:/ +jest.mock('react-native/Libraries/Utilities/Platform', () => { + const real = jest.requireActual('react-native/Libraries/Utilities/Platform'); + return { + ...real, + isTesting: true, + }; +}); +// we don't need logs in test's scripts +jest.mock('../scripts/utils/logger'); // or use require +jest.mock('react-native/Libraries/Utilities/BackHandler', () => { + return jest.requireActual('react-native/Libraries/Utilities/__mocks__/BackHandler.js'); +}); +jest.mock('react-native-safe-area-context', () => { + return jest.requireActual('react-native-safe-area-context/jest/mock').default; +}); +jest.mock('react-native/Libraries/Interaction/PanResponder', () => { + const real = jest.requireActual('react-native/Libraries/Interaction/PanResponder'); + return { + ...real, + create: (config) => ({ panHandlers: config }), + }; +}); +jest.mock('react-native-calendars', () => { + const real = jest.requireActual('react-native-calendars'); + real.Calendar.defaultProps = { + initialDate: '8.01.2022', + }; + return { + ...real, + }; +}); diff --git a/lib/__mocks__/svgMock.js b/lib/__mocks__/svgMock.js new file mode 100644 index 000000000..21ef7bb19 --- /dev/null +++ b/lib/__mocks__/svgMock.js @@ -0,0 +1,3 @@ +"use strict"; +module.exports = 'SvgMock'; +module.exports.ReactComponent = 'SvgMock'; diff --git a/lib/e2e/const.js b/lib/e2e/const.js new file mode 100644 index 000000000..efbb20f11 --- /dev/null +++ b/lib/e2e/const.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TEXTS = void 0; +exports.TEXTS = { + NAVIGATOR: 'NAVIGATOR', + ADDONS: 'ADDONS', + KNOBS: 'KNOBS', + PREVIEW: 'PREVIEW', +}; diff --git a/lib/e2e/core/cta/button.e2e.js b/lib/e2e/core/cta/button.e2e.js new file mode 100644 index 000000000..2148cbf4e --- /dev/null +++ b/lib/e2e/core/cta/button.e2e.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const detox_1 = require("detox"); +const const_1 = require("../../const"); +const functions_1 = require("../../functions"); +const typeTextField = (0, functions_1.getTypeTextField)(); +const devicePlatform = (0, functions_1.getPlatform)(); +describe('Button', () => { + beforeAll(async () => { + await detox_1.device.launchApp(); + }); + beforeEach(async () => { + await detox_1.device.reloadReactNative(); + }); + it('should have basic button', async () => { + await (0, detox_1.element)(detox_1.by.text(const_1.TEXTS.NAVIGATOR)).tap(); + await (0, detox_1.element)(detox_1.by.text('basic button')).tap(); + await (0, detox_1.element)(detox_1.by.text(const_1.TEXTS.PREVIEW)).tap(); + await (0, detox_1.expect)((0, detox_1.element)(detox_1.by.text('text big text'))).toBeVisible(); + await (0, detox_1.element)(detox_1.by.text(const_1.TEXTS.ADDONS)).tap(); + await (0, detox_1.element)(detox_1.by.text(const_1.TEXTS.KNOBS)).tap(); + if (devicePlatform === 'ios') { + await (0, detox_1.element)(detox_1.by.type(typeTextField)).atIndex(4).tap(); + await (0, detox_1.element)(detox_1.by.text('large')).tap(); + await (0, detox_1.element)(detox_1.by.type(typeTextField)).atIndex(1).tap(); + await (0, detox_1.element)(detox_1.by.text('secondary')).tap(); + await (0, detox_1.element)(detox_1.by.type(typeTextField)).atIndex(2).clearText(); + await (0, detox_1.element)(detox_1.by.type(typeTextField)) + .atIndex(2) + .replaceText('Добавить карту'); + } + else { + await (0, detox_1.element)(detox_1.by.text('size')).tap({ x: 5, y: 20 }); + await (0, detox_1.element)(detox_1.by.text('large')).tap(); + await (0, detox_1.element)(detox_1.by.text('type')).tap({ x: 5, y: 20 }); + await (0, detox_1.element)(detox_1.by.text('secondary')).tap(); + await (0, detox_1.element)(detox_1.by.text('disabled')).tap({ x: 5, y: 30 }); + await (0, detox_1.element)(detox_1.by.text('disabled')).tap({ x: 5, y: 30 }); + await (0, detox_1.element)(detox_1.by.type(typeTextField)).atIndex(1).clearText(); + await (0, detox_1.element)(detox_1.by.type(typeTextField)) + .atIndex(1) + .replaceText('Добавить карту'); + } + await (0, detox_1.element)(detox_1.by.text(const_1.TEXTS.PREVIEW)).tap(); + await (0, detox_1.element)(detox_1.by.text('light')).tap(); + }); +}); diff --git a/lib/e2e/functions.js b/lib/e2e/functions.js new file mode 100644 index 000000000..59343d1ed --- /dev/null +++ b/lib/e2e/functions.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getTypeTextField = exports.getPlatform = void 0; +const detox_1 = require("detox"); +const getPlatform = () => { + return detox_1.device.getPlatform(); +}; +exports.getPlatform = getPlatform; +const getTypeTextField = () => { + const device = (0, exports.getPlatform)(); + if (device === 'ios') { + return 'RCTUITextField'; + } + else { + return 'android.widget.EditText'; + } +}; +exports.getTypeTextField = getTypeTextField; diff --git a/lib/e2e/jest.config.js b/lib/e2e/jest.config.js new file mode 100644 index 000000000..2a5e77d41 --- /dev/null +++ b/lib/e2e/jest.config.js @@ -0,0 +1,14 @@ +"use strict"; +/** @type {import('@jest/types').Config.InitialOptions} */ +module.exports = { + rootDir: '..', + testMatch: ['/e2e/**/*.e2e.ts'], + testTimeout: 120000, + maxWorkers: 1, + globalSetup: 'detox/runners/jest/globalSetup', + globalTeardown: 'detox/runners/jest/globalTeardown', + reporters: ['detox/runners/jest/reporter'], + testEnvironment: 'detox/runners/jest/testEnvironment', + verbose: true, + preset: 'ts-jest', +}; diff --git a/lib/package.json b/lib/package.json new file mode 100644 index 000000000..aa31a050f --- /dev/null +++ b/lib/package.json @@ -0,0 +1,104 @@ +{ + "name": "@lad-tech/mobydick", + "version": "7.31.0", + "private": true, + "license": "MIT", + "scripts": { + "prepare": "husky install", + "postinstall": "npx patch-package", + "postversion": "./scripts/semantic-release.ts", + "android": "react-native run-android", + "ios": "react-native run-ios", + "start": "react-native start", + "test": "jest", + "test:ci": "jest --ci --coverage=true --silent", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx && tsc -p tsconfig.json --noEmit", + "lint:ci": "eslint . --quiet && tsc -p tsconfig.json --noEmit", + "storybook": "start-storybook -p 7007", + "build-storybook": "build-storybook", + "bundle": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle", + "bundleWithAssets": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/", + "android:clean": "cd android && ./gradlew clean", + "android:build:debug": "cd android && ./gradlew :app:assembleDebug", + "android:build:release": "cd android && ./gradlew :app:assembleRelease", + "android:get:aab": "cd android && ./gradlew :app:bundleRelease", + "android:get:debug": "yarn bundleWithAssets && yarn android:build:debug", + "android:get:release": "yarn bundle && yarn android:build:release", + "release": "semantic-release", + "e2e:ios:debug:build": "detox build --configuration ios.sim.debug", + "e2e:ios:debug:test": "detox test --configuration ios.sim.debug", + "e2e:ios:debug": "yarn e2e:ios:debug:build && yarn e2e:ios:debug:test", + "e2e:android:build": "yarn bundle && detox build --configuration android.emu.release", + "e2e:android:test": "detox test --configuration android.emu.release", + "e2e:android": "yarn e2e:android:build && yarn e2e:android:test", + "e2e:android:debug:build": "yarn bundleWithAssets && detox build --configuration android.emu.debug", + "e2e:android:debug:test": "detox test --configuration android.emu.debug", + "e2e:android:debug": "yarn e2e:android:debug:build && yarn e2e:android:debug:test", + "storybook-generate": "sb-rn-get-stories", + "storybook-watch": "sb-rn-watcher", + "start-server": "react-native-storybook-server" + }, + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@react-navigation/bottom-tabs": "^6.5.18", + "@react-navigation/native": "^6.1.9", + "@react-navigation/native-stack": "^6.9.17", + "@shopify/react-native-skia": "^1.0.4", + "react": "18.2.0", + "react-native": "0.73.7", + "react-native-calendars": "^1.1294.0", + "react-native-gesture-handler": "^2.14.1", + "react-native-markdown-display": "^7.0.2", + "react-native-reanimated": "^3.8.1", + "react-native-safe-area-context": "^4.8.2", + "react-native-screens": "^3.29.0", + "react-native-svg": "13.6.0", + "react-native-svg-transformer": "1.0.0" + }, + "devDependencies": { + "@babel/core": "^7.20.0", + "@babel/preset-env": "^7.20.0", + "@babel/runtime": "^7.20.0", + "@commitlint/cli": "^17.4.2", + "@commitlint/config-conventional": "^17.4.2", + "@lad-tech/eslint-config": "^0.0.16", + "@react-native-async-storage/async-storage": "^1.19.1", + "@react-native/babel-preset": "0.73.21", + "@react-native/metro-config": "0.73.5", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^9.2.6", + "@semantic-release/npm": "^11.0.2", + "@testing-library/react-hooks": "^8.0.0", + "@testing-library/react-native": "^9.1.0", + "@types/detox": "^18.1.0", + "@types/jest": "^29.5.12", + "@types/react": "^18.2.6", + "@types/react-native": "^0.67.3", + "@types/react-test-renderer": "^18.0.0", + "@types/xdate": "^0.8.32", + "@types/yargs": "^17.0.10", + "babel-jest": "^29.6.3", + "babel-loader": "^8.2.4", + "babel-plugin-module-resolver": "^5.0.0", + "detox": "^20.5.0", + "eslint": "^8.56.0", + "husky": "^7.0.4", + "jest": "^29.7.0", + "jest-sonar-reporter": "^2.0.0", + "prettier": "^3.2.4", + "react-dom": "^18.2.0", + "react-test-renderer": "18.2.0", + "semantic-release": "^23.0.0", + "simple-git": "^3.10.0", + "ts-jest": "^29.0.5", + "ts-node": "^10.9.1", + "typescript": "^5.4.5", + "winston": "^3.8.1" + }, + "engines": { + "node": ">=18" + } +} diff --git a/lib/packages/KeyboardAware/index.js b/lib/packages/KeyboardAware/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/KeyboardAware/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/KeyboardAware/src/KeyboardAwareScrollView.js b/lib/packages/KeyboardAware/src/KeyboardAwareScrollView.js new file mode 100644 index 000000000..582bc54b8 --- /dev/null +++ b/lib/packages/KeyboardAware/src/KeyboardAwareScrollView.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const react_1 = require("react"); +const androidStatusBarOffset = react_native_1.StatusBar.currentHeight ?? 0; +const KeyboardAwareScrollView = ({ children, BottomComponent, ...rest }) => { + const scrollViewRef = (0, react_1.useRef)(null); + const scrollPositionRef = (0, react_1.useRef)(0); + const keyboardHeightRef = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current; + const bottomRef = (0, react_1.useRef)(null); + (0, react_1.useEffect)(() => { + const calculateAndScroll = ({ keyboardY, bottomHeight, }) => { + const currentlyFocusedInput = react_native_1.TextInput.State.currentlyFocusedInput(); + currentlyFocusedInput?.measureInWindow((_x, y, _width, height) => { + const endOfInputY = y + height + androidStatusBarOffset; + const deltaToScroll = endOfInputY - keyboardY; + const additionalScroll = 30; + const scrollPositionTarget = scrollPositionRef.current + + deltaToScroll + + additionalScroll + + bottomHeight; + scrollViewRef.current?.scrollTo({ + y: scrollPositionTarget, + animated: true, + }); + }); + }; + const didShowListener = react_native_1.Keyboard.addListener(react_native_1.Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow', frames => { + const keyboardY = frames.endCoordinates.screenY; + const duration = frames.duration; + react_native_1.Animated.timing(keyboardHeightRef, { + toValue: frames.endCoordinates.height, + duration, + useNativeDriver: react_native_1.Platform.OS !== 'ios', + }).start(() => { + bottomRef.current?.measureInWindow((_BottomX, _BottomY, _BottomWidth, bottomHeight) => { + calculateAndScroll({ + keyboardY, + bottomHeight: bottomHeight ?? 0, + }); + }); + }); + }); + const didHideListener = react_native_1.Keyboard.addListener('keyboardWillHide', frames => { + const duration = frames.duration; + react_native_1.Animated.timing(keyboardHeightRef, { + toValue: 0, + duration, + useNativeDriver: react_native_1.Platform.OS !== 'ios', + }).start(); + }); + return () => { + didShowListener.remove(); + didHideListener.remove(); + }; + }, []); + return (<> + { + scrollPositionRef.current = event.nativeEvent.contentOffset.y; + }} {...rest}> + {children} + + {BottomComponent} + + ); +}; +exports.default = KeyboardAwareScrollView; diff --git a/lib/packages/KeyboardAware/src/index.js b/lib/packages/KeyboardAware/src/index.js new file mode 100644 index 000000000..e6d4a4c29 --- /dev/null +++ b/lib/packages/KeyboardAware/src/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollView = void 0; +const KeyboardAwareScrollView_1 = __importDefault(require("./KeyboardAwareScrollView")); +exports.KeyboardAwareScrollView = KeyboardAwareScrollView_1.default; diff --git a/lib/packages/calendar/index.js b/lib/packages/calendar/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/calendar/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/calendar/src/Calendar/Calendar.js b/lib/packages/calendar/src/Calendar/Calendar.js new file mode 100644 index 000000000..3f58f6766 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/Calendar.js @@ -0,0 +1,276 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_calendars_1 = require("react-native-calendars"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const localeConfig_1 = require("./localeConfig"); +const functions_1 = require("./functions"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const types_1 = require("./types"); +const CalendarHeader_1 = __importDefault(require("./components/CalendarHeader")); +const Years_1 = __importDefault(require("./components/Years")); +const Months_1 = __importDefault(require("./components/Months")); +const mergeObjects_1 = __importDefault(require("./helpers/mergeObjects")); +const Calendar = props => { + const { onDateRangeChange, defaultLocale = 'ru', bottomView, isClear, isShowToday = true, localeConfig = localeConfig_1.localeConfigRu, isPeriod = false, initialRange, dottedDates = [], initialDate, maxLengthDateRange, maxDate, minDate, ...rest } = props; + react_native_calendars_1.LocaleConfig.locales[defaultLocale] = localeConfig; + react_native_calendars_1.LocaleConfig.defaultLocale = defaultLocale; + const { colors, currentTheme } = (0, mobydick_core_1.useTheme)(); + const currentDay = initialDate ? new Date(initialDate) : new Date(); + const [styles] = (0, mobydick_core_1.useStyles)(stylesCreate_1.default); + const colorsArg = (0, react_1.useMemo)(() => ({ + colorPrime: { + color: colors.ElementBase, + textColor: colors.TextWhite, + }, + colorSoft: { + color: colors.BgAccent, + textColor: colors.TextPrimary, + }, + colorToday: { + color: colors.BgSecondary, + textColor: colors.TextPrimary, + }, + }), []); + const [markedDates, setMarkedDates] = (0, react_1.useState)(); + const [currMaxDate, setCurrMaxDate] = (0, react_1.useState)(maxDate || ''); + const [currMinDate, setCurrMinDate] = (0, react_1.useState)(minDate || ''); + const [selectionState, setSelectionState] = (0, react_1.useState)(types_1.ISelectionState.days); + const [currentMonthIndex, setCurrentMonthIndex] = (0, react_1.useState)(currentDay.getMonth()); + const [currentYear, setCurrentYear] = (0, react_1.useState)(currentDay.getFullYear()); + const [yearRange, setYearRange] = (0, react_1.useState)((0, functions_1.calculateYearRange)(currentYear)); + const dateDots = (0, functions_1.getDottedDates)(dottedDates, colors.ElementBase); + const dateToday = (0, functions_1.getMarkedToday)(colorsArg); + const themeStyles = (0, react_1.useMemo)(() => ({ + theme: { + calendarBackground: colors.BgPrimary, + textSectionTitleColor: colors.TextSecondary, + dayTextColor: colors.TextPrimary, + textDisabledColor: colors.TextMuted, + arrowColor: colors.IconNeutral, + monthTextColor: colors.TextPrimary, + textDayHeaderFontFamily: 'Inter-SemiBold', + textDayHeaderFontSize: (0, mobydick_core_1.px)(14), + textDayFontSize: (0, mobydick_core_1.px)(14), + textDayFontFamily: 'Inter-Regular', + weekVerticalMargin: (0, mobydick_core_1.px)(1), + 'stylesheet.day.period': { + todayText: { + fontWeight: '400', + }, + wrapper: { + alignItems: 'center', + alignSelf: 'stretch', + }, + }, + 'stylesheet.calendar.header': { + dayHeader: { + marginTop: 0, + marginBottom: (0, mobydick_core_1.px)(5), + color: colors.TextSecondary, + }, + }, + }, + }), [currentTheme]); + const updateDateRange = (fromDate, toDate) => { + const dateRange = (0, functions_1.getAllDatesBetween)(new Date(fromDate), new Date(toDate), colorsArg, isShowToday); + const result = (0, mergeObjects_1.default)(dateDots.dates, dateRange.dates, (key, first, second) => { + return { + ...first[key], + ...second[key], + }; + }); + const startDate = result[(0, functions_1.getDateForCalendar)(dateRange.fromDate)]; + if (startDate) { + startDate.dotColor = colors.ElementWhite; + } + const endDate = result[(0, functions_1.getDateForCalendar)(dateRange.toDate)]; + if (endDate) { + endDate.dotColor = colors.ElementWhite; + } + setMarkedDates({ + dates: result, + fromDate: dateRange.fromDate, + toDate: dateRange.toDate, + lengthMarkedDates: dateRange.lengthDateRange, + }); + onDateRangeChange?.({ + dateStart: new Date(fromDate).toISOString(), + dateEnd: new Date(toDate).toISOString(), + lengthDateRange: dateRange.lengthDateRange, + }); + }; + const onDayPress = (0, react_1.useCallback)((day) => { + const { fromDate, toDate } = (0, functions_1.calculateBoundaries)(day, markedDates, isPeriod); + setCurrentYear(day.year); + setCurrentMonthIndex(day.month - 1); + updateDateRange(fromDate, toDate); + }, [ + isPeriod, + colorsArg, + onDateRangeChange, + currentYear, + currentMonthIndex, + markedDates, + ]); + const markTodayAndDots = () => { + const result = (0, mergeObjects_1.default)(dateDots.dates, dateToday.dates, (key, first, second) => { + return { + ...first[key], + ...second[key], + }; + }); + setMarkedDates({ + dates: isShowToday ? result : dateDots.dates, + fromDate: dateToday.fromDate, + toDate: dateToday.toDate, + }); + }; + const onClear = () => { + onDateRangeChange?.({ dateStart: '', dateEnd: '', lengthDateRange: 0 }); + markTodayAndDots(); + }; + (0, react_1.useLayoutEffect)(() => { + if (initialRange?.fromDate) { + const startDate = initialRange.fromDate; + const endDate = initialRange?.toDate || startDate; + if ((0, functions_1.isValidDate)(startDate) && (0, functions_1.isValidDate)(endDate)) { + updateDateRange(startDate, endDate); + return; + } + } + else { + markTodayAndDots(); + } + }, []); + (0, react_1.useEffect)(() => { + if (isClear) { + onClear(); + } + }, [isClear]); + const onPressMonth = (0, react_1.useCallback)((monthIndex) => { + setCurrentMonthIndex(monthIndex); + setSelectionState(types_1.ISelectionState.days); + }, []); + const onCloseMonths = (0, react_1.useCallback)(() => setSelectionState(types_1.ISelectionState.days), []); + const onPressYear = (0, react_1.useCallback)((year) => { + setCurrentYear(year); + setSelectionState(types_1.ISelectionState.months); + }, []); + const onCloseYears = (0, react_1.useCallback)(() => setSelectionState(types_1.ISelectionState.months), []); + const onPressCurrMonth = (0, react_1.useCallback)(() => { + setSelectionState(types_1.ISelectionState.months); + }, []); + const onPressCurrYear = (0, react_1.useCallback)(() => { + if (selectionState === types_1.ISelectionState.days || + selectionState === types_1.ISelectionState.months) { + setSelectionState(types_1.ISelectionState.years); + } + else if (selectionState === types_1.ISelectionState.years) { + setSelectionState(types_1.ISelectionState.months); + } + setYearRange((0, functions_1.calculateYearRange)(currentYear)); + }, [selectionState, currentYear]); + const onPressLeft = (0, react_1.useCallback)(() => { + if (selectionState === types_1.ISelectionState.days) { + if (currentMonthIndex) { + setCurrentMonthIndex(currentMonthIndex - 1); + } + else { + setCurrentMonthIndex(11); + setCurrentYear(currentYear - 1); + } + } + else if (selectionState === types_1.ISelectionState.months) { + setCurrentYear(currentYear - 1); + } + else if (selectionState === types_1.ISelectionState.years) { + yearRange[0] && + setYearRange((0, functions_1.calculateYearRange)(yearRange[0], types_1.IDirection.left)); + } + }, [currentMonthIndex, currentYear, yearRange, selectionState]); + const onPressRight = (0, react_1.useCallback)(() => { + if (selectionState === types_1.ISelectionState.days) { + if (currentMonthIndex + 1 < 12) { + setCurrentMonthIndex(currentMonthIndex + 1); + } + else { + setCurrentMonthIndex(0); + setCurrentYear(currentYear + 1); + } + } + else if (selectionState === types_1.ISelectionState.months) { + setCurrentYear(currentYear + 1); + } + else if (selectionState === types_1.ISelectionState.years) { + const lastYear = yearRange[yearRange?.length - 1]; + lastYear && setYearRange((0, functions_1.calculateYearRange)(lastYear, types_1.IDirection.right)); + } + }, [currentMonthIndex, yearRange, currentYear, selectionState]); + const getCalendarTitle = () => { + if (selectionState === types_1.ISelectionState.months) { + return { + currYear: currentYear.toString(), + }; + } + else if (selectionState === types_1.ISelectionState.years) { + return { + currYear: yearRange[0]?.toString() + + '-' + + yearRange[yearRange.length - 1]?.toString(), + }; + } + return { + currMonth: localeConfig.monthNames[currentMonthIndex] + ' ', + currYear: currentYear.toString(), + }; + }; + (0, react_1.useEffect)(() => { + const fromDate = markedDates?.fromDate; + const toDate = markedDates?.toDate; + if (!fromDate || !toDate || !maxLengthDateRange || !isPeriod) { + setCurrMaxDate(maxDate || ''); + setCurrMinDate(minDate || ''); + return; + } + const narrowMin = (0, functions_1.getMinDate)(toDate, maxLengthDateRange); + const narrowMax = (0, functions_1.getMaxDate)(fromDate, maxLengthDateRange); + if (!minDate) { + setCurrMinDate(narrowMin); + } + else { + setCurrMinDate(new Date(minDate).getTime() < new Date(narrowMin).getTime() + ? narrowMin + : minDate); + } + if (!maxDate) { + setCurrMaxDate(narrowMax); + } + else { + setCurrMaxDate(new Date(maxDate).getTime() > new Date(narrowMax).getTime() + ? narrowMax + : maxDate); + } + }, [ + markedDates?.fromDate, + markedDates?.toDate, + isPeriod, + maxDate, + minDate, + maxLengthDateRange, + ]); + return (<> + + {selectionState === types_1.ISelectionState.days && (} hideArrows={true} maxDate={currMaxDate} minDate={currMinDate} {...rest}/>)} + {selectionState === types_1.ISelectionState.months && ()} + {selectionState === types_1.ISelectionState.years && ()} + + {bottomView} + ); +}; +exports.default = Calendar; diff --git a/lib/packages/calendar/src/Calendar/ModalCalendar.js b/lib/packages/calendar/src/Calendar/ModalCalendar.js new file mode 100644 index 000000000..396c21bf1 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/ModalCalendar.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const types_1 = require("./types"); +const Calendar_1 = __importDefault(require("./Calendar")); +const ACCEPT_STR = 'Применить'; +const CANCEL_STR = 'Сбросить'; +const ModalCalendar = props => { + const { onClose, bottomView, onDateRangeChange, descriptionText, buttonView, typeLeft, textLeft, typeRight, textRight, descriptionFont = 'Regular-Muted-M', isShowToday = true, titleFont = 'Medium-Primary-M', titlePrefix = 'Выбрано ', titleSuffix = ' д', isCounter = true, onAcceptDateRangeChange, ...rest } = props; + const [styles] = (0, mobydick_core_1.useStyles)(stylesCreate_1.default); + const [date, setDate] = (0, react_1.useState)({ dateStart: '', dateEnd: '', lengthDateRange: 0 }); + const [isClear, setClear] = (0, react_1.useState)(false); + const onAccept = (0, react_1.useCallback)(() => { + onDateRangeChange?.(date); + onAcceptDateRangeChange?.(date); + onClose(); + }, [date, onClose, onDateRangeChange, date]); + const onClear = (0, react_1.useCallback)(() => { + setClear(true); + onDateRangeChange?.(date); + }, []); + const defaultBottomView = bottomView || (<> + {} + + {buttonView === types_1.IButtonView.small && ( + + )} + {buttonView === types_1.IButtonView.large && ()} + ); + (0, react_1.useEffect)(() => { + setClear(false); + }, [date]); + return ( + + + ); +}; +exports.default = ModalCalendar; diff --git a/lib/packages/calendar/src/Calendar/__tests__/Calendar.test.js b/lib/packages/calendar/src/Calendar/__tests__/Calendar.test.js new file mode 100644 index 000000000..733097ddc --- /dev/null +++ b/lib/packages/calendar/src/Calendar/__tests__/Calendar.test.js @@ -0,0 +1,179 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Calendar_1 = __importDefault(require("../Calendar")); +const constants_1 = require("../constants"); +describe('Calendar', () => { + beforeAll(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2022-07-15')); + }); + afterAll(() => { + jest.useRealTimers(); + }); + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isClear', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isShowToday = true > maxLengthDateRange maxDate minDate', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isShowToday = false > maxLengthDateRange maxDate minDate', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isShowToday = true < maxLengthDateRange maxDate minDate', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isShowToday = true < maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isShowToday = true > maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly not isValidDate', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isClear isShowToday', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarLeftArrow', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarLeftArrow = getByLabelText(constants_1.LABELS.calendarLeftArrow); + react_native_1.fireEvent.press(calendarLeftArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarLeftArrow 01 -> 12', () => { + jest.setSystemTime(new Date('2022-01-15')); + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarLeftArrow = getByLabelText(constants_1.LABELS.calendarLeftArrow); + react_native_1.fireEvent.press(calendarLeftArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarPressTitle * 2 calendarLeftArrow', () => { + const { toJSON, getByLabelText, getAllByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarPressTitleMonth = getByLabelText(constants_1.LABELS.calendarPressTitleMonth); + react_native_1.fireEvent.press(calendarPressTitleMonth); //months + const calendarPressTitleYear = getByLabelText(constants_1.LABELS.calendarPressTitleYear); + const calendarLeftArrow = getByLabelText(constants_1.LABELS.calendarLeftArrow); + react_native_1.fireEvent.press(calendarLeftArrow); + react_native_1.fireEvent.press(calendarPressTitleYear); //years + react_native_1.fireEvent.press(calendarLeftArrow); + const pressYear = getAllByLabelText(constants_1.LABELS.pressYear)[2]; + pressYear && react_native_1.fireEvent.press(pressYear); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarPressTitle * 3 calendarLeftArrow', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarPressTitleMonth = getByLabelText(constants_1.LABELS.calendarPressTitleMonth); + react_native_1.fireEvent.press(calendarPressTitleMonth); //months + const calendarPressTitleYear = getByLabelText(constants_1.LABELS.calendarPressTitleYear); + const calendarLeftArrow = getByLabelText(constants_1.LABELS.calendarLeftArrow); + react_native_1.fireEvent.press(calendarLeftArrow); + react_native_1.fireEvent.press(calendarPressTitleYear); //years + react_native_1.fireEvent.press(calendarLeftArrow); + react_native_1.fireEvent.press(calendarPressTitleYear); //range years + react_native_1.fireEvent.press(calendarLeftArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarRightArrow', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarRightArrow = getByLabelText(constants_1.LABELS.calendarRightArrow); + react_native_1.fireEvent.press(calendarRightArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarRightArrow 12 -> 1', () => { + jest.setSystemTime(new Date('2022-12-15')); + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarRightArrow = getByLabelText(constants_1.LABELS.calendarRightArrow); + react_native_1.fireEvent.press(calendarRightArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarPressTitle calendarRightArrow', () => { + const { toJSON, getByLabelText, getAllByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarPressTitleMonth = getByLabelText(constants_1.LABELS.calendarPressTitleMonth); + react_native_1.fireEvent.press(calendarPressTitleMonth); //months + const calendarPressTitleYear = getByLabelText(constants_1.LABELS.calendarPressTitleYear); + const calendarRightArrow = getByLabelText(constants_1.LABELS.calendarRightArrow); + react_native_1.fireEvent.press(calendarRightArrow); + const pressMonth = getAllByLabelText(constants_1.LABELS.pressMonth)[5]; + pressMonth && react_native_1.fireEvent.press(pressMonth); + react_native_1.fireEvent.press(calendarPressTitleYear); // years + react_native_1.fireEvent.press(calendarPressTitleYear); // range years + react_native_1.fireEvent.press(calendarRightArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarPressTitle*2 calendarRightArrow', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarPressTitleMonth = getByLabelText(constants_1.LABELS.calendarPressTitleMonth); + react_native_1.fireEvent.press(calendarPressTitleMonth); //months + const calendarPressTitleYear = getByLabelText(constants_1.LABELS.calendarPressTitleYear); + const calendarRightArrow = getByLabelText(constants_1.LABELS.calendarRightArrow); + react_native_1.fireEvent.press(calendarRightArrow); + react_native_1.fireEvent.press(calendarPressTitleYear); //years + react_native_1.fireEvent.press(calendarRightArrow); + react_native_1.fireEvent.press(calendarPressTitleYear); //range years + react_native_1.fireEvent.press(calendarRightArrow); + expect(toJSON()).toMatchSnapshot(); + }); + it('press calendarPressTitleYear', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( undefined} isShowToday={false}/>); + const calendarPressTitleYear = getByLabelText(constants_1.LABELS.calendarPressTitleYear); + react_native_1.fireEvent.press(calendarPressTitleYear); // years + react_native_1.fireEvent.press(calendarPressTitleYear); // range years + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly dottedDates', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly dottedDates cc', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly minDate maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly maxDate maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly maxDate minDate maxLengthDateRange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly maxDate minDate maxLengthDateRange isPeriod = false', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly maxDate minDate maxLengthDateRange fromDate = toDate', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/__tests__/ModalCalendar.test.js b/lib/packages/calendar/src/Calendar/__tests__/ModalCalendar.test.js new file mode 100644 index 000000000..ceea67624 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/__tests__/ModalCalendar.test.js @@ -0,0 +1,59 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../types"); +const ModalCalendar_1 = __importDefault(require("../ModalCalendar")); +describe('ModalCalendar', () => { + beforeAll(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2022-07-15')); + }); + afterAll(() => { + jest.useRealTimers(); + }); + it('renders correctly', () => { + const submit = jest.fn(); + const { toJSON } = (0, react_native_1.render)( undefined} onDateRangeChange={submit}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('bottomView IButtonView.small onAcceptDateRangeChange', () => { + const submit = jest.fn(); + const { toJSON, getByText } = (0, react_native_1.render)( undefined} onAcceptDateRangeChange={submit} isCounter={false} descriptionText={'textCalendar'} buttonView={types_1.IButtonView.small}/>); + const applyButton = getByText('Применить'); + react_native_1.fireEvent.press(applyButton); + expect(toJSON()).toMatchSnapshot(); + }); + it('bottomView IButtonView.small onDateRangeChange', () => { + const submit = jest.fn(); + const { toJSON, getByText } = (0, react_native_1.render)( undefined} onDateRangeChange={submit} isCounter={false} descriptionText={'textCalendar'} buttonView={types_1.IButtonView.small}/>); + const applyButton = getByText('Применить'); + react_native_1.fireEvent.press(applyButton); + expect(toJSON()).toMatchSnapshot(); + }); + it('bottomView IButtonView.large', () => { + const submit = jest.fn(); + const { toJSON, getByText } = (0, react_native_1.render)( undefined} onDateRangeChange={submit} descriptionText={'textCalendar'} isCounter={true} titlePrefix={'titlePrefix'} titleSuffix={'titleSuffix'} titleFont={'Regular-Muted-M'} descriptionFont={'Medium-Primary-M'} buttonView={types_1.IButtonView.large}/>); + const dateStart = getByText('11'); + react_native_1.fireEvent.press(dateStart); + const applyButton = getByText('Сбросить'); + react_native_1.fireEvent.press(applyButton); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly initialRange', () => { + const submit = jest.fn(); + const { toJSON, getByText } = (0, react_native_1.render)( undefined} onDateRangeChange={submit} initialRange={{ fromDate: '2022-02-16', toDate: '2022-02-17' }}/>); + const dateStart = getByText('16'); + react_native_1.fireEvent.press(dateStart); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly initialRange only fromDate isShowToday', () => { + const submit = jest.fn(); + const { toJSON, getByText } = (0, react_native_1.render)( undefined} onDateRangeChange={submit} initialRange={{ fromDate: '2022-02-16' }} isShowToday={true} isCounter={true} buttonView={types_1.IButtonView.large}/>); + const applyButton = getByText('Сбросить'); + react_native_1.fireEvent.press(applyButton); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/__tests__/functions.test.js b/lib/packages/calendar/src/Calendar/__tests__/functions.test.js new file mode 100644 index 000000000..675ec4213 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/__tests__/functions.test.js @@ -0,0 +1,320 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const functions_1 = require("../functions"); +const types_1 = require("../types"); +describe('Calendar-functions', () => { + beforeAll(() => { + jest.useFakeTimers(); + }); + afterAll(() => { + jest.useRealTimers(); + }); + it('calculateBoundaries', () => { + expect((0, functions_1.calculateBoundaries)({ + dateString: '2023-01-19', + day: 19, + month: 1, + timestamp: 1674086400000, + year: 2023, + }, { + dates: { + '2023-01-20': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + }, + fromDate: new Date('2023-01-20T00:00:00.000Z'), + toDate: new Date('2023-01-20T00:00:00.000Z'), + }, true)).toEqual({ + fromDate: new Date('2023-01-19T00:00:00.000Z').getTime(), + toDate: new Date('2023-01-20T00:00:00.000Z'), + }); + }); + it('calculateBoundaries same day', () => { + expect((0, functions_1.calculateBoundaries)({ + dateString: '2023-01-20', + day: 20, + month: 1, + timestamp: new Date('2023-01-20T00:00:00.000Z').getTime(), + year: 2023, + }, { + dates: { + '2023-01-20': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + }, + fromDate: new Date('2023-01-20T00:00:00.000Z'), + toDate: new Date('2023-01-20T00:00:00.000Z'), + }, true)).toEqual({ + fromDate: new Date('2023-01-20T00:00:00.000Z').getTime(), + toDate: new Date('2023-01-20T00:00:00.000Z').getTime(), + }); + }); + it('calculateBoundaries day > max', () => { + expect((0, functions_1.calculateBoundaries)({ + dateString: '2023-01-25', + day: 25, + month: 1, + timestamp: new Date('2023-01-25T00:00:00.000Z').getTime(), + year: 2023, + }, { + dates: { + '2023-01-18': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + '2023-01-20': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + }, + fromDate: new Date('2023-01-18T00:00:00.000Z'), + toDate: new Date('2023-01-20T00:00:00.000Z'), + }, true)).toEqual({ + fromDate: new Date('2023-01-18T00:00:00.000Z'), + toDate: new Date('2023-01-25T00:00:00.000Z').getTime(), + }); + }); + it('calculateBoundaries day between', () => { + expect((0, functions_1.calculateBoundaries)({ + dateString: '2023-01-20', + day: 20, + month: 1, + timestamp: new Date('2023-01-20T00:00:00.000Z').getTime(), + year: 2023, + }, { + dates: { + '2023-01-17': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + '2023-01-25': { + color: '#2B78EE', + customContainerStyle: [{}], + endingDay: true, + startingDay: true, + textColor: '#FFF', + }, + }, + fromDate: new Date('2023-01-17T00:00:00.000Z'), + toDate: new Date('2023-01-25T00:00:00.000Z'), + }, true)).toEqual({ + fromDate: new Date('2023-01-17T00:00:00.000Z'), + toDate: new Date('2023-01-20T00:00:00.000Z').getTime(), + }); + }); + it('calculateYearRange', () => { + expect((0, functions_1.calculateYearRange)(2023)).toEqual([ + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, + ]); + }); + it('calculateYearRange right', () => { + expect((0, functions_1.calculateYearRange)(2030, types_1.IDirection.right)).toEqual([ + 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, + ]); + }); + it('calculateYearRange left', () => { + expect((0, functions_1.calculateYearRange)(2019, types_1.IDirection.left)).toEqual([ + 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, + ]); + }); + it('getAllDatesBetween', () => { + expect((0, functions_1.getAllDatesBetween)(new Date('2022-12-15T00:00:00.000Z'), new Date('2022-12-15T00:00:00.000Z'), { + colorPrime: { + color: '#fff', + textColor: '#000', + }, + colorSoft: { + color: '#fff', + textColor: '#000', + }, + colorToday: { + color: '#fff', + textColor: '#000', + }, + }, false)).toEqual({ + dates: { + '2022-12-15': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + endingDay: true, + startingDay: true, + textColor: '#000', + }, + }, + fromDate: new Date('2022-12-15T00:00:00.000Z'), + toDate: new Date('2022-12-15T00:00:00.000Z'), + lengthDateRange: 1, + }); + }); + it('getAllDatesBetween length=5 isShowToday', () => { + jest.setSystemTime(new Date('2022-01-22')); + expect((0, functions_1.getAllDatesBetween)(new Date('2022-01-20T00:00:00.000Z'), new Date('2022-01-24T00:00:00.000Z'), { + colorPrime: { + color: '#fff', + textColor: '#000', + }, + colorSoft: { + color: '#fff', + textColor: '#000', + }, + colorToday: { + color: '#fff', + textColor: '#000', + }, + }, true)).toEqual({ + dates: { + '2022-01-20': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + customTextStyle: undefined, + endingDay: true, + startingDay: true, + textColor: '#000', + }, + '2022-01-21': { + color: '#fff', + textColor: '#000', + }, + '2022-01-22': { + color: '#fff', + customTextStyle: { fontWeight: '600', fontFamily: 'Inter-SemiBold' }, + }, + '2022-01-23': { + color: '#fff', + textColor: '#000', + }, + '2022-01-24': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + customTextStyle: undefined, + endingDay: true, + startingDay: true, + textColor: '#000', + }, + }, + fromDate: new Date('2022-01-20T00:00:00.000Z'), + toDate: new Date('2022-01-24T00:00:00.000Z'), + lengthDateRange: 5, + }); + }); + it('getAllDatesBetween isShowToday === fromDate', () => { + jest.setSystemTime(new Date('2022-01-22')); + expect((0, functions_1.getAllDatesBetween)(new Date('2022-01-22T00:00:00.000Z'), new Date('2022-01-24T00:00:00.000Z'), { + colorPrime: { + color: '#fff', + textColor: '#000', + }, + colorSoft: { + color: '#fff', + textColor: '#000', + }, + colorToday: { + color: '#fff', + textColor: '#000', + }, + }, true)).toEqual({ + dates: { + '2022-01-22': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + endingDay: true, + startingDay: true, + textColor: '#000', + customTextStyle: { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + color: '#000', + }, + }, + '2022-01-23': { + color: '#fff', + textColor: '#000', + }, + '2022-01-24': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + customTextStyle: undefined, + endingDay: true, + startingDay: true, + textColor: '#000', + }, + }, + fromDate: new Date('2022-01-22T00:00:00.000Z'), + toDate: new Date('2022-01-24T00:00:00.000Z'), + lengthDateRange: 3, + }); + }); + it('getAllDatesBetween isShowToday === toDate', () => { + jest.setSystemTime(new Date('2022-01-24')); + expect((0, functions_1.getAllDatesBetween)(new Date('2022-01-22T00:00:00.000Z'), new Date('2022-01-24T00:00:00.000Z'), { + colorPrime: { + color: '#fff', + textColor: '#000', + }, + colorSoft: { + color: '#fff', + textColor: '#000', + }, + colorToday: { + color: '#fff', + textColor: '#000', + }, + }, true)).toEqual({ + dates: { + '2022-01-22': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + endingDay: true, + startingDay: true, + textColor: '#000', + customTextStyle: undefined, + }, + '2022-01-23': { + color: '#fff', + textColor: '#000', + }, + '2022-01-24': { + color: '#fff', + customContainerStyle: { borderRadius: 6, width: '100%' }, + endingDay: true, + startingDay: true, + textColor: '#000', + customTextStyle: { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + color: '#000', + }, + }, + }, + fromDate: new Date('2022-01-22T00:00:00.000Z'), + toDate: new Date('2022-01-24T00:00:00.000Z'), + lengthDateRange: 3, + }); + }); + it('getDateForCalendar', () => { + expect((0, functions_1.getDateForCalendar)(new Date('2022-01-09'))).toEqual('2022-01-09'); + }); + it('isValidDate true', () => { + expect((0, functions_1.isValidDate)('2022-01-09')).toBe(true); + }); + it('isValidDate false', () => { + expect((0, functions_1.isValidDate)('string')).toBe(false); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/components/CalendarHeader.js b/lib/packages/calendar/src/Calendar/components/CalendarHeader.js new file mode 100644 index 000000000..1557d7a50 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/CalendarHeader.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const constants_1 = require("../constants"); +const CalendarHeader = props => { + const { title, onPressMonth, onPressYear, onPressLeft, onPressRight } = props; + const [styles] = (0, mobydick_core_1.useStyles)(stylesCreate); + return ( + + + + + {Boolean(title.currMonth) && ( + {title.currMonth} + )} + {Boolean(title.currYear) && ( + {title.currYear} + )} + + + + + + ); +}; +exports.default = CalendarHeader; +const stylesCreate = (0, mobydick_core_1.createStyles)(_ => ({ + container: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + paddingTop: (0, mobydick_core_1.px)(12), + }, + title: { + width: (0, mobydick_core_1.px)(160), + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + }, +})); diff --git a/lib/packages/calendar/src/Calendar/components/Months.js b/lib/packages/calendar/src/Calendar/components/Months.js new file mode 100644 index 000000000..eed32ff6f --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/Months.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const constants_1 = require("../constants"); +const Months = props => { + const { onCloseMonths, onPressMonth, monthNamesShort } = props; + const [styles] = (0, mobydick_core_1.useStyles)(stylesCreate); + const { colors } = (0, mobydick_core_1.useTheme)(); + const onPress = (0, react_1.useCallback)((index) => () => { + onCloseMonths(); + onPressMonth(index); + }, [onCloseMonths, onPressMonth]); + const getStyle = (0, react_1.useCallback)(({ pressed }) => [ + styles.month, + { backgroundColor: pressed ? colors.BgAccentSoft : colors.BgPrimary }, + ], [colors.BgAccentSoft, colors.BgPrimary]); + const renderItem = (0, react_1.useCallback)(({ item, index }) => { + return ( + {item} + ); + }, []); + return (); +}; +exports.default = Months; +const stylesCreate = (0, mobydick_core_1.createStyles)(({ spaces }) => ({ + month: { + flex: 3, + paddingVertical: spaces.Space20, + alignItems: 'center', + borderRadius: spaces.Space4, + }, + container: { + width: '100%', + alignContent: 'center', + }, +})); diff --git a/lib/packages/calendar/src/Calendar/components/Years.js b/lib/packages/calendar/src/Calendar/components/Years.js new file mode 100644 index 000000000..9758b870d --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/Years.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const constants_1 = require("../constants"); +const Years = props => { + const { onCloseYears, onPressYear, yearRange } = props; + const [styles] = (0, mobydick_core_1.useStyles)(stylesCreate); + const { colors } = (0, mobydick_core_1.useTheme)(); + const onPress = (0, react_1.useCallback)((item) => () => { + onCloseYears(); + onPressYear(item); + }, [onCloseYears, onPressYear]); + const getStyle = (0, react_1.useCallback)(({ pressed }) => [ + styles.year, + { backgroundColor: pressed ? colors.BgAccentSoft : colors.BgPrimary }, + ], []); + const renderItem = (0, react_1.useCallback)(({ item }) => { + return ( + {item} + ); + }, []); + return (); +}; +exports.default = Years; +const stylesCreate = (0, mobydick_core_1.createStyles)(({ spaces }) => ({ + year: { + flex: 4, + paddingVertical: spaces.Space20, + alignItems: 'center', + borderRadius: spaces.Space4, + }, + container: { + width: '100%', + alignContent: 'center', + }, +})); diff --git a/lib/packages/calendar/src/Calendar/components/__tests__/CalendarHeader.test.js b/lib/packages/calendar/src/Calendar/components/__tests__/CalendarHeader.test.js new file mode 100644 index 000000000..319d8af94 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/__tests__/CalendarHeader.test.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const CalendarHeader_1 = __importDefault(require("../CalendarHeader")); +describe('CalendarHeader', () => { + it('render', () => { + const onPressMonth = jest.fn(); + const onPressYear = jest.fn(); + const onPressRight = jest.fn(); + const onPressLeft = jest.fn(); + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/components/__tests__/Months.test.js b/lib/packages/calendar/src/Calendar/components/__tests__/Months.test.js new file mode 100644 index 000000000..79bcc7f7b --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/__tests__/Months.test.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Months_1 = __importDefault(require("../Months")); +const localeConfig_1 = require("../../localeConfig"); +describe('Months', () => { + it('render', () => { + const onCloseMonths = jest.fn(); + const onPressMonth = jest.fn(); + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('press month', () => { + const onCloseMonths = jest.fn(); + const onPressMonth = jest.fn(); + const { toJSON, getAllByLabelText } = (0, react_native_1.render)(); + const pressMonth = getAllByLabelText('pressMonth')[5]; + pressMonth && react_native_1.fireEvent.press(pressMonth); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/components/__tests__/Years.test.js b/lib/packages/calendar/src/Calendar/components/__tests__/Years.test.js new file mode 100644 index 000000000..19e42e6f2 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/components/__tests__/Years.test.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Years_1 = __importDefault(require("../Years")); +const yearRange = [ + 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, + 2021, 2022, 2023, +]; +describe('Years', () => { + it('render', () => { + const onCloseYears = jest.fn(); + const onPressYear = jest.fn(); + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('press year', () => { + const onCloseYears = jest.fn(); + const onPressYear = jest.fn(); + const { toJSON, getAllByLabelText } = (0, react_native_1.render)(); + const pressYear = getAllByLabelText('pressYear')[2]; + pressYear && react_native_1.fireEvent.press(pressYear); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/calendar/src/Calendar/constants.js b/lib/packages/calendar/src/Calendar/constants.js new file mode 100644 index 000000000..3bc242bd3 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/constants.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LABELS = void 0; +exports.LABELS = { + calendarLeftArrow: 'calendarLeftArrow', + calendarPressTitleMonth: 'calendarPressTitleMonth', + calendarPressTitleYear: 'calendarPressTitleYear', + calendarRightArrow: 'calendarRightArrow', + pressMonth: 'pressMonth', + pressYear: 'pressYear', +}; diff --git a/lib/packages/calendar/src/Calendar/functions.js b/lib/packages/calendar/src/Calendar/functions.js new file mode 100644 index 000000000..bc5d29c82 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/functions.js @@ -0,0 +1,181 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMinDate = exports.getMaxDate = exports.isValidDate = exports.calculateYearRange = exports.calculateBoundaries = exports.getMarkedToday = exports.getDottedDates = exports.getAllDatesBetween = exports.getDateForCalendar = void 0; +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const types_1 = require("./types"); +const getDateForCalendar = (date) => { + const yr = date.getFullYear(); + const month = `${date.getMonth() + 1 < 10 ? 0 : ''}${date.getMonth() + 1}`; + const d = `${date.getDate() < 10 ? 0 : ''}${date.getDate()}`; + return `${yr}-${month}-${d}`; +}; +exports.getDateForCalendar = getDateForCalendar; +const getStyleToday = (colorToday) => { + return { + startingDay: true, + endingDay: true, + color: colorToday.color, + textColor: colorToday.textColor, + customContainerStyle: { + borderRadius: (0, mobydick_core_1.px)(4), + width: '100%', + }, + customTextStyle: { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + }, + }; +}; +const getAllDatesBetween = (fromDate, toDate, { colorPrime, colorSoft, colorToday }, isShowToday) => { + let curDate = new Date(fromDate.getTime()); + const datesForCalendar = {}; + let lengthDateRange = 1; + if (isShowToday) { + datesForCalendar[(0, exports.getDateForCalendar)(new Date())] = + getStyleToday(colorToday); + } + const today = new Date(); + const todayTimeMidnight = today.getTime() - (today.getTime() % (1000 * 60 * 60 * 24)); // сбрасываем timestamp этого дня до 00:00:00 + datesForCalendar[(0, exports.getDateForCalendar)(fromDate)] = { + startingDay: true, + endingDay: true, + color: colorPrime.color, + textColor: colorPrime.textColor, + customContainerStyle: { + borderRadius: (0, mobydick_core_1.px)(4), + width: '100%', + }, + customTextStyle: isShowToday && fromDate.getTime() === todayTimeMidnight + ? { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + color: colorPrime.textColor, + } + : undefined, + }; + while (curDate < toDate) { + lengthDateRange = lengthDateRange + 1; + curDate = new Date(curDate.setDate(curDate.getDate() + 1)); + datesForCalendar[(0, exports.getDateForCalendar)(curDate)] = { + color: colorSoft.color, + textColor: colorSoft.textColor, + }; + if (isShowToday && curDate.getTime() === todayTimeMidnight) { + datesForCalendar[(0, exports.getDateForCalendar)(new Date())] = { + color: colorSoft.color, + customTextStyle: { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + }, + }; + } + } + datesForCalendar[(0, exports.getDateForCalendar)(toDate)] = { + startingDay: true, + endingDay: true, + textColor: colorPrime.textColor, + color: colorPrime.color, + customContainerStyle: { + borderRadius: (0, mobydick_core_1.px)(4), + width: '100%', + }, + customTextStyle: isShowToday && toDate.getTime() === todayTimeMidnight + ? { + fontWeight: '600', + fontFamily: 'Inter-SemiBold', + color: colorPrime.textColor, + } + : undefined, + }; + return { dates: datesForCalendar, fromDate, toDate, lengthDateRange }; +}; +exports.getAllDatesBetween = getAllDatesBetween; +const getDottedDates = (dots, dotColor) => { + const datesForCalendar = {}; + for (const dot of dots) { + datesForCalendar[(0, exports.getDateForCalendar)(dot)] = { + marked: true, + dotColor: dotColor, + }; + } + return { dates: datesForCalendar }; +}; +exports.getDottedDates = getDottedDates; +const getMarkedToday = ({ colorToday }) => { + const datesForCalendar = {}; + datesForCalendar[(0, exports.getDateForCalendar)(new Date())] = getStyleToday(colorToday); + return { dates: datesForCalendar, fromDate: null, toDate: null }; +}; +exports.getMarkedToday = getMarkedToday; +const calculateBoundaries = (day, markedDates, isPeriod) => { + let toDate; + let fromDate; + if (!markedDates || + !isPeriod || + !markedDates.fromDate || + !markedDates.toDate) { + fromDate = day.timestamp; + toDate = day.timestamp; + } + else { + const { fromDate: minDate, toDate: maxDate } = markedDates; + if (day.timestamp < minDate.getTime()) { + fromDate = day.timestamp; + toDate = maxDate; + } + else if (day.timestamp > maxDate.getTime()) { + toDate = day.timestamp; + fromDate = minDate; + } + else if (day.timestamp === minDate.getTime() || + day.timestamp === maxDate.getTime()) { + fromDate = day.timestamp; + toDate = day.timestamp; + } + else { + fromDate = minDate; + toDate = day.timestamp; + } + } + return { fromDate, toDate }; +}; +exports.calculateBoundaries = calculateBoundaries; +const calculateYearRange = (currentYear, direction) => { + const yearRange = []; + switch (direction) { + case types_1.IDirection.left: { + for (let i = 12; i > 0; i--) { + yearRange.push(currentYear - i); + } + break; + } + case types_1.IDirection.right: { + for (let i = 1; i <= 12; i++) { + yearRange.push(currentYear + i); + } + break; + } + default: { + for (let i = -4; i <= 7; i++) { + yearRange.push(currentYear + i); + } + break; + } + } + return yearRange; +}; +exports.calculateYearRange = calculateYearRange; +const isValidDate = (date) => { + return Boolean(Date.parse(date)); +}; +exports.isValidDate = isValidDate; +const getMaxDate = (fromDate, maxLengthDateRange) => { + const date = new Date(fromDate); + return (0, exports.getDateForCalendar)(new Date(date?.setDate(fromDate.getDate() + maxLengthDateRange - 1))); +}; +exports.getMaxDate = getMaxDate; +const getMinDate = (toDate, maxLengthDateRange) => { + const date = new Date(toDate); + return (0, exports.getDateForCalendar)(new Date(date?.setDate(toDate.getDate() - (maxLengthDateRange - 1)))); +}; +exports.getMinDate = getMinDate; diff --git a/lib/packages/calendar/src/Calendar/helpers/mergeObjects.js b/lib/packages/calendar/src/Calendar/helpers/mergeObjects.js new file mode 100644 index 000000000..51fea9cce --- /dev/null +++ b/lib/packages/calendar/src/Calendar/helpers/mergeObjects.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const typedKeys_1 = __importDefault(require("./typedKeys")); +function mergeObjects(first, second, merger) { + const ret = {}; + const keys = new Set((0, typedKeys_1.default)(first).concat((0, typedKeys_1.default)(second))); + for (const key of keys) { + ret[key] = merger(key, first, second); + } + return ret; +} +exports.default = mergeObjects; diff --git a/lib/packages/calendar/src/Calendar/helpers/typedKeys.js b/lib/packages/calendar/src/Calendar/helpers/typedKeys.js new file mode 100644 index 000000000..dda7f28cf --- /dev/null +++ b/lib/packages/calendar/src/Calendar/helpers/typedKeys.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function typedKeys(object) { + return Object.keys(object); +} +exports.default = typedKeys; diff --git a/lib/packages/calendar/src/Calendar/index.js b/lib/packages/calendar/src/Calendar/index.js new file mode 100644 index 000000000..020738080 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalCalendar = exports.Calendar = void 0; +const Calendar_1 = __importDefault(require("./Calendar")); +exports.Calendar = Calendar_1.default; +const ModalCalendar_1 = __importDefault(require("./ModalCalendar")); +exports.ModalCalendar = ModalCalendar_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/calendar/src/Calendar/localeConfig.js b/lib/packages/calendar/src/Calendar/localeConfig.js new file mode 100644 index 000000000..d5fed2c91 --- /dev/null +++ b/lib/packages/calendar/src/Calendar/localeConfig.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.localeConfigRu = void 0; +exports.localeConfigRu = { + monthNames: [ + 'Январь', + 'Февраль', + 'Март', + 'Апрель', + 'Май', + 'Июнь', + 'Июль', + 'Август', + 'Сентябрь', + 'Октябрь', + 'Ноябрь', + 'Декабрь', + ], + monthNamesShort: [ + 'Янв', + 'Фев', + 'Март', + 'Апр', + 'Май', + 'Июнь', + 'Июль', + 'Авг', + 'Сен', + 'Окт', + 'Нояб', + 'Дек', + ], + dayNames: [ + 'Воскресенье', + 'Понедельник', + 'Вторник', + 'Среда', + 'Четверг', + 'Пятница', + 'Суббота', + ], + dayNamesShort: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + today: 'Сегодня', +}; diff --git a/lib/packages/calendar/src/Calendar/stylesCreate.js b/lib/packages/calendar/src/Calendar/stylesCreate.js new file mode 100644 index 000000000..0357445bd --- /dev/null +++ b/lib/packages/calendar/src/Calendar/stylesCreate.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const { width: WIDTH } = react_native_1.Dimensions.get('window'); +const stylesCreate = (0, mobydick_core_1.createStyles)(({ spaces }) => ({ + overlayStyle: { + justifyContent: 'center', + }, + contentCalendar: { + width: WIDTH - spaces.Space8 * 2, + }, + daysView: { + width: WIDTH - spaces.Space8 * 2 - (0, mobydick_core_1.px)(16) * 2, + height: (0, mobydick_core_1.px)(260), + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/calendar/src/Calendar/types.js b/lib/packages/calendar/src/Calendar/types.js new file mode 100644 index 000000000..7ff3ee1ad --- /dev/null +++ b/lib/packages/calendar/src/Calendar/types.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDirection = exports.ISelectionState = exports.IButtonView = void 0; +var IButtonView; +(function (IButtonView) { + IButtonView["small"] = "small"; + IButtonView["large"] = "large"; +})(IButtonView || (exports.IButtonView = IButtonView = {})); +var ISelectionState; +(function (ISelectionState) { + ISelectionState["days"] = "days"; + ISelectionState["months"] = "months"; + ISelectionState["years"] = "years"; +})(ISelectionState || (exports.ISelectionState = ISelectionState = {})); +var IDirection; +(function (IDirection) { + IDirection["right"] = "right"; + IDirection["left"] = "left"; + IDirection["none"] = "none"; +})(IDirection || (exports.IDirection = IDirection = {})); diff --git a/lib/packages/calendar/src/index.js b/lib/packages/calendar/src/index.js new file mode 100644 index 000000000..dbeb4118a --- /dev/null +++ b/lib/packages/calendar/src/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Calendar"), exports); diff --git a/lib/packages/chart/index.js b/lib/packages/chart/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/chart/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/chart/src/BarChart/index.js b/lib/packages/chart/src/BarChart/index.js new file mode 100644 index 000000000..c7861913a --- /dev/null +++ b/lib/packages/chart/src/BarChart/index.js @@ -0,0 +1,179 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BarChart = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const constants_1 = require("../utils/constants"); +const Coordinates_1 = __importDefault(require("../components/Coordinates")); +const generatePeriodsWithBarPaths_1 = require("../utils/generatePeriodsWithBarPaths"); +const Section_1 = __importDefault(require("../components/Section")); +const Line_1 = __importDefault(require("../components/Line")); +const BarChart = ({ dataset, renderHeader, renderSectionItem, containerStyles, chartContainerStyles, sectionContainerStyles, formatterY, formatterX, }) => { + const font = (0, react_native_skia_1.useFont)( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require('@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Regular.ttf'), 12); + const { colors, spaces } = (0, mobydick_core_1.useTheme)(); + const ref = (0, react_native_skia_1.useCanvasRef)(); + const { height: frameHeight, width: frameWidth } = (0, react_native_safe_area_context_1.useSafeAreaFrame)(); + const canvasSize = (0, react_native_reanimated_1.useSharedValue)({ + height: frameHeight, + width: frameWidth, + }); + const size = (0, react_native_reanimated_1.useDerivedValue)(() => { + return { + height: canvasSize.value.height, + width: canvasSize.value.width, + }; + }); + const periodsWithPaths = (0, react_native_reanimated_1.useDerivedValue)(() => (0, generatePeriodsWithBarPaths_1.generatePeriodsWithBarPaths)({ + dataset, + width: size.value.width, + height: size.value.height, + })); + // animation value to transition from one graph to the next + const transition = (0, react_native_reanimated_1.useSharedValue)(0); + // indices of the current and next graphs + const state = (0, react_native_reanimated_1.useSharedValue)({ + next: 0, + current: 0, + }); + const chartPath = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]?.chartPath ?? react_native_skia_1.Skia.Path.Make(); + const end = periodsWithPaths.value[next]?.chartPath ?? react_native_skia_1.Skia.Path.Make(); + if (end.isInterpolatable(start)) { + return end.interpolate(start, transition.value); + } + return end; + }); + const colorsBar = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]?.colors ?? []; + const end = periodsWithPaths.value[next]?.colors ?? []; + return end.map((endColor, i) => (0, react_native_skia_1.interpolateColors)(transition.value, [0, 1], [start[i] ?? endColor, endColor])); + }); + const maxY = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.maxY; + }); + const maxX = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.maxX; + }); + const minX = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.minX; + }); + const minY = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.minY; + }); + const coordinatesLength = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.coordinatesLength; + }); + const selectedPeriodName = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { next } = state.value; + const periods = Object.keys(dataset); + const periodName = periods[next]; + if (periodName === undefined) { + throw Error('period === undefined'); + } + return periodName; + }); + const selectedPeriod = (0, react_native_reanimated_1.useDerivedValue)(() => { + const check = dataset[selectedPeriodName.value]; + if (check === undefined) { + throw Error('selectedPeriod === undefined'); + } + return check; + }); + const selectedValues = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { next } = state.value; + const end = periodsWithPaths.value[next]; + if (end === undefined) { + throw Error(' end === undefined'); + } + const { coordinates, name } = selectedPeriod.value[0] ?? { + coordinates: [], + name: '', + }; + const { x, y } = coordinates[coordinates.length - 1] ?? { x: 0, y: 0 }; + return [ + { + name, + y, + x, + }, + ]; + }); + if (!font) + return null; + return ( + {renderHeader?.({ + selectedPeriodName, + state, + transition, + selectedValues, + })} + + + + + + + + + + + {renderSectionItem && ()} + ); +}; +exports.BarChart = BarChart; +exports.default = exports.BarChart; diff --git a/lib/packages/chart/src/LineChart/index.js b/lib/packages/chart/src/LineChart/index.js new file mode 100644 index 000000000..bae41b6c2 --- /dev/null +++ b/lib/packages/chart/src/LineChart/index.js @@ -0,0 +1,192 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LineChart = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const react_native_gesture_handler_1 = require("react-native-gesture-handler"); +const Coordinates_1 = __importDefault(require("../components/Coordinates")); +const constants_1 = require("../utils/constants"); +const Section_1 = __importDefault(require("../components/Section")); +const generatePeriodsWithLinePaths_1 = require("../utils/generatePeriodsWithLinePaths"); +const Lines_1 = require("../components/Lines"); +const PointerPopup_1 = __importDefault(require("../components/PointerPopup")); +const LineChart = ({ dataset, renderHeader, renderSectionItem, containerStyles, chartContainerStyles, sectionContainerStyles, formatterY, formatterX, hideDataPoints = false, hidePointer = false, }) => { + const { colors, spaces } = (0, mobydick_core_1.useTheme)(); + const fontMgr = (0, react_native_skia_1.useFonts)({ + Inter: [ + require('@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Bold.ttf'), + require('@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Italic.ttf'), + require('@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Regular.ttf'), + ], + }); + const font = (0, react_native_skia_1.useFont)( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require('@lad-tech/mobydick-core/src/typography/assets/fonts/Inter-Medium.ttf'), 12); + const ref = (0, react_native_skia_1.useCanvasRef)(); + const { height: frameHeight, width: frameWidth } = (0, react_native_safe_area_context_1.useSafeAreaFrame)(); + const size = (0, react_native_reanimated_1.useSharedValue)({ + height: frameHeight, + width: frameWidth, + }); + const periodsWithPaths = (0, react_native_reanimated_1.useDerivedValue)(() => { + return (0, generatePeriodsWithLinePaths_1.generatePeriodsWithLinePaths)({ + dataset, + width: size.value.width, + height: size.value.height, + }); + }); + // animation value to transition from one graph to the next + const transition = (0, react_native_reanimated_1.useSharedValue)(0); + // indices of the current and next graphs + const state = (0, react_native_reanimated_1.useSharedValue)({ + next: 0, + current: 0, + }); + const maxY = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.maxY; + }); + const maxX = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.maxX; + }); + const minX = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.minX; + }); + const minY = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.minY; + }); + const coordinatesLength = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]; + const end = periodsWithPaths.value[next]; + if (start === undefined || end === undefined) { + throw Error('start === undefined || end === undefined'); + } + return end.maxCoordinatesLength; + }); + const selectedPeriodName = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { next } = state.value; + const periods = Object.keys(dataset); + const periodName = periods[next]; + if (periodName === undefined) { + throw Error('period === undefined'); + } + return periodName; + }); + const selectedPeriod = (0, react_native_reanimated_1.useDerivedValue)(() => { + const check = dataset[selectedPeriodName.value]; + if (check === undefined) { + throw Error('selectedPeriod === undefined'); + } + return check; + }); + const selectedValues = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { next } = state.value; + const end = periodsWithPaths.value[next]; + if (end === undefined) { + throw Error('period === undefined || end === undefined || selectedPeriod === undefined'); + } + return end.lines.map(({ name }, index) => { + const lineCoords = selectedPeriod.value[index]?.coordinates ?? []; + const { x, y } = lineCoords[lineCoords.length - 1] ?? { x: 0, y: 0 }; + return { + name, + y, + x, + }; + }); + }); + const x = (0, react_native_reanimated_1.useSharedValue)(-150); + const y = (0, react_native_reanimated_1.useSharedValue)(-150); + const pan = react_native_gesture_handler_1.Gesture.Pan() + .onBegin(event => { + x.value = (0, react_native_reanimated_1.interpolate)(event.x, [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + size.value.width - constants_1.chartPaddingHorizontal / 2, + ], [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + size.value.width - constants_1.chartPaddingHorizontal / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP); + y.value = (0, react_native_reanimated_1.interpolate)(event.y, [size.value.height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], [size.value.height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], react_native_reanimated_1.Extrapolation.CLAMP); + }) + .onUpdate(event => { + x.value = (0, react_native_reanimated_1.interpolate)(event.x, [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + size.value.width - constants_1.chartPaddingHorizontal / 2, + ], [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + size.value.width - constants_1.chartPaddingHorizontal / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP); + y.value = (0, react_native_reanimated_1.interpolate)(event.y, [size.value.height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], [size.value.height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], react_native_reanimated_1.Extrapolation.CLAMP); + }) + .onEnd(() => { + x.value = -150; + y.value = -150; + }); + if (!fontMgr || !font) + return null; + return ( + {renderHeader?.({ + selectedPeriodName, + state, + transition, + selectedValues, + })} + + + + + + + {!hidePointer && ()} + + + {renderSectionItem && ()} + ); +}; +exports.LineChart = LineChart; +exports.default = exports.LineChart; diff --git a/lib/packages/chart/src/components/CoordX.js b/lib/packages/chart/src/components/CoordX.js new file mode 100644 index 000000000..e8fe67954 --- /dev/null +++ b/lib/packages/chart/src/components/CoordX.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CoordX = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const react_native_skia_1 = require("@shopify/react-native-skia"); +const textPadding = 4; +const CoordX = ({ font, size, coords, index, colors }) => { + const path = (0, react_native_reanimated_1.useDerivedValue)(() => { + const path = coords.value.coordinateValuesX[index]?.path ?? react_native_skia_1.Skia.Path.Make(); + return path; + }); + const value = (0, react_native_reanimated_1.useDerivedValue)(() => { + const value = coords.value.coordinateValuesX[index]?.value ?? ''; + return value; + }); + const coordinate = (0, react_native_reanimated_1.useDerivedValue)(() => { + const coordinate = coords.value.coordinateValuesX[index]?.coordinate ?? 0; + return coordinate; + }); + const y = (0, react_native_reanimated_1.useDerivedValue)(() => { + return size.value.height - textPadding; //Прижимаю текст слегка наверх, чтобы не обрезался + }); + return ( + + + ); +}; +exports.CoordX = CoordX; diff --git a/lib/packages/chart/src/components/CoordY.js b/lib/packages/chart/src/components/CoordY.js new file mode 100644 index 000000000..e16a44f56 --- /dev/null +++ b/lib/packages/chart/src/components/CoordY.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CoordY = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const CoordY = ({ font, coordinateValueYMaxLength, coords, index, colors, }) => { + const coordinate = (0, react_native_reanimated_1.useDerivedValue)(() => { + const coordinate = coords.value.coordinateValuesY[index]?.coordinate ?? 0; + return coordinate; + }); + const value = (0, react_native_reanimated_1.useDerivedValue)(() => { + const value = coords.value.coordinateValuesY[index]?.value ?? ''; + return value; + }); + const path = (0, react_native_reanimated_1.useDerivedValue)(() => { + const path = coords.value.coordinateValuesY[index]?.path ?? react_native_skia_1.Skia.Path.Make(); + return path; + }); + const x = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { width } = font.measureText(value.value); + const symbolSize = width / value.value.length; + const r = -coordinateValueYMaxLength.value * symbolSize; + if (r < 0) { + return 0; + } + return r; + }); + return ( + + + ); +}; +exports.CoordY = CoordY; diff --git a/lib/packages/chart/src/components/Coordinates.js b/lib/packages/chart/src/components/Coordinates.js new file mode 100644 index 000000000..8ca86b759 --- /dev/null +++ b/lib/packages/chart/src/components/Coordinates.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Coordinates = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const generateCoordinatesPath_1 = require("../utils/generateCoordinatesPath"); +const getCoordinateValues_1 = require("../utils/getCoordinateValues"); +const CoordY_1 = require("./CoordY"); +const CoordX_1 = require("./CoordX"); +const Coordinates = ({ font, colors, size, maxX, minX, maxY, minY, coordinatesLength, formatterX, formatterY, }) => { + const coordinatesPath = (0, react_native_reanimated_1.useDerivedValue)(() => (0, generateCoordinatesPath_1.generateCoordinatesPath)({ + width: size.value.width, + height: size.value.height, + })); + const coords = (0, react_native_reanimated_1.useDerivedValue)(() => (0, getCoordinateValues_1.getCoordinateValues)({ + font, + maxX: maxX.value, + minX: minX.value, + maxY: maxY.value, + minY: minY.value, + height: size.value.height, + width: size.value.width, + coordinatesLength: coordinatesLength.value, + formatterX, + formatterY, + })); + const coordinateValueYMaxLength = (0, react_native_reanimated_1.useDerivedValue)(() => { + return ((formatterY?.(coords.value.coordinateValuesY[coords.value.coordinateValuesY.length - 1]?.value.length ?? 0) ?? coords.value.coordinateValuesY[0]?.value)?.length ?? 0); + }); + if (!font) + return null; + return ( + + {coords.value.coordinateValuesY.map((_, index) => { + return (); + })} + {coords.value.coordinateValuesX.map((_, index) => { + return (); + })} + ); +}; +exports.Coordinates = Coordinates; +exports.default = exports.Coordinates; diff --git a/lib/packages/chart/src/components/Line.js b/lib/packages/chart/src/components/Line.js new file mode 100644 index 000000000..ae559bbaa --- /dev/null +++ b/lib/packages/chart/src/components/Line.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Line = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const Line = ({ chartPath, ...rest }) => { + return (); +}; +exports.Line = Line; +exports.default = exports.Line; diff --git a/lib/packages/chart/src/components/LineOfPeriod.js b/lib/packages/chart/src/components/LineOfPeriod.js new file mode 100644 index 000000000..730180cdb --- /dev/null +++ b/lib/packages/chart/src/components/LineOfPeriod.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LineOfPeriod = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const Line_1 = __importDefault(require("./Line")); +const LinePoints_1 = require("./LinePoints"); +const LineOfPeriod = ({ periodsWithPaths, index, size, transition, state, hideDataPoints, }) => { + const chartPath = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]?.lines[index]?.path ?? react_native_skia_1.Skia.Path.Make(); + const end = periodsWithPaths.value[next]?.lines[index]?.path ?? react_native_skia_1.Skia.Path.Make(); + if (end.isInterpolatable(start)) { + return end.interpolate(start, transition.value); + } + return end; + }); + const colors = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { current, next } = state.value; + const start = periodsWithPaths.value[current]?.lines[index]?.colors ?? []; + const end = periodsWithPaths.value[next]?.lines[index]?.colors ?? []; + return end.map((endColor, i) => (0, react_native_skia_1.interpolateColors)(transition.value, [0, 1], [start[i] ?? endColor, endColor])); + }); + return ( + + + {hideDataPoints ? null : } + ); +}; +exports.LineOfPeriod = LineOfPeriod; +exports.default = exports.LineOfPeriod; diff --git a/lib/packages/chart/src/components/LinePoints.js b/lib/packages/chart/src/components/LinePoints.js new file mode 100644 index 000000000..a02c762f9 --- /dev/null +++ b/lib/packages/chart/src/components/LinePoints.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LinePoints = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const PointOfLine_1 = require("./PointOfLine"); +const LinePoints = ({ chartPath }) => { + const linePoints = (0, react_native_reanimated_1.useDerivedValue)(() => { + const cmd = chartPath.value.toCmds() ?? []; + return cmd; + }); + return (<> + {linePoints.value.map((_, pointIndex) => { + return (); + })} + ); +}; +exports.LinePoints = LinePoints; diff --git a/lib/packages/chart/src/components/Lines.js b/lib/packages/chart/src/components/Lines.js new file mode 100644 index 000000000..17ba173f7 --- /dev/null +++ b/lib/packages/chart/src/components/Lines.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Lines = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const LineOfPeriod_1 = __importDefault(require("./LineOfPeriod")); +const Lines = ({ periodsWithPaths, size, state, transition, hideDataPoints, }) => { + const lines = (0, react_native_reanimated_1.useDerivedValue)(() => { + const { next } = state.value; + const end = periodsWithPaths.value[next]?.lines ?? []; + return end; + }); + return (<> + {lines.value.map(({ colors }, index) => ())} + ); +}; +exports.Lines = Lines; diff --git a/lib/packages/chart/src/components/Point.js b/lib/packages/chart/src/components/Point.js new file mode 100644 index 000000000..72dee3a5c --- /dev/null +++ b/lib/packages/chart/src/components/Point.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Point = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const Point = ({ coords, r }) => { + return ; +}; +exports.Point = Point; diff --git a/lib/packages/chart/src/components/PointOfLine.js b/lib/packages/chart/src/components/PointOfLine.js new file mode 100644 index 000000000..863353682 --- /dev/null +++ b/lib/packages/chart/src/components/PointOfLine.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PointOfLine = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const Point_1 = require("./Point"); +const PointOfLine = ({ pointIndex, chartPath }) => { + const coords = (0, react_native_reanimated_1.useDerivedValue)(() => { + const [, x, y] = chartPath.value.toCmds()[pointIndex] ?? []; + return { + x: x || 0, + y: y || 0, + }; + }); + return ; +}; +exports.PointOfLine = PointOfLine; diff --git a/lib/packages/chart/src/components/PointerPopup.js b/lib/packages/chart/src/components/PointerPopup.js new file mode 100644 index 000000000..dd666a1a8 --- /dev/null +++ b/lib/packages/chart/src/components/PointerPopup.js @@ -0,0 +1,112 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const utils_1 = require("../utils"); +const PointerPopup = ({ size, colors, fontMgr, selectedPeriod, x, y, minX, maxX, formatterX, formatterY, }) => { + const realX = (0, react_native_reanimated_1.useDerivedValue)(() => { + return (0, react_native_reanimated_1.interpolate)(x.value, [ + utils_1.chartPaddingHorizontal + utils_1.chartPaddingHorizontal / 2, + size.value.width - utils_1.chartPaddingHorizontal / 2, + ], [minX.value, maxX.value], react_native_reanimated_1.Extrapolation.CLAMP); + }, [x, minX, maxX]); + const realYs = (0, react_native_reanimated_1.useDerivedValue)(() => { + const result = []; + for (const { coordinates, name } of selectedPeriod.value) { + let closestIndex = 0; + let lastDiff = Infinity; + let maxX = 0; + coordinates.forEach(({ x }, index) => { + maxX = Math.max(maxX, x); + const currentDiff = realX.value - x; + if (currentDiff < lastDiff && x <= realX.value) { + lastDiff = currentDiff; + closestIndex = index; + } + }); + if (maxX < realX.value) { + continue; + } + const closedLeftCoordinates = coordinates[closestIndex]; + const possibleSecondIndex = closestIndex + 1; + const closedRightCoordinates = coordinates[possibleSecondIndex < coordinates.length ? possibleSecondIndex : 0]; + if (!closedLeftCoordinates) + throw Error('!closedLeftCoordinates'); + if (!closedRightCoordinates) + throw Error('!closedRightCoordinates'); + // Similarity of triangles + // /| + // / | + // / | + // / | + // /| |bY + // / |xY | + // /__|___| + // xl + // bl + const bl = closedRightCoordinates.x - closedLeftCoordinates.x; + const xl = realX.value - closedLeftCoordinates.x; + const bY = closedRightCoordinates.y - closedLeftCoordinates.y; + const xY = (bY / bl) * xl; + result.push({ y: xY + closedLeftCoordinates.y, name }); + } + return result; + }); + const text = (0, react_native_reanimated_1.useDerivedValue)(() => { + const paragraph = react_native_skia_1.Skia.ParagraphBuilder.Make({ + textAlign: react_native_skia_1.TextAlign.Center, + textStyle: { + color: react_native_skia_1.Skia.Color(colors.TextPrimary), + }, + }, fontMgr).addText(`x=${formatterX?.(realX.value) ?? realX.value.toFixed(2)}\n`); + let maxTextLength = 0; + realYs.value.forEach(({ y, name }, index) => { + const text = `y:${name}=${formatterY?.(y) ?? y.toFixed(2)}${index < realYs.value.length - 1 ? '\n' : ''}`; + maxTextLength = Math.max(maxTextLength, text.length); + paragraph.addText(text); + }); + const r = paragraph.build(); + r.layout(maxTextLength * 7); + return r; + }); + const adjustedX = (0, react_native_reanimated_1.useDerivedValue)(() => { + const textWidth = text.value.getMaxWidth(); + const halfWidth = size.value.width / 2; + const touchPositionX = x.value; + let dx = touchPositionX; + if (touchPositionX > halfWidth) { + dx = touchPositionX - textWidth; + } + return dx; + }); + const adjustedY = (0, react_native_reanimated_1.useDerivedValue)(() => { + const textHeight = text.value.getHeight(); + const halfHeight = size.value.height / 2; + const touchPositionY = y.value; + let dy = touchPositionY; + if (touchPositionY > halfHeight) { + dy = touchPositionY - textHeight; + } + return dy; + }); + const boxHeight = (0, react_native_reanimated_1.useDerivedValue)(() => { + return text.value.getHeight(); + }); + const boxWidth = (0, react_native_reanimated_1.useDerivedValue)(() => { + return text.value.getMaxWidth(); + }); + const borderRect = (0, react_native_reanimated_1.useDerivedValue)(() => { + return (0, react_native_skia_1.rrect)((0, react_native_skia_1.rect)(adjustedX.value, adjustedY.value, boxWidth.value, boxHeight.value), 10, 10); + }); + const line1 = (0, react_native_reanimated_1.useDerivedValue)(() => (0, react_native_skia_1.vec)(x.value, 0)); + const line2 = (0, react_native_reanimated_1.useDerivedValue)(() => (0, react_native_skia_1.vec)(x.value, size.value.height - utils_1.chartPaddingVertical / 2)); + return ( + + + + + + + ); +}; +exports.default = PointerPopup; diff --git a/lib/packages/chart/src/components/Section.js b/lib/packages/chart/src/components/Section.js new file mode 100644 index 000000000..03cc54abe --- /dev/null +++ b/lib/packages/chart/src/components/Section.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Selection = void 0; +const react_native_1 = require("react-native"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const SectionButton_1 = __importDefault(require("./SectionButton")); +const Selection = ({ state, transition, dataset, renderSectionItem, sectionContainerStyles, }) => { + const [styles] = (0, mobydick_core_1.useStyles)(createStyleFn); + const periods = Object.keys(dataset); + return ( + {periods.map((period, index) => ())} + ); +}; +exports.Selection = Selection; +const createStyleFn = (0, mobydick_core_1.createStyles)(({ colors, spaces }) => ({ + container: { + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'space-between', + alignContent: 'stretch', + alignItems: 'stretch', + backgroundColor: colors.BgSecondary, + borderRadius: spaces.Space16, + }, +})); +exports.default = exports.Selection; diff --git a/lib/packages/chart/src/components/SectionButton.js b/lib/packages/chart/src/components/SectionButton.js new file mode 100644 index 000000000..0fef6507b --- /dev/null +++ b/lib/packages/chart/src/components/SectionButton.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SectionButton = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const SectionButton = ({ renderSectionItem, transition, state, period, index, }) => { + const [styles] = (0, mobydick_core_1.useStyles)(createStyleFn); + return ( { + state.value = { current: state.value.next, next: index }; + transition.value = 0; + transition.value = (0, react_native_reanimated_1.withTiming)(1, { + duration: 750, + }); + }}> + {renderSectionItem({ period, state, transition }, index)} + ); +}; +exports.SectionButton = SectionButton; +const createStyleFn = (0, mobydick_core_1.createStyles)(() => ({ + flex: { + flexGrow: 1, + }, +})); +exports.default = exports.SectionButton; diff --git a/lib/packages/chart/src/components/index.js b/lib/packages/chart/src/components/index.js new file mode 100644 index 000000000..74544c131 --- /dev/null +++ b/lib/packages/chart/src/components/index.js @@ -0,0 +1,21 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Coordinates"), exports); +__exportStar(require("./Line"), exports); +__exportStar(require("./Lines"), exports); +__exportStar(require("./Section"), exports); +__exportStar(require("./SectionButton"), exports); diff --git a/lib/packages/chart/src/index.js b/lib/packages/chart/src/index.js new file mode 100644 index 000000000..71045debf --- /dev/null +++ b/lib/packages/chart/src/index.js @@ -0,0 +1,21 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./LineChart"), exports); +__exportStar(require("./BarChart"), exports); +__exportStar(require("./components"), exports); +__exportStar(require("./utils"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/chart/src/types.js b/lib/packages/chart/src/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/chart/src/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/chart/src/utils/constants.js b/lib/packages/chart/src/utils/constants.js new file mode 100644 index 000000000..a1ebbb245 --- /dev/null +++ b/lib/packages/chart/src/utils/constants.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.COLORS = exports.defaultChartHeightDivider = exports.chartPaddingVertical = exports.chartPaddingHorizontal = void 0; +exports.chartPaddingHorizontal = 40; +exports.chartPaddingVertical = 40; //Увеличил паддинг на 10, слегка сжав график, чтобы влезал текст под Х координатой +exports.defaultChartHeightDivider = 4; +exports.COLORS = [ + '#E0F5E9', + '#9BE1DA', + '#56CDCB', + '#3B8B8E', + '#EF1E1C', + '#F43B1D', + '#F9571D', + '#FF8A57', +]; diff --git a/lib/packages/chart/src/utils/generateBar.js b/lib/packages/chart/src/utils/generateBar.js new file mode 100644 index 000000000..d47efcd42 --- /dev/null +++ b/lib/packages/chart/src/utils/generateBar.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generateBarsPath = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const constants_1 = require("./constants"); +const generateBarsPath = ({ height, width, coordinates, }) => { + 'worklet'; + const path = react_native_skia_1.Skia.Path.Make(); + const minY = 0; + let { maxX, maxY, minX } = { + maxX: 0, + maxY: 0, + minX: Infinity, + }; + coordinates.forEach(({ x, y }) => { + if (maxX < x) { + maxX = x; + } + if (x < minX) { + minX = x; + } + if (maxY < y) { + maxY = y; + } + }); + coordinates.forEach(({ x, y }) => { + const xCoordinate = (0, react_native_reanimated_1.interpolate)(x, [minX, maxX], [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + width - constants_1.chartPaddingHorizontal / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP); + path.moveTo(xCoordinate, (0, react_native_reanimated_1.interpolate)(0, [minY, maxY], [ + height - constants_1.chartPaddingVertical / 2, + constants_1.chartPaddingVertical + constants_1.chartPaddingVertical / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP)); + path.lineTo(xCoordinate, (0, react_native_reanimated_1.interpolate)(y, [minY, maxY], [height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], react_native_reanimated_1.Extrapolation.CLAMP)); + }); + return { + path, + maxX, + maxY, + minX, + minY, + }; +}; +exports.generateBarsPath = generateBarsPath; diff --git a/lib/packages/chart/src/utils/generateCoordinatesPath.js b/lib/packages/chart/src/utils/generateCoordinatesPath.js new file mode 100644 index 000000000..16eae9433 --- /dev/null +++ b/lib/packages/chart/src/utils/generateCoordinatesPath.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generateCoordinatesPath = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const constants_1 = require("./constants"); +const generateCoordinatesPath = ({ height, width, }) => { + 'worklet'; + return react_native_skia_1.Skia.Path.Make() + .moveTo(constants_1.chartPaddingHorizontal, 0) + .lineTo(constants_1.chartPaddingHorizontal, height - constants_1.chartPaddingVertical / 2) + .lineTo(width, height - constants_1.chartPaddingVertical / 2); +}; +exports.generateCoordinatesPath = generateCoordinatesPath; diff --git a/lib/packages/chart/src/utils/generateLinePath.js b/lib/packages/chart/src/utils/generateLinePath.js new file mode 100644 index 000000000..ead9570dc --- /dev/null +++ b/lib/packages/chart/src/utils/generateLinePath.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generateLinePath = void 0; +const react_native_skia_1 = require("@shopify/react-native-skia"); +const react_native_reanimated_1 = require("react-native-reanimated"); +const constants_1 = require("./constants"); +const generateLinePath = ({ height, width, coordinates, maxY, maxX, minY, minX, }) => { + 'worklet'; + const path = react_native_skia_1.Skia.Path.Make(); + coordinates.forEach(({ x, y }, index) => { + const xCoordinate = (0, react_native_reanimated_1.interpolate)(x, [minX, maxX], [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + width - constants_1.chartPaddingHorizontal / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP); + const yCoordinate = (0, react_native_reanimated_1.interpolate)(y, [minY, maxY], [height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], react_native_reanimated_1.Extrapolation.CLAMP); + if (index === 0) { + path.moveTo(xCoordinate, yCoordinate); + } + path.lineTo(xCoordinate, yCoordinate); + }); + return { + path, + }; +}; +exports.generateLinePath = generateLinePath; diff --git a/lib/packages/chart/src/utils/generatePeriodsWithBarPaths.js b/lib/packages/chart/src/utils/generatePeriodsWithBarPaths.js new file mode 100644 index 000000000..acc5b4e5a --- /dev/null +++ b/lib/packages/chart/src/utils/generatePeriodsWithBarPaths.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generatePeriodsWithBarPaths = void 0; +const generateBar_1 = require("./generateBar"); +const generatePeriodsWithBarPaths = ({ dataset, width, height, }) => { + 'worklet'; + const periods = Object.keys(dataset); + return periods.map(period => { + const lines = dataset[period]; + const firstLine = lines[0]; + const { coordinates, colors } = firstLine; + const { path: chartPath, maxX, maxY, minX, minY, } = (0, generateBar_1.generateBarsPath)({ + width, + height, + coordinates, + }); + const coordinatesLength = coordinates.length; + return { + chartPath, + maxX, + maxY, + minX, + minY, + coordinatesLength, + colors, + }; + }); +}; +exports.generatePeriodsWithBarPaths = generatePeriodsWithBarPaths; diff --git a/lib/packages/chart/src/utils/generatePeriodsWithLinePaths.js b/lib/packages/chart/src/utils/generatePeriodsWithLinePaths.js new file mode 100644 index 000000000..3e0248d03 --- /dev/null +++ b/lib/packages/chart/src/utils/generatePeriodsWithLinePaths.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generatePeriodsWithLinePaths = void 0; +const generateLinePath_1 = require("./generateLinePath"); +const getLinesMinMax_1 = require("./getLinesMinMax"); +const constants_1 = require("./constants"); +const generatePeriodsWithLinePaths = ({ dataset, width, height, }) => { + 'worklet'; + const periods = Object.keys(dataset); + return periods.map(period => { + const lines = dataset[period]; + const { maxY, maxX, minY, minX } = (0, getLinesMinMax_1.getLinesMinMax)(lines); + let maxCoordinatesLength = 0; + const temp = lines.map(line => { + const { coordinates, colors, name } = line; + const { path: chartPath } = (0, generateLinePath_1.generateLinePath)({ + width, + height, + coordinates, + maxY, + maxX, + minY, + minX, + }); + maxCoordinatesLength = Math.max(maxCoordinatesLength, coordinates.length); + return { + path: chartPath, + colors: colors ?? constants_1.COLORS, + name, + }; + }); + return { + maxX, + maxY, + minY, + minX, + maxCoordinatesLength, + lines: temp, + }; + }); +}; +exports.generatePeriodsWithLinePaths = generatePeriodsWithLinePaths; diff --git a/lib/packages/chart/src/utils/getCoordinateValues.js b/lib/packages/chart/src/utils/getCoordinateValues.js new file mode 100644 index 000000000..5867e2ed1 --- /dev/null +++ b/lib/packages/chart/src/utils/getCoordinateValues.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getCoordinateValues = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const react_native_skia_1 = require("@shopify/react-native-skia"); +const constants_1 = require("./constants"); +const getCoordinateValues = ({ font, maxY, minY, maxX, minX, height, width, coordinatesLength, formatterX, formatterY, }) => { + 'worklet'; + const netCount = coordinatesLength - 1; + const stepY = (maxY - minY) / netCount; + const stepX = (maxX - minX) / netCount; + const coordinateValuesY = []; + const coordinateValuesX = []; + let lastXEndOfText = 0; + let lastYEndOfText = height; + for (let i = 0; i < coordinatesLength; i++) { + // For Y coordinate + const valueY = minY + stepY * i; + const coordinateY = (0, react_native_reanimated_1.interpolate)(valueY, [minY, maxY], [height - constants_1.chartPaddingVertical, constants_1.chartPaddingVertical / 2], react_native_reanimated_1.Extrapolation.CLAMP); + const valueYFormatted = formatterY?.(valueY) ?? valueY.toFixed(2); + const { height: textYHeight } = font.measureText(valueYFormatted); + const textYCoord = coordinateY + textYHeight / 2; + const textYTop = textYCoord - textYHeight; + const pathY = react_native_skia_1.Skia.Path.Make() + .moveTo(constants_1.chartPaddingHorizontal, coordinateY) + .lineTo(width, coordinateY); + pathY.dash(2, 2, 2); + if (textYCoord < lastYEndOfText) { + coordinateValuesY.push({ + value: valueYFormatted, + coordinate: textYCoord, + path: pathY, + }); + lastYEndOfText = textYTop; + } + // For X coordinate + const valueX = minX + stepX * i; + const coordinateX = (0, react_native_reanimated_1.interpolate)(valueX, [minX, maxX], [ + constants_1.chartPaddingHorizontal + constants_1.chartPaddingHorizontal / 2, + width - constants_1.chartPaddingHorizontal / 2, + ], react_native_reanimated_1.Extrapolation.CLAMP); + const valueXFormatted = formatterX?.(valueX) ?? valueX.toFixed(2); + const { width: textXWidth } = font.measureText(valueXFormatted); + const textXCoord = coordinateX - textXWidth / 2; + const textXEnd = coordinateX + textXWidth; + const pathX = react_native_skia_1.Skia.Path.Make() + .moveTo(coordinateX, height - constants_1.chartPaddingVertical / 2) + .lineTo(coordinateX, 0); + pathX.dash(2, 2, 2); + if (textXCoord > lastXEndOfText) { + coordinateValuesX.push({ + value: valueXFormatted, + coordinate: textXCoord, + path: pathX, + }); + lastXEndOfText = textXEnd; + } + } + return { + coordinateValuesY, + coordinateValuesX, + }; +}; +exports.getCoordinateValues = getCoordinateValues; diff --git a/lib/packages/chart/src/utils/getLinesMinMax.js b/lib/packages/chart/src/utils/getLinesMinMax.js new file mode 100644 index 000000000..1b34edf1c --- /dev/null +++ b/lib/packages/chart/src/utils/getLinesMinMax.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLinesMinMax = void 0; +const getLinesMinMax = (lines) => { + 'worklet'; + return lines.reduce(({ maxX, maxY, minX, minY }, { coordinates }) => { + coordinates.forEach(({ x, y }) => { + maxX = Math.max(x, maxX); + minX = Math.min(x, minX); + maxY = Math.max(y, maxY); + minY = Math.min(y, minY); + }); + return { maxX, maxY, minX, minY }; + }, { + maxX: 0, + maxY: 0, + minX: Infinity, + minY: Infinity, + }); +}; +exports.getLinesMinMax = getLinesMinMax; diff --git a/lib/packages/chart/src/utils/index.js b/lib/packages/chart/src/utils/index.js new file mode 100644 index 000000000..6712b0f99 --- /dev/null +++ b/lib/packages/chart/src/utils/index.js @@ -0,0 +1,24 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./constants"), exports); +__exportStar(require("./generateBar"), exports); +__exportStar(require("./generateCoordinatesPath"), exports); +__exportStar(require("./generateLinePath"), exports); +__exportStar(require("./generatePeriodsWithBarPaths"), exports); +__exportStar(require("./generatePeriodsWithLinePaths"), exports); +__exportStar(require("./getCoordinateValues"), exports); +__exportStar(require("./getLinesMinMax"), exports); diff --git a/lib/packages/core/index.js b/lib/packages/core/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/core/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/core/src/basic/components/Button/ButtonWrapper.js b/lib/packages/core/src/basic/components/Button/ButtonWrapper.js new file mode 100644 index 000000000..d7ff24bcb --- /dev/null +++ b/lib/packages/core/src/basic/components/Button/ButtonWrapper.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const ButtonWrapper = (0, react_1.forwardRef)((props, ref) => { + return ; +}); +exports.default = ButtonWrapper; diff --git a/lib/packages/core/src/basic/components/Button/__tests__/Button.test.js b/lib/packages/core/src/basic/components/Button/__tests__/Button.test.js new file mode 100644 index 000000000..aeffa20ff --- /dev/null +++ b/lib/packages/core/src/basic/components/Button/__tests__/Button.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ButtonWrapper_1 = __importDefault(require("../ButtonWrapper")); +describe('@lad-tech/mobydick-core/Button', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/Button/index.js b/lib/packages/core/src/basic/components/Button/index.js new file mode 100644 index 000000000..318071fe2 --- /dev/null +++ b/lib/packages/core/src/basic/components/Button/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ButtonWrapper = void 0; +const ButtonWrapper_1 = __importDefault(require("./ButtonWrapper")); +exports.ButtonWrapper = ButtonWrapper_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/Button/types.js b/lib/packages/core/src/basic/components/Button/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/Button/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/FlatList/FlatList.js b/lib/packages/core/src/basic/components/FlatList/FlatList.js new file mode 100644 index 000000000..4b914ade2 --- /dev/null +++ b/lib/packages/core/src/basic/components/FlatList/FlatList.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const FlatList = (0, react_1.forwardRef)((props, ref) => { + return ; +}); +exports.default = FlatList; diff --git a/lib/packages/core/src/basic/components/FlatList/__tests__/FlatList.test.js b/lib/packages/core/src/basic/components/FlatList/__tests__/FlatList.test.js new file mode 100644 index 000000000..f7338e7e9 --- /dev/null +++ b/lib/packages/core/src/basic/components/FlatList/__tests__/FlatList.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const FlatList_1 = __importDefault(require("../FlatList")); +const Text_1 = __importDefault(require("../../Text/Text")); +describe('@lad-tech/mobydick-core/FlatList', () => { + it('renders correctly', () => { + const renderItem = ({ item }) => { + return {item}; + }; + const { toJSON } = (0, react_native_1.render)( item.toString() + index.toString()}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/FlatList/index.js b/lib/packages/core/src/basic/components/FlatList/index.js new file mode 100644 index 000000000..3905f9947 --- /dev/null +++ b/lib/packages/core/src/basic/components/FlatList/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FlatList = void 0; +const FlatList_1 = __importDefault(require("./FlatList")); +exports.FlatList = FlatList_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/FlatList/types.js b/lib/packages/core/src/basic/components/FlatList/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/FlatList/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/Pressable/Pressable.js b/lib/packages/core/src/basic/components/Pressable/Pressable.js new file mode 100644 index 000000000..ae3598788 --- /dev/null +++ b/lib/packages/core/src/basic/components/Pressable/Pressable.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const Pressable = (0, react_1.forwardRef)((props, ref) => { + return ; +}); +exports.default = Pressable; diff --git a/lib/packages/core/src/basic/components/Pressable/__tests__/Pressable.test.js b/lib/packages/core/src/basic/components/Pressable/__tests__/Pressable.test.js new file mode 100644 index 000000000..2211b6c8b --- /dev/null +++ b/lib/packages/core/src/basic/components/Pressable/__tests__/Pressable.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Pressable_1 = __importDefault(require("../Pressable")); +describe('@lad-tech/mobydick-core/Pressable', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/Pressable/index.js b/lib/packages/core/src/basic/components/Pressable/index.js new file mode 100644 index 000000000..cedac23e6 --- /dev/null +++ b/lib/packages/core/src/basic/components/Pressable/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Pressable = void 0; +const Pressable_1 = __importDefault(require("./Pressable")); +exports.Pressable = Pressable_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/Pressable/types.js b/lib/packages/core/src/basic/components/Pressable/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/Pressable/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/ScrollView/ScrollView.js b/lib/packages/core/src/basic/components/ScrollView/ScrollView.js new file mode 100644 index 000000000..d06a67540 --- /dev/null +++ b/lib/packages/core/src/basic/components/ScrollView/ScrollView.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const ScrollView = (0, react_1.forwardRef)((props, ref) => { + return ; +}); +exports.default = ScrollView; diff --git a/lib/packages/core/src/basic/components/ScrollView/__tests__/ScrollView.test.js b/lib/packages/core/src/basic/components/ScrollView/__tests__/ScrollView.test.js new file mode 100644 index 000000000..9cbbf7f91 --- /dev/null +++ b/lib/packages/core/src/basic/components/ScrollView/__tests__/ScrollView.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ScrollView_1 = __importDefault(require("../ScrollView")); +describe('@lad-tech/mobydick-core/ScrollView', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/ScrollView/index.js b/lib/packages/core/src/basic/components/ScrollView/index.js new file mode 100644 index 000000000..fc95f72ea --- /dev/null +++ b/lib/packages/core/src/basic/components/ScrollView/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScrollView = void 0; +const ScrollView_1 = __importDefault(require("./ScrollView")); +exports.ScrollView = ScrollView_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/ScrollView/types.js b/lib/packages/core/src/basic/components/ScrollView/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/ScrollView/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/Text/Text.js b/lib/packages/core/src/basic/components/Text/Text.js new file mode 100644 index 000000000..4868de1bc --- /dev/null +++ b/lib/packages/core/src/basic/components/Text/Text.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const config_1 = require("../../config"); +const Text = (0, react_1.forwardRef)((props, ref) => { + return (); +}); +exports.default = Text; diff --git a/lib/packages/core/src/basic/components/Text/__tests__/Text.test.js b/lib/packages/core/src/basic/components/Text/__tests__/Text.test.js new file mode 100644 index 000000000..e788139c8 --- /dev/null +++ b/lib/packages/core/src/basic/components/Text/__tests__/Text.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Text_1 = __importDefault(require("../Text")); +describe('@lad-tech/mobydick-core/Text', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(Text); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/Text/index.js b/lib/packages/core/src/basic/components/Text/index.js new file mode 100644 index 000000000..72001abe8 --- /dev/null +++ b/lib/packages/core/src/basic/components/Text/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Text = void 0; +const Text_1 = __importDefault(require("./Text")); +exports.Text = Text_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/Text/types.js b/lib/packages/core/src/basic/components/Text/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/Text/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/TextInput/TextInput.js b/lib/packages/core/src/basic/components/TextInput/TextInput.js new file mode 100644 index 000000000..6721e2564 --- /dev/null +++ b/lib/packages/core/src/basic/components/TextInput/TextInput.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const config_1 = require("../../config"); +const TextInput = (0, react_1.forwardRef)((props, ref) => ()); +exports.default = TextInput; diff --git a/lib/packages/core/src/basic/components/TextInput/__tests__/TextInput.test.js b/lib/packages/core/src/basic/components/TextInput/__tests__/TextInput.test.js new file mode 100644 index 000000000..54df6ef3c --- /dev/null +++ b/lib/packages/core/src/basic/components/TextInput/__tests__/TextInput.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const TextInput_1 = __importDefault(require("../TextInput")); +describe('@lad-tech/mobydick-core/TextInput', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/TextInput/index.js b/lib/packages/core/src/basic/components/TextInput/index.js new file mode 100644 index 000000000..572327dcc --- /dev/null +++ b/lib/packages/core/src/basic/components/TextInput/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TextInput = void 0; +const TextInput_1 = __importDefault(require("./TextInput")); +exports.TextInput = TextInput_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/TextInput/types.js b/lib/packages/core/src/basic/components/TextInput/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/TextInput/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/TouchableHighlight/TouchableHighlight.js b/lib/packages/core/src/basic/components/TouchableHighlight/TouchableHighlight.js new file mode 100644 index 000000000..94766ffff --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableHighlight/TouchableHighlight.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const TouchableHighlight = (0, react_1.forwardRef)((props, ref) => { + return ; +}); +exports.default = TouchableHighlight; diff --git a/lib/packages/core/src/basic/components/TouchableHighlight/__tests__/TouchableHighlight.test.js b/lib/packages/core/src/basic/components/TouchableHighlight/__tests__/TouchableHighlight.test.js new file mode 100644 index 000000000..122b1b316 --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableHighlight/__tests__/TouchableHighlight.test.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const TouchableHighlight_1 = __importDefault(require("../TouchableHighlight")); +const View_1 = require("../../View"); +describe('@lad-tech/mobydick-core/TouchableHighlight', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/TouchableHighlight/index.js b/lib/packages/core/src/basic/components/TouchableHighlight/index.js new file mode 100644 index 000000000..7cefa694e --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableHighlight/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TouchableHighlight = void 0; +const TouchableHighlight_1 = __importDefault(require("./TouchableHighlight")); +exports.TouchableHighlight = TouchableHighlight_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/TouchableHighlight/types.js b/lib/packages/core/src/basic/components/TouchableHighlight/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableHighlight/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/TouchableOpacity/TouchableOpacity.js b/lib/packages/core/src/basic/components/TouchableOpacity/TouchableOpacity.js new file mode 100644 index 000000000..e865db06e --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableOpacity/TouchableOpacity.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const TouchableOpacity = (0, react_1.forwardRef)((props, ref) => ); +exports.default = TouchableOpacity; diff --git a/lib/packages/core/src/basic/components/TouchableOpacity/__tests__/TouchableOpacity.test.js b/lib/packages/core/src/basic/components/TouchableOpacity/__tests__/TouchableOpacity.test.js new file mode 100644 index 000000000..6449c17ca --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableOpacity/__tests__/TouchableOpacity.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const TouchableOpacity_1 = __importDefault(require("../TouchableOpacity")); +describe('@lad-tech/mobydick-core/TouchableOpacity', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/TouchableOpacity/index.js b/lib/packages/core/src/basic/components/TouchableOpacity/index.js new file mode 100644 index 000000000..8f2a5371e --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableOpacity/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TouchableOpacity = void 0; +const TouchableOpacity_1 = __importDefault(require("./TouchableOpacity")); +exports.TouchableOpacity = TouchableOpacity_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/TouchableOpacity/types.js b/lib/packages/core/src/basic/components/TouchableOpacity/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/TouchableOpacity/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/View/View.js b/lib/packages/core/src/basic/components/View/View.js new file mode 100644 index 000000000..79dcb7c05 --- /dev/null +++ b/lib/packages/core/src/basic/components/View/View.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const View = (0, react_1.forwardRef)((props, ref) => ()); +exports.default = View; diff --git a/lib/packages/core/src/basic/components/View/__tests__/View.test.js b/lib/packages/core/src/basic/components/View/__tests__/View.test.js new file mode 100644 index 000000000..ff315d854 --- /dev/null +++ b/lib/packages/core/src/basic/components/View/__tests__/View.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const View_1 = __importDefault(require("../View")); +describe('@lad-tech/mobydick-core/View', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/basic/components/View/index.js b/lib/packages/core/src/basic/components/View/index.js new file mode 100644 index 000000000..2a648cab0 --- /dev/null +++ b/lib/packages/core/src/basic/components/View/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.View = void 0; +const View_1 = __importDefault(require("./View")); +exports.View = View_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/basic/components/View/types.js b/lib/packages/core/src/basic/components/View/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/basic/components/View/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/basic/components/index.js b/lib/packages/core/src/basic/components/index.js new file mode 100644 index 000000000..05e1305ad --- /dev/null +++ b/lib/packages/core/src/basic/components/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./ScrollView"), exports); +__exportStar(require("./View"), exports); +__exportStar(require("./TextInput"), exports); +__exportStar(require("./Text"), exports); +__exportStar(require("./Button"), exports); +__exportStar(require("./TouchableOpacity"), exports); +__exportStar(require("./Pressable"), exports); +__exportStar(require("./TouchableHighlight"), exports); +__exportStar(require("./FlatList"), exports); diff --git a/lib/packages/core/src/basic/config/__tests__/config.test.js b/lib/packages/core/src/basic/config/__tests__/config.test.js new file mode 100644 index 000000000..547ee19d8 --- /dev/null +++ b/lib/packages/core/src/basic/config/__tests__/config.test.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const index_1 = require("../index"); +describe('config', () => { + test('setConfig and getConfig', () => { + expect((0, index_1.getConfig)().allowFontScaling).toBe(true); + (0, index_1.setConfig)({ allowFontScaling: true }); + expect((0, index_1.getConfig)().allowFontScaling).toBe(true); + (0, index_1.setConfig)({ allowFontScaling: false }); + expect((0, index_1.getConfig)().allowFontScaling).toBe(false); + }); +}); diff --git a/lib/packages/core/src/basic/config/index.js b/lib/packages/core/src/basic/config/index.js new file mode 100644 index 000000000..35e793687 --- /dev/null +++ b/lib/packages/core/src/basic/config/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getConfig = exports.setConfig = void 0; +let config = { + allowFontScaling: true, +}; +const setConfig = (newConfig) => { + config = newConfig; +}; +exports.setConfig = setConfig; +const getConfig = () => config; +exports.getConfig = getConfig; diff --git a/lib/packages/core/src/basic/index.js b/lib/packages/core/src/basic/index.js new file mode 100644 index 000000000..58c8624a3 --- /dev/null +++ b/lib/packages/core/src/basic/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./config"), exports); diff --git a/lib/packages/core/src/chat/components/ChatInput.js b/lib/packages/core/src/chat/components/ChatInput.js new file mode 100644 index 000000000..1525d306f --- /dev/null +++ b/lib/packages/core/src/chat/components/ChatInput.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const styles_1 = require("../../styles"); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const ChatInputField_1 = __importDefault(require("./ChatInputField")); +const ChatPressableIcon_1 = __importDefault(require("./ChatPressableIcon")); +const ChatInput = props => { + const { children, style, enabled = true, containerStyle } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate); + const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)(); + return ( + {children} + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + container: { + flexDirection: 'row', + alignItems: 'flex-end', + backgroundColor: colors.BgPrimary, + width: '100%', + paddingHorizontal: spaces.Space20, + paddingVertical: spaces.Space16, + }, +})); +ChatInput.ChatInputField = ChatInputField_1.default; +ChatInput.ChatPressableIcon = ChatPressableIcon_1.default; +exports.default = ChatInput; diff --git a/lib/packages/core/src/chat/components/ChatInputField.js b/lib/packages/core/src/chat/components/ChatInputField.js new file mode 100644 index 000000000..71d6d75fd --- /dev/null +++ b/lib/packages/core/src/chat/components/ChatInputField.js @@ -0,0 +1,40 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const styles_1 = require("../../styles"); +const InputField_1 = __importDefault(require("../../inputs/components/InputField/InputField")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const other_1 = require("../../other"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const ChatInputField = (props) => { + const { textInputContainerStyle, style, containerStyle, ...otherProps } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate); + return (); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + inputContainer: { + minHeight: (0, px_1.default)(38), + maxHeight: (0, px_1.default)(196), + width: '100%', + borderWidth: undefined, + marginVertical: 0, + alignItems: 'center', + paddingVertical: react_native_1.Platform.select({ + android: spaces.Space4, + ios: spaces.Space8, + }), + }, + container: { + flex: 1, + flexDirection: 'column', + minWidth: undefined, + marginRight: spaces.Space2, + }, + textInput: { + paddingTop: 0, + }, +})); +exports.default = ChatInputField; diff --git a/lib/packages/core/src/chat/components/ChatMessage.js b/lib/packages/core/src/chat/components/ChatMessage.js new file mode 100644 index 000000000..c88a9e741 --- /dev/null +++ b/lib/packages/core/src/chat/components/ChatMessage.js @@ -0,0 +1,70 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const typography_1 = require("../../typography"); +const isNumber_1 = require("../../other/functions/isNumber"); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const isValidMessageTime_1 = require("../functions/isValidMessageTime"); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const ChatMessage = (props) => { + const { isMe, message, image, time } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate, isMe); + return ( + + {image && ( + + )} + + {message && ( + + {message} + + )} + + + {(0, isValidMessageTime_1.isValidMessageTime)(time) && ( + {time} + )} + + + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, isMe) => ({ + container: { + flexDirection: 'row', + alignSelf: isMe ? 'flex-end' : 'flex-start', + maxWidth: '90%', + }, + bubble: { + backgroundColor: isMe ? colors.ElementBase : colors.BgPrimary, + borderRadius: spaces.Space10, + borderBottomLeftRadius: isMe ? spaces.Space10 : 0, + borderBottomRightRadius: isMe ? 0 : spaces.Space10, + marginVertical: spaces.Space4, + }, + imageView: { + margin: spaces.Space4, + }, + image: { + minWidth: (0, px_1.default)(129), + maxWidth: (0, px_1.default)(148), + minHeight: (0, px_1.default)(129), + maxHeight: (0, px_1.default)(148), + }, + textArea: { + paddingTop: spaces.Space8, + paddingBottom: spaces.Space4, + paddingHorizontal: spaces.Space10, + }, + timeArea: { + paddingHorizontal: spaces.Space6, + paddingBottom: spaces.Space8, + alignSelf: 'flex-end', + }, +})); +exports.default = ChatMessage; diff --git a/lib/packages/core/src/chat/components/ChatMessageAvatar.js b/lib/packages/core/src/chat/components/ChatMessageAvatar.js new file mode 100644 index 000000000..15e5524b1 --- /dev/null +++ b/lib/packages/core/src/chat/components/ChatMessageAvatar.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Avatar_1 = __importDefault(require("../../other/components/Avatar/Avatar")); +const TouchableOpacity_1 = __importDefault(require("../../basic/components/TouchableOpacity/TouchableOpacity")); +const other_1 = require("../../other"); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const styles_1 = require("../../styles"); +const ChatMessage_1 = __importDefault(require("./ChatMessage")); +const ChatMessageAvatar = (props) => { + const { onPress, isMe, message, image, time, ...otherProps } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate, isMe); + return ( + + + + + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }, isMe) => ({ + container: { + flexDirection: 'row', + alignSelf: isMe ? 'flex-end' : 'flex-start', + }, + avatar: { + paddingRight: spaces.Space8, + marginVertical: spaces.Space4, + alignSelf: 'flex-end', + }, +})); +exports.default = ChatMessageAvatar; diff --git a/lib/packages/core/src/chat/components/ChatPressableIcon.js b/lib/packages/core/src/chat/components/ChatPressableIcon.js new file mode 100644 index 000000000..36b431406 --- /dev/null +++ b/lib/packages/core/src/chat/components/ChatPressableIcon.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const TouchableOpacity_1 = __importDefault(require("../../basic/components/TouchableOpacity/TouchableOpacity")); +const SimpleIcon_1 = __importDefault(require("../../styles/icons/font/SimpleIcon")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../styles/hooks/useTheme")); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const ChatPressableIcon = (props) => { + const { colors } = (0, useTheme_1.default)(); + const { name, color = colors.IconBase, backgroundColor = colors.BgAccent, ...otherProps } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate); + return ( + + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + container: { + width: (0, px_1.default)(38), + height: (0, px_1.default)(38), + borderRadius: spaces.Space8, + marginLeft: spaces.Space6, + justifyContent: 'center', + alignItems: 'center', + }, +})); +exports.default = ChatPressableIcon; diff --git a/lib/packages/core/src/chat/components/__tests__/ChatInput.test.js b/lib/packages/core/src/chat/components/__tests__/ChatInput.test.js new file mode 100644 index 000000000..7658f8fcb --- /dev/null +++ b/lib/packages/core/src/chat/components/__tests__/ChatInput.test.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const react_native_2 = require("react-native"); +const ChatInput_1 = __importDefault(require("../ChatInput")); +describe('@lad-tech/mobydick-core/ChatInput', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( + + + null}/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with containerStyle, style', () => { + const { toJSON } = (0, react_native_1.render)( + + + null}/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly android', () => { + react_native_2.Platform.OS = 'android'; + const { toJSON } = (0, react_native_1.render)( + + + null}/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/chat/components/__tests__/ChatInputField.test.js b/lib/packages/core/src/chat/components/__tests__/ChatInputField.test.js new file mode 100644 index 000000000..ec623a319 --- /dev/null +++ b/lib/packages/core/src/chat/components/__tests__/ChatInputField.test.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ChatInputField_1 = __importDefault(require("../ChatInputField")); +const other_1 = require("../../../other"); +describe('@lad-tech/mobydick-core/ChatInputField', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with props', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly focused/blur', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + const TextInput = getByLabelText(other_1.LABELS.chatInputField); + (0, react_native_1.act)(() => TextInput.props.onFocus()); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => TextInput.props.onBlur()); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/chat/components/__tests__/ChatMessage.test.js b/lib/packages/core/src/chat/components/__tests__/ChatMessage.test.js new file mode 100644 index 000000000..448c3943d --- /dev/null +++ b/lib/packages/core/src/chat/components/__tests__/ChatMessage.test.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ChatMessage_1 = __importDefault(require("../ChatMessage")); +describe('@lad-tech/mobydick-core/ChatMessage', () => { + it('renders correctly isNotMe', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isMe', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isMe image', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isMe image number two', () => { + const fileHandle = 42; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly isNotValid time', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/chat/components/__tests__/ChatMessageAvatar.test.js b/lib/packages/core/src/chat/components/__tests__/ChatMessageAvatar.test.js new file mode 100644 index 000000000..cfc4bfa32 --- /dev/null +++ b/lib/packages/core/src/chat/components/__tests__/ChatMessageAvatar.test.js @@ -0,0 +1,21 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ChatMessageAvatar_1 = __importDefault(require("../ChatMessageAvatar")); +const userWithoutPhoto = { + firstName: 'Иван', + lastName: 'Пушкин', +}; +describe('@lad-tech/mobydick-core/ChatMessageAvatar', () => { + it('renders correctly isNotMe', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly onPress', () => { + const { toJSON } = (0, react_native_1.render)( null} user={userWithoutPhoto} message={'message'} isMe={true} time={'12:12'}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/chat/components/__tests__/ChatPressableIcon.test.js b/lib/packages/core/src/chat/components/__tests__/ChatPressableIcon.test.js new file mode 100644 index 000000000..9d86c4717 --- /dev/null +++ b/lib/packages/core/src/chat/components/__tests__/ChatPressableIcon.test.js @@ -0,0 +1,21 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ChatPressableIcon_1 = __importDefault(require("../ChatPressableIcon")); +describe('@lad-tech/mobydick-core/ChatPressableIcon', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with props', () => { + const { toJSON } = (0, react_native_1.render)( null} color={'red'} backgroundColor={'black'} disabled={false}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly disabled', () => { + const { toJSON } = (0, react_native_1.render)( null} color={'red'} backgroundColor={'black'} disabled={true}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/chat/components/index.js b/lib/packages/core/src/chat/components/index.js new file mode 100644 index 000000000..9a6c03ec0 --- /dev/null +++ b/lib/packages/core/src/chat/components/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChatMessageAvatar = exports.ChatMessage = exports.ChatPressableIcon = exports.ChatInput = exports.ChatInputField = void 0; +const ChatInputField_1 = __importDefault(require("./ChatInputField")); +exports.ChatInputField = ChatInputField_1.default; +const ChatInput_1 = __importDefault(require("./ChatInput")); +exports.ChatInput = ChatInput_1.default; +const ChatPressableIcon_1 = __importDefault(require("./ChatPressableIcon")); +exports.ChatPressableIcon = ChatPressableIcon_1.default; +const ChatMessage_1 = __importDefault(require("./ChatMessage")); +exports.ChatMessage = ChatMessage_1.default; +const ChatMessageAvatar_1 = __importDefault(require("./ChatMessageAvatar")); +exports.ChatMessageAvatar = ChatMessageAvatar_1.default; diff --git a/lib/packages/core/src/chat/functions/__tests__/isValidMessageTime.test.js b/lib/packages/core/src/chat/functions/__tests__/isValidMessageTime.test.js new file mode 100644 index 000000000..f827228db --- /dev/null +++ b/lib/packages/core/src/chat/functions/__tests__/isValidMessageTime.test.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const isValidMessageTime_1 = require("../isValidMessageTime"); +describe('@lad-tech/mobydick-core/Chat/isValidMessageTime', () => { + it('08:11', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('08:11'); + expect(res).toBeTruthy(); + }); + it('00:00', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('00:00'); + expect(res).toBeTruthy(); + }); + it('11:11', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('11:11'); + expect(res).toBeTruthy(); + }); + it('23:59', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('23:59'); + expect(res).toBeTruthy(); + }); + it('test', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('test'); + expect(res).toBeFalsy(); + }); + it('88:11', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('88:11'); + expect(res).toBeFalsy(); + }); + it('00:61', () => { + const res = (0, isValidMessageTime_1.isValidMessageTime)('00:61'); + expect(res).toBeFalsy(); + }); +}); diff --git a/lib/packages/core/src/chat/functions/isValidMessageTime.js b/lib/packages/core/src/chat/functions/isValidMessageTime.js new file mode 100644 index 000000000..8be9adb00 --- /dev/null +++ b/lib/packages/core/src/chat/functions/isValidMessageTime.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isValidMessageTime = void 0; +const isValidMessageTime = (time) => { + const pattern = /^([01]\d|2[0-3]):[0-5]\d$/; + return pattern.test(time); +}; +exports.isValidMessageTime = isValidMessageTime; diff --git a/lib/packages/core/src/chat/index.js b/lib/packages/core/src/chat/index.js new file mode 100644 index 000000000..775487958 --- /dev/null +++ b/lib/packages/core/src/chat/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/chat/types.js b/lib/packages/core/src/chat/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/chat/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/controls/CheckBox/CheckBox.js b/lib/packages/core/src/controls/CheckBox/CheckBox.js new file mode 100644 index 000000000..6590a2782 --- /dev/null +++ b/lib/packages/core/src/controls/CheckBox/CheckBox.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Control_1 = __importDefault(require("../Control")); +const constants_1 = __importDefault(require("../constants")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const Pressable_1 = __importDefault(require("../../basic/components/Pressable/Pressable")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const CheckBox = ({ children, ...rest }) => { + const { disabled, selected, containerStyle, checkboxStyle, onPress, width, height, } = rest; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, { disabled, selected, width, height }); + return ( + + {children} + ); +}; +exports.default = CheckBox; diff --git a/lib/packages/core/src/controls/CheckBox/CheckSquare.js b/lib/packages/core/src/controls/CheckBox/CheckSquare.js new file mode 100644 index 000000000..3d77fb16d --- /dev/null +++ b/lib/packages/core/src/controls/CheckBox/CheckSquare.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Pressable_1 = require("../../basic/components/Pressable"); +const icons_1 = require("../../styles/icons"); +const useTheme_1 = __importDefault(require("../../styles/hooks/useTheme")); +const px_1 = __importDefault(require("../../styles/utils/px")); +const CheckSquare = ({ selected, ...rest }) => { + const { colors } = (0, useTheme_1.default)(); + const width = rest.width || (0, px_1.default)(20); + const height = rest.height || (0, px_1.default)(20); + return ( + {selected ? () : null} + ); +}; +exports.default = CheckSquare; diff --git a/lib/packages/core/src/controls/CheckBox/__tests__/CheckBox.test.js b/lib/packages/core/src/controls/CheckBox/__tests__/CheckBox.test.js new file mode 100644 index 000000000..83d952a5b --- /dev/null +++ b/lib/packages/core/src/controls/CheckBox/__tests__/CheckBox.test.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Text_1 = __importDefault(require("../../../basic/components/Text/Text")); +const CheckBox_1 = __importDefault(require("../CheckBox")); +describe('CheckBox', () => { + it('should renders correctly', function () { + const { toJSON } = (0, react_native_1.render)( + Pepega + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly checked', function () { + const { toJSON } = (0, react_native_1.render)( + Pepega + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly disabled', function () { + const { toJSON } = (0, react_native_1.render)( + Pepega + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/controls/CheckBox/index.js b/lib/packages/core/src/controls/CheckBox/index.js new file mode 100644 index 000000000..f94db4678 --- /dev/null +++ b/lib/packages/core/src/controls/CheckBox/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CheckBox = void 0; +const CheckBox_1 = __importDefault(require("./CheckBox")); +exports.CheckBox = CheckBox_1.default; diff --git a/lib/packages/core/src/controls/CheckBox/stylesCreate.js b/lib/packages/core/src/controls/CheckBox/stylesCreate.js new file mode 100644 index 000000000..2bfa5fe87 --- /dev/null +++ b/lib/packages/core/src/controls/CheckBox/stylesCreate.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, { disabled = false, selected = false, width = (0, px_1.default)(20), height = (0, px_1.default)(20) }) => ({ + container: { + flexDirection: 'row', + alignItems: 'center', + backgroundColor: 'transparent', + opacity: disabled ? 0.4 : 1, + maxWidth: '100%', + }, + checkbox: { + borderWidth: selected ? 0 : spaces.Space2, + borderColor: colors.BorderNormal, + width: width, + height: height, + borderRadius: spaces.Space4, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/controls/Control.js b/lib/packages/core/src/controls/Control.js new file mode 100644 index 000000000..f7d105f3d --- /dev/null +++ b/lib/packages/core/src/controls/Control.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const constants_1 = __importDefault(require("./constants")); +const CheckSquare_1 = __importDefault(require("./CheckBox/CheckSquare")); +const Circle_1 = __importDefault(require("./Radio/Circle")); +const Control = ({ type, ...rest }) => { + return type === constants_1.default.checkBox ? () : (); +}; +exports.default = Control; diff --git a/lib/packages/core/src/controls/ControlsLists/ControlsList.js b/lib/packages/core/src/controls/ControlsLists/ControlsList.js new file mode 100644 index 000000000..a22322039 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/ControlsList.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const useCloneControls_1 = __importDefault(require("./useCloneControls")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ControlsList = ({ single = false, horizontal = false, onChange, disabled = false, children, values, listStyles, }) => { + const { radios } = (0, useCloneControls_1.default)(children, values, onChange, single, disabled); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, horizontal); + return {radios}; +}; +exports.default = ControlsList; diff --git a/lib/packages/core/src/controls/ControlsLists/__tests__/ControlsList.js b/lib/packages/core/src/controls/ControlsLists/__tests__/ControlsList.js new file mode 100644 index 000000000..684e25b00 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/__tests__/ControlsList.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const index_1 = require("../index"); +const CheckBox_1 = require("../../CheckBox"); +const Radio_1 = require("../../Radio"); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +describe('ControlsList', () => { + it('should renders correctly with checkbox type', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with checkbox type and single', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with checkbox type and horizontal', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with radio type', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with radio type and single', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with radio type and horizontal', function () { + const { toJSON } = (0, react_native_1.render)( + + 1 + + + 2 + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/controls/ControlsLists/__tests__/useCloneControls.js b/lib/packages/core/src/controls/ControlsLists/__tests__/useCloneControls.js new file mode 100644 index 000000000..eb0995d48 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/__tests__/useCloneControls.js @@ -0,0 +1,63 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const react_native_1 = require("@testing-library/react-native"); +const Radio_1 = require("../../Radio"); +const useCloneControls_1 = __importDefault(require("../useCloneControls")); +const index_1 = require("../index"); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const list = (single) => ( + + 1 + + + 2 + + ); +describe('useCloneControls', function () { + it('should works right', async function () { + const controls = list(false).props.children; + const { result } = (0, react_hooks_1.renderHook)(() => (0, useCloneControls_1.default)(controls, [], jest.fn())); + expect(result.current.radios).toHaveLength(2); + expect(result.current.values).toHaveLength(0); + }); + it('should return both values', function () { + const controls = list(false).props.children; + let values = []; + const onChange = jest.fn(val => { + values = val; + }); + const { result, rerender } = (0, react_hooks_1.renderHook)(() => (0, useCloneControls_1.default)(controls, values, onChange)); + react_native_1.fireEvent.press(result.current.radios[0]); + expect(onChange).toHaveBeenCalledWith(['1']); + rerender(); + react_native_1.fireEvent.press(result.current.radios[1]); + expect(onChange).toHaveBeenCalledWith(['1', '2']); + }); + it('should return one value', function () { + const controls = list(true).props.children; + const onChange = jest.fn(); + const { result } = (0, react_hooks_1.renderHook)(() => (0, useCloneControls_1.default)(controls, [], onChange, true)); + react_native_1.fireEvent.press(result.current.radios[0]); + expect(onChange).toHaveBeenCalledWith(['1']); + react_native_1.fireEvent.press(result.current.radios[1]); + expect(onChange).toHaveBeenCalledWith(['2']); + }); + it('should return one value with selected prop', async function () { + const controls = list(false).props.children; + let values = ['1']; + const onChange = jest.fn(val => { + values = val; + }); + const { result, rerender } = (0, react_hooks_1.renderHook)(() => (0, useCloneControls_1.default)(controls, values, onChange, false)); + react_native_1.fireEvent.press(result.current.radios[1]); + rerender(); + react_native_1.fireEvent.press(result.current.radios[0]); + rerender(); + expect(result.current.values).toHaveLength(1); + expect(result.current.values[0]).toEqual('2'); + }); +}); diff --git a/lib/packages/core/src/controls/ControlsLists/index.js b/lib/packages/core/src/controls/ControlsLists/index.js new file mode 100644 index 000000000..9df2e43a1 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlsList = void 0; +const ControlsList_1 = __importDefault(require("./ControlsList")); +exports.ControlsList = ControlsList_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/controls/ControlsLists/stylesCreate.js b/lib/packages/core/src/controls/ControlsLists/stylesCreate.js new file mode 100644 index 000000000..1e485fd7e --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/stylesCreate.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../styles"); +const stylesCreate = (0, styles_1.createStyles)((_, horizontal) => ({ + list: { + flexDirection: horizontal ? 'row' : 'column', + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/controls/ControlsLists/types.js b/lib/packages/core/src/controls/ControlsLists/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/controls/ControlsLists/useCloneControls.js b/lib/packages/core/src/controls/ControlsLists/useCloneControls.js new file mode 100644 index 000000000..82f95caa8 --- /dev/null +++ b/lib/packages/core/src/controls/ControlsLists/useCloneControls.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useCloneControls = (controls, values, onChange, single = false, disabled = false) => { + const radios = controls.map((radio) => { + const value = radio.props.value; + const selected = values.some(e => e === value); + return (0, react_1.cloneElement)(radio, { + key: value, + selected, + disabled, + onPress: () => { + let data = [...values]; + if (single) { + data = [value]; + } + else { + if (selected) { + data = data.filter(e => e !== value); + } + else { + data = [...data, value]; + } + } + onChange(data); + }, + }); + }); + return { values, radios }; +}; +exports.default = useCloneControls; diff --git a/lib/packages/core/src/controls/Radio/Circle.js b/lib/packages/core/src/controls/Radio/Circle.js new file mode 100644 index 000000000..eea4d785f --- /dev/null +++ b/lib/packages/core/src/controls/Radio/Circle.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Pressable_1 = __importDefault(require("../../basic/components/Pressable/Pressable")); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const Circle = ({ outerStyle, innerStyle, selected = false, ...rest }) => { + return ( + {selected && } + ); +}; +exports.default = Circle; diff --git a/lib/packages/core/src/controls/Radio/Radio.js b/lib/packages/core/src/controls/Radio/Radio.js new file mode 100644 index 000000000..badbc8491 --- /dev/null +++ b/lib/packages/core/src/controls/Radio/Radio.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Control_1 = __importDefault(require("../Control")); +const constants_1 = __importDefault(require("../constants")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const Pressable_1 = require("../../basic/components/Pressable"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Radio = ({ selected = false, disabled = false, children, containerStyle, onPress, ...rest }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, selected, disabled); + return ( + + {children} + ); +}; +exports.default = Radio; diff --git a/lib/packages/core/src/controls/Radio/__tests__/Circle.test.js b/lib/packages/core/src/controls/Radio/__tests__/Circle.test.js new file mode 100644 index 000000000..7b37cb37d --- /dev/null +++ b/lib/packages/core/src/controls/Radio/__tests__/Circle.test.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_hooks_1 = require("@testing-library/react-hooks"); +const Circle_1 = __importDefault(require("../Circle")); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +describe('@lad-tech/mobydick-core/Radio/Circle', () => { + it('renders correctly', () => { + const { result } = (0, react_hooks_1.renderHook)(() => (0, useStyles_1.default)(stylesCreate_1.default, false, false)); + const [styles] = result.current; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly selected', () => { + const { result } = (0, react_hooks_1.renderHook)(() => (0, useStyles_1.default)(stylesCreate_1.default, false, false)); + const [styles] = result.current; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/controls/Radio/__tests__/Radio.test.js b/lib/packages/core/src/controls/Radio/__tests__/Radio.test.js new file mode 100644 index 000000000..fe0cb4652 --- /dev/null +++ b/lib/packages/core/src/controls/Radio/__tests__/Radio.test.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Radio_1 = __importDefault(require("../Radio")); +describe('@lad-tech/mobydick-core/Radio', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly selected', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly selected and disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/controls/Radio/index.js b/lib/packages/core/src/controls/Radio/index.js new file mode 100644 index 000000000..ef00a5d29 --- /dev/null +++ b/lib/packages/core/src/controls/Radio/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Radio = void 0; +const Radio_1 = __importDefault(require("./Radio")); +exports.Radio = Radio_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/controls/Radio/stylesCreate.js b/lib/packages/core/src/controls/Radio/stylesCreate.js new file mode 100644 index 000000000..4dcc60749 --- /dev/null +++ b/lib/packages/core/src/controls/Radio/stylesCreate.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, selected, disabled) => ({ + container: { + flexDirection: 'row', + alignItems: 'center', + backgroundColor: 'transparent', + opacity: disabled ? 0.4 : 1, + }, + circle: { + width: (0, px_1.default)(22), + aspectRatio: 1, + borderRadius: (0, px_1.default)(11), + backgroundColor: selected ? colors.ElementBase : 'transparent', + borderColor: selected ? colors.ElementBase : colors.BorderNormal, + borderWidth: spaces.Space2, + justifyContent: 'center', + alignItems: 'center', + }, + innerCircle: { + width: (0, px_1.default)(18), + aspectRatio: 1, + borderWidth: spaces.Space2, + borderRadius: (0, px_1.default)(9), + borderColor: colors.BgPrimary, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/controls/Radio/types.js b/lib/packages/core/src/controls/Radio/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/controls/Radio/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/controls/Slider/Slider.js b/lib/packages/core/src/controls/Slider/Slider.js new file mode 100644 index 000000000..687d320fa --- /dev/null +++ b/lib/packages/core/src/controls/Slider/Slider.js @@ -0,0 +1,170 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const constants_1 = require("../../other/constants"); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const helpers_1 = require("./helpers"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const hooks_1 = require("./hooks"); +const HighThumb_1 = __importDefault(require("./components/HighThumb")); +const Rail_1 = __importDefault(require("./components/Rail")); +const LowThumb_1 = __importDefault(require("./components/LowThumb")); +const trueFunc = () => true; +const falseFunc = () => false; +const THUMB_RADIUS_LOW = (0, px_1.default)(12) * 2; +const THUMB_RADIUS_HIGH = THUMB_RADIUS_LOW + (0, px_1.default)(6); +const Slider = ({ min, max, minRange = 0, step, low: lowProp, high: highProp, disableRange = false, disabled = false, onValueChanged, hitSlop = styles_1.HIT_SLOP.large, ...restProps }) => { + const { inPropsRef, inPropsRefPrev, setLow, setHigh } = (0, hooks_1.useLowHigh)(lowProp, disableRange ? max : highProp, min, max, step); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const lowThumbXRef = (0, react_1.useRef)(new react_native_1.Animated.Value(0)); + const highThumbXRef = (0, react_1.useRef)(new react_native_1.Animated.Value(0)); + const lowSize = (0, react_1.useRef)(new react_native_1.Animated.Value(THUMB_RADIUS_LOW)).current; + const highSize = (0, react_1.useRef)(new react_native_1.Animated.Value(THUMB_RADIUS_LOW)).current; + const pointerX = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current; + const { current: lowThumbX } = lowThumbXRef; + const { current: highThumbX } = highThumbXRef; + const gestureStateRef = (0, react_1.useRef)({ isLow: true, lastValue: 0, lastPosition: 0 }); + const containerWidthRef = (0, react_1.useRef)(0); + const [selectedRailStyle, updateSelectedRail] = (0, hooks_1.useSelectedRail)(inPropsRef, containerWidthRef, THUMB_RADIUS_LOW, disableRange); + const updateThumbs = (0, react_1.useCallback)(() => { + const { current: containerWidth } = containerWidthRef; + const { low, high } = inPropsRef.current; + if (!disableRange) { + const { current: highThumbX } = highThumbXRef; + const highPosition = ((high - min) / (max - min)) * (containerWidth - THUMB_RADIUS_LOW); + highThumbX.setValue(highPosition); + } + const { current: lowThumbX } = lowThumbXRef; + const lowPosition = ((low - min) / (max - min)) * (containerWidth - THUMB_RADIUS_LOW); + lowThumbX.setValue(lowPosition); + updateSelectedRail(); + onValueChanged?.(low, high, false); + }, [ + disableRange, + inPropsRef, + max, + min, + THUMB_RADIUS_LOW, + updateSelectedRail, + ]); + (0, react_1.useEffect)(() => { + const { lowPrev, highPrev } = inPropsRefPrev; + if ((lowProp !== undefined && lowProp !== lowPrev) || + (highProp !== undefined && highProp !== highPrev)) { + updateThumbs(); + } + }, [highProp, inPropsRefPrev.lowPrev, inPropsRefPrev.highPrev, lowProp]); + (0, react_1.useEffect)(() => { + updateThumbs(); + }, [updateThumbs]); + const handleContainerLayout = (0, hooks_1.useWidthLayout)(containerWidthRef, updateThumbs); + function getLow(downX, lowPosition, highPosition) { + return disableRange || (0, helpers_1.isLowCloser)(downX, lowPosition, highPosition); + } + const handlePositionChange = (positionInView, isLow, containerWidth) => { + const { low, high, min, max, step } = inPropsRef.current; + const minValue = isLow ? min : low + minRange; + const maxValue = isLow ? high - minRange : max; + const value = (0, helpers_1.clamp)((0, helpers_1.getValueForPosition)(positionInView, containerWidth, THUMB_RADIUS_LOW, min, max, step), minValue, maxValue); + if (gestureStateRef.current.lastValue === value) { + return; + } + const availableSpace = containerWidth - THUMB_RADIUS_LOW; + const absolutePosition = ((value - min) / (max - min)) * availableSpace; + gestureStateRef.current.lastValue = value; + gestureStateRef.current.lastPosition = + absolutePosition + THUMB_RADIUS_LOW / 2; + (isLow ? lowThumbX : highThumbX).setValue(absolutePosition); + onValueChanged?.(isLow ? value : low, isLow ? high : value, true); + (isLow ? setLow : setHigh)(value); + updateSelectedRail(); + }; + const animatedLow = (0, react_1.useCallback)((value) => { + react_native_1.Animated.timing(lowSize, { + toValue: value, + duration: 300, + useNativeDriver: false, + easing: react_native_1.Easing.ease, + }).start(); + }, [lowSize]); + const animatedHigh = (0, react_1.useCallback)((value) => { + react_native_1.Animated.timing(highSize, { + toValue: value, + duration: 300, + useNativeDriver: false, + easing: react_native_1.Easing.ease, + }).start(); + }, [highSize]); + const { panHandlers } = (0, react_1.useMemo)(() => react_native_1.PanResponder.create({ + onStartShouldSetPanResponderCapture: falseFunc, + onMoveShouldSetPanResponderCapture: trueFunc, + onPanResponderTerminationRequest: falseFunc, + onPanResponderTerminate: trueFunc, + onShouldBlockNativeResponder: trueFunc, + onMoveShouldSetPanResponder: (_evt, gestureState) => Math.abs(gestureState.dx) > 2 * Math.abs(gestureState.dy), + onPanResponderGrant: ({ nativeEvent }, gestureState) => { + if (disabled) { + return; + } + const { numberActiveTouches } = gestureState; + if (numberActiveTouches > 1) { + return; + } + const { locationX: downX, pageX } = nativeEvent; + const containerX = pageX - downX; + const { low, high, min, max } = inPropsRef.current; + const containerWidth = containerWidthRef.current; + const lowPosition = THUMB_RADIUS_LOW / 2 + + ((low - min) / (max - min)) * (containerWidth - THUMB_RADIUS_LOW); + const highPosition = THUMB_RADIUS_LOW / 2 + + ((high - min) / (max - min)) * (containerWidth - THUMB_RADIUS_LOW); + const isLow = getLow(downX, lowPosition, highPosition); + gestureStateRef.current.isLow = isLow; + if (isLow) { + animatedLow(THUMB_RADIUS_HIGH); + } + else { + animatedHigh(THUMB_RADIUS_HIGH); + } + handlePositionChange(downX, isLow, containerWidth); + pointerX.removeAllListeners(); + pointerX.addListener(({ value: pointerPosition }) => { + const positionInView = pointerPosition - containerX; + handlePositionChange(positionInView, isLow, containerWidth); + }); + }, + onPanResponderMove: disabled + ? undefined + : react_native_1.Animated.event([null, { moveX: pointerX }], { useNativeDriver: false }), + onPanResponderRelease: () => { + animatedLow(THUMB_RADIUS_LOW); + animatedHigh(THUMB_RADIUS_LOW); + }, + }), [ + pointerX, + inPropsRef, + THUMB_RADIUS_LOW, + disableRange, + disabled, + onValueChanged, + setLow, + setHigh, + updateSelectedRail, + ]); + return ( + + + + {!disableRange && ()} + + + ); +}; +exports.default = Slider; diff --git a/lib/packages/core/src/controls/Slider/__tests__/Slider.test.js b/lib/packages/core/src/controls/Slider/__tests__/Slider.test.js new file mode 100644 index 000000000..33f814c74 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/__tests__/Slider.test.js @@ -0,0 +1,179 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Slider_1 = __importDefault(require("../Slider")); +const constants_1 = require("../../../other/constants"); +const HIT_SLOP_1 = __importDefault(require("../../../styles/constants/HIT_SLOP")); +const eventMock = {}; +const trueFunc = () => true; +const falseFunc = () => false; +describe.skip('Slider', () => { + it('should renders correctly by default', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + (0, react_native_1.act)(() => panHandler.props.onMoveShouldSetPanResponder({}, { dx: -10 })); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with more props', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + (0, react_native_1.act)(() => panHandler.props.onMoveShouldSetPanResponder({}, { dx: -10 })); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly panHandler', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + (0, react_native_1.act)(() => { + panHandler.props.onStartShouldSetPanResponderCapture(falseFunc); + panHandler.props.onMoveShouldSetPanResponderCapture(falseFunc); + panHandler.props.onPanResponderTerminationRequest(falseFunc); + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: 21, + locationY: 5, + pageX: 33, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderMove(eventMock, { moveX: 20 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly disabled', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: 21, + locationY: 5, + pageX: 33, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly updateThumbs', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + const layout = getByLabelText(constants_1.LABELS.sliderLayoutLowThumb); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: 21, + locationY: 5, + pageX: 33, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderMove(eventMock, { moveX: 40 }); + }); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); + it('should renders correctly with numberActiveTouches', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + (0, react_native_1.act)(() => panHandler.props.onPanResponderGrant({}, { numberActiveTouches: 2 })); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly updateThumbs high -> low', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + const layout = getByLabelText(constants_1.LABELS.sliderLayoutLowThumb); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: -10, + locationY: 5, + pageX: 200, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderMove(eventMock, { moveX: 170 }); + }); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); + it('should renders correctly high <- low', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + const layout = getByLabelText(constants_1.LABELS.sliderLayoutLowThumb); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: 21, + locationY: 5, + pageX: 200, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderMove(eventMock, { moveX: 175 }); + }); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); + it('should renders correctly onPanResponderRelease', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(constants_1.LABELS.slider); + const layout = getByLabelText(constants_1.LABELS.sliderLayoutLowThumb); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderTerminate(trueFunc); + panHandler.props.onShouldBlockNativeResponder(trueFunc); + panHandler.props.onMoveShouldSetPanResponder(eventMock, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderGrant({ + nativeEvent: { + locationX: 21, + locationY: 5, + pageX: 200, + pageY: 152, + target: 723, + }, + }, { dx: 10, dy: 0 }); + panHandler.props.onPanResponderRelease(); + panHandler.props.onPanResponderMove(eventMock, { moveX: 175 }); + }); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); +}); diff --git a/lib/packages/core/src/controls/Slider/components/HighThumb.js b/lib/packages/core/src/controls/Slider/components/HighThumb.js new file mode 100644 index 000000000..a04551759 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/components/HighThumb.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const Thumb_1 = __importDefault(require("./Thumb")); +const HighThumb = ({ highThumbX, highSize, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + ); +}; +exports.default = HighThumb; diff --git a/lib/packages/core/src/controls/Slider/components/LowThumb.js b/lib/packages/core/src/controls/Slider/components/LowThumb.js new file mode 100644 index 000000000..5ab78b39f --- /dev/null +++ b/lib/packages/core/src/controls/Slider/components/LowThumb.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const react_1 = require("react"); +const other_1 = require("../../../other"); +const Thumb_1 = __importDefault(require("./Thumb")); +const LowThumb = ({ lowThumbX, size, }) => { + const lowStyles = (0, react_1.useMemo)(() => { + return { transform: [{ translateX: lowThumbX }] }; + }, [lowThumbX]); + return ( + + ); +}; +exports.default = LowThumb; diff --git a/lib/packages/core/src/controls/Slider/components/Rail.js b/lib/packages/core/src/controls/Slider/components/Rail.js new file mode 100644 index 000000000..71f461c9e --- /dev/null +++ b/lib/packages/core/src/controls/Slider/components/Rail.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const SelectedRail_1 = __importDefault(require("./SelectedRail")); +const Rail = ({ selectedRailStyle, thumbWidth, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + + ); +}; +exports.default = Rail; diff --git a/lib/packages/core/src/controls/Slider/components/SelectedRail.js b/lib/packages/core/src/controls/Slider/components/SelectedRail.js new file mode 100644 index 000000000..d073837a7 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/components/SelectedRail.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const SelectedRail = ({ selectedRailStyle, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + ); +}; +exports.default = SelectedRail; diff --git a/lib/packages/core/src/controls/Slider/components/Thumb.js b/lib/packages/core/src/controls/Slider/components/Thumb.js new file mode 100644 index 000000000..d4e3eca3e --- /dev/null +++ b/lib/packages/core/src/controls/Slider/components/Thumb.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const styles_1 = require("../../../styles"); +const Thumb = ({ size }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate); + return (); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + root: { + borderWidth: spaces.Space2, + borderColor: colors.IconMuted, + backgroundColor: colors.BgPrimary, + }, +})); +exports.default = Thumb; diff --git a/lib/packages/core/src/controls/Slider/helpers.js b/lib/packages/core/src/controls/Slider/helpers.js new file mode 100644 index 000000000..e1870ca68 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/helpers.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getValueForPosition = exports.clamp = exports.isLowCloser = void 0; +const isLowCloser = (downX, lowPosition, highPosition) => { + if (lowPosition === highPosition) { + return downX < lowPosition; + } + const distanceFromLow = Math.abs(downX - lowPosition); + const distanceFromHigh = Math.abs(downX - highPosition); + return distanceFromLow < distanceFromHigh; +}; +exports.isLowCloser = isLowCloser; +const clamp = (value, min, max) => { + return Math.min(Math.max(value, min), max); +}; +exports.clamp = clamp; +const getValueForPosition = (positionInView, containerWidth, thumbWidth, min, max, step) => { + const availableSpace = containerWidth - thumbWidth; + const relStepUnit = step / (max - min); + let relPosition = (positionInView - thumbWidth / 2) / availableSpace; + const relOffset = relPosition % relStepUnit; + relPosition -= relOffset; + if (relOffset / relStepUnit >= 0.5) { + relPosition += relStepUnit; + } + return (0, exports.clamp)(min + Math.round(relPosition / relStepUnit) * step, min, max); +}; +exports.getValueForPosition = getValueForPosition; diff --git a/lib/packages/core/src/controls/Slider/hooks.js b/lib/packages/core/src/controls/Slider/hooks.js new file mode 100644 index 000000000..98e238850 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/hooks.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useSelectedRail = exports.useWidthLayout = exports.useLowHigh = void 0; +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const helpers_1 = require("./helpers"); +const useLowHigh = (lowProp, highProp, min, max, step) => { + const validLowProp = lowProp === undefined ? min : (0, helpers_1.clamp)(lowProp, min, max); + const validHighProp = highProp === undefined ? max : (0, helpers_1.clamp)(highProp, min, max); + const inPropsRef = (0, react_1.useRef)({ + low: validLowProp, + high: validHighProp, + step, + // These 2 fields will be overwritten below. + min: validLowProp, + max: validHighProp, + }); + const { low: lowState, high: highState } = inPropsRef.current; + const inPropsRefPrev = { lowPrev: lowState, highPrev: highState }; + // Props have higher priority. + // If no props are passed, use internal state variables. + const low = (0, helpers_1.clamp)(lowProp === undefined ? lowState : lowProp, min, max); + const high = (0, helpers_1.clamp)(highProp === undefined ? highState : highProp, min, max); + // Always update values of refs so pan responder will have updated values + Object.assign(inPropsRef.current, { low, high, min, max }); + const setLow = (value) => (inPropsRef.current.low = value); + const setHigh = (value) => (inPropsRef.current.high = value); + return { inPropsRef, inPropsRefPrev, setLow, setHigh }; +}; +exports.useLowHigh = useLowHigh; +/** + * Sets the current value of widthRef and calls the callback with new width parameter. + * @param widthRef + * @param callback + * @returns {function({nativeEvent: *}): void} + */ +const useWidthLayout = (widthRef, callback) => { + return (0, react_1.useCallback)((event) => { + const { layout: { width }, } = event.nativeEvent; + const { current: w } = widthRef; + if (w !== width) { + widthRef.current = width; + if (callback) { + callback(width); + } + } + }, [callback, widthRef]); +}; +exports.useWidthLayout = useWidthLayout; +const useSelectedRail = (inPropsRef, containerWidthRef, thumbWidth, disableRange) => { + const { current: left } = (0, react_1.useRef)(new react_native_1.Animated.Value(0)); + const { current: right } = (0, react_1.useRef)(new react_native_1.Animated.Value(0)); + const update = (0, react_1.useCallback)(() => { + const { low, high, min, max } = inPropsRef.current; + const { current: containerWidth } = containerWidthRef; + const fullScale = (max - min) / (containerWidth - thumbWidth); + const leftValue = (low - min) / fullScale; + const rightValue = (max - high) / fullScale; + left.setValue(disableRange ? 0 : leftValue); + right.setValue(disableRange ? containerWidth - thumbWidth - leftValue : rightValue); + }, [inPropsRef, containerWidthRef, disableRange, thumbWidth, left, right]); + const styles = (0, react_1.useMemo)(() => ({ + left: react_native_1.I18nManager.isRTL ? right : left, + right: react_native_1.I18nManager.isRTL ? left : right, + }), [left, right]); + return [styles, update]; +}; +exports.useSelectedRail = useSelectedRail; diff --git a/lib/packages/core/src/controls/Slider/index.js b/lib/packages/core/src/controls/Slider/index.js new file mode 100644 index 000000000..51ef25c85 --- /dev/null +++ b/lib/packages/core/src/controls/Slider/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Slider = void 0; +const Slider_1 = __importDefault(require("./Slider")); +exports.Slider = Slider_1.default; diff --git a/lib/packages/core/src/controls/Slider/stylesCreate.js b/lib/packages/core/src/controls/Slider/stylesCreate.js new file mode 100644 index 000000000..912db1fbe --- /dev/null +++ b/lib/packages/core/src/controls/Slider/stylesCreate.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const styles_1 = require("../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + controlsContainer: { + flexDirection: 'row', + justifyContent: react_native_1.I18nManager.isRTL ? 'flex-end' : 'flex-start', + alignItems: 'center', + minHeight: spaces.Space32, + }, + rail: { + flex: 1, + height: spaces.Space4, + borderRadius: spaces.Space2, + backgroundColor: colors.IconMuted, + }, + selectedRailContainer: { + position: 'absolute', + }, + selectedRail: { + height: spaces.Space4, + backgroundColor: colors.IconBase, + borderRadius: spaces.Space2, + }, + highThumbContainer: { + position: 'absolute', + }, + railsContainer: { + ...react_native_1.StyleSheet.absoluteFillObject, + flexDirection: 'row', + alignItems: 'center', + }, + touchableArea: { + ...react_native_1.StyleSheet.absoluteFillObject, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/controls/Swipe/Swipe.js b/lib/packages/core/src/controls/Swipe/Swipe.js new file mode 100644 index 000000000..c0eb02183 --- /dev/null +++ b/lib/packages/core/src/controls/Swipe/Swipe.js @@ -0,0 +1,85 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const useStyles_1 = __importDefault(require("../../styles/hooks/useStyles")); +const other_1 = require("../../other"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const leftPos = -20; +const rightPos = 20; +const Swipe = ({ active, disabled, onPress }) => { + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default, disabled); + const defaultState = active ? rightPos : leftPos; + const pan = (0, react_1.useRef)(new react_native_1.Animated.Value(defaultState)).current; + const distance = (0, react_1.useRef)(defaultState); + (0, react_1.useEffect)(() => { + if (active) { + return swipeRight(); + } + else { + return swipeLeft(); + } + }, [active, disabled]); + const swipeRight = () => { + distance.current = rightPos; + react_native_1.Animated.timing(pan, { + toValue: +rightPos, + duration: 300, + useNativeDriver: false, + easing: react_native_1.Easing.ease, + }).start(); + }; + const swipeLeft = () => { + distance.current = leftPos; + react_native_1.Animated.timing(pan, { + toValue: +leftPos, + duration: 300, + useNativeDriver: false, + easing: react_native_1.Easing.ease, + }).start(); + }; + const handlePanResponderRelease = (_, gestureState) => { + pan.flattenOffset(); + if (gestureState.dx === 0) { + onPress(distance.current > 0 ? false : true); + return distance.current > 0 ? swipeLeft() : swipeRight(); + } + if (gestureState.dx > 0) { + distance.current !== rightPos && onPress(true); + return swipeRight(); + } + else { + distance.current !== leftPos && onPress(false); + return swipeLeft(); + } + }; + const panResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({ + onStartShouldSetPanResponder: () => !disabled, + onMoveShouldSetPanResponder: () => !disabled, + onPanResponderGrant: () => { + pan.setOffset(distance.current); + }, + onPanResponderMove: react_native_1.Animated.event([null, { dx: pan }], { + useNativeDriver: false, + }), + onPanResponderRelease: handlePanResponderRelease, + })).current; + const backgroundColor = pan.interpolate({ + inputRange: [leftPos, rightPos], + outputRange: [theme.colors.ElementMuted, theme.colors.ElementBase], + extrapolate: 'clamp', + }); + const translateX = pan.interpolate({ + inputRange: [leftPos, rightPos], + outputRange: [0, (0, px_1.default)(20)], + extrapolate: 'clamp', + }); + return ( + + ); +}; +exports.default = Swipe; diff --git a/lib/packages/core/src/controls/Swipe/__tests__/Swipe.test.js b/lib/packages/core/src/controls/Swipe/__tests__/Swipe.test.js new file mode 100644 index 000000000..ed4d876b8 --- /dev/null +++ b/lib/packages/core/src/controls/Swipe/__tests__/Swipe.test.js @@ -0,0 +1,85 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Swipe_1 = __importDefault(require("../Swipe")); +const other_1 = require("../../../other"); +const onPress = () => null; +const eventMock = {}; +describe.skip('Swipe', () => { + it('should renders correctly by default -', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => panHandler.props.onPanResponderRelease({}, { dx: -10 })); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly by default +', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderMove(eventMock, { dx: 0 }); + panHandler.props.onPanResponderRelease(eventMock, { dx: 0 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly by default active', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderMove(eventMock, { dx: 0 }); + panHandler.props.onPanResponderRelease(eventMock, { dx: 0 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly active', function () { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly disabled +', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderMove(eventMock, { dx: 0 }); + panHandler.props.onPanResponderRelease(eventMock, { dx: 0 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly disabled dx: 20', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onPanResponderRelease(eventMock, { dx: 20 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly disabled -', function () { + const { getByLabelText, toJSON } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onStartShouldSetPanResponder(() => true); + panHandler.props.onMoveShouldSetPanResponder(() => true); + panHandler.props.onPanResponderGrant(); + panHandler.props.onPanResponderMove(eventMock, { dx: 0 }); + panHandler.props.onPanResponderRelease(eventMock, { dx: -20 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly active and disabled', function () { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly when and toggle to active', function () { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + const panHandler = getByLabelText(other_1.LABELS.swipe); + (0, react_native_1.act)(() => { + panHandler.props.onStartShouldSetPanResponder(() => true); + panHandler.props.onMoveShouldSetPanResponder(() => true); + panHandler.props.onPanResponderGrant(); + panHandler.props.onPanResponderMove(eventMock, { dx: 0 }); + panHandler.props.onPanResponderRelease(eventMock, { dx: 20 }); + }); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/controls/Swipe/index.js b/lib/packages/core/src/controls/Swipe/index.js new file mode 100644 index 000000000..98834e238 --- /dev/null +++ b/lib/packages/core/src/controls/Swipe/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Swipe = void 0; +const Swipe_1 = __importDefault(require("./Swipe")); +exports.Swipe = Swipe_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/controls/Swipe/stylesCreate.js b/lib/packages/core/src/controls/Swipe/stylesCreate.js new file mode 100644 index 000000000..2301f5863 --- /dev/null +++ b/lib/packages/core/src/controls/Swipe/stylesCreate.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../styles"); +const px_1 = __importDefault(require("../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, disabled) => ({ + container: { + width: (0, px_1.default)(50), + height: (0, px_1.default)(30), + borderRadius: spaces.Space20, + padding: spaces.Space2, + opacity: disabled ? 0.4 : 1, + }, + switcher: { + flex: 1, + aspectRatio: 1, + backgroundColor: colors.ElementWhite, + borderRadius: (0, px_1.default)(25), + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/controls/Swipe/types.js b/lib/packages/core/src/controls/Swipe/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/controls/Swipe/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/controls/constants.js b/lib/packages/core/src/controls/constants.js new file mode 100644 index 000000000..84383424d --- /dev/null +++ b/lib/packages/core/src/controls/constants.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ControlType; +(function (ControlType) { + ControlType["checkBox"] = "checkBox"; + ControlType["radio"] = "radio"; +})(ControlType || (ControlType = {})); +exports.default = ControlType; diff --git a/lib/packages/core/src/controls/index.js b/lib/packages/core/src/controls/index.js new file mode 100644 index 000000000..b1b3c0307 --- /dev/null +++ b/lib/packages/core/src/controls/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Radio"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./CheckBox"), exports); +__exportStar(require("./ControlsLists"), exports); +__exportStar(require("./Swipe"), exports); +__exportStar(require("./Slider"), exports); diff --git a/lib/packages/core/src/controls/types.js b/lib/packages/core/src/controls/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/controls/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/cta/components/Button/Button.js b/lib/packages/core/src/cta/components/Button/Button.js new file mode 100644 index 000000000..e986bfa07 --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/Button.js @@ -0,0 +1,55 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const utils_1 = require("../../utils"); +const basic_1 = require("../../../basic"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const typography_1 = require("../../../typography"); +const Spinner_1 = require("../../../progress/components/Spinner"); +const types_1 = require("../../../progress/components/Spinner/types"); +const other_1 = require("../../../other"); +const Counter_1 = __importDefault(require("../../../other/components/Badge/Counter/Counter")); +const types_2 = require("./types"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const getDefaultFont_1 = require("./getDefaultFont"); +const Button = (0, react_1.forwardRef)((props, ref) => { + const { style, text, leftIcon, rightIcon, size = types_2.IButtonSize.fixed, type = types_2.IButtonTypes.primary, loading = false, disabled = false, textStyle, font, count, textProps, ...otherProps } = props; + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default, disabled ? types_2.IButtonTypes.disabled : type, size, Boolean(leftIcon), Boolean(rightIcon), Boolean(text)); + const defaultFont = (0, getDefaultFont_1.getDefaultFont)(size, disabled ? types_2.IButtonTypes.disabled : type); + const counterSize = size === types_2.IButtonSize.small ? other_1.ICounterSize.small : other_1.ICounterSize.medium; + const Container = ({ children }) => ( + {children} + ); + const getSpinnerColor = () => { + if (disabled) { + return theme.colors.IconWhite; + } + switch (type) { + case types_2.IButtonTypes.secondary: + case types_2.IButtonTypes.tertiary: + return theme.colors.IconBase; + default: + return theme.colors.IconWhite; + } + }; + if (loading || type === types_2.IButtonTypes.loading) { + return ( + + ); + } + return ( + {leftIcon} + {Boolean(text) && ( + {text} + )} + {rightIcon} + {count ? () : null} + ); +}); +exports.default = Button; diff --git a/lib/packages/core/src/cta/components/Button/__tests__/Button.test.js b/lib/packages/core/src/cta/components/Button/__tests__/Button.test.js new file mode 100644 index 000000000..798b32493 --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/__tests__/Button.test.js @@ -0,0 +1,87 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../types"); +const Button_1 = __importDefault(require("../Button")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +describe('@lad-tech/mobydick-core/Button', () => { + it('renders correctly', () => { + const { toJSON, rerender } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly secondary', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly tertiary', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly destructive', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly loading', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly fixed', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly small', () => { + const { toJSON, rerender } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly large', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly left icon size large', () => { + const { toJSON } = (0, react_native_1.render)(} rightIcon={} text={'text'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly left icon small', () => { + const { toJSON } = (0, react_native_1.render)(} rightIcon={}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly without size', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly text', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly left icon size small', () => { + const { toJSON } = (0, react_native_1.render)(} rightIcon={} text={'text'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly loading without type', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it.each([types_1.IButtonTypes.tertiary, types_1.IButtonTypes.secondary])('renders correctly loading types', type => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly loading disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it.each(Object.values(types_1.IButtonTypes))('renders correctly loading types', type => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/cta/components/Button/getDefaultFont.js b/lib/packages/core/src/cta/components/Button/getDefaultFont.js new file mode 100644 index 000000000..0f6d154ba --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/getDefaultFont.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getDefaultFont = void 0; +const types_1 = require("./types"); +const getDefaultFont = (size, type) => { + let defaultButtonFont = 'SemiBold'; + switch (type) { + case types_1.IButtonTypes.primary: + case types_1.IButtonTypes.disabled: + case types_1.IButtonTypes.destructive: + case types_1.IButtonTypes.loading: + defaultButtonFont += '-White'; + break; + case types_1.IButtonTypes.secondary: + case types_1.IButtonTypes.tertiary: + defaultButtonFont += '-Accent'; + } + switch (size) { + case types_1.IButtonSize.small: + defaultButtonFont += '-XS'; + break; + case types_1.IButtonSize.large: + case types_1.IButtonSize.fixed: + default: + defaultButtonFont += '-L'; + break; + } + return defaultButtonFont; +}; +exports.getDefaultFont = getDefaultFont; diff --git a/lib/packages/core/src/cta/components/Button/index.js b/lib/packages/core/src/cta/components/Button/index.js new file mode 100644 index 000000000..02ccc0a1f --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Button = void 0; +const Button_1 = __importDefault(require("./Button")); +exports.Button = Button_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/cta/components/Button/stylesCreate.js b/lib/packages/core/src/cta/components/Button/stylesCreate.js new file mode 100644 index 000000000..c1555ebf7 --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/stylesCreate.js @@ -0,0 +1,100 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const types_1 = require("./types"); +const getButtonHorizontalPadding = ({ theme, leftIcon, rightIcon, text, }) => { + if (!text) { + return theme.spaces.Space6; + } + if (leftIcon || rightIcon) { + return (0, px_1.default)(14); + } + return theme.spaces.Space12; +}; +const getButtonStyles = ({ theme, size, leftIcon, rightIcon, text, }) => { + switch (size) { + case types_1.IButtonSize.small: + return { + minHeight: theme.spaces.Space32, + paddingVertical: theme.spaces.Space6, + paddingHorizontal: getButtonHorizontalPadding({ + theme, + leftIcon, + rightIcon, + text, + }), + }; + case types_1.IButtonSize.large: + return { + minHeight: theme.spaces.Space48, + paddingVertical: theme.spaces.Space12, + paddingHorizontal: text ? (0, px_1.default)(26) : theme.spaces.Space12, + }; + case types_1.IButtonSize.fixed: + return { + alignSelf: 'stretch', + minHeight: theme.spaces.Space48, + }; + default: + return {}; + } +}; +const primaryStyle = ({ theme, size, leftIcon, rightIcon, text, }) => (0, styles_1.createStyles)(({ colors }) => ({ + container: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + backgroundColor: colors.CtaBtnPrimary, + borderRadius: theme.spaces.Space12, + ...getButtonStyles({ theme, size, leftIcon, rightIcon, text }), + }, + text: { + paddingHorizontal: size === types_1.IButtonSize.small ? theme.spaces.Space4 : theme.spaces.Space6, + }, + counter: { + marginLeft: theme.spaces.Space2, + }, +}))(theme); +const secondaryStyle = ({ theme, size, leftIcon, rightIcon, text, }) => { + const defaultStyles = primaryStyle({ theme, size, leftIcon, rightIcon, text }); + const { colors: { CtaBtnSecondary }, } = theme; + defaultStyles.container.backgroundColor = CtaBtnSecondary; + return defaultStyles; +}; +const tertiaryStyle = ({ theme, size, leftIcon, rightIcon, text, }) => { + const defaultStyles = primaryStyle({ theme, size, leftIcon, rightIcon, text }); + defaultStyles.container.backgroundColor = 'transparent'; + return defaultStyles; +}; +const disabledStyle = ({ theme, size, leftIcon, rightIcon, text, }) => { + const defaultStyles = primaryStyle({ theme, size, leftIcon, rightIcon, text }); + const { colors: { CtaBtnMuted }, } = theme; + defaultStyles.container.backgroundColor = CtaBtnMuted; + return defaultStyles; +}; +const destructiveStyle = ({ theme, size, leftIcon, rightIcon, text, }) => { + const defaultStyles = primaryStyle({ theme, size, leftIcon, rightIcon, text }); + const { colors: { CtaBtnDestructive }, } = theme; + defaultStyles.container.backgroundColor = CtaBtnDestructive; + return defaultStyles; +}; +const stylesCreate = (theme, type, size, leftIcon, rightIcon, text) => { + switch (type) { + case types_1.IButtonTypes.secondary: + return secondaryStyle({ theme, size, leftIcon, rightIcon, text }); + case types_1.IButtonTypes.tertiary: + return tertiaryStyle({ theme, size, leftIcon, rightIcon, text }); + case types_1.IButtonTypes.disabled: + return disabledStyle({ theme, size, leftIcon, rightIcon, text }); + case types_1.IButtonTypes.destructive: + return destructiveStyle({ theme, size, leftIcon, rightIcon, text }); + case types_1.IButtonTypes.primary: + default: + return primaryStyle({ theme, size, leftIcon, rightIcon, text }); + } +}; +exports.default = stylesCreate; diff --git a/lib/packages/core/src/cta/components/Button/types.js b/lib/packages/core/src/cta/components/Button/types.js new file mode 100644 index 000000000..25f93afc4 --- /dev/null +++ b/lib/packages/core/src/cta/components/Button/types.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IButtonSize = exports.IButtonTypes = void 0; +var IButtonTypes; +(function (IButtonTypes) { + IButtonTypes["primary"] = "primary"; + IButtonTypes["secondary"] = "secondary"; + IButtonTypes["tertiary"] = "tertiary"; + IButtonTypes["disabled"] = "disabled"; + IButtonTypes["loading"] = "loading"; + IButtonTypes["destructive"] = "destructive"; +})(IButtonTypes || (exports.IButtonTypes = IButtonTypes = {})); +var IButtonSize; +(function (IButtonSize) { + IButtonSize["large"] = "large"; + IButtonSize["small"] = "small"; + IButtonSize["fixed"] = "fixed"; +})(IButtonSize || (exports.IButtonSize = IButtonSize = {})); diff --git a/lib/packages/core/src/cta/components/index.js b/lib/packages/core/src/cta/components/index.js new file mode 100644 index 000000000..eff3d7d0b --- /dev/null +++ b/lib/packages/core/src/cta/components/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Button"), exports); diff --git a/lib/packages/core/src/cta/index.js b/lib/packages/core/src/cta/index.js new file mode 100644 index 000000000..bc7809177 --- /dev/null +++ b/lib/packages/core/src/cta/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./utils"), exports); diff --git a/lib/packages/core/src/cta/utils/getCounterType.js b/lib/packages/core/src/cta/utils/getCounterType.js new file mode 100644 index 000000000..a6c69f672 --- /dev/null +++ b/lib/packages/core/src/cta/utils/getCounterType.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../components/Button/types"); +const other_1 = require("../../other"); +const getCounterType = (type) => { + switch (type) { + case types_1.IButtonTypes.secondary: + return other_1.ICounterTypes.accentLight; + case types_1.IButtonTypes.tertiary: + return other_1.ICounterTypes.accent; + case types_1.IButtonTypes.disabled: + return other_1.ICounterTypes.mutedLight; + case types_1.IButtonTypes.destructive: + return other_1.ICounterTypes.attentionLight; + case types_1.IButtonTypes.primary: + default: + return other_1.ICounterTypes.accentLight; + } +}; +exports.default = getCounterType; diff --git a/lib/packages/core/src/cta/utils/index.js b/lib/packages/core/src/cta/utils/index.js new file mode 100644 index 000000000..b52d39e27 --- /dev/null +++ b/lib/packages/core/src/cta/utils/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getCounterType = void 0; +const getCounterType_1 = __importDefault(require("./getCounterType")); +exports.getCounterType = getCounterType_1.default; diff --git a/lib/packages/core/src/index.js b/lib/packages/core/src/index.js new file mode 100644 index 000000000..5826c2a43 --- /dev/null +++ b/lib/packages/core/src/index.js @@ -0,0 +1,27 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./basic"), exports); +__exportStar(require("./controls"), exports); +__exportStar(require("./cta"), exports); +__exportStar(require("./inputs"), exports); +__exportStar(require("./navbars"), exports); +__exportStar(require("./other"), exports); +__exportStar(require("./popups"), exports); +__exportStar(require("./progress"), exports); +__exportStar(require("./styles"), exports); +__exportStar(require("./typography"), exports); +__exportStar(require("./chat"), exports); diff --git a/lib/packages/core/src/inputs/components/Base/InputSubtitle.js b/lib/packages/core/src/inputs/components/Base/InputSubtitle.js new file mode 100644 index 000000000..51856c4bd --- /dev/null +++ b/lib/packages/core/src/inputs/components/Base/InputSubtitle.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const icons_1 = require("../../../styles/icons"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const typography_1 = require("../../../typography"); +const InputSubtitle = (props) => { + const { type, subtitle, subtitleIcon, subtitleProps } = props; + const { colors, spaces } = (0, useTheme_1.default)(); + return ( + {subtitleIcon && ()} + + {subtitle} + + ); +}; +exports.default = InputSubtitle; diff --git a/lib/packages/core/src/inputs/components/Base/InputTitle.js b/lib/packages/core/src/inputs/components/Base/InputTitle.js new file mode 100644 index 000000000..3233a788c --- /dev/null +++ b/lib/packages/core/src/inputs/components/Base/InputTitle.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const typography_1 = require("../../../typography"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const InputTitle = (props) => { + const { title, titleProps, titleFont, titleStyle, required } = props; + const { colors } = (0, useTheme_1.default)(); + const font = titleFont || titleProps?.font || 'Medium-Tertiary-XS'; + return ( + + {title} + + {required && ( + {'*'} + )} + ); +}; +exports.default = InputTitle; diff --git a/lib/packages/core/src/inputs/components/Base/index.js b/lib/packages/core/src/inputs/components/Base/index.js new file mode 100644 index 000000000..f53e159ec --- /dev/null +++ b/lib/packages/core/src/inputs/components/Base/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InputSubtitle = exports.InputTitle = void 0; +const InputTitle_1 = __importDefault(require("./InputTitle")); +exports.InputTitle = InputTitle_1.default; +const InputSubtitle_1 = __importDefault(require("./InputSubtitle")); +exports.InputSubtitle = InputSubtitle_1.default; diff --git a/lib/packages/core/src/inputs/components/DropDown/DropDown.js b/lib/packages/core/src/inputs/components/DropDown/DropDown.js new file mode 100644 index 000000000..c1ac980e8 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/DropDown.js @@ -0,0 +1,107 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const types_1 = require("../types"); +const Base_1 = require("../Base"); +const usePopups_1 = __importDefault(require("../../../popups/hooks/usePopups")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const other_1 = require("../../../other"); +const basic_1 = require("../../../basic"); +const Selector_1 = __importDefault(require("./components/Selector")); +const DropDownIcon_1 = __importDefault(require("./components/DropDownIcon")); +const constants_1 = require("./constants"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ChipList_1 = __importDefault(require("./components/ChipList")); +const getSelectedItems_1 = __importDefault(require("./utils/getSelectedItems")); +function DropDown(props) { + const { title, titleStyle, titleFont, required, placeholder, list, selectedItem, onPress, rightIcon, navBarHeight = 50, isMultiselect, selectedItemColor, buttonStyle, flatListStyle, buttonTextStyle, buttonTextFont, flatListItemStyle, flatListTextStyle, flatListTextFont, flatListTextFontPressed, flatListTextStylePressed, buttonTextStyleChosen, buttonTextFontChosen, type = types_1.IInputsTypes.default, disabled, subtitle, subtitleIcon, subtitleProps, } = props; + const isSelected = (0, react_1.useMemo)(() => { + return isMultiselect ? !!selectedItem?.length : !!selectedItem; + }, [isMultiselect, selectedItem]); + const [isOpen, setOpen] = (0, react_1.useState)(false); + const popupContext = (0, usePopups_1.default)(); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, disabled ? types_1.IInputsTypes.disabled : type, isOpen); + const dropDownRef = (0, react_1.useRef)(null); + const renderItemOnPress = (0, react_1.useCallback)((item) => { + if (isMultiselect) { + onPress((0, getSelectedItems_1.default)(selectedItem, item)); + } + else { + onPress(item.value); + } + setOpen(false); + popupContext.closePopup(constants_1.DROP_DOWN_POPUP_ID); + }, [onPress, popupContext, selectedItem, isMultiselect]); + const openPopup = (pageY, dropDownHeight) => { + popupContext.openPopup({ + id: constants_1.DROP_DOWN_POPUP_ID, + Content: propsFromPopup => ( { + setOpen(false); + propsFromPopup.onClose(); + }}/>), + }); + }; + const checkPosition = () => { + if (dropDownRef.current) { + dropDownRef.current.measure((_x, _y, _width, height, _pageX, pageY) => { + openPopup(pageY, height); + setOpen(true); + }); + } + }; + const getFont = () => { + if (isSelected) { + return buttonTextFontChosen || 'Regular-Primary-M'; + } + return buttonTextFont || 'Regular-Muted-M'; + }; + return ( + {title && ()} + + + {isMultiselect && selectedItem?.length ? () : ( + {list.find(item => item.value === selectedItem)?.label || + placeholder} + )} + + + {subtitle ? () : null} + + ); +} +exports.default = DropDown; diff --git a/lib/packages/core/src/inputs/components/DropDown/__tests__/DropDown.test.js b/lib/packages/core/src/inputs/components/DropDown/__tests__/DropDown.test.js new file mode 100644 index 000000000..7e7cc2758 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/__tests__/DropDown.test.js @@ -0,0 +1,148 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const react_1 = __importDefault(require("react")); +const DropDown_1 = __importDefault(require("../DropDown")); +const types_1 = require("../../types"); +const PopupsProvider_1 = __importDefault(require("../../../../popups/context/PopupsProvider")); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const constants_1 = __importDefault(require("../../../../popups/components/PopupBase/constants")); +const other_1 = require("../../../../other"); +const basic_1 = require("../../../../basic"); +describe('@lad-tech/mobydick-core/DropDown', () => { + let viewRef; + beforeEach(() => { + viewRef = react_1.default.createRef(); + (0, react_native_1.render)(); + }); + afterEach(() => { + jest.resetAllMocks(); + }); + const list = [ + { label: 'Русский', value: 'Русский' }, + { label: 'English', value: 'English' }, + ]; + it('renders correctly 10 elements', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('selectItem', async () => { + const onPress = jest.fn(); + jest + .spyOn(viewRef.current, 'measure') + .mockImplementation((cb) => cb(0, 0, 1, 1, 287, 2410)); + const { getByLabelText } = (0, react_native_1.render)( + + }/> + + ); + const pressable = getByLabelText(other_1.LABELS.selector); + react_native_1.fireEvent.press(pressable); + const pressableSelect = getByLabelText(list[1].label); + react_native_1.fireEvent.press(pressableSelect); + expect(onPress).toHaveBeenCalledWith(list[1]?.value); + }); + it('selectItemClose', async () => { + const onPress = jest.fn(); + const useRefSpy = jest + .spyOn(viewRef.current, 'measure') + .mockImplementation((cb) => cb(0, 0, 1, 1, 287, 2410)); + const { getByLabelText, toJSON, getByTestId } = (0, react_native_1.render)( + + }/> + + ); + const pressable = getByLabelText(other_1.LABELS.selector); + react_native_1.fireEvent.press(pressable); + const pressableClose = getByTestId(constants_1.default.testID); + const copyTarget = 'copyTarget'; + react_native_1.fireEvent.press(pressableClose, { + target: copyTarget, + currentTarget: copyTarget, + }); + expect(toJSON()).toMatchSnapshot(); + expect(useRefSpy).toHaveBeenCalledTimes(1); + }); + it('renders correctly 10 elements type wrong', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly 10 elements type valid', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly 10 elements disabled', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly without array', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly without array with text and font', () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('multiselect snapshot', async () => { + const { toJSON } = (0, react_native_1.render)( + + }/> + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('multiselect', async () => { + const onPress = jest.fn(); + jest + .spyOn(viewRef.current, 'measure') + .mockImplementation((cb) => cb(0, 0, 1, 1, 287, 2410)); + const { getByLabelText } = (0, react_native_1.render)( + + }/> + + ); + const pressable = getByLabelText(other_1.LABELS.selector); + react_native_1.fireEvent.press(pressable); + const pressableSelect = getByLabelText(list[1].label); + react_native_1.fireEvent.press(pressableSelect); + expect(onPress).toHaveBeenCalledWith([list[1]]); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/Chip.js b/lib/packages/core/src/inputs/components/DropDown/components/Chip.js new file mode 100644 index 000000000..a730eb250 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/Chip.js @@ -0,0 +1,44 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const basic_1 = require("../../../../basic"); +const typography_1 = require("../../../../typography"); +const TouchableOpacity_1 = require("../../../../basic/components/TouchableOpacity"); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const createStyles_1 = __importDefault(require("../../../../styles/utils/createStyles")); +const Chip = ({ text, onPress, maxTextLength = DEFAULT_MAX_TEXT_LENGTH, }) => { + const [styles, theme] = (0, useStyles_1.default)(styleSource); + return ( + + {getText(text, maxTextLength)} + + + + + ); +}; +const DEFAULT_MAX_TEXT_LENGTH = 15; +const getText = (text, maxTextLength) => { + if (text.length <= maxTextLength) { + return text; + } + return `${text.slice(0, maxTextLength)}...`; +}; +const styleSource = (0, createStyles_1.default)(({ colors, spaces }) => ({ + container: { + flexDirection: 'row', + alignSelf: 'flex-start', + alignItems: 'center', + borderRadius: spaces.Space8, + padding: spaces.Space4, + paddingLeft: spaces.Space8, + backgroundColor: colors.BgAccentSoft, + }, + text: { + marginRight: spaces.Space4, + }, +})); +exports.default = Chip; diff --git a/lib/packages/core/src/inputs/components/DropDown/components/ChipList.js b/lib/packages/core/src/inputs/components/DropDown/components/ChipList.js new file mode 100644 index 000000000..33e1949a8 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/ChipList.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const createStyles_1 = __importDefault(require("../../../../styles/utils/createStyles")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const basic_1 = require("../../../../basic"); +const Chip_1 = __importDefault(require("./Chip")); +function ChipList({ selectedItem, onChange, }) { + const [styles] = (0, useStyles_1.default)(styleSource); + const handleDelete = (item) => () => { + onChange?.(item); + }; + return ( + {selectedItem?.map(item => ())} + ); +} +const styleSource = (0, createStyles_1.default)(({ spaces }) => ({ + contentContainerStyle: { + gap: spaces.Space8, + flexDirection: 'row', + flexWrap: 'wrap', + flex: 1, + }, +})); +exports.default = ChipList; diff --git a/lib/packages/core/src/inputs/components/DropDown/components/DropDownIcon.js b/lib/packages/core/src/inputs/components/DropDown/components/DropDownIcon.js new file mode 100644 index 000000000..558c41648 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/DropDownIcon.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const DropDownIcon = props => { + const { isOpen, rightIcon } = props; + const { colors } = (0, useTheme_1.default)(); + return rightIcon ? ( + {rightIcon} + ) : (); +}; +exports.default = DropDownIcon; diff --git a/lib/packages/core/src/inputs/components/DropDown/components/ListEmptySelector.js b/lib/packages/core/src/inputs/components/DropDown/components/ListEmptySelector.js new file mode 100644 index 000000000..e26bbdfbe --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/ListEmptySelector.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Typography_1 = require("../../../../typography/components/Typography/Typography"); +const ListEmptySelector = ({ listEmptyText, listEmptyFont, }) => { + const font = listEmptyFont ? listEmptyFont : 'Regular-Muted-M'; + const emptyText = listEmptyText + ? listEmptyText + : 'Данные недоступны. Повторите попытку позже.'; + return ( + {emptyText} + ); +}; +exports.default = ListEmptySelector; diff --git a/lib/packages/core/src/inputs/components/DropDown/components/Selector.js b/lib/packages/core/src/inputs/components/DropDown/components/Selector.js new file mode 100644 index 000000000..b5d485069 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/Selector.js @@ -0,0 +1,95 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const constants_1 = require("../constants"); +const getDropDownDimensions_1 = require("../utils/getDropDownDimensions"); +const TouchableHighlight_1 = __importDefault(require("../../../../basic/components/TouchableHighlight/TouchableHighlight")); +const Typography_1 = require("../../../../typography/components/Typography/Typography"); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const PopupBase_1 = __importDefault(require("../../../../popups/components/PopupBase/PopupBase")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const FlatList_1 = __importDefault(require("../../../../basic/components/FlatList/FlatList")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ListEmptySelector_1 = __importDefault(require("./ListEmptySelector")); +const keyExtractor = (item, index) => index.toString() + item.toString(); +function renderItem(props) { + return ({ item }) => { + const { renderItemOnPress, styles, theme, selectedItemColor, selectedItem, flatListItemStyle, flatListTextStylePressed, flatListTextStyle, flatListTextFontPressed, flatListTextFont, } = props; + const isSelected = () => { + if (Array.isArray(selectedItem)) { + return selectedItem.length === 0 + ? false + : selectedItem.some(it => it.value === item.value); + } + return item.value === selectedItem; + }; + const getFont = () => { + if (isSelected()) { + return flatListTextFontPressed || 'Medium-Primary-M'; + } + return flatListTextFont || 'Regular-Secondary-M'; + }; + const backgroundColorItem = selectedItemColor + ? { backgroundColor: selectedItemColor } + : { backgroundColor: theme.colors.BgAccentSoft }; + return ( renderItemOnPress(item)} underlayColor={selectedItemColor ? selectedItemColor : theme.colors.BgAccentSoft}> + + {item.label} + + ); + }; +} +function Selector(props) { + const { list, pageY, navBarHeight = 50, renderItemOnPress, selectedItem, selectedItemColor, buttonStyle, flatListStyle, flatListTextFont, flatListItemStyle, flatListTextStyle, flatListTextStylePressed, flatListTextFontPressed, listEmptyText, listEmptyFont, dropDownHeight, } = props; + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default); + const { height } = (0, react_native_safe_area_context_1.useSafeAreaFrame)(); + const { aboveDropDownPos, underDropDownPos, isAboveDropDown } = (0, getDropDownDimensions_1.getDropDownDimensions)({ + pageY, + navBarHeight, + dropDownHeight, + dropDownBorderWidth: buttonStyle?.borderWidth || constants_1.BORDER_BUTTON_WIDTH, + listLength: list.length, + height, + }); + const styleWidth = flatListStyle?.width || buttonStyle?.width; + return ( + + }/> + + ); +} +exports.default = Selector; diff --git a/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Chip.test.js b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Chip.test.js new file mode 100644 index 000000000..ac7cce88f --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Chip.test.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Chip_1 = __importDefault(require("../Chip")); +describe('@lad-tech/mobydick-core/Chip', () => { + it('renders correctly and onPress fired', () => { + const mockedOnPress = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + react_native_1.fireEvent.press(getByLabelText('JavaScript')); + expect(mockedOnPress).toHaveBeenCalled(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with maxTextLength', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ChipList.test.js b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ChipList.test.js new file mode 100644 index 000000000..f3a9e1275 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ChipList.test.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ChipList_1 = __importDefault(require("../ChipList")); +describe('@lad-tech/mobydick-core/ChipList', () => { + it('renders correctly and onChange fired', () => { + const mockedOnChange = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + react_native_1.fireEvent.press(getByLabelText('Rust')); + expect(mockedOnChange).toHaveBeenCalledWith({ label: 'Rust', value: 2 }); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/__tests__/DropDownIcon.test.js b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/DropDownIcon.test.js new file mode 100644 index 000000000..111bec24e --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/DropDownIcon.test.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const DropDownIcon_1 = __importDefault(require("../DropDownIcon")); +const SimpleIcon_1 = __importDefault(require("../../../../../styles/icons/font/SimpleIcon")); +describe('@lad-tech/mobydick-core/DropDownIcon', () => { + it('renders correctly standart open', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly standart close', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly custom open', () => { + const { toJSON } = (0, react_native_1.render)(}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly custom close', () => { + const { toJSON } = (0, react_native_1.render)(}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ListEmptySelector.test.js b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ListEmptySelector.test.js new file mode 100644 index 000000000..bab2599c5 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/ListEmptySelector.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ListEmptySelector_1 = __importDefault(require("../ListEmptySelector")); +describe('npm/mobydick-inputs/ListEmptySelector', () => { + it('renders correctly with text and font', async () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly without text and font', async () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.js b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.js new file mode 100644 index 000000000..e151b4d4e --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.js @@ -0,0 +1,120 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const Selector_1 = __importDefault(require("../Selector")); +const getDropDownDimensions = __importStar(require("../../utils/getDropDownDimensions")); +describe('@lad-tech/mobydick-core/Selector', () => { + const list = [{ label: 'list', value: 'list' }]; + const renderItemOnPress = jest.fn(); + const largeList = [ + { label: '1', value: '1' }, + { label: '1', value: '1' }, + { label: '1', value: '1' }, + { label: '1', value: '1' }, + { label: '1', value: '1' }, + { label: '1', value: '1' }, + { label: '1', value: '1' }, + ]; + const selectedItem = list[0]?.value; + it('renders correctly', async () => { + const inputList = [{ label: 'list', value: 'list' }]; + const { toJSON, findByLabelText } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + const item = await findByLabelText(inputList[0].label); + react_native_1.fireEvent.press(item); + expect(renderItemOnPress).toHaveBeenCalledWith(inputList[0]); + }); + it('renders correctly with bottom padding largeList', async () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render correct renderItem TouchableHighlight with custom style', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render correct renderItem Typography with custom style', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render correct renderItem Typography with custom font', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('How props Selector affect getDropDownDimensions', () => { + const spy = jest.spyOn(getDropDownDimensions, 'getDropDownDimensions'); + (0, react_native_1.render)( + + ); + expect(spy).toHaveBeenLastCalledWith({ + dropDownBorderWidth: 1.5, + dropDownHeight: 72, + height: 640, + navBarHeight: 50, + pageY: 1, + listLength: 1, + }); + }); + it('Selector custom flatList styles', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('Selector custom with array in selectedItem', () => { + const data = [ + { label: 'JavaScript', value: 1 }, + { label: 'Rust', value: 2 }, + ]; + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('Selector custom with empty array in selectedItem', () => { + const data = [ + { label: 'JavaScript', value: 1 }, + { label: 'Rust', value: 2 }, + ]; + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/components/stylesCreate.js b/lib/packages/core/src/inputs/components/DropDown/components/stylesCreate.js new file mode 100644 index 000000000..caf8388ae --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/components/stylesCreate.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + flatList: { + position: 'absolute', + backgroundColor: colors.BgSecondary, + borderRadius: spaces.Space12, + borderWidth: spaces.Space1, + borderColor: colors.BorderSoft, + paddingVertical: spaces.Space8, + }, + dropDownItem: { + justifyContent: 'center', + paddingHorizontal: spaces.Space12, + paddingVertical: spaces.Space8, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/inputs/components/DropDown/constants/index.js b/lib/packages/core/src/inputs/components/DropDown/constants/index.js new file mode 100644 index 000000000..1a129956d --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/constants/index.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EMPTY_LIST_HEIGHT = exports.LIST_MAX_HEIGHT = exports.DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON = exports.DEFAULT_DROP_DOWN_WIDTH = exports.DEFAULT_DROP_DOWN_HEIGHT = exports.DROP_DOWN_POPUP_ID = exports.BORDER_BUTTON_WIDTH = void 0; +const px_1 = __importDefault(require("../../../../styles/utils/px")); +exports.BORDER_BUTTON_WIDTH = (0, px_1.default)(1); +exports.DROP_DOWN_POPUP_ID = 'DropDownPopup'; +exports.DEFAULT_DROP_DOWN_HEIGHT = (0, px_1.default)(48); +exports.DEFAULT_DROP_DOWN_WIDTH = (0, px_1.default)(200); +exports.DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON = (0, px_1.default)(4); +exports.LIST_MAX_HEIGHT = (0, px_1.default)(244); +exports.EMPTY_LIST_HEIGHT = (0, px_1.default)(74); diff --git a/lib/packages/core/src/inputs/components/DropDown/index.js b/lib/packages/core/src/inputs/components/DropDown/index.js new file mode 100644 index 000000000..fb26521c0 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DropDown = void 0; +const DropDown_1 = __importDefault(require("./DropDown")); +exports.DropDown = DropDown_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/inputs/components/DropDown/stylesCreate.js b/lib/packages/core/src/inputs/components/DropDown/stylesCreate.js new file mode 100644 index 000000000..e73aa9477 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/stylesCreate.js @@ -0,0 +1,55 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const style_1 = require("../../style"); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const defaultStyle = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + container: { + justifyContent: 'center', + }, + inputContainer: { + backgroundColor: colors.BgSecondary, + borderRadius: spaces.Space8, + paddingLeft: (0, px_1.default)(18), + paddingRight: spaces.Space12, + borderWidth: spaces.Space1, + borderColor: colors.BorderNormal, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + marginBottom: spaces.Space8, + }, + pv8: { + paddingVertical: spaces.Space8, + }, + placeholder: { + flex: 1, + }, + title: { + paddingBottom: spaces.Space8, + }, + overlay: { + position: 'absolute', + width: '100%', + height: '100%', + backgroundColor: colors.TextSecondary, + }, +})); +const stylesCreate = (theme, type, isOpen) => { + switch (type) { + case types_1.IInputsTypes.valid: + return (0, style_1.validStyle)(theme, defaultStyle(theme), isOpen); + case types_1.IInputsTypes.wrong: + return (0, style_1.wrongStyle)(theme, defaultStyle(theme), isOpen); + case types_1.IInputsTypes.disabled: + return (0, style_1.disabledStyle)(theme, defaultStyle(theme), isOpen); + case types_1.IInputsTypes.default: + default: + return defaultStyle(theme); + } +}; +exports.default = stylesCreate; diff --git a/lib/packages/core/src/inputs/components/DropDown/types.js b/lib/packages/core/src/inputs/components/DropDown/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.js b/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.js new file mode 100644 index 000000000..e23d1b7ec --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.js @@ -0,0 +1,67 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const getDropDownDimensions_1 = require("../getDropDownDimensions"); +const px_1 = __importDefault(require("../../../../../styles/utils/px")); +describe('@lad-tech/mobydick-core/DropDownFunctions', () => { + it('must return actual position list 8', () => { + expect((0, getDropDownDimensions_1.getDropDownDimensions)({ + pageY: 300, + dropDownHeight: 200, + navBarHeight: 50, + dropDownBorderWidth: 1, + listLength: 1, + height: 700, + })).toEqual({ + underDropDownPos: 506, + aboveDropDownPos: 700 - 300 + (0, px_1.default)(4), + isAboveDropDown: false, + }); + }); + it('must return actual position list 5', () => { + expect((0, getDropDownDimensions_1.getDropDownDimensions)({ + pageY: 128, + dropDownHeight: 40, + navBarHeight: 50, + dropDownBorderWidth: 1, + listLength: 1, + height: 700, + })).toEqual({ + underDropDownPos: 174, + aboveDropDownPos: 700 - 128 + (0, px_1.default)(4), + isAboveDropDown: false, + }); + }); + it('must return actual position list 5 Android', () => { + react_native_1.Platform.OS = 'android'; + expect((0, getDropDownDimensions_1.getDropDownDimensions)({ + pageY: 128, + dropDownHeight: 40, + navBarHeight: 50, + dropDownBorderWidth: 1, + listLength: 1, + height: 700, + })).toEqual({ + underDropDownPos: 174, + aboveDropDownPos: 700 - 128 + (0, px_1.default)(4), + isAboveDropDown: false, + }); + }); + it('must return actual position empty list', () => { + expect((0, getDropDownDimensions_1.getDropDownDimensions)({ + pageY: 128, + dropDownHeight: 40, + navBarHeight: 50, + dropDownBorderWidth: 1, + listLength: 0, + height: 700, + })).toEqual({ + underDropDownPos: 174, + aboveDropDownPos: 700 - 128 + (0, px_1.default)(4), + isAboveDropDown: false, + }); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getSelectedItems.test.js b/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getSelectedItems.test.js new file mode 100644 index 000000000..c2ddbab02 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/utils/__tests__/getSelectedItems.test.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const getSelectedItems_1 = __importDefault(require("../getSelectedItems")); +describe('@lad-tech/mobydick-core/getSelectedItems', () => { + const inputElement = { value: 1, label: 'JavaScript' }; + it('selectedItem is undefined', () => { + expect((0, getSelectedItems_1.default)(undefined, inputElement)).toStrictEqual([ + inputElement, + ]); + }); + it('selectedItem is empty', () => { + expect((0, getSelectedItems_1.default)([], inputElement)).toStrictEqual([inputElement]); + }); + it('selectedItem is not contains inputElement', () => { + const selectedItem = [ + { value: 2, label: 'PHP' }, + { value: 3, label: 'Rust' }, + ]; + expect((0, getSelectedItems_1.default)(selectedItem, inputElement)).toStrictEqual([ + ...selectedItem, + inputElement, + ]); + }); + it('selectedItem already contains inputElement', () => { + const selectedItem = [ + { value: 2, label: 'PHP' }, + { value: 3, label: 'Rust' }, + ]; + expect((0, getSelectedItems_1.default)([...selectedItem, inputElement], inputElement)).toStrictEqual(selectedItem); + }); +}); diff --git a/lib/packages/core/src/inputs/components/DropDown/utils/getDropDownDimensions.js b/lib/packages/core/src/inputs/components/DropDown/utils/getDropDownDimensions.js new file mode 100644 index 000000000..bb6ae8946 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/utils/getDropDownDimensions.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getDropDownDimensions = void 0; +const constants_1 = require("../constants"); +const getDropDownDimensions = ({ pageY, navBarHeight, dropDownHeight, listLength, height, }) => { + const listHeight = listLength >= 6 ? constants_1.LIST_MAX_HEIGHT : (constants_1.LIST_MAX_HEIGHT / 6) * listLength; + const contentHeight = listLength ? listHeight : constants_1.EMPTY_LIST_HEIGHT; + const underDropDownPos = pageY + dropDownHeight + constants_1.DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON; + const aboveDropDownPos = height - pageY + constants_1.DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON; + const bottomScreenPos = dropDownHeight + contentHeight + pageY + navBarHeight; + const isAboveDropDown = bottomScreenPos > height; + return { + underDropDownPos: underDropDownPos, + aboveDropDownPos: aboveDropDownPos, + isAboveDropDown: isAboveDropDown, + }; +}; +exports.getDropDownDimensions = getDropDownDimensions; diff --git a/lib/packages/core/src/inputs/components/DropDown/utils/getSelectedItems.js b/lib/packages/core/src/inputs/components/DropDown/utils/getSelectedItems.js new file mode 100644 index 000000000..47e094161 --- /dev/null +++ b/lib/packages/core/src/inputs/components/DropDown/utils/getSelectedItems.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function getSelectedItems(selectedItems, item) { + if (!selectedItems?.length) { + return [item]; + } + const itemAlreadyExist = selectedItems.some(({ value }) => value === item.value); + if (itemAlreadyExist) { + return selectedItems.filter(({ value }) => item.value !== value); + } + return [...selectedItems, item]; +} +exports.default = getSelectedItems; diff --git a/lib/packages/core/src/inputs/components/InputField/InputField.js b/lib/packages/core/src/inputs/components/InputField/InputField.js new file mode 100644 index 000000000..9a7da0ef2 --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/InputField.js @@ -0,0 +1,74 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const types_1 = require("../types"); +const Base_1 = require("../Base"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const TextInput_1 = __importDefault(require("../../../basic/components/TextInput/TextInput")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const useFont_1 = require("../../../typography/hooks/useFont"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const constants_1 = __importDefault(require("./constants")); +/** + * Пример использования ref: + * ``` + * const biba = () => { + * const ref = useRef(null); + * const boba = () => { + * ref.current?.isFocused(); + * }; + * return ( + * /> + * ); + * }; + * ``` + */ +const InputField = (0, react_1.forwardRef)((props, ref) => { + const { style, title, subtitle, leftIcon, rightIcon, type = types_1.IInputsTypes.default, disabled = false, titleProps, subtitleIcon, subtitleProps, containerStyle, textInputContainerStyle, onFocus, onBlur, required, secureTextEntry, multiline = false, ...otherProps } = props; + const [focused, setFocused] = (0, react_1.useState)(false); + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default, disabled ? types_1.IInputsTypes.disabled : type, focused, multiline); + const { fontStyle } = (0, useFont_1.useFont)('Regular-Primary-M'); + const getStyle = (0, react_1.useMemo)(() => { + if (react_native_1.Platform.OS === 'android') { + return [styles.androidTextInput]; + } + else { + return fontStyle; + } + }, [fontStyle.color]); + const onFocusInput = (0, react_1.useCallback)((event) => { + setFocused(true); + onFocus?.(event); + }, [onFocus]); + const onBlurInput = (0, react_1.useCallback)((event) => { + setFocused(false); + onBlur?.(event); + }, [onBlur]); + const getHeight = () => { + return multiline ? { minHeight: (0, px_1.default)(80) } : { height: (0, px_1.default)(48) }; + }; + const getPadding = (0, react_1.useCallback)(() => { + return rightIcon ? { paddingRight: (0, px_1.default)(16) } : null; + }, [rightIcon]); + return ( + {title && ()} + + + {leftIcon} + + {rightIcon} + + {subtitle ? () : null} + ); +}); +exports.default = InputField; diff --git a/lib/packages/core/src/inputs/components/InputField/__tests__/InputField.test.js b/lib/packages/core/src/inputs/components/InputField/__tests__/InputField.test.js new file mode 100644 index 000000000..0af51782c --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/__tests__/InputField.test.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_2 = require("react-native"); +const InputField_1 = __importDefault(require("../InputField")); +const constants_1 = __importDefault(require("../constants")); +const types_1 = require("../../types"); +describe('@lad-tech/mobydick-core/InputField', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly valid', () => { + const { toJSON, getByTestId } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + const TextInput = getByTestId(constants_1.default.testID); + (0, react_native_1.act)(() => TextInput.props.onFocus()); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly wrong', () => { + const { toJSON, getByTestId } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + const TextInput = getByTestId(constants_1.default.testID); + (0, react_native_1.act)(() => TextInput.props.onFocus()); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly disabled', () => { + const { toJSON, getByTestId } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + const TextInput = getByTestId(constants_1.default.testID); + (0, react_native_1.act)(() => TextInput.props.onFocus()); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly focused/blur', () => { + const { toJSON, getByTestId } = (0, react_native_1.render)(); + const TextInput = getByTestId(constants_1.default.testID); + (0, react_native_1.act)(() => TextInput.props.onFocus()); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => TextInput.props.onBlur()); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly secureTextEntry', () => { + react_native_2.Platform.OS = 'android'; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly multiline = true', () => { + react_native_2.Platform.OS = 'android'; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly multiline = false', () => { + react_native_2.Platform.OS = 'android'; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders title titleProps', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/InputField/constants.js b/lib/packages/core/src/inputs/components/InputField/constants.js new file mode 100644 index 000000000..1021b4cc0 --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/constants.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Constants; +(function (Constants) { + Constants["testID"] = "TextInput"; +})(Constants || (Constants = {})); +exports.default = Constants; diff --git a/lib/packages/core/src/inputs/components/InputField/index.js b/lib/packages/core/src/inputs/components/InputField/index.js new file mode 100644 index 000000000..be4796338 --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InputField = void 0; +const InputField_1 = __importDefault(require("./InputField")); +exports.InputField = InputField_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/inputs/components/InputField/stylesCreate.js b/lib/packages/core/src/inputs/components/InputField/stylesCreate.js new file mode 100644 index 000000000..abb8641ba --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/stylesCreate.js @@ -0,0 +1,52 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const style_1 = require("../../style"); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const defaultStyle = (0, styles_1.createStyles)(({ spaces, colors }, focused, multiline) => ({ + container: { + minWidth: (0, px_1.default)(130), + }, + inputContainer: { + backgroundColor: colors.BgSecondary, + borderRadius: spaces.Space8, + borderWidth: spaces.Space1, + borderColor: focused ? colors.BorderNormal : 'transparent', + marginVertical: spaces.Space8, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: multiline ? undefined : 'center', + }, + textInput: { + flex: 1, + paddingRight: spaces.Space16, + paddingLeft: (0, px_1.default)(18), + textAlignVertical: multiline ? 'top' : undefined, + padding: 0, // Android по дефолту ставит padding на input's + paddingVertical: spaces.Space12, + borderRadius: spaces.Space8, + }, + androidTextInput: { + fontSize: spaces.Space16, + color: colors.TextPrimary, + padding: 0, // Android по дефолту ставит padding на input's + }, +})); +const stylesCreate = (theme, type, focused, multiline) => { + switch (type) { + case types_1.IInputsTypes.valid: + return (0, style_1.validStyle)(theme, defaultStyle(theme, focused, multiline), focused); + case types_1.IInputsTypes.wrong: + return (0, style_1.wrongStyle)(theme, defaultStyle(theme, focused, multiline), focused); + case types_1.IInputsTypes.disabled: + return (0, style_1.disabledStyle)(theme, defaultStyle(theme, focused, multiline), focused); + case types_1.IInputsTypes.default: + default: + return defaultStyle(theme, focused, multiline); + } +}; +exports.default = stylesCreate; diff --git a/lib/packages/core/src/inputs/components/InputField/types.js b/lib/packages/core/src/inputs/components/InputField/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/inputs/components/InputField/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/inputs/components/Search/Search.js b/lib/packages/core/src/inputs/components/Search/Search.js new file mode 100644 index 000000000..1b6f811ea --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/Search.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const SimpleIcon_1 = __importDefault(require("../../../styles/icons/font/SimpleIcon")); +const TextInput_1 = __importDefault(require("../../../basic/components/TextInput/TextInput")); +const Pressable_1 = __importDefault(require("../../../basic/components/Pressable/Pressable")); +const other_1 = require("../../../other"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const constants_1 = require("./constants"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Search = (0, react_1.forwardRef)((props, ref) => { + const { placeholder = constants_1.strings.search, value, onChangeText = text => { + console.log(`Search says: "Add onChangeText (╯°□°)╯︵ ┻━┻". Current value=${text}`); + }, containerStyle, leftIcon, textInputContainerStyle, ...otherProps } = props; + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default); + const onCancel = (0, react_1.useCallback)(() => { + onChangeText(''); + }, [onChangeText]); + return ( + {leftIcon ? leftIcon : } + + {value ? ( + + ) : null} + ); +}); +exports.default = Search; diff --git a/lib/packages/core/src/inputs/components/Search/__tests__/Search.test.js b/lib/packages/core/src/inputs/components/Search/__tests__/Search.test.js new file mode 100644 index 000000000..e081e5675 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/__tests__/Search.test.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Search_1 = __importDefault(require("../Search")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const other_1 = require("../../../../other"); +describe('Search', () => { + test('render correctly with value', () => { + const onChangeText = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)(}/>); + expect(toJSON()).toMatchSnapshot(); + const cancel = getByLabelText(other_1.LABELS.cancelSearch); + react_native_1.fireEvent.press(cancel); + expect(onChangeText).toHaveBeenCalledWith(''); + }); + test('render correctly without value', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + const log = jest.spyOn(console, 'log').mockImplementation(jest.fn); + const search = getByLabelText(other_1.LABELS.search); + react_native_1.fireEvent.changeText(search, 'search'); + expect(log).toHaveBeenCalledWith('Search says: "Add onChangeText (╯°□°)╯︵ ┻━┻". Current value=search'); + }); +}); diff --git a/lib/packages/core/src/inputs/components/Search/constants.js b/lib/packages/core/src/inputs/components/Search/constants.js new file mode 100644 index 000000000..089b5bd38 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/constants.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.strings = void 0; +exports.strings = { + search: 'Поиск', +}; diff --git a/lib/packages/core/src/inputs/components/Search/index.js b/lib/packages/core/src/inputs/components/Search/index.js new file mode 100644 index 000000000..da8438176 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Search = void 0; +const Search_1 = __importDefault(require("./Search")); +exports.Search = Search_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/inputs/components/Search/stylesCreate.js b/lib/packages/core/src/inputs/components/Search/stylesCreate.js new file mode 100644 index 000000000..85e8d0a52 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/stylesCreate.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + container: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + height: (0, px_1.default)(36), + backgroundColor: colors.BgSecondary, + borderRadius: spaces.Space8, + paddingLeft: spaces.Space12, + paddingRight: spaces.Space8, + }, + textInput: { + flex: 1, + padding: 0, // Android по дефолту ставит padding на input's + paddingHorizontal: spaces.Space8, + fontSize: spaces.Space16, + color: colors.TextPrimary, + }, + cancelIcon: { + alignItems: 'center', + justifyContent: 'center', + backgroundColor: colors.BgTertiary, + borderRadius: (0, px_1.default)(24), + padding: spaces.Space4, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/inputs/components/Search/types.js b/lib/packages/core/src/inputs/components/Search/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Search/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/inputs/components/Verification/CodeField.js b/lib/packages/core/src/inputs/components/Verification/CodeField.js new file mode 100644 index 000000000..1a52ec517 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Verification/CodeField.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const typography_1 = require("../../../typography"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const TextInput_1 = __importDefault(require("../../../basic/components/TextInput/TextInput")); +const other_1 = require("../../../other"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const CodeField = (0, react_1.forwardRef)((props, ref) => { + const { maxLength, textInputContainerStyle, style, onChangeText, editable, onBackKeyPress, secureTextEntry, fontStyleCodeField, ...otherProps } = props; + const [focused, setFocused] = (0, react_1.useState)(false); + const { fontStyle } = (0, typography_1.useFont)(fontStyleCodeField ? fontStyleCodeField : 'Regular-Primary-XL'); + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default, focused); + const onFocus = (0, react_1.useCallback)(() => setFocused(true), []); + const onBlur = (0, react_1.useCallback)(() => setFocused(false), []); + const onKeyPress = (0, react_1.useCallback)((e) => { + if (onBackKeyPress && e.nativeEvent.key === 'Backspace') { + onBackKeyPress(); + } + }, [onBackKeyPress]); + return ( + + ); +}); +exports.default = CodeField; diff --git a/lib/packages/core/src/inputs/components/Verification/__tests__/CodeField.test.js b/lib/packages/core/src/inputs/components/Verification/__tests__/CodeField.test.js new file mode 100644 index 000000000..56b5b2044 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Verification/__tests__/CodeField.test.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const CodeField_1 = __importDefault(require("../CodeField")); +const other_1 = require("../../../../other"); +describe('@lad-tech/mobydick-core/CodeField', () => { + test('render correctly with value focus', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + const codeField = getByLabelText(other_1.LABELS.codeField); + (0, react_native_1.act)(() => codeField.props.onFocus()); + }); + test('render correctly with value blur', () => { + const onChangeText = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)( console.log('onBackKeyPress')} onChangeText={onChangeText} fontStyleCodeField={'Regular-Primary-XL'}/>); + const codeField = getByLabelText(other_1.LABELS.codeField); + (0, react_native_1.act)(() => codeField.props.onBlur()); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => codeField.props.onKeyPress({ nativeEvent: { key: 'cancel' } })); + }); + test('render correctly with value onKeyPress', () => { + const onChangeText = jest.fn(); + const onBackKeyPress = jest.fn(); + const { getByLabelText } = (0, react_native_1.render)(); + const codeField = getByLabelText(other_1.LABELS.codeField); + (0, react_native_1.act)(() => codeField.props.onKeyPress({ nativeEvent: { key: 'Backspace' } })); + expect(onBackKeyPress).toHaveBeenCalled(); + }); +}); diff --git a/lib/packages/core/src/inputs/components/Verification/index.js b/lib/packages/core/src/inputs/components/Verification/index.js new file mode 100644 index 000000000..33bcb52a6 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Verification/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeField = void 0; +const CodeField_1 = __importDefault(require("./CodeField")); +exports.CodeField = CodeField_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/inputs/components/Verification/stylesCreate.js b/lib/packages/core/src/inputs/components/Verification/stylesCreate.js new file mode 100644 index 000000000..b5cf3ec19 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Verification/stylesCreate.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, focused) => ({ + inputContainer: { + backgroundColor: focused ? colors.BgAccentSoft : colors.BgSecondary, + borderRadius: spaces.Space8, + minWidth: (0, px_1.default)(68), + minHeight: (0, px_1.default)(48), + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + }, + textInput: { + flex: 1, + padding: 0, // Android по дефолту ставит padding на input's + textAlign: 'center', + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/inputs/components/Verification/types.js b/lib/packages/core/src/inputs/components/Verification/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/inputs/components/Verification/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/inputs/components/index.js b/lib/packages/core/src/inputs/components/index.js new file mode 100644 index 000000000..d245d8959 --- /dev/null +++ b/lib/packages/core/src/inputs/components/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./InputField"), exports); +__exportStar(require("./Search"), exports); +__exportStar(require("./DropDown"), exports); +__exportStar(require("./Verification"), exports); +__exportStar(require("./Base"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/inputs/components/types.js b/lib/packages/core/src/inputs/components/types.js new file mode 100644 index 000000000..e39dbf589 --- /dev/null +++ b/lib/packages/core/src/inputs/components/types.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IInputsTypes = void 0; +var IInputsTypes; +(function (IInputsTypes) { + IInputsTypes["default"] = "default"; + IInputsTypes["valid"] = "valid"; + IInputsTypes["wrong"] = "wrong"; + IInputsTypes["disabled"] = "disabled"; +})(IInputsTypes || (exports.IInputsTypes = IInputsTypes = {})); diff --git a/lib/packages/core/src/inputs/index.js b/lib/packages/core/src/inputs/index.js new file mode 100644 index 000000000..287912585 --- /dev/null +++ b/lib/packages/core/src/inputs/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./style"), exports); diff --git a/lib/packages/core/src/inputs/style/disabledStyle.js b/lib/packages/core/src/inputs/style/disabledStyle.js new file mode 100644 index 000000000..95c4cdd3d --- /dev/null +++ b/lib/packages/core/src/inputs/style/disabledStyle.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.disabledStyle = void 0; +const disabledStyle = (theme, defaultStyles, active) => { + const { colors } = theme; + const { inputContainer } = defaultStyles; + inputContainer.borderColor = active ? colors.BgTertiary : 'transparent'; + inputContainer.backgroundColor = colors.BgTertiary; + return defaultStyles; +}; +exports.disabledStyle = disabledStyle; diff --git a/lib/packages/core/src/inputs/style/index.js b/lib/packages/core/src/inputs/style/index.js new file mode 100644 index 000000000..39acbb4e8 --- /dev/null +++ b/lib/packages/core/src/inputs/style/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./disabledStyle"), exports); +__exportStar(require("./validStyle"), exports); +__exportStar(require("./wrongStyle"), exports); diff --git a/lib/packages/core/src/inputs/style/validStyle.js b/lib/packages/core/src/inputs/style/validStyle.js new file mode 100644 index 000000000..cc7b928ad --- /dev/null +++ b/lib/packages/core/src/inputs/style/validStyle.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.validStyle = void 0; +const validStyle = (theme, defaultStyles, active) => { + const { colors } = theme; + const { inputContainer } = defaultStyles; + inputContainer.borderColor = active ? colors.BorderSuccess : 'transparent'; + inputContainer.backgroundColor = colors.BgAccentSoft; + return defaultStyles; +}; +exports.validStyle = validStyle; diff --git a/lib/packages/core/src/inputs/style/wrongStyle.js b/lib/packages/core/src/inputs/style/wrongStyle.js new file mode 100644 index 000000000..1a91daa84 --- /dev/null +++ b/lib/packages/core/src/inputs/style/wrongStyle.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.wrongStyle = void 0; +const wrongStyle = (theme, defaultStyles, active) => { + const { colors } = theme; + const { inputContainer } = defaultStyles; + inputContainer.borderColor = active ? colors.BorderError : 'transparent'; + inputContainer.backgroundColor = colors.BgError; + return defaultStyles; +}; +exports.wrongStyle = wrongStyle; diff --git a/lib/packages/core/src/navbars/components/PanelHeader/PanelHeader.js b/lib/packages/core/src/navbars/components/PanelHeader/PanelHeader.js new file mode 100644 index 000000000..5ab265965 --- /dev/null +++ b/lib/packages/core/src/navbars/components/PanelHeader/PanelHeader.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const styles_1 = require("../../../styles"); +const ContentHeader_1 = __importDefault(require("./components/ContentHeader")); +const PanelHeader = props => { + const { commonViewStyle, isSafeAreaView = true, edges = ['top'], ...otherProps } = props; + const [styles] = (0, styles_1.useStyles)(stylesCreate); + return ( + {isSafeAreaView ? ( + + ) : ()} + ); +}; +exports.default = PanelHeader; +const stylesCreate = (0, styles_1.createStyles)(_ => ({ + commonView: { + width: '100%', + }, +})); diff --git a/lib/packages/core/src/navbars/components/PanelHeader/__tests__/PanelHeader.test.js b/lib/packages/core/src/navbars/components/PanelHeader/__tests__/PanelHeader.test.js new file mode 100644 index 000000000..d1ce3282c --- /dev/null +++ b/lib/packages/core/src/navbars/components/PanelHeader/__tests__/PanelHeader.test.js @@ -0,0 +1,55 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const index_1 = require("../index"); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const other_1 = require("../../../../other"); +describe('Tab', () => { + test('render panelHeader', () => { + const { toJSON } = (0, react_native_1.render)(} rightView={} titleView={<>} titleFont={'SemiBold-Secondary-L'} subtitleFont={'SemiBold-Secondary-M'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + test('render panelHeader without props', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render panelHeader with title', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render panelHeader with subtitle', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render panelHeader only leftView', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(} titleView={<>} titleFont={'SemiBold-Secondary-L'} subtitleFont={'SemiBold-Secondary-M'}/>); + const layout = getByLabelText(other_1.LABELS.panelHeaderLeftView); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); + test('render panelHeader only rightView', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(} titleView={<>} titleFont={'SemiBold-Secondary-L'} subtitleFont={'SemiBold-Secondary-M'}/>); + const layout = getByLabelText(other_1.LABELS.panelHeaderRightView); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { width: 100 } }, + }); + }); + }); + test('render panelHeader isSafeAreaView', () => { + const { toJSON } = (0, react_native_1.render)(} rightView={} titleView={<>} titleFont={'SemiBold-Secondary-L'} subtitleFont={'SemiBold-Secondary-M'} isSafeAreaView={false}/>); + expect(toJSON()).toMatchSnapshot(); + }); + test('render panelHeader edges', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.js b/lib/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.js new file mode 100644 index 000000000..04c08c645 --- /dev/null +++ b/lib/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.js @@ -0,0 +1,73 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const other_1 = require("../../../../other"); +const typography_1 = require("../../../../typography"); +const styles_1 = require("../../../../styles"); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +const ContentHeader = props => { + const { title, titleFont = 'SemiBold-Secondary-M', titleStyle, titleViewStyle, titleView, rightView, leftView, subtitle, subtitleFont = 'Regular-Tertiary-XXS', subtitleStyle, containerStyle, rightViewStyle, leftViewStyle, } = props; + const [styles] = (0, styles_1.useStyles)(stylesCreate); + const [widthLeftView, setWidthLeftView] = (0, react_1.useState)((0, px_1.default)(24)); + const [widthRightView, setWidthRightView] = (0, react_1.useState)((0, px_1.default)(24)); + const onLayoutLeftView = (0, react_1.useCallback)((event) => { + setWidthLeftView(event.nativeEvent.layout.width); + }, []); + const onLayoutRightView = (0, react_1.useCallback)((event) => { + setWidthRightView(event.nativeEvent.layout.width); + }, []); + const widthSideView = widthLeftView > widthRightView ? widthLeftView : widthRightView; + return ( + {leftView ? ( + {leftView} + ) : ()} + + + {titleView || ( + {title && ( + {title} + )} + {subtitle && ( + {subtitle} + )} + )} + + + {rightView ? ( + {rightView} + ) : ()} + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + container: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + paddingHorizontal: spaces.Space20, + paddingVertical: spaces.Space10, + height: (0, px_1.default)(60), + }, + leftView: { + alignItems: 'flex-start', + maxWidth: (0, px_1.default)(96), + }, + titleView: { + flex: 2, + paddingHorizontal: spaces.Space8, + }, + rightView: { + alignItems: 'flex-end', + maxWidth: (0, px_1.default)(96), + }, + title: { + textAlign: 'center', + }, + defaultTitleView: { + alignItems: 'center', + }, +})); +exports.default = ContentHeader; diff --git a/lib/packages/core/src/navbars/components/PanelHeader/components/index.js b/lib/packages/core/src/navbars/components/PanelHeader/components/index.js new file mode 100644 index 000000000..9598e46eb --- /dev/null +++ b/lib/packages/core/src/navbars/components/PanelHeader/components/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ContentHeader = void 0; +const ContentHeader_1 = __importDefault(require("./ContentHeader")); +exports.ContentHeader = ContentHeader_1.default; diff --git a/lib/packages/core/src/navbars/components/PanelHeader/index.js b/lib/packages/core/src/navbars/components/PanelHeader/index.js new file mode 100644 index 000000000..7b04ed240 --- /dev/null +++ b/lib/packages/core/src/navbars/components/PanelHeader/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PanelHeader = void 0; +const PanelHeader_1 = __importDefault(require("./PanelHeader")); +exports.PanelHeader = PanelHeader_1.default; diff --git a/lib/packages/core/src/navbars/components/Tabs/Tab.js b/lib/packages/core/src/navbars/components/Tabs/Tab.js new file mode 100644 index 000000000..b67cf6b6e --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/Tab.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const TouchableOpacity_1 = __importDefault(require("../../../basic/components/TouchableOpacity/TouchableOpacity")); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const other_1 = require("../../../other"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Tab = (props) => { + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default); + const { active, item, fontTab, fontActiveTab, backgroundColorTab, backgroundColorActiveTab, styleTab, styleActiveTab, onPressCommon, } = props; + const backgroundColorActive = backgroundColorActiveTab || theme.colors.ElementBase; + const backgroundColor = backgroundColorTab || theme.colors.BgTertiary; + const font = fontTab || 'Regular-Tertiary-XS'; + const fontActive = fontActiveTab || 'Regular-White-XS'; + const selectPressable = (0, react_1.useCallback)(() => { + if (item.onPress) { + item.onPress(); + } + else if (onPressCommon) { + onPressCommon(item); + } + }, [item.onPress, onPressCommon]); + return ( + {item.leftIcon ? item.leftIcon : null} + {item.label} + {item.rightIcon ? item.rightIcon : null} + ); +}; +exports.default = Tab; diff --git a/lib/packages/core/src/navbars/components/Tabs/Tabs.js b/lib/packages/core/src/navbars/components/Tabs/Tabs.js new file mode 100644 index 000000000..f4a7dbf07 --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/Tabs.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const FlatList_1 = __importDefault(require("../../../basic/components/FlatList/FlatList")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Tab_1 = __importDefault(require("./Tab")); +const Tabs = (props) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { list, activeValue, containerStyle, contentContainerStyle, ...otherProps } = props; + const renderItem = (0, react_1.useCallback)(({ item }) => { + return (); + }, [activeValue, otherProps]); + return ( + + ); +}; +exports.default = Tabs; diff --git a/lib/packages/core/src/navbars/components/Tabs/__tests__/Tab.test.js b/lib/packages/core/src/navbars/components/Tabs/__tests__/Tab.test.js new file mode 100644 index 000000000..f7cd579f1 --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/__tests__/Tab.test.js @@ -0,0 +1,44 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Tab_1 = __importDefault(require("../Tab")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const other_1 = require("../../../../other"); +describe('Tab', () => { + const value = 1; + const label = '1'; + test('render correctly with props', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( null, + leftIcon: , + rightIcon: , + }} active={true} backgroundColorTab={'#fff000'} fontTab={'Medium-Accent-H1'}/>); + const tab = getByLabelText(other_1.LABELS.tab); + react_native_1.fireEvent.press(tab); + expect(toJSON()).toMatchSnapshot(); + }); + test('render correctly active false', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + const tab = getByLabelText(other_1.LABELS.tab); + react_native_1.fireEvent.press(tab); + expect(toJSON()).toMatchSnapshot(); + }); + test('render correctly active true', () => { + const onPressCommon = jest.fn(); + const { getByLabelText } = (0, react_native_1.render)(); + const tab = getByLabelText(other_1.LABELS.tab); + react_native_1.fireEvent.press(tab); + expect(onPressCommon).toHaveBeenCalledWith({ label, value }); + }); +}); diff --git a/lib/packages/core/src/navbars/components/Tabs/__tests__/Tabs.test.js b/lib/packages/core/src/navbars/components/Tabs/__tests__/Tabs.test.js new file mode 100644 index 000000000..b560c25cf --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/__tests__/Tabs.test.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Tabs_1 = __importDefault(require("../Tabs")); +describe('Tabs', () => { + const list = [{ label: '1', value: 1 }]; + const onPress = () => null; + test('render correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render correctly with props', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/navbars/components/Tabs/index.js b/lib/packages/core/src/navbars/components/Tabs/index.js new file mode 100644 index 000000000..2c039ba1f --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Tab = exports.Tabs = void 0; +const Tabs_1 = __importDefault(require("./Tabs")); +exports.Tabs = Tabs_1.default; +const Tab_1 = __importDefault(require("./Tab")); +exports.Tab = Tab_1.default; diff --git a/lib/packages/core/src/navbars/components/Tabs/stylesCreate.js b/lib/packages/core/src/navbars/components/Tabs/stylesCreate.js new file mode 100644 index 000000000..97907aff0 --- /dev/null +++ b/lib/packages/core/src/navbars/components/Tabs/stylesCreate.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + containerStyle: { + maxWidth: '100%', + }, + contentContainerStyle: { + alignItems: 'center', + paddingHorizontal: spaces.Space20, + paddingVertical: spaces.Space8, + }, + tab: { + paddingHorizontal: spaces.Space12, + paddingVertical: spaces.Space6, + marginRight: spaces.Space8, + borderRadius: spaces.Space8, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/navbars/components/index.js b/lib/packages/core/src/navbars/components/index.js new file mode 100644 index 000000000..df4f69899 --- /dev/null +++ b/lib/packages/core/src/navbars/components/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Tabs"), exports); +__exportStar(require("./PanelHeader"), exports); diff --git a/lib/packages/core/src/navbars/index.js b/lib/packages/core/src/navbars/index.js new file mode 100644 index 000000000..775487958 --- /dev/null +++ b/lib/packages/core/src/navbars/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/navbars/types.js b/lib/packages/core/src/navbars/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/navbars/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/other/components/Avatar/Avatar.js b/lib/packages/core/src/other/components/Avatar/Avatar.js new file mode 100644 index 000000000..fc16a72c4 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/Avatar.js @@ -0,0 +1,62 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const constants_1 = require("../../constants"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const isNumber_1 = require("../../functions/isNumber"); +const types_1 = require("./types"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const AvatarWithoutImage_1 = __importDefault(require("./components/AvatarWithoutImage")); +const AvatarBadge_1 = __importDefault(require("./components/AvatarBadge")); +const Avatar = props => { + const { user, backgroundColor, size = types_1.IAvatarSize.M, type = types_1.IAvatarTypes.text, style, badge, disabled = false, border = false, headers, } = props; + const { colors } = (0, useTheme_1.default)(); + const userColor = (0, react_1.useMemo)(() => { + const nameLength = `${user?.firstName}${user?.middleName}${user?.lastName}` + .length; + const avatarColors = [ + colors.BannerFirst, + colors.BannerSecond, + colors.BannerThird, + colors.BannerFourth, + colors.BannerFifth, + colors.BannerSixth, + colors.BannerSeventh, + ]; + return avatarColors[nameLength % avatarColors.length]; + }, [ + user, + colors.BannerFirst, + colors.BannerSecond, + colors.BannerThird, + colors.BannerFourth, + colors.BannerFifth, + colors.BannerSixth, + colors.BannerSeventh, + ]); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, size, border); + const [error, setError] = (0, react_1.useState)(); + const onError = (0, react_1.useCallback)((e) => { + setError(e.nativeEvent); + }, []); + if (!user) { + return null; + } + const isAvatarBadge = !!badge && !disabled && size === types_1.IAvatarSize.M; + return ( + {isAvatarBadge && } + {error || !user.logo ? () : ()} + ); +}; +exports.default = Avatar; diff --git a/lib/packages/core/src/other/components/Avatar/AvatarGroup.js b/lib/packages/core/src/other/components/Avatar/AvatarGroup.js new file mode 100644 index 000000000..b51aabb17 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/AvatarGroup.js @@ -0,0 +1,68 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const typography_1 = require("../../../typography"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const Avatar_1 = __importDefault(require("./Avatar")); +const AvatarGroup = props => { + const { groups, groupCount = groups.length, ...otherProps } = props; + const count = groupCount - 3; + const [styles] = (0, useStyles_1.default)(stylesCreate, groupCount); + const maxCount = 99; + const text = count > maxCount ? maxCount : count; + return ( + {groups[0] && ()} + {groups[1] && ()} + {groups[2] && ()} + + {groupCount < 5 ? (groups[3] && ()) : ( + + {'+' + text.toString()} + + )} + ); +}; +exports.default = AvatarGroup; +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, length) => ({ + container: { + flexDirection: 'row', + maxWidth: length > 3 + ? spaces.Space40 * 4 - (0, px_1.default)(36) + : spaces.Space40 * length - spaces.Space12 * (length - 1), + }, + countView: { + width: spaces.Space40, + height: spaces.Space40, + borderRadius: spaces.Space20, + backgroundColor: colors.BgSecondary, + justifyContent: 'center', + zIndex: 4, + right: (0, px_1.default)(36), + borderWidth: spaces.Space2, + borderColor: colors.BgPrimary, + }, + countText: { + alignSelf: 'center', + textAlign: 'center', + }, + avatarOne: { + zIndex: 1, + }, + avatarTwo: { + right: spaces.Space12, + zIndex: 2, + }, + avatarThree: { + right: spaces.Space24, + zIndex: 3, + }, + avatarFour: { + right: (0, px_1.default)(36), + zIndex: 4, + }, +})); diff --git a/lib/packages/core/src/other/components/Avatar/__tests__/Avatar.test.js b/lib/packages/core/src/other/components/Avatar/__tests__/Avatar.test.js new file mode 100644 index 000000000..e07fac17b --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/__tests__/Avatar.test.js @@ -0,0 +1,101 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Avatar_1 = __importDefault(require("../Avatar")); +const types_1 = require("../types"); +const Badge_1 = require("../../Badge"); +const constants_1 = require("../../../constants"); +const userWithPhoto = { + logo: 'https://vraki.net/sites/default/files/inline/images/30_55.jpg', + firstName: 'Иван', + lastName: 'Пушкин', +}; +const userWithPhotoError = { + logo: 'https://vraki.net/', + firstName: 'Иван', + lastName: 'Пушкин', +}; +const userWithoutPhoto = { + firstName: 'Иван', + lastName: 'Пушкин', +}; +describe('Avatar', () => { + test('render avatar with photo without size', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar with photo S', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar with photo L', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar with photo XL', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar not photo', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar ITypeAvatar.icon', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar ITypeAvatar.text', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + (0, react_native_1.fireEvent)(getByLabelText(constants_1.LABELS.imageAvatar), 'onError', { nativeEvent: {} }); + expect(toJSON()).toMatchSnapshot(); + }); + test('render without avatar border', () => { + const userEmpty = null; + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar badge indicator', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar badge counter', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar badge status', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar badge null', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar without firstName', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render avatar without firstName and lastName', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Avatar/__tests__/AvatarGroup.test.js b/lib/packages/core/src/other/components/Avatar/__tests__/AvatarGroup.test.js new file mode 100644 index 000000000..248ff49f6 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/__tests__/AvatarGroup.test.js @@ -0,0 +1,54 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const AvatarGroup_1 = __importDefault(require("../AvatarGroup")); +const types_1 = require("../types"); +const defaultGroupDate = [ + { + firstName: 'Иван', + lastName: 'Пушкин', + }, + { + firstName: 'Иван', + lastName: 'Пушкин', + }, +]; +const smallGroupDate = [ + { + logo: 'https://vraki.net/sites/default/files/inline/images/30_55.jpg', + firstName: 'Иван', + lastName: 'Пушкин', + }, + ...defaultGroupDate, +]; +const defaultUser = [ + { + firstName: 'Иван', + lastName: 'Пушкин', + }, +]; +describe('AvatarGroup', () => { + test('render AvatarGroup < 3', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render AvatarGroup', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render AvatarGroup = 4', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render AvatarGroup with props', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render AvatarGroup groupCount', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Avatar/components/AvatarBadge.js b/lib/packages/core/src/other/components/Avatar/components/AvatarBadge.js new file mode 100644 index 000000000..c908d78f2 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/AvatarBadge.js @@ -0,0 +1,46 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const Badge_1 = require("../../Badge"); +const Counter_1 = __importDefault(require("../../Badge/Counter/Counter")); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const styles_1 = require("../../../../styles"); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +const AvatarBadge = (props) => { + const { badge } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate); + const { colors } = (0, useTheme_1.default)(); + if (badge?.type === types_1.IBadgeTypes.indicator) { + return ; + } + if (badge?.type === types_1.IBadgeTypes.counter) { + return (); + } + if (badge?.type === types_1.IBadgeTypes.status) { + return (); + } + return null; +}; +const stylesCreate = (0, styles_1.createStyles)(_ => ({ + indicator: { + bottom: 2, + right: 2, + }, + counter: { + position: 'absolute', + bottom: -3, + right: -3, + }, + status: { + position: 'absolute', + zIndex: 1, + bottom: 0, + right: 0, + }, +})); +exports.default = AvatarBadge; diff --git a/lib/packages/core/src/other/components/Avatar/components/AvatarWithoutImage.js b/lib/packages/core/src/other/components/Avatar/components/AvatarWithoutImage.js new file mode 100644 index 000000000..9602c2084 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/AvatarWithoutImage.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const TextAvatar_1 = __importDefault(require("./TextAvatar")); +const IconAvatar_1 = __importDefault(require("./IconAvatar")); +const AvatarWithoutImage = props => { + const { size, firstName, lastName, type } = props; + const currType = type === types_1.IAvatarTypes.icon || (!firstName && !lastName) + ? types_1.IAvatarTypes.icon + : types_1.IAvatarTypes.text; + switch (currType) { + case types_1.IAvatarTypes.text: + return (); + case types_1.IAvatarTypes.icon: + default: + return ; + } +}; +exports.default = AvatarWithoutImage; diff --git a/lib/packages/core/src/other/components/Avatar/components/IconAvatar.js b/lib/packages/core/src/other/components/Avatar/components/IconAvatar.js new file mode 100644 index 000000000..64f33daa6 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/IconAvatar.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +const getSizeIcon = (size) => { + switch (size) { + case types_1.IAvatarSize.S: + return (0, px_1.default)(12); + case types_1.IAvatarSize.L: + return (0, px_1.default)(30); + case types_1.IAvatarSize.XL: + return (0, px_1.default)(40); + case types_1.IAvatarSize.M: + default: + return (0, px_1.default)(20); + } +}; +const IconAvatar = ({ size }) => { + const { colors } = (0, useTheme_1.default)(); + return (); +}; +exports.default = IconAvatar; diff --git a/lib/packages/core/src/other/components/Avatar/components/TextAvatar.js b/lib/packages/core/src/other/components/Avatar/components/TextAvatar.js new file mode 100644 index 000000000..177a12649 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/TextAvatar.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const typography_1 = require("../../../../typography"); +const types_1 = require("../types"); +const getFont = (size) => { + switch (size) { + case types_1.IAvatarSize.S: + return 'Regular-White-XXXS'; + case types_1.IAvatarSize.L: + return 'Regular-White-L'; + case types_1.IAvatarSize.XL: + return 'Regular-White-H5'; + case types_1.IAvatarSize.M: + default: + return 'Regular-White-XS'; + } +}; +const TextAvatar = ({ firstName, lastName, size }) => { + const firstLetter = firstName.slice(0, 1); + const secondLetter = lastName?.slice(0, 1); + const initials = secondLetter ? firstLetter + secondLetter : firstLetter; + return {initials}; +}; +exports.default = TextAvatar; diff --git a/lib/packages/core/src/other/components/Avatar/components/__tests__/IconAvatar.test.js b/lib/packages/core/src/other/components/Avatar/components/__tests__/IconAvatar.test.js new file mode 100644 index 000000000..9d7dc81b7 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/__tests__/IconAvatar.test.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const IconAvatar_1 = __importDefault(require("../IconAvatar")); +const types_1 = require("../../types"); +describe('IconAvatar', () => { + test('render IconAvatar', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render IconAvatar size S', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render IconAvatar size M background', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render IconAvatar size L background', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render IconAvatar size XL background', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Avatar/components/__tests__/TextAvatar.test.js b/lib/packages/core/src/other/components/Avatar/components/__tests__/TextAvatar.test.js new file mode 100644 index 000000000..251f65e8a --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/components/__tests__/TextAvatar.test.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../../types"); +const TextAvatar_1 = __importDefault(require("../TextAvatar")); +const userWithPhoto = { + logo: 'https://vraki.net/sites/default/files/inline/images/30_55.jpg', + firstName: 'Иван', + lastName: 'Пушкин', +}; +describe('TextAvatar', () => { + test('render TextAvatar', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render TextAvatar size S', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render TextAvatar size M', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render TextAvatar size L', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render TextAvatar size XL', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Avatar/index.js b/lib/packages/core/src/other/components/Avatar/index.js new file mode 100644 index 000000000..58017fbe9 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AvatarGroup = exports.Avatar = void 0; +const Avatar_1 = __importDefault(require("./Avatar")); +exports.Avatar = Avatar_1.default; +const AvatarGroup_1 = __importDefault(require("./AvatarGroup")); +exports.AvatarGroup = AvatarGroup_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Avatar/stylesCreate.js b/lib/packages/core/src/other/components/Avatar/stylesCreate.js new file mode 100644 index 000000000..194f5882d --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/stylesCreate.js @@ -0,0 +1,56 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const types_1 = require("./types"); +const getSizeStyles = (sizeAvatar) => { + switch (sizeAvatar) { + case types_1.IAvatarSize.S: + return { + width: (0, px_1.default)(24), + height: (0, px_1.default)(24), + borderRadius: (0, px_1.default)(12), + }; + case types_1.IAvatarSize.M: + return { + width: (0, px_1.default)(40), + height: (0, px_1.default)(40), + borderRadius: (0, px_1.default)(20), + }; + case types_1.IAvatarSize.L: + return { + width: (0, px_1.default)(60), + height: (0, px_1.default)(60), + borderRadius: (0, px_1.default)(30), + }; + case types_1.IAvatarSize.XL: + return { + width: (0, px_1.default)(80), + height: (0, px_1.default)(80), + borderRadius: (0, px_1.default)(40), + }; + } +}; +const getBorderStyles = (color, border) => { + return (border && { + borderWidth: (0, px_1.default)(2), + borderColor: color, + }); +}; +const stylesCreate = (0, styles_1.createStyles)(({ colors }, size, border) => ({ + container: { + alignSelf: 'center', + justifyContent: 'center', + alignItems: 'center', + ...getSizeStyles(size), + ...getBorderStyles(colors.BgPrimary, border), + }, + image: { + ...getSizeStyles(size), + ...getBorderStyles(colors.BgPrimary, border), + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/other/components/Avatar/types.js b/lib/packages/core/src/other/components/Avatar/types.js new file mode 100644 index 000000000..3160b7840 --- /dev/null +++ b/lib/packages/core/src/other/components/Avatar/types.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IBadgeTypes = exports.IStatusTypes = exports.IAvatarTypes = exports.IAvatarSize = void 0; +var IAvatarSize; +(function (IAvatarSize) { + IAvatarSize["S"] = "S"; + IAvatarSize["M"] = "M"; + IAvatarSize["L"] = "L"; + IAvatarSize["XL"] = "XL"; +})(IAvatarSize || (exports.IAvatarSize = IAvatarSize = {})); +var IAvatarTypes; +(function (IAvatarTypes) { + IAvatarTypes["icon"] = "icon"; + IAvatarTypes["text"] = "text"; +})(IAvatarTypes || (exports.IAvatarTypes = IAvatarTypes = {})); +var IStatusTypes; +(function (IStatusTypes) { + IStatusTypes["star"] = "icon-starfill"; +})(IStatusTypes || (exports.IStatusTypes = IStatusTypes = {})); +var IBadgeTypes; +(function (IBadgeTypes) { + IBadgeTypes["indicator"] = "indicator"; + IBadgeTypes["counter"] = "counter"; + IBadgeTypes["status"] = "status"; +})(IBadgeTypes || (exports.IBadgeTypes = IBadgeTypes = {})); diff --git a/lib/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.js b/lib/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.js new file mode 100644 index 000000000..9bf8ca1ac --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const styles_1 = require("../../../../styles"); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +const types_1 = require("./types"); +const BadgeIndicator = ({ type, style }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate); + const { colors } = (0, useTheme_1.default)(); + const getBackgroundColor = (0, react_1.useCallback)(() => { + switch (type) { + case types_1.IIndicatorTypes.secondary: + return colors.ElementAdditional; + case types_1.IIndicatorTypes.primary: + default: + return colors.ElementAttention; + } + }, [type]); + return (); +}; +exports.default = BadgeIndicator; +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + indicator: { + position: 'absolute', + zIndex: 1, + width: (0, px_1.default)(9), + height: (0, px_1.default)(9), + borderRadius: (0, px_1.default)(9) / 2, + borderColor: colors.BgPrimary, + borderWidth: spaces.Space1, + }, +})); diff --git a/lib/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/BadgeIndicator.js b/lib/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/BadgeIndicator.js new file mode 100644 index 000000000..b35cd7471 --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/BadgeIndicator.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const BadgeIndicator_1 = __importDefault(require("../BadgeIndicator")); +const types_1 = require("../types"); +describe('BadgeIndicator', () => { + test('render BadgeIndicator secondary', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render BadgeIndicator primary', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Badge/BadgeIndicator/index.js b/lib/packages/core/src/other/components/Badge/BadgeIndicator/index.js new file mode 100644 index 000000000..56002ca02 --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/BadgeIndicator/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BadgeIndicator = void 0; +const BadgeIndicator_1 = __importDefault(require("./BadgeIndicator")); +exports.BadgeIndicator = BadgeIndicator_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Badge/BadgeIndicator/types.js b/lib/packages/core/src/other/components/Badge/BadgeIndicator/types.js new file mode 100644 index 000000000..002fdeebd --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/BadgeIndicator/types.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IIndicatorTypes = void 0; +var IIndicatorTypes; +(function (IIndicatorTypes) { + IIndicatorTypes["primary"] = "primary"; + IIndicatorTypes["secondary"] = "secondary"; +})(IIndicatorTypes || (exports.IIndicatorTypes = IIndicatorTypes = {})); diff --git a/lib/packages/core/src/other/components/Badge/Counter/Counter.js b/lib/packages/core/src/other/components/Badge/Counter/Counter.js new file mode 100644 index 000000000..80884a7d3 --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/Counter/Counter.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const typography_1 = require("../../../../typography"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const types_1 = require("./types"); +const Counter = ({ count, style, size = types_1.ICounterSize.medium, type = types_1.ICounterTypes.accent, maxLength = 2, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, size, type); + const font = size === types_1.ICounterSize.medium ? 'SemiBold-White-M' : 'SemiBold-White-XXS'; + if (!count) { + return null; + } + const lastNumber = `${'9'.repeat(maxLength)}+`; + const text = count.toString().length > maxLength ? lastNumber : count.toString(); + return ( + + {text} + + ); +}; +exports.default = Counter; diff --git a/lib/packages/core/src/other/components/Badge/Counter/__tests__/Counter.test.js b/lib/packages/core/src/other/components/Badge/Counter/__tests__/Counter.test.js new file mode 100644 index 000000000..f5c9c384d --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/Counter/__tests__/Counter.test.js @@ -0,0 +1,54 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Counter_1 = __importDefault(require("../Counter")); +const types_1 = require("../types"); +describe('Counter', () => { + test('render counter', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterSize.medium', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterSize.small', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.accentLight', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.attentionLight', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.attention', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.accent', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.mutedLight', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter ICounterTypes.muted', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render counter style', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render notification', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Badge/Counter/index.js b/lib/packages/core/src/other/components/Badge/Counter/index.js new file mode 100644 index 000000000..8c139fd5c --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/Counter/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Counter = void 0; +const Counter_1 = __importDefault(require("./Counter")); +exports.Counter = Counter_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Badge/Counter/stylesCreate.js b/lib/packages/core/src/other/components/Badge/Counter/stylesCreate.js new file mode 100644 index 000000000..77bab7ffb --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/Counter/stylesCreate.js @@ -0,0 +1,54 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../../styles"); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +const types_1 = require("./types"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, size, type) => { + const isMedium = size === types_1.ICounterSize.medium; + const defaultSize = isMedium ? spaces.Space24 : (0, px_1.default)(18); + const getBackgroundColor = () => { + switch (type) { + case types_1.ICounterTypes.attention: + return { backgroundColor: colors.ElementAttention }; + case types_1.ICounterTypes.accent: + return { backgroundColor: colors.ElementBase }; + case types_1.ICounterTypes.muted: + return { backgroundColor: colors.ElementMuted }; + default: + return { backgroundColor: colors.ElementWhite }; + } + }; + const getColorText = () => { + switch (type) { + case types_1.ICounterTypes.accentLight: + return { color: colors.TextAccent }; + case types_1.ICounterTypes.attentionLight: + return { color: colors.TextError }; + case types_1.ICounterTypes.mutedLight: + return { color: colors.TextMuted }; + default: + return { color: colors.TextWhite }; + } + }; + return { + counter: { + zIndex: 1, + alignSelf: 'center', + minWidth: defaultSize, + height: defaultSize, + borderRadius: defaultSize / 2, + alignItems: 'center', + justifyContent: 'center', + ...getBackgroundColor(), + }, + text: { + textAlign: 'center', + paddingHorizontal: isMedium ? spaces.Space6 : spaces.Space4, + ...getColorText(), + }, + }; +}); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/other/components/Badge/Counter/types.js b/lib/packages/core/src/other/components/Badge/Counter/types.js new file mode 100644 index 000000000..6a073fd37 --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/Counter/types.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ICounterTypes = exports.ICounterSize = void 0; +var ICounterSize; +(function (ICounterSize) { + ICounterSize["medium"] = "medium"; + ICounterSize["small"] = "small"; +})(ICounterSize || (exports.ICounterSize = ICounterSize = {})); +var ICounterTypes; +(function (ICounterTypes) { + ICounterTypes["accentLight"] = "accentLight"; + ICounterTypes["accent"] = "accent"; + ICounterTypes["mutedLight"] = "mutedLight"; + ICounterTypes["attentionLight"] = "attentionLight"; + ICounterTypes["attention"] = "attention"; + ICounterTypes["muted"] = "muted"; +})(ICounterTypes || (exports.ICounterTypes = ICounterTypes = {})); diff --git a/lib/packages/core/src/other/components/Badge/index.js b/lib/packages/core/src/other/components/Badge/index.js new file mode 100644 index 000000000..3f4a2be52 --- /dev/null +++ b/lib/packages/core/src/other/components/Badge/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Counter"), exports); +__exportStar(require("./BadgeIndicator"), exports); diff --git a/lib/packages/core/src/other/components/Carousel/AutoCarousel.js b/lib/packages/core/src/other/components/Carousel/AutoCarousel.js new file mode 100644 index 000000000..321eecb02 --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/AutoCarousel.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Carousel_1 = __importDefault(require("./Carousel")); +const AutoCarousel = ({ ...otherProps }) => { + return (); +}; +exports.default = AutoCarousel; diff --git a/lib/packages/core/src/other/components/Carousel/AutoLoopCarousel.js b/lib/packages/core/src/other/components/Carousel/AutoLoopCarousel.js new file mode 100644 index 000000000..01d15dc78 --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/AutoLoopCarousel.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const LoopCarousel_1 = __importDefault(require("./LoopCarousel")); +const AutoLoopCarousel = ({ ...otherProps }) => { + return ; +}; +exports.default = AutoLoopCarousel; diff --git a/lib/packages/core/src/other/components/Carousel/Carousel.js b/lib/packages/core/src/other/components/Carousel/Carousel.js new file mode 100644 index 000000000..65827a1ef --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/Carousel.js @@ -0,0 +1,132 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const TouchableOpacity_1 = __importDefault(require("../../../basic/components/TouchableOpacity/TouchableOpacity")); +const constants_1 = require("../../constants"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const Dots_1 = __importDefault(require("../Dots/Dots")); +const isNumber_1 = require("../../functions/isNumber"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const types_1 = require("./types"); +const Carousel = ({ data, sliderItem, keyExtractor, loading = false, sideMargin = (0, px_1.default)(10), itemWidth, onPressItem, activeItemId, averageItemLength, animateAutoScroll = false, isDots = false, onActiveChange, align = types_1.ICarouselAlign.start, onEndReached, initialNumToRender, isScrolling = false, ms = 2000, indexScroll, dotSize, activeDotColor, passiveDotColor, dotsStyles, ...otherProps }) => { + const ref = (0, react_1.useRef)(null); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, sideMargin); + const [currIndex, setCurrIndex] = (0, react_1.useState)(0); + const widthSnap = itemWidth + sideMargin * 2; + const { width: WIDTH } = (0, react_native_safe_area_context_1.useSafeAreaFrame)(); + const viewabilityConfig = (0, react_1.useRef)({ + itemVisiblePercentThreshold: 80, + waitForInteraction: true, + }).current; + const initScroll = (0, react_1.useCallback)(() => { + const selectedIndex = indexScroll || + data.findIndex(item => keyExtractor(item) === activeItemId); + if (selectedIndex > -1 && selectedIndex !== currIndex) { + const widthData = widthSnap * selectedIndex; + const emptySpace = WIDTH - widthSnap; + setCurrIndex(selectedIndex); + align === types_1.ICarouselAlign.center + ? ref.current?.scrollToOffset({ + offset: widthData - emptySpace / 2, + animated: false, + }) + : ref.current?.scrollToIndex({ + index: selectedIndex, + animated: false, + }); + } + }, [ + align, + WIDTH, + indexScroll, + activeItemId, + currIndex, + data, + keyExtractor, + widthSnap, + ]); + const onPress = (0, react_1.useCallback)((item) => () => { + !loading && onPressItem && onPressItem(item); + }, [loading, onPressItem]); + const renderItem = (0, react_1.useCallback)(({ item, index }) => { + return ( + {sliderItem(item, index, data)} + ); + }, [data, onPress, onPressItem, loading, sliderItem]); + const onScrollToIndexFailed = (0, react_1.useCallback)((error) => { + if (averageItemLength) { + ref.current?.scrollToOffset({ + offset: averageItemLength * error.index, + animated: animateAutoScroll, + }); + } + }, [averageItemLength, animateAutoScroll]); + const visibleElementsCount = Math.floor(WIDTH / widthSnap); + const handleOnViewableItemsChanged = (0, react_1.useRef)(({ viewableItems }) => { + if (align === types_1.ICarouselAlign.start) { + const index = viewableItems[0]?.index; + if ((0, isNumber_1.isNumber)(index)) { + setCurrIndex(index); + } + typeof onActiveChange === 'function' && + viewableItems[0]?.item && + onActiveChange(viewableItems[0]?.item); + } + else { + const length = viewableItems.length; + const count = viewableItems[0]?.index === 0 ? length - 1 : length + 1; + const currLength = visibleElementsCount > length ? count : length; + const isEven = currLength % 2 === 0; + const middleVisibleElement = isEven && viewableItems[0]?.index === 0 + ? Math.floor(currLength / 2) - 1 + : Math.floor(currLength / 2); + const index = viewableItems[middleVisibleElement]?.index; + if ((0, isNumber_1.isNumber)(index)) { + setCurrIndex(index); + } + typeof onActiveChange === 'function' && + viewableItems[middleVisibleElement]?.item && + onActiveChange(viewableItems[middleVisibleElement]?.item); + } + }).current; + (0, react_1.useEffect)(() => { + if (!isScrolling) { + return; + } + const timerAutoScroll = setInterval(() => { + setCurrIndex(state => { + ref.current?.scrollToIndex({ + animated: true, + index: state + 1, + }); + return state + 1; + }); + }, ms); + if (currIndex === data.length - 1) { + clearInterval(timerAutoScroll); + } + return () => clearInterval(timerAutoScroll); + }, [currIndex, data.length, isScrolling, ms]); + const checkScroll = (0, react_1.useCallback)(({ contentOffset }, index) => { + if (!contentOffset.x) { + ref.current?.scrollToOffset({ + offset: widthSnap * index, + animated: false, + }); + } + }, [widthSnap]); + const onScroll = (0, react_1.useCallback)((event) => { + indexScroll && checkScroll(event.nativeEvent, indexScroll); + }, [indexScroll, checkScroll]); + return (<> + + {isDots && ()} + ); +}; +exports.default = Carousel; diff --git a/lib/packages/core/src/other/components/Carousel/LoopCarousel.js b/lib/packages/core/src/other/components/Carousel/LoopCarousel.js new file mode 100644 index 000000000..6b9c7299e --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/LoopCarousel.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const types_1 = require("./types"); +const Carousel_1 = __importDefault(require("./Carousel")); +const LoopCarousel = ({ data, itemWidth, align = types_1.ICarouselAlign.start, ...otherProps }) => { + const [infinityData, setInfinityData] = (0, react_1.useState)([...data, ...data, ...data]); + const keyExtractorDefault = (0, react_1.useCallback)((item, index) => { + return String(index) + String(item); + }, []); + const onEndReached = (0, react_1.useCallback)(() => setInfinityData([...infinityData, ...data]), [data, infinityData]); + return (); +}; +exports.default = LoopCarousel; diff --git a/lib/packages/core/src/other/components/Carousel/__tests__/AutoCarousel.test.js b/lib/packages/core/src/other/components/Carousel/__tests__/AutoCarousel.test.js new file mode 100644 index 000000000..1d89ec042 --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/__tests__/AutoCarousel.test.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const AutoCarousel_1 = __importDefault(require("../AutoCarousel")); +const styles_1 = require("../../../../styles"); +const data = [ + { name: 'icon-starfill', id: '0' }, + { name: 'icon-starfill', id: '1' }, + { name: 'icon-starfill', id: '2' }, + { name: 'icon-starfill', id: '3' }, + { name: 'icon-starfill', id: '4' }, + { name: 'icon-starfill', id: '5' }, + { name: 'icon-starfill', id: '6' }, +]; +const sliderItem = (item) => ; +const itemWidth = 100; +const keyExtractor = (item) => item.id; +describe('AutoCarousel', () => { + it('render AutoCarousel', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Carousel/__tests__/AutoLoopCarousel.test.js b/lib/packages/core/src/other/components/Carousel/__tests__/AutoLoopCarousel.test.js new file mode 100644 index 000000000..5b37b711d --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/__tests__/AutoLoopCarousel.test.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const AutoLoopCarousel_1 = __importDefault(require("../AutoLoopCarousel")); +const styles_1 = require("../../../../styles"); +const data = [ + { name: 'icon-starfill', id: '0' }, + { name: 'icon-starfill', id: '1' }, + { name: 'icon-starfill', id: '2' }, + { name: 'icon-starfill', id: '3' }, + { name: 'icon-starfill', id: '4' }, + { name: 'icon-starfill', id: '5' }, + { name: 'icon-starfill', id: '6' }, +]; +const sliderItem = (item) => ; +const itemWidth = 100; +describe('AutoLoopCarousel', () => { + it('render AutoCarousel', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Carousel/__tests__/Carousel.test.js b/lib/packages/core/src/other/components/Carousel/__tests__/Carousel.test.js new file mode 100644 index 000000000..0b91f410c --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/__tests__/Carousel.test.js @@ -0,0 +1,296 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const Carousel_1 = __importDefault(require("../Carousel")); +const styles_1 = require("../../../../styles"); +const constants_1 = require("../../../constants"); +const types_1 = require("../types"); +const data = [ + { name: 'icon-starfill', id: '0' }, + { name: 'icon-starfill', id: '1' }, + { name: 'icon-starfill', id: '2' }, + { name: 'icon-starfill', id: '3' }, + { name: 'icon-starfill', id: '4' }, + { name: 'icon-starfill', id: '5' }, + { name: 'icon-starfill', id: '6' }, +]; +const sliderItem = (item) => ; +const keyExtractor = (item) => item.id; +const itemWidth = 100; +describe('Carousel', () => { + beforeAll(() => { + jest.useFakeTimers(); + }); + afterAll(() => { + jest.useFakeTimers(); + }); + it('render Carousel', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel loading', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel onScroll', () => { + const { toJSON, getAllByLabelText } = (0, react_native_1.render)( + + ); + const onPressItem = getAllByLabelText(constants_1.LABELS.carouselItem); + onPressItem[0] && react_native_1.fireEvent.press(onPressItem[0]); + onPressItem[0] && react_native_1.fireEvent.scroll(onPressItem[0]); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel activeItemId', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel not activeItemId', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel averageItemLength', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onScrollToIndexFailed', { + error: { index: 7 }, + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel averageItemLength onScrollToIndexFailed', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel onScrollToIndexFailed', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onScrollToIndexFailed', { + error: { index: 7 }, + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel animateAutoScroll true', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel isDots', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.fireEvent)(carousel, 'onScroll', { + nativeEvent: { + contentSize: { height: 600, width: 500 }, + contentOffset: { x: 150, y: 0 }, + layoutMeasurement: { height: 100, width: 500 }, + }, + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel isDots with props', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel onActiveChange', () => { + const { toJSON } = (0, react_native_1.render)( + console.log('item', item)} itemWidth={itemWidth}/> + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel scroll', () => { + const onActiveChange = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 7, + isViewable: true, + item: { name: 'icon-starfill', id: '7' }, + key: '7', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel scroll align = center', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + console.log('item', item)} activeItemId={'3'} itemWidth={itemWidth} align={types_1.ICarouselAlign.center}/> + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 0, + isViewable: true, + item: { name: 'icon-starfill', id: '0' }, + key: '0', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel scroll align = center honest', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + console.log('item', item)} activeItemId={'6'} itemWidth={itemWidth} align={types_1.ICarouselAlign.center}/> + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 0, + isViewable: true, + item: { name: 'icon-starfill', id: '0' }, + key: '0', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel scroll align = center honest count', () => { + const onActiveChange = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 5, + isViewable: true, + item: { name: 'icon-starfill', id: '5' }, + key: '5', + }, + { + index: 6, + isViewable: true, + item: { name: 'icon-starfill', id: '6' }, + key: '6', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel scroll align = center count', () => { + const onActiveChange = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 4, + isViewable: true, + item: { name: 'icon-starfill', id: '4' }, + key: '4', + }, + { + index: 5, + isViewable: true, + item: { name: 'icon-starfill', id: '5' }, + key: '5', + }, + { + index: 6, + isViewable: true, + item: { name: 'icon-starfill', id: '6' }, + key: '6', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel not scroll', () => { + const onActiveChange = jest.fn(); + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [ + { + index: 15, + isViewable: true, + item: { name: 'icon-starfill', id: '15' }, + key: '15', + }, + ], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel not index', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + console.log('item', item)} itemWidth={itemWidth}/> + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('render Carousel autoScroll', () => { + jest.useFakeTimers(); + const { toJSON } = (0, react_native_1.render)( + + ); + (0, react_native_1.act)(() => { + jest.runOnlyPendingTimers(); + }); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Carousel/__tests__/LoopCarousel.test.js b/lib/packages/core/src/other/components/Carousel/__tests__/LoopCarousel.test.js new file mode 100644 index 000000000..c4d856274 --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/__tests__/LoopCarousel.test.js @@ -0,0 +1,124 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const styles_1 = require("../../../../styles"); +const LoopCarousel_1 = __importDefault(require("../LoopCarousel")); +const constants_1 = require("../../../constants"); +const types_1 = require("../types"); +const data = [ + { name: 'icon-starfill', id: '0' }, + { name: 'icon-starfill', id: '1' }, + { name: 'icon-starfill', id: '2' }, + { name: 'icon-starfill', id: '3' }, + { name: 'icon-starfill', id: '4' }, + { name: 'icon-starfill', id: '5' }, + { name: 'icon-starfill', id: '6' }, +]; +const sliderItem = (item) => ; +const itemWidth = 100; +describe('LoopCarousel', () => { + it('render LoopCarousel sideMargin', () => { + const { toJSON } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('render LoopCarousel onPressItem', () => { + const onPressItem = jest.fn(); + const { getAllByLabelText } = (0, react_native_1.render)( + + ); + const onPressItemJSX = getAllByLabelText(constants_1.LABELS.carouselItem); + onPressItemJSX[0] && react_native_1.fireEvent.press(onPressItemJSX[0]); + expect(onPressItem).toHaveBeenCalledWith(data[0]); + }); + it('render LoopCarousel onPressItem loading', () => { + const { toJSON, getAllByLabelText } = (0, react_native_1.render)( + console.log(item)} itemWidth={itemWidth} loading={true}/> + ); + const onPressItem = getAllByLabelText(constants_1.LABELS.carouselItem); + onPressItem[0] && react_native_1.fireEvent.press(onPressItem[0]); + onPressItem[0] && react_native_1.fireEvent.scroll(onPressItem[0]); + expect(toJSON()).toMatchSnapshot(); + }); + it('render LoopCarousel activeItemId', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + }); + it('render LoopCarousel initScroll isLoop', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + }); + it('render LoopCarousel initScroll isLoop align === center', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + }); + it('render LoopCarousel contentOffset = 0', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.fireEvent)(carousel, 'onScroll', { + nativeEvent: { + contentSize: { height: 600, width: 500 }, + contentOffset: { x: 0, y: 0 }, + layoutMeasurement: { height: 100, width: 500 }, + }, + }); + }); + it('render LoopCarousel contentOffset = contentSize', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + + ); + expect(toJSON()).toMatchSnapshot(); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.fireEvent)(carousel, 'onScroll', { + nativeEvent: { + contentSize: { height: 600, width: 500 }, + contentOffset: { x: 100, y: 0 }, + layoutMeasurement: { height: 100, width: 500 }, + }, + }); + }); + it('render LoopCarousel not index isLoop', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + console.log('item', item)} itemWidth={itemWidth}/> + ); + const carousel = getByLabelText(constants_1.LABELS.carousel); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(carousel, 'onViewableItemsChanged', { + viewableItems: [], + }); + }); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Carousel/components/EmptyFirstItem.js b/lib/packages/core/src/other/components/Carousel/components/EmptyFirstItem.js new file mode 100644 index 000000000..c8869330d --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/components/EmptyFirstItem.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const EmptyFirstItem = ({ align, width, }) => { + return align === types_1.ICarouselAlign.center ? () : null; +}; +exports.default = EmptyFirstItem; diff --git a/lib/packages/core/src/other/components/Carousel/index.js b/lib/packages/core/src/other/components/Carousel/index.js new file mode 100644 index 000000000..5817b066d --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AutoLoopCarousel = exports.AutoCarousel = exports.LoopCarousel = exports.Carousel = void 0; +const Carousel_1 = __importDefault(require("./Carousel")); +exports.Carousel = Carousel_1.default; +const LoopCarousel_1 = __importDefault(require("./LoopCarousel")); +exports.LoopCarousel = LoopCarousel_1.default; +const AutoCarousel_1 = __importDefault(require("./AutoCarousel")); +exports.AutoCarousel = AutoCarousel_1.default; +const AutoLoopCarousel_1 = __importDefault(require("./AutoLoopCarousel")); +exports.AutoLoopCarousel = AutoLoopCarousel_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Carousel/stylesCreate.js b/lib/packages/core/src/other/components/Carousel/stylesCreate.js new file mode 100644 index 000000000..3f2cafb3e --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/stylesCreate.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)((_, sideMargin) => ({ + item: { + marginHorizontal: Math.floor(sideMargin), + justifyContent: 'center', + alignItems: 'center', + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/other/components/Carousel/types.js b/lib/packages/core/src/other/components/Carousel/types.js new file mode 100644 index 000000000..868e6ac98 --- /dev/null +++ b/lib/packages/core/src/other/components/Carousel/types.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ICarouselAlign = void 0; +var ICarouselAlign; +(function (ICarouselAlign) { + ICarouselAlign["center"] = "center"; + ICarouselAlign["start"] = "start"; +})(ICarouselAlign || (exports.ICarouselAlign = ICarouselAlign = {})); diff --git a/lib/packages/core/src/other/components/Collapsible/Collapsible.js b/lib/packages/core/src/other/components/Collapsible/Collapsible.js new file mode 100644 index 000000000..cd9e6761f --- /dev/null +++ b/lib/packages/core/src/other/components/Collapsible/Collapsible.js @@ -0,0 +1,58 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const typography_1 = require("../../../typography"); +const TouchableOpacity_1 = __importDefault(require("../../../basic/components/TouchableOpacity/TouchableOpacity")); +const SimpleIcon_1 = __importDefault(require("../../../styles/icons/font/SimpleIcon")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const constants_1 = require("../../constants"); +const styles_1 = require("../../../styles"); +if (react_native_1.Platform.OS === 'android' && + react_native_1.UIManager.setLayoutAnimationEnabledExperimental) { + react_native_1.UIManager.setLayoutAnimationEnabledExperimental(true); +} +const Collapsible = (props) => { + const { title, children, duration = 250, containerStyle, fontTitle = 'SemiBold-Secondary-M', headerStyle, titleStyle, typeAnimation = 'easeInEaseOut', creationPropAnimation = 'scaleY', numberOfLines = 2, initialState = false, isAnimated = true, titleBottomView, } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate); + const { colors } = (0, useTheme_1.default)(); + const [collapsed, setCollapsed] = (0, react_1.useState)(initialState); + const onPress = (0, react_1.useCallback)(() => { + setCollapsed(!collapsed); + isAnimated && + react_native_1.LayoutAnimation.configureNext(react_native_1.LayoutAnimation.create(duration, typeAnimation, creationPropAnimation)); + }, [collapsed, duration, isAnimated]); + const name = (0, react_1.useMemo)(() => { + return collapsed ? 'icon-arrow-down' : 'icon-arrow-right'; + }, [collapsed]); + return ( + + + {title} + + + + {titleBottomView} + {collapsed && children} + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + container: { + width: '100%', + padding: spaces.Space20, + }, + header: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + }, + title: { + flex: 1, + }, +})); +exports.default = Collapsible; diff --git a/lib/packages/core/src/other/components/Collapsible/__tests__/Collapsible.test.js b/lib/packages/core/src/other/components/Collapsible/__tests__/Collapsible.test.js new file mode 100644 index 000000000..917b824f0 --- /dev/null +++ b/lib/packages/core/src/other/components/Collapsible/__tests__/Collapsible.test.js @@ -0,0 +1,44 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_2 = require("react-native"); +const Collapsible_1 = __importDefault(require("../Collapsible")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const constants_1 = require("../../../constants"); +describe('Collapsible', () => { + test('render crossed onPress - 1', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + <> + + + ); + const onPress = getByLabelText(constants_1.LABELS.collapsed); + react_native_1.fireEvent.press(onPress); + expect(toJSON()).toMatchSnapshot(); + }); + test('render crossed onPress - 1 android', () => { + react_native_2.Platform.OS = 'android'; + const { toJSON, getByLabelText } = (0, react_native_1.render)(}> + <> + + + ); + const onPress = getByLabelText(constants_1.LABELS.collapsed); + react_native_1.fireEvent.press(onPress); + expect(toJSON()).toMatchSnapshot(); + }); + test('render crossed onPress - 2', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)( + <> + + + ); + const onPress = getByLabelText(constants_1.LABELS.collapsed); + react_native_1.fireEvent.press(onPress); + react_native_1.fireEvent.press(onPress); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Collapsible/index.js b/lib/packages/core/src/other/components/Collapsible/index.js new file mode 100644 index 000000000..3f55d1287 --- /dev/null +++ b/lib/packages/core/src/other/components/Collapsible/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Collapsible = void 0; +const Collapsible_1 = __importDefault(require("./Collapsible")); +exports.Collapsible = Collapsible_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Collapsible/types.js b/lib/packages/core/src/other/components/Collapsible/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/other/components/Collapsible/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/other/components/CrossedText/CrossedText.js b/lib/packages/core/src/other/components/CrossedText/CrossedText.js new file mode 100644 index 000000000..9b62dc9dd --- /dev/null +++ b/lib/packages/core/src/other/components/CrossedText/CrossedText.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const typography_1 = require("../../../typography"); +const styles_1 = require("../../../styles"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const CrossedText = ({ children, style, lineColor, lineHeight = (0, px_1.default)(1), ...props }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate); + return ( + {children} + + + + ); +}; +const stylesCreate = (0, styles_1.createStyles)(_ => ({ + crossed: { + width: '100%', + height: '100%', + position: 'absolute', + justifyContent: 'center', + alignItems: 'center', + }, + line: { + width: '100%', + }, +})); +exports.default = CrossedText; diff --git a/lib/packages/core/src/other/components/CrossedText/__tests__/CrossesText.test.js b/lib/packages/core/src/other/components/CrossedText/__tests__/CrossesText.test.js new file mode 100644 index 000000000..1f2400cbb --- /dev/null +++ b/lib/packages/core/src/other/components/CrossedText/__tests__/CrossesText.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const CrossedText_1 = __importDefault(require("../CrossedText")); +describe('CrossedText', () => { + test('render crossed text default', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render crossed text with lineHeight', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/CrossedText/index.js b/lib/packages/core/src/other/components/CrossedText/index.js new file mode 100644 index 000000000..ce8dd55c4 --- /dev/null +++ b/lib/packages/core/src/other/components/CrossedText/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CrossedText = void 0; +const CrossedText_1 = __importDefault(require("./CrossedText")); +exports.CrossedText = CrossedText_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/CrossedText/types.js b/lib/packages/core/src/other/components/CrossedText/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/other/components/CrossedText/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/other/components/Dots/Dot.js b/lib/packages/core/src/other/components/Dots/Dot.js new file mode 100644 index 000000000..7176af9ed --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/Dot.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const styles_1 = require("../../../styles"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Dot = ({ active, size, activeDotColor, passiveDotColor, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, size); + const { colors } = (0, styles_1.useTheme)(); + const backgroundColor = (0, react_1.useMemo)(() => { + return active + ? activeDotColor || colors.ElementNeutral + : passiveDotColor || colors.ElementMuted; + }, [ + active, + activeDotColor, + colors.ElementMuted, + colors.ElementNeutral, + passiveDotColor, + ]); + return ; +}; +exports.default = Dot; diff --git a/lib/packages/core/src/other/components/Dots/Dots.js b/lib/packages/core/src/other/components/Dots/Dots.js new file mode 100644 index 000000000..373a93fba --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/Dots.js @@ -0,0 +1,127 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const constants_1 = require("../../constants"); +const Dot_1 = __importDefault(require("./Dot")); +const constants_2 = require("./constants"); +function getDirection(newIdx, prevIdx) { + if (newIdx === prevIdx) { + return 0; + } + return newIdx < prevIdx ? -1 : 1; +} +const Dots = ({ length, activeDot, animateAutoScroll = true, fixedSize, activeDotColor, passiveDotColor, dotsStyles, }) => { + const refScrollView = (0, react_1.useRef)(null); + const dots = [...Array(length).keys()]; + const [prevIndex, setPrevIndex] = (0, react_1.useState)(activeDot - 1); + const direction = (0, react_1.useRef)(getDirection(activeDot, prevIndex)); + const half = Math.floor((constants_2.SPAN_SIZE - 1) / 2); + const isFirstHalf = activeDot < Math.floor(length / 2); + const isDynamicDots = length < 7; + const numConsumed = isFirstHalf + ? Math.max(activeDot - half, 0) + : Math.min(activeDot + half, length - 1) - activeDot; + const i = (0, react_1.useRef)(isFirstHalf + ? activeDot - numConsumed + : activeDot - (constants_2.SPAN_SIZE - 1 - numConsumed)); + const j = (0, react_1.useRef)(isFirstHalf + ? activeDot + (constants_2.SPAN_SIZE - 1 - numConsumed) + : activeDot + numConsumed); + const isMiddleDotActive = activeDot !== i.current + 1; + function updateIndexes(currentDirection, currentIndex) { + if (currentDirection === -1) { + i.current = Math.min(currentIndex, i.current); + j.current = Math.min(i.current + (constants_2.SPAN_SIZE - 1), j.current); + } + else if (currentDirection === 1) { + j.current = Math.max(currentIndex, j.current); + i.current = Math.max(j.current - (constants_2.SPAN_SIZE - 1), i.current); + } + } + function setIndexes() { + direction.current = getDirection(activeDot, prevIndex); + updateIndexes(direction.current, activeDot); + setPrevIndex(activeDot); + } + const scrollTo = (index) => { + if (!refScrollView.current) { + return; + } + setIndexes(); + const indicatorRight = () => { + if (index > constants_2.SPAN_SIZE) { + return index - 4; + } + else { + return index - 3; + } + }; + const moveTo = Math.max(0, (direction.current > 0 ? indicatorRight() : index - 1) * + (constants_2.SIZE_SMALL + constants_2.MARGIN_DOT)); + const isScrollTo = prevIndex !== i.current && prevIndex !== j.current; + isScrollTo && + refScrollView.current.scrollTo({ + x: moveTo, + y: 0, + animated: animateAutoScroll, + }); + }; + (0, react_1.useEffect)(() => { + isDynamicDots ? setIndexes() : isMiddleDotActive && scrollTo(activeDot); + }, [activeDot, isDynamicDots, isMiddleDotActive]); + const size = (0, react_1.useCallback)((k) => { + const left = i.current; + const right = j.current; + if (k >= left && k <= right) { + return constants_2.SIZE_LARGE; + } + if (k === left - 1 && left - 1 >= 0) { + return constants_2.SIZE_MEDIUM; + } + if (k === right + 1 && right + 1 < length) { + return constants_2.SIZE_MEDIUM; + } + return constants_2.SIZE_SMALL; + }, [activeDot]); + const renderDot = () => { + return dots.map(dot => ()); + }; + const onLayout = (0, react_1.useCallback)(() => { + //scroll to right index on initial render + scrollTo(activeDot); + }, [activeDot]); + const width = (0, react_1.useMemo)(() => { + return isDynamicDots + ? (fixedSize && (fixedSize + constants_2.MARGIN_DOT) * 8) || constants_2.WIDTH_MEDIUM + : constants_2.WIDTH_MEDIUM; + }, [fixedSize, isDynamicDots]); + if (isDynamicDots) { + return ( + {renderDot()} + ); + } + return ( + + {renderDot()} + + ); +}; +exports.default = Dots; diff --git a/lib/packages/core/src/other/components/Dots/__tests__/Dots.test.js b/lib/packages/core/src/other/components/Dots/__tests__/Dots.test.js new file mode 100644 index 000000000..ded1e648c --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/__tests__/Dots.test.js @@ -0,0 +1,68 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Dots_1 = __importDefault(require("../Dots")); +const constants_1 = require("../../../constants"); +describe('Dots', () => { + test('render dots length > 7', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots length < 7', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots activeDot=2', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots activeDot=2 fixedSize', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots activeDot=10', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots activeDot right', () => { + const { toJSON, rerender } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots activeDot left', () => { + const { toJSON, rerender } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + rerender(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots = 0', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + test('render dots onLayout', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(); + const layout = getByLabelText(constants_1.LABELS.dotsAnimatedView); + expect(toJSON()).toMatchSnapshot(); + (0, react_native_1.act)(() => { + (0, react_native_1.fireEvent)(layout, 'layout', { + nativeEvent: { layout: { height: 100 } }, + }); + }); + }); + test('render dots activeDot=10 animateAutoScroll', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.js b/lib/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.js new file mode 100644 index 000000000..6e62bb212 --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const px_1 = __importDefault(require("../../../../styles/utils/px")); +describe('dots/stylesCreate', () => { + it('must return', () => { + const { result } = (0, react_hooks_1.renderHook)(() => (0, useTheme_1.default)()); + expect((0, stylesCreate_1.default)(result.current)).toEqual({ + dot: { + width: (0, px_1.default)(8), + height: (0, px_1.default)(8), + marginHorizontal: (0, px_1.default)(5), + borderRadius: (0, px_1.default)(8) / 2, + }, + dots: { + flexDirection: 'row', + alignItems: 'center', + paddingTop: (0, px_1.default)(5), + }, + }); + }); +}); diff --git a/lib/packages/core/src/other/components/Dots/constants.js b/lib/packages/core/src/other/components/Dots/constants.js new file mode 100644 index 000000000..fba61ed62 --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/constants.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WIDTH_LARGE = exports.WIDTH_MEDIUM = exports.WIDTH_SMALL = exports.MARGIN_DOT = exports.SIZE_SMALL = exports.SIZE_MEDIUM = exports.SIZE_LARGE = exports.SPAN_SIZE = void 0; +const px_1 = __importDefault(require("../../../styles/utils/px")); +exports.SPAN_SIZE = 3; +exports.SIZE_LARGE = (0, px_1.default)(8); +exports.SIZE_MEDIUM = (0, px_1.default)(6); +exports.SIZE_SMALL = (0, px_1.default)(4); +exports.MARGIN_DOT = (0, px_1.default)(5) * 2; +exports.WIDTH_SMALL = (exports.SIZE_LARGE + exports.MARGIN_DOT) * 3 + + (exports.SIZE_MEDIUM + exports.MARGIN_DOT) + + (exports.SIZE_SMALL + exports.MARGIN_DOT); +exports.WIDTH_MEDIUM = exports.WIDTH_SMALL + (exports.SIZE_MEDIUM + exports.MARGIN_DOT); +exports.WIDTH_LARGE = exports.WIDTH_MEDIUM + (exports.SIZE_SMALL + exports.MARGIN_DOT); diff --git a/lib/packages/core/src/other/components/Dots/index.js b/lib/packages/core/src/other/components/Dots/index.js new file mode 100644 index 000000000..8d78d009b --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Dots = exports.Dot = void 0; +const Dot_1 = __importDefault(require("./Dot")); +exports.Dot = Dot_1.default; +const Dots_1 = __importDefault(require("./Dots")); +exports.Dots = Dots_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Dots/stylesCreate.js b/lib/packages/core/src/other/components/Dots/stylesCreate.js new file mode 100644 index 000000000..204afab1f --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/stylesCreate.js @@ -0,0 +1,21 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces }, size = spaces.Space8) => ({ + dot: { + width: size, + height: size, + marginHorizontal: (0, px_1.default)(5), + borderRadius: size / 2, + }, + dots: { + flexDirection: 'row', + alignItems: 'center', + paddingTop: (0, px_1.default)(5), + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/other/components/Dots/types.js b/lib/packages/core/src/other/components/Dots/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/other/components/Dots/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/other/components/Status/Status.js b/lib/packages/core/src/other/components/Status/Status.js new file mode 100644 index 000000000..c5fe06922 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/Status.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("./types"); +const StatusDot_1 = __importDefault(require("./components/StatusDot")); +const StatusTag_1 = __importDefault(require("./components/StatusTag")); +const Status = (props) => { + const { type, state, style } = props; + return type === types_1.IStatusType.dot ? () : (); +}; +exports.default = Status; diff --git a/lib/packages/core/src/other/components/Status/__tests__/Status.test.js b/lib/packages/core/src/other/components/Status/__tests__/Status.test.js new file mode 100644 index 000000000..cb25c7b88 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/__tests__/Status.test.js @@ -0,0 +1,54 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Status_1 = __importDefault(require("../Status")); +const types_1 = require("../types"); +describe('Status', () => { + it('render type dot green', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type dot red', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type dot blue', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type dot gray', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type dot orange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type tag green', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type tag blue', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type tag red', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type tag gray', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render type tag orange', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('render not state', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/other/components/Status/components/StatusDot.js b/lib/packages/core/src/other/components/Status/components/StatusDot.js new file mode 100644 index 000000000..6990c0971 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/components/StatusDot.js @@ -0,0 +1,46 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const types_1 = require("../types"); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const styles_1 = require("../../../../styles"); +const StatusDot = ({ state, style }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate); + const { colors } = (0, useTheme_1.default)(); + const getBackgroundColor = (0, react_1.useCallback)(() => { + switch (state) { + case types_1.IStatusState.blue: + return colors.ElementBase; + case types_1.IStatusState.red: + return colors.ElementAttention; + case types_1.IStatusState.green: + return colors.ElementSuccess; + case types_1.IStatusState.orange: + return colors.ElementAdditional; + case types_1.IStatusState.gray: + default: + return colors.ElementMuted; + } + }, [ + state, + colors.ElementAdditional, + colors.ElementBase, + colors.ElementAttention, + colors.ElementSuccess, + colors.ElementMuted, + ]); + return (); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + dot: { + width: spaces.Space8, + height: spaces.Space8, + borderRadius: spaces.Space8 / 2, + }, +})); +exports.default = StatusDot; diff --git a/lib/packages/core/src/other/components/Status/components/StatusTag.js b/lib/packages/core/src/other/components/Status/components/StatusTag.js new file mode 100644 index 000000000..4e7a38904 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/components/StatusTag.js @@ -0,0 +1,70 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const types_1 = require("../types"); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../../../styles/hooks/useTheme")); +const typography_1 = require("../../../../typography"); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const styles_1 = require("../../../../styles"); +const StatusTag = ({ state, text, style }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate); + const { colors } = (0, useTheme_1.default)(); + const getFont = (0, react_1.useCallback)(() => { + switch (state) { + case types_1.IStatusState.blue: + return 'Regular-Accent-XXS'; + case types_1.IStatusState.red: + return 'Regular-Error-XXS'; + case types_1.IStatusState.green: + return 'Regular-Success-XXS'; + case types_1.IStatusState.orange: + return 'Regular-Warning-XXS'; + case types_1.IStatusState.gray: + default: + return 'Regular-Tertiary-XXS'; + } + }, [state]); + const getBackgroundColorText = (0, react_1.useCallback)(() => { + switch (state) { + case types_1.IStatusState.blue: + return colors.BgAccentSoft; + case types_1.IStatusState.red: + return colors.BgError; + case types_1.IStatusState.green: + return colors.BgSuccess; + case types_1.IStatusState.orange: + return colors.BgWarning; + case types_1.IStatusState.gray: + default: + return colors.BgSecondary; + } + }, [ + state, + colors.BgAccentSoft, + colors.BgError, + colors.BgSuccess, + colors.BgWarning, + colors.BgSecondary, + ]); + return ( + {text} + ); +}; +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + tag: { + paddingVertical: spaces.Space2, + paddingHorizontal: spaces.Space6, + borderRadius: spaces.Space4, + }, +})); +exports.default = StatusTag; diff --git a/lib/packages/core/src/other/components/Status/index.js b/lib/packages/core/src/other/components/Status/index.js new file mode 100644 index 000000000..17f984e12 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Status = void 0; +const Status_1 = __importDefault(require("./Status")); +exports.Status = Status_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/other/components/Status/types.js b/lib/packages/core/src/other/components/Status/types.js new file mode 100644 index 000000000..b96bdb829 --- /dev/null +++ b/lib/packages/core/src/other/components/Status/types.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IStatusState = exports.IStatusType = void 0; +var IStatusType; +(function (IStatusType) { + IStatusType["dot"] = "dot"; + IStatusType["tag"] = "tag"; +})(IStatusType || (exports.IStatusType = IStatusType = {})); +var IStatusState; +(function (IStatusState) { + IStatusState["green"] = "green"; + IStatusState["orange"] = "orange"; + IStatusState["red"] = "red"; + IStatusState["blue"] = "blue"; + IStatusState["gray"] = "gray"; +})(IStatusState || (exports.IStatusState = IStatusState = {})); diff --git a/lib/packages/core/src/other/components/index.js b/lib/packages/core/src/other/components/index.js new file mode 100644 index 000000000..11aa71c62 --- /dev/null +++ b/lib/packages/core/src/other/components/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Badge/"), exports); +__exportStar(require("./CrossedText"), exports); +__exportStar(require("./Dots"), exports); +__exportStar(require("./Avatar"), exports); +__exportStar(require("./Carousel"), exports); +__exportStar(require("./Status"), exports); +__exportStar(require("./Collapsible"), exports); diff --git a/lib/packages/core/src/other/constants/LABELS.js b/lib/packages/core/src/other/constants/LABELS.js new file mode 100644 index 000000000..9b045372f --- /dev/null +++ b/lib/packages/core/src/other/constants/LABELS.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LABELS = void 0; +exports.LABELS = { + slider: 'slider', + sliderLayoutLowThumb: 'sliderLayoutLowThumb', + imageAvatar: 'imageAvatar', + swipe: 'swipe', + dotsAnimatedView: 'dotsAnimatedView', + dotsScrollView: 'dotsScrollView', + search: 'search', + cancelSearch: 'cancelSearch', + tab: 'tab', + codeField: 'codeField', + selector: 'selector', + actionSheetsItem: 'actionSheetsItem', + carousel: 'carousel', + carouselItem: 'carouselItem', + collapsed: 'collapsed', + panelHeaderLeftView: 'panelHeaderLeftView', + panelHeaderRightView: 'panelHeaderRightView', + chatInputField: 'chatInputField', +}; diff --git a/lib/packages/core/src/other/constants/index.js b/lib/packages/core/src/other/constants/index.js new file mode 100644 index 000000000..8c558167e --- /dev/null +++ b/lib/packages/core/src/other/constants/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LABELS = void 0; +const LABELS_1 = require("./LABELS"); +Object.defineProperty(exports, "LABELS", { enumerable: true, get: function () { return LABELS_1.LABELS; } }); diff --git a/lib/packages/core/src/other/functions/isNumber.js b/lib/packages/core/src/other/functions/isNumber.js new file mode 100644 index 000000000..58a263815 --- /dev/null +++ b/lib/packages/core/src/other/functions/isNumber.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isNumber = void 0; +function isNumber(value) { + return typeof value === 'number'; +} +exports.isNumber = isNumber; diff --git a/lib/packages/core/src/other/index.js b/lib/packages/core/src/other/index.js new file mode 100644 index 000000000..e0c6535e1 --- /dev/null +++ b/lib/packages/core/src/other/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./constants"), exports); diff --git a/lib/packages/core/src/popups/MobyDickPopup/MobyDickPopup.js b/lib/packages/core/src/popups/MobyDickPopup/MobyDickPopup.js new file mode 100644 index 000000000..27c43f94a --- /dev/null +++ b/lib/packages/core/src/popups/MobyDickPopup/MobyDickPopup.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.modalRef = void 0; +const react_1 = require("react"); +exports.modalRef = (0, react_1.createRef)(); +const MobyDickPopup = { + openPopup: props => { + return exports.modalRef.current?.openPopup(props); + }, + closePopup: id => { + exports.modalRef.current?.closePopup(id); + }, + closeAllPopups: () => { + exports.modalRef.current?.closeAllPopups(); + }, +}; +exports.default = MobyDickPopup; diff --git a/lib/packages/core/src/popups/MobyDickPopup/__tests__/MobyDickPopup.test.js b/lib/packages/core/src/popups/MobyDickPopup/__tests__/MobyDickPopup.test.js new file mode 100644 index 000000000..1e2244259 --- /dev/null +++ b/lib/packages/core/src/popups/MobyDickPopup/__tests__/MobyDickPopup.test.js @@ -0,0 +1,53 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ButtonWrapper_1 = __importDefault(require("../../../basic/components/Button/ButtonWrapper")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const PopupsProvider_1 = __importDefault(require("../../context/PopupsProvider")); +const MobyDickPopup_1 = __importDefault(require("../MobyDickPopup")); +const testIdPopup = 'testIdPopup'; +const testIdOpenPopup = 'testIdOpenPopup'; +const testIdCloseAllPopup = 'testIdCloseAllPopup'; +const Popup = ({ onClose }) => { + return (); +}; +const Example = () => { + return ( + { + const id = MobyDickPopup_1.default.openPopup({ + Content: Popup, + props: { + onClose: () => { + MobyDickPopup_1.default.closePopup(id); + }, + }, + }); + }} title={'title'}/> + MobyDickPopup_1.default.closeAllPopups()} title={'title'}/> + ); +}; +describe('@lad-tech/mobydick-core/MobyDickPopup', () => { + it('should renders correctly', async () => { + const { toJSON, getByTestId } = (0, react_native_1.render)( + + ); + // Изначально попапа нет + expect(toJSON()).toMatchSnapshot(); + // Вызвали openPopup и он появился + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + expect(toJSON()).toMatchSnapshot(); + // Вызвали onClose у попапа и он пропал + react_native_1.fireEvent.press(getByTestId(testIdPopup)); + expect(toJSON()).toMatchSnapshot(); + // Пооткрывали много папапов и они отприсовались норм + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + expect(toJSON()).toMatchSnapshot(); + // Вызвали closeAllPopups и они все закрылись + react_native_1.fireEvent.press(getByTestId(testIdCloseAllPopup)); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/MobyDickPopup/index.js b/lib/packages/core/src/popups/MobyDickPopup/index.js new file mode 100644 index 000000000..998a5fd4f --- /dev/null +++ b/lib/packages/core/src/popups/MobyDickPopup/index.js @@ -0,0 +1,33 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.modalRef = exports.MobyDickPopup = void 0; +const MobyDickPopup_1 = __importStar(require("./MobyDickPopup")); +exports.MobyDickPopup = MobyDickPopup_1.default; +Object.defineProperty(exports, "modalRef", { enumerable: true, get: function () { return MobyDickPopup_1.modalRef; } }); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/MobyDickPopup/types.js b/lib/packages/core/src/popups/MobyDickPopup/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/MobyDickPopup/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/ActionSheetBase.js b/lib/packages/core/src/popups/components/ActionSheetBase/ActionSheetBase.js new file mode 100644 index 000000000..f3d015d47 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/ActionSheetBase.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const PopupBase_1 = require("../PopupBase"); +const functions_1 = require("../../functions"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Item_1 = __importDefault(require("./Item")); +const ActionSheetBase = props => { + const { children, overlayStyle, onClose, containerStyle } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + {children} + + ); +}; +ActionSheetBase.Item = Item_1.default; +exports.default = ActionSheetBase; diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/Item.js b/lib/packages/core/src/popups/components/ActionSheetBase/Item.js new file mode 100644 index 000000000..19029aa9a --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/Item.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const Pressable_1 = __importDefault(require("../../../basic/components/Pressable/Pressable")); +const other_1 = require("../../../other"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Contents_1 = __importDefault(require("./content/Contents")); +const Item = props => { + const { onPress, style, disabled, itemType } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, itemType); + const { colors } = (0, useTheme_1.default)(); + const getStyle = (0, react_1.useCallback)(({ pressed }) => [ + styles.item, + { backgroundColor: pressed ? colors.BgSecondary : colors.BgPrimary }, + style, + ], []); + return ( + + ); +}; +exports.default = Item; diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/ActionSheetBase.test.js b/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/ActionSheetBase.test.js new file mode 100644 index 000000000..10466c172 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/ActionSheetBase.test.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ActionSheetBase_1 = __importDefault(require("../ActionSheetBase")); +const types_1 = require("../types"); +describe('@lad-tech/mobydick-core/ActionSheetBase', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}> + <> + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with item', () => { + const { toJSON } = (0, react_native_1.render)( null}> + + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/Item.test.js b/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/Item.test.js new file mode 100644 index 000000000..829bf3e2e --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/__tests__/Item.test.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Item_1 = __importDefault(require("../Item")); +const types_1 = require("../types"); +const SimpleIcon_1 = __importDefault(require("../../../../styles/icons/font/SimpleIcon")); +const other_1 = require("../../../../other"); +describe('@lad-tech/mobydick-core/ActionSheetBase', () => { + it('should renders correctly Item', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Item with textFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly inner item', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Item with !selected', () => { + const { toJSON } = (0, react_native_1.render)( null} textFont={'Regular-White-S'} title={'title'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Item with selected', () => { + const { toJSON } = (0, react_native_1.render)( null} title={'title'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Item with disabled', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Item with leftIcon', () => { + const { toJSON, getByLabelText } = (0, react_native_1.render)(}/>); + const pressableItem = getByLabelText(other_1.LABELS.actionSheetsItem); + react_native_1.fireEvent.press(pressableItem); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/content/Contents.js b/lib/packages/core/src/popups/components/ActionSheetBase/content/Contents.js new file mode 100644 index 000000000..7ea6401a1 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/content/Contents.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../types"); +const stylesCreate_1 = __importDefault(require("../stylesCreate")); +const useStyles_1 = __importDefault(require("../../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const typography_1 = require("../../../../typography"); +const CheckBox_1 = __importDefault(require("../../../../controls/CheckBox/CheckBox")); +const Radio_1 = __importDefault(require("../../../../controls/Radio/Radio")); +const Contents = (props) => { + const { title, leftIcon, textFont, radio, checkboxList, onPress, disabled, itemType, } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const check = checkboxList?.find(item => item === title) || radio === title; + const selectFont = () => { + if (itemType === types_1.IItemType.cancelItem) { + return disabled ? 'Medium-Muted-M' : 'Medium-Accent-M'; + } + else { + return textFont || 'Regular-Primary-M'; + } + }; + return (<> + + {leftIcon && {leftIcon}} + + {title} + + + + {checkboxList && ()} + {radio !== undefined && ()} + ); +}; +exports.default = Contents; diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/index.js b/lib/packages/core/src/popups/components/ActionSheetBase/index.js new file mode 100644 index 000000000..0b53f3d29 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ActionSheetBase = void 0; +const ActionSheetBase_1 = __importDefault(require("./ActionSheetBase")); +exports.ActionSheetBase = ActionSheetBase_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/stylesCreate.js b/lib/packages/core/src/popups/components/ActionSheetBase/stylesCreate.js new file mode 100644 index 000000000..3a9dbb316 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/stylesCreate.js @@ -0,0 +1,73 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const types_1 = require("./types"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, itemType) => { + const getItemStyle = () => { + switch (itemType) { + case types_1.IItemType.firstItem: + return { + borderTopLeftRadius: spaces.Space12, + borderTopRightRadius: spaces.Space12, + }; + case types_1.IItemType.innerItem: + return { + borderTopWidth: spaces.Space1, + borderTopColor: colors.BgTertiary, + }; + case types_1.IItemType.lastItem: + return { + borderBottomLeftRadius: spaces.Space12, + borderBottomRightRadius: spaces.Space12, + marginBottom: spaces.Space8, + borderTopWidth: spaces.Space1, + borderTopColor: colors.BgTertiary, + }; + case types_1.IItemType.cancelItem: + return { + borderRadius: spaces.Space12, + marginBottom: (0, px_1.default)(30), + justifyContent: 'center', + }; + default: + return { + borderRadius: spaces.Space12, + marginBottom: spaces.Space8, + justifyContent: 'center', + }; + } + }; + return { + overlayStyle: { + justifyContent: 'flex-end', + }, + containerStyle: { + width: '100%', + }, + item: { + justifyContent: 'space-between', + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: spaces.Space20, + marginHorizontal: spaces.Space8, + minHeight: (0, px_1.default)(50), + ...getItemStyle(), + }, + leftIcon: { + paddingRight: spaces.Space12, + }, + leftIconView: { + justifyContent: 'flex-start', + flexDirection: 'row', + alignItems: 'center', + }, + textSelected: { + paddingVertical: (0, px_1.default)(15), + }, + }; +}); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/ActionSheetBase/types.js b/lib/packages/core/src/popups/components/ActionSheetBase/types.js new file mode 100644 index 000000000..d78ad3e92 --- /dev/null +++ b/lib/packages/core/src/popups/components/ActionSheetBase/types.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IItemType = void 0; +var IItemType; +(function (IItemType) { + IItemType["firstItem"] = "firstItem"; + IItemType["innerItem"] = "innerItem"; + IItemType["lastItem"] = "lastItem"; + IItemType["singleItem"] = "singleItem"; + IItemType["cancelItem"] = "cancelItem"; +})(IItemType || (exports.IItemType = IItemType = {})); diff --git a/lib/packages/core/src/popups/components/ModalBase/AlertContent.js b/lib/packages/core/src/popups/components/ModalBase/AlertContent.js new file mode 100644 index 000000000..34edb8968 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/AlertContent.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const SimpleIcon_1 = __importDefault(require("../../../styles/icons/font/SimpleIcon")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const AlertContent = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { colors } = (0, useTheme_1.default)(); + const { name, color, size, style } = props; + return ( + + ); +}; +exports.default = AlertContent; diff --git a/lib/packages/core/src/popups/components/ModalBase/CloseIcon.js b/lib/packages/core/src/popups/components/ModalBase/CloseIcon.js new file mode 100644 index 000000000..64c3e3132 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/CloseIcon.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const TouchableOpacity_1 = __importDefault(require("../../../basic/components/TouchableOpacity/TouchableOpacity")); +const SimpleIcon_1 = __importDefault(require("../../../styles/icons/font/SimpleIcon")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const CloseIcon = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { onPress } = props; + return ( + + ); +}; +exports.default = CloseIcon; diff --git a/lib/packages/core/src/popups/components/ModalBase/HorizontalButtonsView.js b/lib/packages/core/src/popups/components/ModalBase/HorizontalButtonsView.js new file mode 100644 index 000000000..1b8a82201 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/HorizontalButtonsView.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const Button_1 = __importDefault(require("../../../cta/components/Button/Button")); +const types_1 = require("../../../cta/components/Button/types"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const HorizontalButtonsView = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { typeLeft, onPressLeft, textLeft, typeRight, textRight, onPressRight, disabledRight, disabledLeft, } = props; + return ( + + + ); +}; +exports.default = HorizontalButtonsView; diff --git a/lib/packages/core/src/popups/components/ModalBase/ImageView.js b/lib/packages/core/src/popups/components/ModalBase/ImageView.js new file mode 100644 index 000000000..c8ebb8a4e --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/ImageView.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ImageView = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ({props.image}); +}; +exports.default = ImageView; diff --git a/lib/packages/core/src/popups/components/ModalBase/ModalBase.js b/lib/packages/core/src/popups/components/ModalBase/ModalBase.js new file mode 100644 index 000000000..f0ddbbf14 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/ModalBase.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const PopupBase_1 = require("../PopupBase"); +const functions_1 = require("../../functions"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const CloseIcon_1 = __importDefault(require("./CloseIcon")); +const VerticalButtonsView_1 = __importDefault(require("./VerticalButtonsView")); +const HorizontalButtonsView_1 = __importDefault(require("./HorizontalButtonsView")); +const AlertContent_1 = __importDefault(require("./AlertContent")); +const VerticalButton_1 = __importDefault(require("./VerticalButton")); +const ImageView_1 = __importDefault(require("./ImageView")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const TextContent_1 = __importDefault(require("./TextContent")); +const ModalBase = props => { + const { children, overlayStyle, onClose, containerStyle } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + {children} + + ); +}; +ModalBase.CloseIcon = CloseIcon_1.default; +ModalBase.VerticalButtonsView = VerticalButtonsView_1.default; +ModalBase.HorizontalButtonsView = HorizontalButtonsView_1.default; +ModalBase.AlertContent = AlertContent_1.default; +ModalBase.VerticalButton = VerticalButton_1.default; +ModalBase.ImageView = ImageView_1.default; +ModalBase.TextContent = TextContent_1.default; +exports.default = ModalBase; diff --git a/lib/packages/core/src/popups/components/ModalBase/TextContent.js b/lib/packages/core/src/popups/components/ModalBase/TextContent.js new file mode 100644 index 000000000..a4c349388 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/TextContent.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const TextContent = props => { + const { title, titleStyles, titleFont, descriptionText, descriptionStyles, descriptionFont, } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + {Boolean(title) && ( + {title} + )} + {Boolean(descriptionText) && ( + {descriptionText} + )} + ); +}; +exports.default = TextContent; diff --git a/lib/packages/core/src/popups/components/ModalBase/VerticalButton.js b/lib/packages/core/src/popups/components/ModalBase/VerticalButton.js new file mode 100644 index 000000000..0f342b611 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/VerticalButton.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../../../cta/components/Button/types"); +const Button_1 = __importDefault(require("../../../cta/components/Button/Button")); +const VerticalButton = props => { + return ; +}; +exports.default = VerticalButton; diff --git a/lib/packages/core/src/popups/components/ModalBase/VerticalButtonsView.js b/lib/packages/core/src/popups/components/ModalBase/VerticalButtonsView.js new file mode 100644 index 000000000..eb5167f00 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/VerticalButtonsView.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const VerticalButtonsView = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { children } = props; + return {children}; +}; +exports.default = VerticalButtonsView; diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/AlertContent.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/AlertContent.test.js new file mode 100644 index 000000000..89b7d9982 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/AlertContent.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const AlertContent_1 = __importDefault(require("../AlertContent")); +describe('@lad-tech/mobydick-core/modalBase', () => { + it('should renders correctly AlertContent type = check', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly AlertContent type = warning', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/CloseIcon.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/CloseIcon.test.js new file mode 100644 index 000000000..affe46267 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/CloseIcon.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const CloseIcon_1 = __importDefault(require("../CloseIcon")); +describe('@lad-tech/mobydick-core/CloseIcon', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/HorizontalButtonsView.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/HorizontalButtonsView.test.js new file mode 100644 index 000000000..fd1ff7733 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/HorizontalButtonsView.test.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../../../../cta/components/Button/types"); +const HorizontalButtonsView_1 = __importDefault(require("../HorizontalButtonsView")); +describe('@lad-tech/mobydick-core/modalBase', () => { + it('should renders correctly HorizontalButtonsView destructive', () => { + const { toJSON } = (0, react_native_1.render)( console.log('onPressLeft')} textLeft={'textLeft'} typeRight={types_1.IButtonTypes.destructive} onPressRight={() => console.log('onPressRight')} textRight={'textRight'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly HorizontalButtonsView secondary', () => { + const { toJSON } = (0, react_native_1.render)( console.log('onPressLeft')} textLeft={'textLeft'} typeRight={types_1.IButtonTypes.secondary} onPressRight={() => console.log('onPressRight')} textRight={'textRight'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly HorizontalButtonsView tertiary', () => { + const { toJSON } = (0, react_native_1.render)( console.log('onPressLeft')} textLeft={'textLeft'} typeRight={types_1.IButtonTypes.tertiary} onPressRight={() => console.log('onPressRight')} textRight={'textRight'}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly HorizontalButtonsView primary', () => { + const { toJSON } = (0, react_native_1.render)( console.log('onPressLeft')} textLeft={'textLeft'} typeRight={types_1.IButtonTypes.primary} onPressRight={() => console.log('onPressRight')} textRight={'textRight'}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/ImageView.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/ImageView.test.js new file mode 100644 index 000000000..9da89e5d2 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/ImageView.test.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const View_1 = __importDefault(require("../../../../basic/components/View/View")); +const ImageView_1 = __importDefault(require("../ImageView")); +describe('@lad-tech/mobydick-core/ImageView', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with styles', () => { + const { toJSON } = (0, react_native_1.render)(} imageStyles={{ flex: 1 }}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/ModalBase.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/ModalBase.test.js new file mode 100644 index 000000000..99e3880b1 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/ModalBase.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ModalBase_1 = __importDefault(require("../ModalBase")); +describe('@lad-tech/mobydick-core/ModalBase', () => { + afterEach(() => { + jest.resetAllMocks(); + jest.clearAllMocks(); + }); + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/TextContent.text.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/TextContent.text.js new file mode 100644 index 000000000..4ce64f092 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/TextContent.text.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const TextContent_1 = __importDefault(require("../TextContent")); +describe('@lad-tech/mobydick-core/Title', () => { + afterEach(() => { + jest.resetAllMocks(); + jest.clearAllMocks(); + }); + it('should renders correctly without titleFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with titleFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly without descriptionFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with descriptionFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/__tests__/VerticalButtonsView.test.js b/lib/packages/core/src/popups/components/ModalBase/__tests__/VerticalButtonsView.test.js new file mode 100644 index 000000000..0e0c6ff4a --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/__tests__/VerticalButtonsView.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const VerticalButtonsView_1 = __importDefault(require("../VerticalButtonsView")); +const VerticalButton_1 = __importDefault(require("../VerticalButton")); +const types_1 = require("../../../../cta/components/Button/types"); +describe('@lad-tech/mobydick-core/modalBase', () => { + it('should renders correctly VerticalButtonsView one button', () => { + const { toJSON } = (0, react_native_1.render)( + console.log('onPress')} text={'text'}/> + ); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/ModalBase/index.js b/lib/packages/core/src/popups/components/ModalBase/index.js new file mode 100644 index 000000000..a0552d878 --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalBase = void 0; +const ModalBase_1 = __importDefault(require("./ModalBase")); +exports.ModalBase = ModalBase_1.default; diff --git a/lib/packages/core/src/popups/components/ModalBase/stylesCreate.js b/lib/packages/core/src/popups/components/ModalBase/stylesCreate.js new file mode 100644 index 000000000..05a8dcdae --- /dev/null +++ b/lib/packages/core/src/popups/components/ModalBase/stylesCreate.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => { + const { width } = react_native_1.Dimensions.get('window'); + return { + overlayStyle: { + justifyContent: 'flex-end', + }, + container: { + backgroundColor: colors.BgPrimary, + borderRadius: spaces.Space12, + justifyContent: 'center', + alignItems: 'center', + width: width - spaces.Space8 * 2, + paddingHorizontal: spaces.Space20, + paddingVertical: spaces.Space24, + marginVertical: spaces.Space20, + }, + closeButton: { + alignSelf: 'flex-end', + justifyContent: 'center', + position: 'absolute', + top: spaces.Space16, + right: spaces.Space16, + zIndex: 2, + }, + alertView: { + borderRadius: 100, + padding: spaces.Space12, + backgroundColor: colors.BgAccentSoft, + }, + text: { + marginTop: spaces.Space24, + textAlign: 'center', + }, + textContent: { + marginTop: spaces.Space12, + marginBottom: spaces.Space8, + }, + title: { + textAlign: 'center', + }, + description: { + textAlign: 'center', + paddingTop: spaces.Space8, + }, + verticalButtonsView: { + marginTop: spaces.Space20, + alignSelf: 'stretch', + alignItems: 'center', + }, + horizontalButtonsView: { + flexDirection: 'row', + paddingTop: spaces.Space20, + }, + horizontalLeftButton: { + flex: 1, + marginRight: spaces.Space6, + }, + horizontalRightButton: { + flex: 1, + marginLeft: spaces.Space6, + }, + imageView: { + marginBottom: spaces.Space4, + }, + }; +}); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/Modals/ModalAsk.js b/lib/packages/core/src/popups/components/Modals/ModalAsk.js new file mode 100644 index 000000000..8f877c005 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/ModalAsk.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ModalBase_1 = require("../ModalBase"); +const types_1 = require("../../../cta/components/Button/types"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ModalAsk = props => { + const { title, descriptionText, typeLeft, textLeft, typeRight, textRight, onPressRight, onClose, } = props; + const { colors } = (0, useTheme_1.default)(); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + + + + ); +}; +exports.default = ModalAsk; diff --git a/lib/packages/core/src/popups/components/Modals/ModalError.js b/lib/packages/core/src/popups/components/Modals/ModalError.js new file mode 100644 index 000000000..bd773670c --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/ModalError.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ModalBase_1 = require("../ModalBase"); +const types_1 = require("../../../cta/components/Button/types"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ModalError = props => { + const { title, descriptionText, buttonText, onClose } = props; + const { colors } = (0, useTheme_1.default)(); + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + + + + + + ); +}; +exports.default = ModalError; diff --git a/lib/packages/core/src/popups/components/Modals/ModalLoading.js b/lib/packages/core/src/popups/components/Modals/ModalLoading.js new file mode 100644 index 000000000..7a625a842 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/ModalLoading.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ModalBase_1 = require("../ModalBase"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const types_1 = require("../../../progress/components/Spinner/types"); +const Spinner_1 = __importDefault(require("../../../progress/components/Spinner/Spinner")); +const types_2 = require("../../../cta/components/Button/types"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ModalLoading = props => { + const { onClose, title, descriptionText, buttonText } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + + + + + + ); +}; +exports.default = ModalLoading; diff --git a/lib/packages/core/src/popups/components/Modals/ModalSuccess.js b/lib/packages/core/src/popups/components/Modals/ModalSuccess.js new file mode 100644 index 000000000..35982e730 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/ModalSuccess.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ModalBase_1 = require("../ModalBase"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const ModalSuccess = props => { + const { onClose, title, descriptionText, buttonText } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + return ( + + + + + + + + ); +}; +exports.default = ModalSuccess; diff --git a/lib/packages/core/src/popups/components/Modals/__tests__/ModalAsk.test.js b/lib/packages/core/src/popups/components/Modals/__tests__/ModalAsk.test.js new file mode 100644 index 000000000..7e413f183 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/__tests__/ModalAsk.test.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../../../../cta/components/Button/types"); +const ModalAsk_1 = __importDefault(require("../ModalAsk")); +describe('@lad-tech/mobydick-core/modalAsk', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null} id={'id'} onClose={() => null}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with optional', () => { + const { toJSON } = (0, react_native_1.render)( null} typeRight={types_1.IButtonTypes.primary} textRight={'textRight'} typeLeft={types_1.IButtonTypes.primary} textLeft={'textLeft'} id={'id'} onClose={() => null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/Modals/__tests__/ModalError.test.js b/lib/packages/core/src/popups/components/Modals/__tests__/ModalError.test.js new file mode 100644 index 000000000..2ca465be8 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/__tests__/ModalError.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ModalError_1 = __importDefault(require("../ModalError")); +describe('@lad-tech/mobydick-core/modalError', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with optional', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/Modals/__tests__/ModalLoading.test.js b/lib/packages/core/src/popups/components/Modals/__tests__/ModalLoading.test.js new file mode 100644 index 000000000..815f534e5 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/__tests__/ModalLoading.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ModalLoading_1 = __importDefault(require("../ModalLoading")); +describe('@lad-tech/mobydick-core/modalLoading', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with optional', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/Modals/__tests__/ModalSuccess.test.js b/lib/packages/core/src/popups/components/Modals/__tests__/ModalSuccess.test.js new file mode 100644 index 000000000..3ec0f38ee --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/__tests__/ModalSuccess.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ModalSuccess_1 = __importDefault(require("../ModalSuccess")); +describe('@lad-tech/mobydick-core/modalSuccess', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with optional', () => { + const { toJSON } = (0, react_native_1.render)( null}/>); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/Modals/index.js b/lib/packages/core/src/popups/components/Modals/index.js new file mode 100644 index 000000000..2b5e0c879 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/index.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalAsk = exports.ModalSuccess = exports.ModalLoading = exports.ModalError = void 0; +const ModalError_1 = __importDefault(require("./ModalError")); +exports.ModalError = ModalError_1.default; +const ModalLoading_1 = __importDefault(require("./ModalLoading")); +exports.ModalLoading = ModalLoading_1.default; +const ModalSuccess_1 = __importDefault(require("./ModalSuccess")); +exports.ModalSuccess = ModalSuccess_1.default; +const ModalAsk_1 = __importDefault(require("./ModalAsk")); +exports.ModalAsk = ModalAsk_1.default; diff --git a/lib/packages/core/src/popups/components/Modals/stylesCreate.js b/lib/packages/core/src/popups/components/Modals/stylesCreate.js new file mode 100644 index 000000000..e6fd0a123 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/stylesCreate.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const styles_1 = require("../../../styles"); +const { width: WIDTH } = react_native_1.Dimensions.get('window'); +const stylesCreate = (0, styles_1.createStyles)(({ spaces }) => ({ + overlayStyle: { + justifyContent: 'center', + }, + container: { + maxWidth: '80%', + }, + contentCalendar: { + width: WIDTH - spaces.Space8 * 2, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/Modals/types.js b/lib/packages/core/src/popups/components/Modals/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/components/Modals/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/components/PopupBase/PopupBase.js b/lib/packages/core/src/popups/components/PopupBase/PopupBase.js new file mode 100644 index 000000000..735e3acdf --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/PopupBase.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const Pressable_1 = __importDefault(require("../../../basic/components/Pressable/Pressable")); +const constants_1 = __importDefault(require("./constants")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const PopupBase = ({ onClose, children, overlayStyle, }) => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + (0, react_1.useEffect)(() => { + const onBackPress = () => { + onClose(); + return true; + }; + react_native_1.BackHandler.addEventListener('hardwareBackPress', onBackPress); + return () => react_native_1.BackHandler.removeEventListener('hardwareBackPress', onBackPress); + }, []); + const onPressClickOut = (0, react_1.useCallback)((event) => { + if (event.target === event.currentTarget) { + onClose(); + } + }, [onClose]); + return ( + {children} + ); +}; +exports.default = PopupBase; diff --git a/lib/packages/core/src/popups/components/PopupBase/__tests__/PopupBase.test.js b/lib/packages/core/src/popups/components/PopupBase/__tests__/PopupBase.test.js new file mode 100644 index 000000000..74016a6eb --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/__tests__/PopupBase.test.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_2 = require("react-native"); +const PopupBase_1 = __importDefault(require("../PopupBase")); +const constants_1 = __importDefault(require("../constants")); +describe('@lad-tech/mobydick-core/PopupBase', () => { + afterEach(() => { + jest.resetAllMocks(); + jest.clearAllMocks(); + }); + it('BackHandler', () => { + const onClose = jest.fn(); + (0, react_native_1.render)(); + // Оно есть вот туть node_modules/react-native/Libraries/Utilities/__mocks__/BackHandler.js + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + react_native_2.BackHandler.mockPressBack(); + expect(onClose).toHaveBeenCalled(); + }); + it('should renders correctly', () => { + const onClose = jest.fn(); + const { toJSON, getByTestId } = (0, react_native_1.render)(); + const pressable = getByTestId(constants_1.default.testID); + react_native_1.fireEvent.press(pressable, { target: null, currentTarget: null }); + expect(toJSON()).toMatchSnapshot(); + }); + it('should not fire onClose event', () => { + const onClose = jest.fn(); + const { toJSON, getByTestId } = (0, react_native_1.render)(); + const pressable = getByTestId(constants_1.default.testID); + react_native_1.fireEvent.press(pressable, { target: {}, currentTarget: {} }); + expect(toJSON()).toMatchSnapshot(); + expect(onClose).toHaveBeenCalledTimes(0); + }); +}); diff --git a/lib/packages/core/src/popups/components/PopupBase/constants.js b/lib/packages/core/src/popups/components/PopupBase/constants.js new file mode 100644 index 000000000..6b74b4017 --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/constants.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Constants; +(function (Constants) { + Constants["testID"] = "Pressable"; +})(Constants || (Constants = {})); +exports.default = Constants; diff --git a/lib/packages/core/src/popups/components/PopupBase/index.js b/lib/packages/core/src/popups/components/PopupBase/index.js new file mode 100644 index 000000000..a143494f4 --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PopupBase = void 0; +const PopupBase_1 = __importDefault(require("./PopupBase")); +exports.PopupBase = PopupBase_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/components/PopupBase/stylesCreate.js b/lib/packages/core/src/popups/components/PopupBase/stylesCreate.js new file mode 100644 index 000000000..00298fb4a --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/stylesCreate.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ colors }) => ({ + overlay: { + position: 'absolute', + height: '100%', + width: '100%', + backgroundColor: colors.BgOverlay, + alignItems: 'center', + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/PopupBase/types.js b/lib/packages/core/src/popups/components/PopupBase/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/components/PopupBase/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/components/SnackbarBase/SnackbarBase.js b/lib/packages/core/src/popups/components/SnackbarBase/SnackbarBase.js new file mode 100644 index 000000000..e13aaf6f6 --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/SnackbarBase.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const functions_1 = require("../../functions"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const Title_1 = __importDefault(require("./Title")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const DEFAULT_TIME_SHOW = 5000; +const SnackbarBase = props => { + const { children, onClose, containerStyle, overlayStyle, position, timeShow } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, position); + const timeout = (0, react_1.useRef)(null); + (0, react_1.useEffect)(() => { + timeout.current = setTimeout(() => { + onClose(); + }, timeShow ? timeShow : DEFAULT_TIME_SHOW); + return () => { + timeout.current && clearTimeout(timeout.current); + }; + }, []); + return ( + + {children} + + ); +}; +SnackbarBase.Title = Title_1.default; +exports.default = SnackbarBase; diff --git a/lib/packages/core/src/popups/components/SnackbarBase/Title.js b/lib/packages/core/src/popups/components/SnackbarBase/Title.js new file mode 100644 index 000000000..8cc882ac9 --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/Title.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Title = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { title, titleStyles, titleFont } = props; + return ( + {title} + ); +}; +exports.default = Title; diff --git a/lib/packages/core/src/popups/components/SnackbarBase/__tests__/SnackbarBase.test.js b/lib/packages/core/src/popups/components/SnackbarBase/__tests__/SnackbarBase.test.js new file mode 100644 index 000000000..568837ef5 --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/__tests__/SnackbarBase.test.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const SnackbarBase_1 = __importDefault(require("../SnackbarBase")); +const types_1 = require("../../../types"); +describe('@lad-tech/mobydick-core/SnackbarBase', () => { + jest.useFakeTimers(); + it('should renders correctly', () => { + const onClose = jest.fn(); + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with timeShow', () => { + const onClose = jest.fn(); + const { toJSON } = (0, react_native_1.render)(); + jest.runAllTimers(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/SnackbarBase/__tests__/Title.test.js b/lib/packages/core/src/popups/components/SnackbarBase/__tests__/Title.test.js new file mode 100644 index 000000000..c81606b63 --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/__tests__/Title.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Title_1 = __importDefault(require("../Title")); +describe('@lad-tech/mobydick-core/SnackbarBase/Title', () => { + it('should renders correctly without titleFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly with titleFont', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/SnackbarBase/index.js b/lib/packages/core/src/popups/components/SnackbarBase/index.js new file mode 100644 index 000000000..d56ce792c --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SnackbarBase = void 0; +const SnackbarBase_1 = __importDefault(require("./SnackbarBase")); +exports.SnackbarBase = SnackbarBase_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/components/SnackbarBase/stylesCreate.js b/lib/packages/core/src/popups/components/SnackbarBase/stylesCreate.js new file mode 100644 index 000000000..c440f178e --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/stylesCreate.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../../types"); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ colors, spaces }, placement) => { + const placementStyle = () => { + switch (placement) { + case types_1.IPosition.top: + return { + top: 20, + }; + case types_1.IPosition.bottom: + default: + return { + bottom: 10, + }; + } + }; + return { + overlayStyle: { + backgroundColor: 'transparent', + position: 'absolute', + width: '100%', + flex: 1, + alignItems: 'center', + ...placementStyle(), + }, + container: { + backgroundColor: colors.BgContrast, + borderRadius: spaces.Space12, + justifyContent: 'center', + alignItems: 'center', + flexDirection: 'row', + paddingHorizontal: spaces.Space20, + paddingVertical: spaces.Space16, + margin: spaces.Space20, + }, + title: { + flex: 1, + paddingRight: spaces.Space8, + }, + }; +}); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/SnackbarBase/types.js b/lib/packages/core/src/popups/components/SnackbarBase/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/components/SnackbarBase/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/components/TooltipBase/Arrow.js b/lib/packages/core/src/popups/components/TooltipBase/Arrow.js new file mode 100644 index 000000000..c9f919972 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/Arrow.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const types_1 = require("./types"); +const placementArrow = (placement) => { + switch (placement) { + case types_1.IPlacement.start: + return { + left: 10, + }; + case types_1.IPlacement.end: + return { + right: 10, + }; + case types_1.IPlacement.center: + default: + return { + alignSelf: 'center', + }; + } +}; +const Arrow = props => { + const { arrowViewStyles, placement, position } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default, position); + return (); +}; +exports.default = Arrow; diff --git a/lib/packages/core/src/popups/components/TooltipBase/DescriptionText.js b/lib/packages/core/src/popups/components/TooltipBase/DescriptionText.js new file mode 100644 index 000000000..1a4a6bd9e --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/DescriptionText.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const typography_1 = require("../../../typography"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const DescriptionText = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { descriptionText, descriptionStyles, descriptionFont } = props; + return ( + {descriptionText} + ); +}; +exports.default = DescriptionText; diff --git a/lib/packages/core/src/popups/components/TooltipBase/LeftButton.js b/lib/packages/core/src/popups/components/TooltipBase/LeftButton.js new file mode 100644 index 000000000..3aec43af3 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/LeftButton.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Button_1 = __importDefault(require("../../../cta/components/Button/Button")); +const types_1 = require("../../../cta/components/Button/types"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const LeftButton = props => { + const { spaces } = (0, useTheme_1.default)(); + return (); +}; +exports.default = LeftButton; diff --git a/lib/packages/core/src/popups/components/TooltipBase/Title.js b/lib/packages/core/src/popups/components/TooltipBase/Title.js new file mode 100644 index 000000000..4ed5c56af --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/Title.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const Typography_1 = require("../../../typography/components/Typography/Typography"); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Title = props => { + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { title, titleStyles, titleFont } = props; + return ( + {title} + ); +}; +exports.default = Title; diff --git a/lib/packages/core/src/popups/components/TooltipBase/TooltipBase.js b/lib/packages/core/src/popups/components/TooltipBase/TooltipBase.js new file mode 100644 index 000000000..126ed4aa1 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/TooltipBase.js @@ -0,0 +1,76 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const PopupBase_1 = require("../PopupBase"); +const types_1 = require("../../types"); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Title_1 = __importDefault(require("./Title")); +const DescriptionText_1 = __importDefault(require("./DescriptionText")); +const Arrow_1 = __importDefault(require("./Arrow")); +const LeftButton_1 = __importDefault(require("./LeftButton")); +const types_2 = require("./types"); +const TooltipBase = props => { + const { containerStyle, children, onClose, overlayStyle, position, placement, refCurrent, timeShow, } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const { width, height } = (0, react_native_safe_area_context_1.useSafeAreaFrame)(); + const [positionValueY, setPositionValueY] = (0, react_1.useState)(0); + const [positionValueX, setPositionValueX] = (0, react_1.useState)(0); + const timeout = (0, react_1.useRef)(null); + (0, react_1.useEffect)(() => { + if (timeShow) { + timeout.current = setTimeout(() => { + onClose(); + }, timeShow); + } + return () => { + timeout.current && clearTimeout(timeout.current); + }; + }, []); + (0, react_1.useMemo)(() => { + refCurrent?.current?.measure((_x, _y, _width, _height, _pageX, pageY) => { + if (pageY) { + const androidValue = height - pageY; + position === types_1.IPosition.top + ? setPositionValueY(pageY + _height) + : setPositionValueY(androidValue); + placement === types_2.IPlacement.start + ? setPositionValueX(_pageX) + : setPositionValueX(width - _pageX - _width); + } + }); + }, []); + if (positionValueY === 0) { + return null; + } + return ( + + {children} + + ); +}; +TooltipBase.Title = Title_1.default; +TooltipBase.DescriptionText = DescriptionText_1.default; +TooltipBase.Arrow = Arrow_1.default; +TooltipBase.LeftButton = LeftButton_1.default; +exports.default = TooltipBase; diff --git a/lib/packages/core/src/popups/components/TooltipBase/__tests__/Arrow.test.js b/lib/packages/core/src/popups/components/TooltipBase/__tests__/Arrow.test.js new file mode 100644 index 000000000..96a65f374 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/__tests__/Arrow.test.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Arrow_1 = __importDefault(require("../Arrow")); +const types_1 = require("../types"); +const types_2 = require("../../../types"); +describe('@lad-tech/mobydick-core/TooltipBase/Arrow', () => { + it('should renders correctly top start', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly bottom center', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly bottom end', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/TooltipBase/__tests__/DescriptionText.test.js b/lib/packages/core/src/popups/components/TooltipBase/__tests__/DescriptionText.test.js new file mode 100644 index 000000000..8116c52f3 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/__tests__/DescriptionText.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const DescriptionText_1 = __importDefault(require("../DescriptionText")); +describe('@lad-tech/mobydick-core/TooltipBase/DescriptionText', () => { + it('should renders correctly font', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/TooltipBase/__tests__/LeftButton.test.js b/lib/packages/core/src/popups/components/TooltipBase/__tests__/LeftButton.test.js new file mode 100644 index 000000000..5c7291d7d --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/__tests__/LeftButton.test.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../../../../cta/components/Button/types"); +const LeftButton_1 = __importDefault(require("../LeftButton")); +describe('@lad-tech/mobydick-core/TooltipBase/LeftButton', () => { + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/TooltipBase/__tests__/Title.test.js b/lib/packages/core/src/popups/components/TooltipBase/__tests__/Title.test.js new file mode 100644 index 000000000..46a19bfe7 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/__tests__/Title.test.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Title_1 = __importDefault(require("../Title")); +describe('@lad-tech/mobydick-core/TooltipBase/Title', () => { + it('should renders correctly font', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/TooltipBase/__tests__/TooltipBase.test.js b/lib/packages/core/src/popups/components/TooltipBase/__tests__/TooltipBase.test.js new file mode 100644 index 000000000..de490269f --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/__tests__/TooltipBase.test.js @@ -0,0 +1,49 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const react_1 = __importDefault(require("react")); +const TooltipBase_1 = __importDefault(require("../TooltipBase")); +const types_1 = require("../types"); +const types_2 = require("../../../types"); +const Button_1 = __importDefault(require("../../../../cta/components/Button/Button")); +describe('@lad-tech/mobydick-core/TooltipBase/TooltipBase', () => { + jest.useFakeTimers(); + let buttonRef; + beforeEach(() => { + buttonRef = react_1.default.createRef(); + (0, react_native_1.render)(); + }); + it('should renders correctly bottom center', () => { + jest + .spyOn(buttonRef.current, 'measure') + .mockImplementation((cb) => cb(0, 24, 1, 1, 287, 2410)); + const { toJSON } = (0, react_native_1.render)( + null} position={types_2.IPosition.bottom} placement={types_1.IPlacement.center} refCurrent={buttonRef}/> + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly top start', () => { + const { toJSON } = (0, react_native_1.render)( + null} position={types_2.IPosition.top} placement={types_1.IPlacement.start} refCurrent={buttonRef}/> + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly top end', () => { + const { toJSON } = (0, react_native_1.render)( + null} position={types_2.IPosition.top} placement={types_1.IPlacement.end} refCurrent={buttonRef}/> + ); + expect(toJSON()).toMatchSnapshot(); + }); + it('should renders correctly Timeshow', () => { + const onClose = jest.fn(); + const { toJSON } = (0, react_native_1.render)( + + ); + jest.runAllTimers(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/components/TooltipBase/index.js b/lib/packages/core/src/popups/components/TooltipBase/index.js new file mode 100644 index 000000000..161d249ce --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TooltipBase = void 0; +const TooltipBase_1 = __importDefault(require("./TooltipBase")); +exports.TooltipBase = TooltipBase_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/components/TooltipBase/stylesCreate.js b/lib/packages/core/src/popups/components/TooltipBase/stylesCreate.js new file mode 100644 index 000000000..2fe82bee6 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/stylesCreate.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const types_1 = require("../../types"); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }, position) => { + const positionStyle = () => { + switch (position) { + case types_1.IPosition.top: + return { + top: -spaces.Space8, + borderBottomWidth: spaces.Space8, + borderRightWidth: spaces.Space8, + borderTopWidth: 0, + borderLeftWidth: spaces.Space8, + borderBottomColor: colors.BgContrast, + borderRightColor: 'transparent', + borderTopColor: 'transparent', + borderLeftColor: 'transparent', + }; + case types_1.IPosition.bottom: + default: + return { + bottom: -spaces.Space8, + borderTopWidth: spaces.Space8, + borderRightWidth: spaces.Space8, + borderBottomWidth: 0, + borderLeftWidth: spaces.Space8, + borderTopColor: colors.BgContrast, + borderRightColor: 'transparent', + borderBottomColor: 'transparent', + borderLeftColor: 'transparent', + }; + } + }; + return { + container: { + backgroundColor: colors.BgContrast, + paddingVertical: spaces.Space8, + paddingHorizontal: spaces.Space16, + borderRadius: spaces.Space8, + justifyContent: 'center', + alignItems: 'flex-start', + zIndex: 1, + marginVertical: spaces.Space8, + position: 'absolute', + }, + overlayStyle: { + backgroundColor: 'transparent', + }, + arrow: { + position: 'absolute', + width: 0, + height: 0, + backgroundColor: 'transparent', + borderStyle: 'solid', + }, + title: { + zIndex: 1, + }, + descriptionText: { + zIndex: 1, + paddingBottom: spaces.Space8, + }, + positionStyle: { + ...positionStyle(), + }, + }; +}); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/popups/components/TooltipBase/types.js b/lib/packages/core/src/popups/components/TooltipBase/types.js new file mode 100644 index 000000000..2a72c8387 --- /dev/null +++ b/lib/packages/core/src/popups/components/TooltipBase/types.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IPlacement = void 0; +var IPlacement; +(function (IPlacement) { + IPlacement["start"] = "start"; + IPlacement["center"] = "center"; + IPlacement["end"] = "end"; +})(IPlacement || (exports.IPlacement = IPlacement = {})); diff --git a/lib/packages/core/src/popups/components/index.js b/lib/packages/core/src/popups/components/index.js new file mode 100644 index 000000000..e8bbd04b9 --- /dev/null +++ b/lib/packages/core/src/popups/components/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./PopupBase"), exports); +__exportStar(require("./ModalBase"), exports); +__exportStar(require("./SnackbarBase"), exports); +__exportStar(require("./TooltipBase"), exports); +__exportStar(require("./ActionSheetBase"), exports); +__exportStar(require("./Modals"), exports); diff --git a/lib/packages/core/src/popups/context/PopupsContext.js b/lib/packages/core/src/popups/context/PopupsContext.js new file mode 100644 index 000000000..03abc45e0 --- /dev/null +++ b/lib/packages/core/src/popups/context/PopupsContext.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const missingFunc = () => { + throw new Error('[@lad-tech/mobydick-core] usePopups hook was called outside of context, wrap your app with PopupsProvider component'); +}; +const PopupsContext = (0, react_1.createContext)({ + popups: [], + openPopup: missingFunc, + closePopup: missingFunc, + closeAllPopups: missingFunc, +}); +PopupsContext.displayName = '@lad-tech/mobydick-core/PopupsContext'; +exports.default = PopupsContext; diff --git a/lib/packages/core/src/popups/context/PopupsProvider.js b/lib/packages/core/src/popups/context/PopupsProvider.js new file mode 100644 index 000000000..3a31a1d94 --- /dev/null +++ b/lib/packages/core/src/popups/context/PopupsProvider.js @@ -0,0 +1,50 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const reducer_1 = require("../reducer"); +const MobyDickPopup_1 = require("../MobyDickPopup"); +const PopupsContext_1 = __importDefault(require("./PopupsContext")); +let popupId = 1; +const PopupsProvider = ({ children }) => { + const [state, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, reducer_1.defaultState); + const openPopup = ({ Content, ...params }) => { + const modalId = params.id || (popupId++).toString(); + dispatch((0, reducer_1.openPopupAction)({ + ...params, + Content: Content, + id: modalId, + })); + return modalId; + }; + const closePopup = (id) => { + dispatch((0, reducer_1.closePopupAction)(id)); + }; + const closeAllPopups = () => { + dispatch((0, reducer_1.closeAllPopupsAction)()); + }; + const context = { + popups: state.popups, + openPopup, + closePopup, + closeAllPopups, + }; + (0, react_1.useImperativeHandle)(MobyDickPopup_1.modalRef, () => ({ + openPopup, + closePopup, + closeAllPopups, + })); + return ( + {children} + {state.popups.map(({ props, Content, id }) => { + return ( { + props?.onClose && typeof props.onClose === 'function' + ? props?.onClose() + : closePopup(id); + }}/>); + })} + ); +}; +exports.default = PopupsProvider; diff --git a/lib/packages/core/src/popups/context/__tests__/PopupsProvider.test.js b/lib/packages/core/src/popups/context/__tests__/PopupsProvider.test.js new file mode 100644 index 000000000..2c6c91396 --- /dev/null +++ b/lib/packages/core/src/popups/context/__tests__/PopupsProvider.test.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const hooks_1 = require("../../hooks"); +const PopupsProvider_1 = __importDefault(require("../PopupsProvider")); +const ButtonWrapper_1 = __importDefault(require("../../../basic/components/Button/ButtonWrapper")); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const testIdPopup = 'testIdPopup'; +const testIdOpenPopup = 'testIdOpenPopup'; +const testIdCloseAllPopup = 'testIdCloseAllPopup'; +const Popup = ({ onClose }) => { + return ( onClose()} title={'title'}/>); +}; +const Example = () => { + const popupContext = (0, hooks_1.usePopups)(); + return ( + popupContext.openPopup({ Content: Popup })} title={'title'}/> + popupContext.closeAllPopups()} title={'title'}/> + ); +}; +describe('@lad-tech/mobydick-core/PopupsProvider', () => { + it('should renders correctly', async () => { + const { toJSON, getByTestId } = (0, react_native_1.render)( + + ); + // Изначально попапа нет + expect(toJSON()).toMatchSnapshot(); + // Вызвали popupContext.openPopup и он появился + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + expect(toJSON()).toMatchSnapshot(); + // Вызвали onClose у попапа и он пропал + react_native_1.fireEvent.press(getByTestId(testIdPopup)); + expect(toJSON()).toMatchSnapshot(); + // Пооткрывали много папапов и они отприсовались норм + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + react_native_1.fireEvent.press(getByTestId(testIdOpenPopup)); + expect(toJSON()).toMatchSnapshot(); + // Вызвали popupContext.closeAllPopups и они все закрылись + react_native_1.fireEvent.press(getByTestId(testIdCloseAllPopup)); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/popups/context/constants.js b/lib/packages/core/src/popups/context/constants.js new file mode 100644 index 000000000..e0233d40d --- /dev/null +++ b/lib/packages/core/src/popups/context/constants.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MISSING_POPUPS_PROVIDER_WARNING = void 0; +exports.MISSING_POPUPS_PROVIDER_WARNING = 'Возможно тебе не хватает PopupsProvider?'; diff --git a/lib/packages/core/src/popups/context/index.js b/lib/packages/core/src/popups/context/index.js new file mode 100644 index 000000000..4fe1a062f --- /dev/null +++ b/lib/packages/core/src/popups/context/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PopupsProvider = exports.PopupsContext = void 0; +const PopupsContext_1 = __importDefault(require("./PopupsContext")); +exports.PopupsContext = PopupsContext_1.default; +const PopupsProvider_1 = __importDefault(require("./PopupsProvider")); +exports.PopupsProvider = PopupsProvider_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/popups/context/types.js b/lib/packages/core/src/popups/context/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/context/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/functions/__tests__/returnTrue.text.js b/lib/packages/core/src/popups/functions/__tests__/returnTrue.text.js new file mode 100644 index 000000000..5f5daef91 --- /dev/null +++ b/lib/packages/core/src/popups/functions/__tests__/returnTrue.text.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const returnTrue_1 = require("../returnTrue"); +describe('@lad-tech/mobydick-core/functions', () => { + it('should renders correctly', () => { + expect((0, returnTrue_1.returnTrue)()).toBe(true); + }); +}); diff --git a/lib/packages/core/src/popups/functions/index.js b/lib/packages/core/src/popups/functions/index.js new file mode 100644 index 000000000..b719f002c --- /dev/null +++ b/lib/packages/core/src/popups/functions/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.returnTrue = void 0; +const returnTrue_1 = require("./returnTrue"); +Object.defineProperty(exports, "returnTrue", { enumerable: true, get: function () { return returnTrue_1.returnTrue; } }); diff --git a/lib/packages/core/src/popups/functions/returnTrue.js b/lib/packages/core/src/popups/functions/returnTrue.js new file mode 100644 index 000000000..ff1d5552d --- /dev/null +++ b/lib/packages/core/src/popups/functions/returnTrue.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.returnTrue = void 0; +const returnTrue = () => true; +exports.returnTrue = returnTrue; diff --git a/lib/packages/core/src/popups/hooks/__tests__/usePopup.test.js b/lib/packages/core/src/popups/hooks/__tests__/usePopup.test.js new file mode 100644 index 000000000..e13e44ab8 --- /dev/null +++ b/lib/packages/core/src/popups/hooks/__tests__/usePopup.test.js @@ -0,0 +1,56 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const react_native_1 = require("@testing-library/react-native"); +const usePopup_1 = __importDefault(require("../usePopup")); +const context_1 = require("../../context"); +const MobyDickPopup_1 = require("../../MobyDickPopup"); +describe('@lad-tech/mobydick-core/usePopup', () => { + const fakeComponent = () => null; + beforeEach(jest.clearAllMocks); + it('use case', () => { + const openPopup = jest.spyOn(MobyDickPopup_1.MobyDickPopup, 'openPopup'); + const closePopup = jest.spyOn(MobyDickPopup_1.MobyDickPopup, 'closePopup'); + const closeAllPopups = jest.spyOn(MobyDickPopup_1.MobyDickPopup, 'closeAllPopups'); + const props = { title: 'test' }; + const { result } = (0, react_hooks_1.renderHook)(() => (0, usePopup_1.default)(fakeComponent), { + wrapper: context_1.PopupsProvider, + }); + (0, react_native_1.act)(() => { + result.current.open({ title: 'test' }); + }); + expect(openPopup).toHaveBeenCalledWith({ Content: fakeComponent, props }); + (0, react_native_1.act)(() => { + result.current.close(); + }); + expect(closePopup).toHaveBeenCalledWith('1'); + (0, react_native_1.act)(() => { + result.current.closeAll(); + }); + expect(closeAllPopups).toHaveBeenCalled(); + }); + it('close before open', () => { + const closePopup = jest.spyOn(MobyDickPopup_1.MobyDickPopup, 'closePopup'); + const { result } = (0, react_hooks_1.renderHook)(() => (0, usePopup_1.default)(fakeComponent), { + wrapper: context_1.PopupsProvider, + }); + (0, react_native_1.act)(() => { + result.current.close(); + }); + expect(closePopup).not.toHaveBeenCalled(); + }); + it('open without props', () => { + const component = () => null; + const openPopup = jest.spyOn(MobyDickPopup_1.MobyDickPopup, 'openPopup'); + const { result } = (0, react_hooks_1.renderHook)(() => (0, usePopup_1.default)(component), { + wrapper: context_1.PopupsProvider, + }); + (0, react_native_1.act)(() => { + result.current.open(); + }); + expect(openPopup).toHaveBeenCalledWith({ Content: component, props: {} }); + }); +}); diff --git a/lib/packages/core/src/popups/hooks/__tests__/usePopups.test.js b/lib/packages/core/src/popups/hooks/__tests__/usePopups.test.js new file mode 100644 index 000000000..1153ac5f2 --- /dev/null +++ b/lib/packages/core/src/popups/hooks/__tests__/usePopups.test.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const usePopups_1 = __importDefault(require("../usePopups")); +describe('@lad-tech/mobydick-core/usePopups', () => { + it('should not usePopups', () => { + const error = new Error('[@lad-tech/mobydick-core] usePopups hook was called outside of context, wrap your app with PopupsProvider component'); + const { result } = (0, react_hooks_1.renderHook)(() => (0, usePopups_1.default)()); + expect(result.current.openPopup).toThrow(error); + expect(result.current.closePopup).toThrow(error); + expect(result.current.closeAllPopups).toThrow(error); + }); +}); diff --git a/lib/packages/core/src/popups/hooks/index.js b/lib/packages/core/src/popups/hooks/index.js new file mode 100644 index 000000000..fe47cb56e --- /dev/null +++ b/lib/packages/core/src/popups/hooks/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.usePopup = exports.usePopups = void 0; +const usePopups_1 = __importDefault(require("./usePopups")); +exports.usePopups = usePopups_1.default; +const usePopup_1 = __importDefault(require("./usePopup")); +exports.usePopup = usePopup_1.default; diff --git a/lib/packages/core/src/popups/hooks/usePopup.js b/lib/packages/core/src/popups/hooks/usePopup.js new file mode 100644 index 000000000..7bf5ac408 --- /dev/null +++ b/lib/packages/core/src/popups/hooks/usePopup.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const MobyDickPopup_1 = require("../MobyDickPopup"); +const usePopup = (modal) => { + const id = (0, react_1.useRef)(null); + return { + open: (props) => { + id.current = MobyDickPopup_1.MobyDickPopup.openPopup({ + Content: modal, + props: props || + {}, + }); + }, + close: () => { + if (id.current) { + MobyDickPopup_1.MobyDickPopup.closePopup(id.current); + id.current = null; + } + }, + closeAll: () => { + MobyDickPopup_1.MobyDickPopup.closeAllPopups(); + }, + }; +}; +exports.default = usePopup; diff --git a/lib/packages/core/src/popups/hooks/usePopups.js b/lib/packages/core/src/popups/hooks/usePopups.js new file mode 100644 index 000000000..18a7976dd --- /dev/null +++ b/lib/packages/core/src/popups/hooks/usePopups.js @@ -0,0 +1,9 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const PopupsContext_1 = __importDefault(require("../context/PopupsContext")); +const usePopups = () => (0, react_1.useContext)(PopupsContext_1.default); +exports.default = usePopups; diff --git a/lib/packages/core/src/popups/index.js b/lib/packages/core/src/popups/index.js new file mode 100644 index 000000000..4ab16c321 --- /dev/null +++ b/lib/packages/core/src/popups/index.js @@ -0,0 +1,24 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MobyDickPopup = void 0; +__exportStar(require("./context"), exports); +__exportStar(require("./components"), exports); +__exportStar(require("./hooks"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./functions"), exports); +var MobyDickPopup_1 = require("./MobyDickPopup"); +Object.defineProperty(exports, "MobyDickPopup", { enumerable: true, get: function () { return MobyDickPopup_1.MobyDickPopup; } }); diff --git a/lib/packages/core/src/popups/reducer/__tests__/reducer.test.js b/lib/packages/core/src/popups/reducer/__tests__/reducer.test.js new file mode 100644 index 000000000..6b90e6f2e --- /dev/null +++ b/lib/packages/core/src/popups/reducer/__tests__/reducer.test.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const reducer_1 = require("../reducer"); +describe('Popup reducer', () => { + test('Default works', () => { + // dirty hack for get into default case + expect((0, reducer_1.reducer)(reducer_1.defaultState, { type: 'type' })).toStrictEqual(reducer_1.defaultState); + }); +}); diff --git a/lib/packages/core/src/popups/reducer/actions.js b/lib/packages/core/src/popups/reducer/actions.js new file mode 100644 index 000000000..87c39f911 --- /dev/null +++ b/lib/packages/core/src/popups/reducer/actions.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.closeAllPopupsAction = exports.closePopupAction = exports.openPopupAction = void 0; +const constatnts_1 = require("./constatnts"); +const openPopupAction = (popup) => ({ + type: constatnts_1.POPUP_OPEN, + popup, +}); +exports.openPopupAction = openPopupAction; +const closePopupAction = (id) => ({ + type: constatnts_1.POPUP_CLOSE, + id, +}); +exports.closePopupAction = closePopupAction; +const closeAllPopupsAction = () => ({ + type: constatnts_1.POPUP_CLOSE_ALL, +}); +exports.closeAllPopupsAction = closeAllPopupsAction; diff --git a/lib/packages/core/src/popups/reducer/constatnts.js b/lib/packages/core/src/popups/reducer/constatnts.js new file mode 100644 index 000000000..6e907a70b --- /dev/null +++ b/lib/packages/core/src/popups/reducer/constatnts.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.POPUP_CLOSE_ALL = exports.POPUP_CLOSE = exports.POPUP_OPEN = void 0; +exports.POPUP_OPEN = 'POPUP_OPEN'; +exports.POPUP_CLOSE = 'POPUP_CLOSE'; +exports.POPUP_CLOSE_ALL = 'POPUP_CLOSE_ALL'; diff --git a/lib/packages/core/src/popups/reducer/index.js b/lib/packages/core/src/popups/reducer/index.js new file mode 100644 index 000000000..2c5b8b998 --- /dev/null +++ b/lib/packages/core/src/popups/reducer/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./reducer"), exports); +__exportStar(require("./actions"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./constatnts"), exports); diff --git a/lib/packages/core/src/popups/reducer/reducer.js b/lib/packages/core/src/popups/reducer/reducer.js new file mode 100644 index 000000000..7e93b9ce1 --- /dev/null +++ b/lib/packages/core/src/popups/reducer/reducer.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.reducer = exports.defaultState = void 0; +const constatnts_1 = require("./constatnts"); +exports.defaultState = { + popups: [], + currentPopup: null, +}; +const reducer = (state, action) => { + switch (action.type) { + case constatnts_1.POPUP_OPEN: + return { + ...state, + popups: [...state.popups, action.popup], + currentPopup: action.popup, + }; + case constatnts_1.POPUP_CLOSE: + return { + ...state, + popups: state.popups.filter(item => item.id !== action.id), + currentPopup: state.popups[state.popups.length - 2] || null, + }; + case constatnts_1.POPUP_CLOSE_ALL: + return { + ...state, + popups: [], + currentPopup: null, + }; + default: + return state; + } +}; +exports.reducer = reducer; diff --git a/lib/packages/core/src/popups/reducer/types.js b/lib/packages/core/src/popups/reducer/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/popups/reducer/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/popups/types.js b/lib/packages/core/src/popups/types.js new file mode 100644 index 000000000..1f1e109b7 --- /dev/null +++ b/lib/packages/core/src/popups/types.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IPosition = void 0; +var IPosition; +(function (IPosition) { + IPosition["top"] = "top"; + IPosition["bottom"] = "bottom"; +})(IPosition || (exports.IPosition = IPosition = {})); diff --git a/lib/packages/core/src/progress/components/Indicator/Indicator.js b/lib/packages/core/src/progress/components/Indicator/Indicator.js new file mode 100644 index 000000000..98045a7a1 --- /dev/null +++ b/lib/packages/core/src/progress/components/Indicator/Indicator.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const View_1 = __importDefault(require("../../../basic/components/View/View")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const Indicator = props => { + const { percent, indicatorViewStyles, indicatorStyles } = props; + const [styles] = (0, useStyles_1.default)(stylesCreate_1.default); + const percentAnimated = (0, react_1.useRef)(new react_native_1.Animated.Value(percent)).current; + (0, react_1.useEffect)(() => { + react_native_1.Animated.timing(percentAnimated, { + toValue: percent, + duration: 500, + useNativeDriver: false, + }).start(); + }, [percent]); + const width = percentAnimated.interpolate({ + inputRange: [0, 100], + outputRange: ['0%', '100%'], + extrapolate: 'clamp', + }); + return ( + + ); +}; +exports.default = Indicator; diff --git a/lib/packages/core/src/progress/components/Indicator/__tests__/Indicator.test.js b/lib/packages/core/src/progress/components/Indicator/__tests__/Indicator.test.js new file mode 100644 index 000000000..be3bfafe9 --- /dev/null +++ b/lib/packages/core/src/progress/components/Indicator/__tests__/Indicator.test.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const index_1 = require("../index"); +describe('@lad-tech/mobydick-core/Indicator', () => { + it('renders correctly with colors', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/progress/components/Indicator/index.js b/lib/packages/core/src/progress/components/Indicator/index.js new file mode 100644 index 000000000..7c7151cae --- /dev/null +++ b/lib/packages/core/src/progress/components/Indicator/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Indicator = void 0; +const Indicator_1 = __importDefault(require("./Indicator")); +exports.Indicator = Indicator_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/progress/components/Indicator/stylesCreate.js b/lib/packages/core/src/progress/components/Indicator/stylesCreate.js new file mode 100644 index 000000000..9ec77771b --- /dev/null +++ b/lib/packages/core/src/progress/components/Indicator/stylesCreate.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + indicatorView: { + width: '90%', + height: spaces.Space2, + borderRadius: spaces.Space20, + backgroundColor: colors.BgSecondary, + }, + indicator: { + borderRadius: spaces.Space20, + backgroundColor: colors.CtaBtnPrimary, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/progress/components/Indicator/types.js b/lib/packages/core/src/progress/components/Indicator/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/progress/components/Indicator/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/progress/components/PanelSpinner/PanelSpinner.js b/lib/packages/core/src/progress/components/PanelSpinner/PanelSpinner.js new file mode 100644 index 000000000..8d68698a6 --- /dev/null +++ b/lib/packages/core/src/progress/components/PanelSpinner/PanelSpinner.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const SimpleIcon_1 = __importDefault(require("../../../styles/icons/font/SimpleIcon")); +const useStyles_1 = __importDefault(require("../../../styles/hooks/useStyles")); +const Spinner_1 = require("../Spinner"); +const types_1 = require("../Spinner/types"); +const Pressable_1 = __importDefault(require("../../../basic/components/Pressable/Pressable")); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate_1 = __importDefault(require("./stylesCreate")); +const PanelSpinner = props => { + const { isLoading, duration = 2500, isError = false, onCancel } = props; + const [styles, theme] = (0, useStyles_1.default)(stylesCreate_1.default); + const SpinnerStatus = () => { + return isError ? ( + + ) : ( + + ); + }; + return ( + {isLoading ? (<> + + {!!onCancel && ( + + )} + ) : ()} + ); +}; +exports.default = PanelSpinner; diff --git a/lib/packages/core/src/progress/components/PanelSpinner/__tests__/PanelSpinner.test.js b/lib/packages/core/src/progress/components/PanelSpinner/__tests__/PanelSpinner.test.js new file mode 100644 index 000000000..ccb34b758 --- /dev/null +++ b/lib/packages/core/src/progress/components/PanelSpinner/__tests__/PanelSpinner.test.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const index_1 = require("../index"); +describe('@lad-tech/mobydick-core/PanelSpinner', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly canceled', () => { + const { toJSON } = (0, react_native_1.render)( { + console.log('renders correctly canceled'); + }}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly done', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly error', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/progress/components/PanelSpinner/index.js b/lib/packages/core/src/progress/components/PanelSpinner/index.js new file mode 100644 index 000000000..25c929fd4 --- /dev/null +++ b/lib/packages/core/src/progress/components/PanelSpinner/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PanelSpinner = void 0; +const PanelSpinner_1 = __importDefault(require("./PanelSpinner")); +exports.PanelSpinner = PanelSpinner_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/progress/components/PanelSpinner/stylesCreate.js b/lib/packages/core/src/progress/components/PanelSpinner/stylesCreate.js new file mode 100644 index 000000000..79664dbfb --- /dev/null +++ b/lib/packages/core/src/progress/components/PanelSpinner/stylesCreate.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const px_1 = __importDefault(require("../../../styles/utils/px")); +const stylesCreate = (0, styles_1.createStyles)(({ spaces, colors }) => ({ + container: { + justifyContent: 'center', + alignItems: 'center', + padding: spaces.Space20, + backgroundColor: colors.BgPrimary, + borderColor: colors.BorderSoft, + borderWidth: (0, px_1.default)(0.5), + borderRadius: (0, px_1.default)(200), + shadowColor: colors.BgBlack, + // ios + shadowOffset: { + width: 0, + height: 1, + }, + shadowOpacity: 0.3, + shadowRadius: (0, px_1.default)(12), + // android + elevation: 10, + }, + insideView: { + justifyContent: 'center', + alignItems: 'center', + width: spaces.Space48, + aspectRatio: 1, + borderRadius: spaces.Space24, + }, +})); +exports.default = stylesCreate; diff --git a/lib/packages/core/src/progress/components/PanelSpinner/types.js b/lib/packages/core/src/progress/components/PanelSpinner/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/progress/components/PanelSpinner/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/progress/components/Spinner/Loader.js b/lib/packages/core/src/progress/components/Spinner/Loader.js new file mode 100644 index 000000000..ed55e3151 --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/Loader.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const styles_1 = require("../../../styles"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const types_1 = require("./types"); +const Loader = props => { + const { size, fill, ...otherProps } = props; + const { colors } = (0, useTheme_1.default)(); + const getSize = (color) => { + switch (size) { + case types_1.ISizeSpinner.XXS: + return (); + case types_1.ISizeSpinner.S: + return (); + case types_1.ISizeSpinner.M: + return (); + case types_1.ISizeSpinner.L: + return (); + default: + return (); + } + }; + return getSize(fill || colors.ElementBase); +}; +exports.default = Loader; diff --git a/lib/packages/core/src/progress/components/Spinner/Spinner.js b/lib/packages/core/src/progress/components/Spinner/Spinner.js new file mode 100644 index 000000000..b09cf5020 --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/Spinner.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const useTheme_1 = __importDefault(require("../../../styles/hooks/useTheme")); +const Loader_1 = __importDefault(require("./Loader")); +const types_1 = require("./types"); +const Spinner = props => { + const { duration = 2500, size = types_1.ISizeSpinner.S, fill, ...otherProps } = props; + const { colors } = (0, useTheme_1.default)(); + const spinValue = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current; + (0, react_1.useEffect)(() => { + const loop = react_native_1.Animated.loop(react_native_1.Animated.timing(spinValue, { + useNativeDriver: true, + toValue: 1, + duration, + })); + loop.start(); + return () => { + loop.stop(); + spinValue.setValue(0); + }; + }, [duration]); + const rotation = spinValue.interpolate({ + inputRange: [0, 1], + outputRange: ['0deg', '360deg'], + }); + return ( + + ); +}; +exports.default = Spinner; diff --git a/lib/packages/core/src/progress/components/Spinner/__tests__/Loader.test.js b/lib/packages/core/src/progress/components/Spinner/__tests__/Loader.test.js new file mode 100644 index 000000000..8d6781ec8 --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/__tests__/Loader.test.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const types_1 = require("../types"); +const Loader_1 = __importDefault(require("../Loader")); +describe('@lad-tech/mobydick-core/Loader', () => { + it('renders correctly S', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly M', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly L', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly without size', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/progress/components/Spinner/__tests__/Spinner.test.js b/lib/packages/core/src/progress/components/Spinner/__tests__/Spinner.test.js new file mode 100644 index 000000000..d6520ae1b --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/__tests__/Spinner.test.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const index_1 = require("../index"); +const types_1 = require("../types"); +describe('@lad-tech/mobydick-core/Spinner', () => { + it('renders correctly S', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly M', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly L', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/progress/components/Spinner/index.js b/lib/packages/core/src/progress/components/Spinner/index.js new file mode 100644 index 000000000..45fd51df1 --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Spinner = void 0; +const Spinner_1 = __importDefault(require("./Spinner")); +exports.Spinner = Spinner_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/progress/components/Spinner/types.js b/lib/packages/core/src/progress/components/Spinner/types.js new file mode 100644 index 000000000..1ea1695b5 --- /dev/null +++ b/lib/packages/core/src/progress/components/Spinner/types.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ISizeSpinner = void 0; +var ISizeSpinner; +(function (ISizeSpinner) { + ISizeSpinner["XXS"] = "XXS"; + ISizeSpinner["XS"] = "XS"; + ISizeSpinner["S"] = "S"; + ISizeSpinner["M"] = "M"; + ISizeSpinner["L"] = "L"; +})(ISizeSpinner || (exports.ISizeSpinner = ISizeSpinner = {})); diff --git a/lib/packages/core/src/progress/components/index.js b/lib/packages/core/src/progress/components/index.js new file mode 100644 index 000000000..5b3f3fdcb --- /dev/null +++ b/lib/packages/core/src/progress/components/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Spinner"), exports); +__exportStar(require("./Indicator"), exports); +__exportStar(require("./PanelSpinner"), exports); diff --git a/lib/packages/core/src/progress/index.js b/lib/packages/core/src/progress/index.js new file mode 100644 index 000000000..b69ae2499 --- /dev/null +++ b/lib/packages/core/src/progress/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); diff --git a/lib/packages/core/src/styles/constants/HIT_SLOP.js b/lib/packages/core/src/styles/constants/HIT_SLOP.js new file mode 100644 index 000000000..f01d1d064 --- /dev/null +++ b/lib/packages/core/src/styles/constants/HIT_SLOP.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const px_1 = __importDefault(require("../utils/px")); +const HIT_SLOP = { + small: { top: (0, px_1.default)(10), bottom: (0, px_1.default)(10), left: (0, px_1.default)(10), right: (0, px_1.default)(10) }, + medium: { top: (0, px_1.default)(20), bottom: (0, px_1.default)(20), left: (0, px_1.default)(20), right: (0, px_1.default)(20) }, + large: { top: (0, px_1.default)(30), bottom: (0, px_1.default)(30), left: (0, px_1.default)(30), right: (0, px_1.default)(30) }, +}; +exports.default = HIT_SLOP; diff --git a/lib/packages/core/src/styles/constants/colors/color.js b/lib/packages/core/src/styles/constants/colors/color.js new file mode 100644 index 000000000..088ea7d10 --- /dev/null +++ b/lib/packages/core/src/styles/constants/colors/color.js @@ -0,0 +1,281 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultBannerDarkColor = exports.defaultBannerLightColor = exports.defaultCategoryDarkColor = exports.defaultCategoryLightColor = exports.defaultChartDarkColor = exports.defaultChartLightColor = exports.defaultCTADarkColor = exports.defaultCTALightColor = exports.defaultBgDarkColor = exports.defaultBgLightColor = exports.defaultBorderDarkColor = exports.defaultBorderLightColor = exports.defaultElementDarkColor = exports.defaultElementLightColor = exports.defaultIconDarkColor = exports.defaultIconLightColor = exports.defaultTextDarkColor = exports.defaultTextLightColor = void 0; +exports.defaultTextLightColor = { + TextPrimary: '#20242D', + TextSecondary: '#444B5A', + TextTertiary: '#5E6678', + TextMuted: '#9BA1B0', + TextAccent: '#2B78EE', + TextAccentContrast: '#4C94FF', + TextContrast: '#FFF', + TextError: '#F54D3D', + TextBlack: '#20242D', + TextBlackExtra: 'rgba(32, 36, 45, 0.75)', + TextWhite: '#FFF', + TextWhiteExtra: 'rgba(255, 255, 255, 0.75)', + TextSuccess: '#29A35C', + TextWarning: '#F97A1F', +}; +exports.defaultTextDarkColor = { + TextPrimary: '#FFFFFF', + TextSecondary: '#D1D4DB', + TextTertiary: '#B6BBC6', + TextMuted: '#7A8394', + TextAccent: '#4C94FF', + TextAccentContrast: '#2B78EE', + TextContrast: '#20242D', + TextError: '#F86B5D', + TextBlack: '#20242D', + TextBlackExtra: 'rgba(32, 36, 45, 0.75)', + TextWhite: '#FFF', + TextWhiteExtra: 'rgba(255, 255, 255, 0.75)', + TextSuccess: '#4ABA79', + TextWarning: '#FA9247', +}; +exports.defaultIconLightColor = { + IconNeutral: '#5E6678', + IconMuted: '#9BA1B0', + IconBase: '#2B78EE', + IconAttention: '#F54D3D', + IconAdditional: '#FAB742', + IconWhite: '#FFF', + IconBlack: '#1E232F', + IconSuccess: '#4ABA79', +}; +exports.defaultIconDarkColor = { + IconNeutral: '#B6BBC6', + IconMuted: '#7A8394', + IconBase: '#4C94FF', + IconAttention: '#F86B5D', + IconAdditional: '#FAB742', + IconWhite: '#FFF', + IconBlack: '#1E232F', + IconSuccess: '#4ABA79', +}; +exports.defaultElementLightColor = { + ElementNeutral: '#5E6678', + ElementMuted: '#B6BBC6', + ElementBase: '#2B78EE', + ElementAttention: '#F54D3D', + ElementAdditional: '#FAB742', + ElementWhite: '#FFF', + ElementBlack: '#20242D', + ElementSuccess: '#4ABA79', +}; +exports.defaultElementDarkColor = { + ElementNeutral: '#B6BBC6', + ElementMuted: '#5E6678', + ElementBase: '#4C94FF', + ElementAttention: '#F86B5D', + ElementAdditional: '#FAB742', + ElementWhite: '#FFF', + ElementBlack: '#20242D', + ElementSuccess: '#4ABA79', +}; +exports.defaultBorderLightColor = { + BorderExtra: 'rgba(32, 36, 45, 0.75)', + BorderHard: 'rgba(32, 36, 45, 0.45)', + BorderNormal: 'rgba(32, 36, 45, 0.3)', + BorderSoft: 'rgba(32, 36, 45, 0.15)', + BorderError: '#F54D3D', + BorderSuccess: '#2B78EE', +}; +exports.defaultBorderDarkColor = { + BorderExtra: 'rgba(255, 255, 255, 0.75)', + BorderHard: 'rgba(255, 255, 255, 0.45)', + BorderNormal: 'rgba(255, 255, 255, 0.3)', + BorderSoft: 'rgba(255, 255, 255, 0.15)', + BorderError: '#F86B5D', + BorderSuccess: '#4C94FF', +}; +exports.defaultBgLightColor = { + BgPrimary: '#FFF', + BgPrimaryExtra: 'rgba(255, 255, 255, 0.75)', + BgSecondary: '#EEEFF1', + BgTertiary: '#D1D4DB', + BgQuaternary: '#B6BBC6', + BgContrast: '#20242D', + BgContrastExtra: 'rgba(32, 36, 45, 0.75)', + BgError: 'rgba(245, 77, 61, 0.15)', + BgAccent: '#E5F0FF', + BgAccentSoft: 'rgba(43, 120, 238, 0.15)', + BgAccentNormal: 'rgba(43, 120, 238, 0.3)', + BgAccentHard: 'rgba(43, 120, 238, 0.45)', + BgOverlay: 'rgba(0, 0, 0, 0.2)', + BgBlack: '#20242D', + BgWhite: '#FFF', + BgWhiteSoft: 'rgba(255, 255, 255, 0.15)', + BgSuccess: 'rgba(74, 186, 121, 0.15)', + BgWarning: 'rgba(250, 183, 66, 0.15)', +}; +exports.defaultBgDarkColor = { + BgPrimary: '#20242D', + BgPrimaryExtra: 'rgba(32, 36, 45, 0.75)', + BgSecondary: '#2E3442', + BgTertiary: '#444B5A', + BgQuaternary: '#5E6678', + BgContrast: '#FFF', + BgContrastExtra: 'rgba(255, 255, 255, 0.75)', + BgError: 'rgba(245, 77, 61, 0.15)', + BgAccent: '#1E2C43', + BgAccentSoft: 'rgba(43, 120, 238, 0.15)', + BgAccentNormal: 'rgba(43, 120, 238, 0.3)', + BgAccentHard: 'rgba(43, 120, 238, 0.45)', + BgOverlay: 'rgba(255, 255, 255, 0.2)', + BgBlack: '#20242D', + BgWhite: '#FFF', + BgWhiteSoft: 'rgba(255, 255, 255, 0.15)', + BgSuccess: 'rgba(74, 186, 121, 0.15)', + BgWarning: 'rgba(250, 183, 66, 0.15)', +}; +exports.defaultCTALightColor = { + CtaBtnPrimary: '#2B78EE', + CtaBtnSecondary: 'rgba(43, 120, 238, 0.15)', + CtaBtnMuted: '#9BA1B0', + CtaBtnDestructive: '#F54D3D', +}; +exports.defaultCTADarkColor = { + CtaBtnPrimary: '#2B78EE', + CtaBtnSecondary: 'rgba(43, 120, 238, 0.15)', + CtaBtnMuted: '#758199', + CtaBtnDestructive: '#F86B5D', +}; +exports.defaultChartLightColor = { + ChartFirst: '#FF6952', + ChartFirstHard: 'rgba(255, 105, 82, 0.45)', + ChartFirstSoft: 'rgba(255, 105, 82, 0.15)', + ChartSecond: '#FA9247', + ChartSecondHard: 'rgba(250, 146, 71, 0.45)', + ChartSecondSoft: 'rgba(250, 146, 71, 0.15)', + ChartThird: '#FAB742', + ChartThirdHard: 'rgba(250, 183, 66, 0.45)', + ChartThirdSoft: 'rgba(250, 183, 66, 0.15)', + ChartFourth: '#4ABA79', + ChartFourthHard: 'rgba(74, 186, 121, 0.45)', + ChartFourthSoft: 'rgba(74, 186, 121, 0.15)', + ChartFifth: '#2DB3B3', + ChartFifthHard: 'rgba(45, 179, 179, 0.45)', + ChartFifthSoft: 'rgba(45, 179, 179, 0.15)', + ChartSixth: '#2B78EE', + ChartSixthHard: 'rgba(43, 120, 238, 0.45)', + ChartSixthSoft: 'rgba(43, 120, 238, 0.15)', + ChartSeventh: '#6E6EF7', + ChartSeventhHard: 'rgba(110, 110, 247, 0.45)', + ChartSeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; +exports.defaultChartDarkColor = { + ChartFirst: '#FF6952', + ChartFirstHard: 'rgba(255, 105, 82, 0.45)', + ChartFirstSoft: 'rgba(255, 105, 82, 0.15)', + ChartSecond: '#FA9247', + ChartSecondHard: 'rgba(250, 146, 71, 0.45)', + ChartSecondSoft: 'rgba(250, 146, 71, 0.15)', + ChartThird: '#FAB742', + ChartThirdHard: 'rgba(250, 183, 66, 0.45)', + ChartThirdSoft: 'rgba(250, 183, 66, 0.15)', + ChartFourth: '#4ABA79', + ChartFourthHard: 'rgba(74, 186, 121, 0.45)', + ChartFourthSoft: 'rgba(74, 186, 121, 0.15)', + ChartFifth: '#2DB3B3', + ChartFifthHard: 'rgba(45, 179, 179, 0.45)', + ChartFifthSoft: 'rgba(45, 179, 179, 0.15)', + ChartSixth: '#2B78EE', + ChartSixthHard: 'rgba(43, 120, 238, 0.45)', + ChartSixthSoft: 'rgba(43, 120, 238, 0.15)', + ChartSeventh: '#6E6EF7', + ChartSeventhHard: 'rgba(110, 110, 247, 0.45)', + ChartSeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; +exports.defaultCategoryLightColor = { + CategoryFirst: '#FF6952', + CategoryFirstHard: 'rgba(255, 105, 82, 0.45)', + CategoryFirstSoft: 'rgba(255, 105, 82, 0.15)', + CategorySecond: '#FA9247', + CategorySecondHard: 'rgba(250, 146, 71, 0.45)', + CategorySecondSoft: 'rgba(250, 146, 71, 0.15)', + CategoryThird: '#FAB742', + CategoryThirdHard: 'rgba(250, 183, 66, 0.45)', + CategoryThirdSoft: 'rgba(250, 183, 66, 0.15)', + CategoryFourth: '#4ABA79', + CategoryFourthHard: 'rgba(74, 186, 121, 0.45)', + CategoryFourthSoft: 'rgba(74, 186, 121, 0.15)', + CategoryFifth: '#2DB3B3', + CategoryFifthHard: 'rgba(45, 179, 179, 0.45)', + CategoryFifthSoft: 'rgba(45, 179, 179, 0.15)', + CategorySixth: '#2B78EE', + CategorySixthHard: 'rgba(43, 120, 238, 0.45)', + CategorySixthSoft: 'rgba(43, 120, 238, 0.15)', + CategorySeventh: '#6E6EF7', + CategorySeventhHard: 'rgba(110, 110, 247, 0.45)', + CategorySeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; +exports.defaultCategoryDarkColor = { + CategoryFirst: '#FF6952', + CategoryFirstHard: 'rgba(255, 105, 82, 0.45)', + CategoryFirstSoft: 'rgba(255, 105, 82, 0.15)', + CategorySecond: '#FA9247', + CategorySecondHard: 'rgba(250, 146, 71, 0.45)', + CategorySecondSoft: 'rgba(250, 146, 71, 0.15)', + CategoryThird: '#FAB742', + CategoryThirdHard: 'rgba(250, 183, 66, 0.45)', + CategoryThirdSoft: 'rgba(250, 183, 66, 0.15)', + CategoryFourth: '#4ABA79', + CategoryFourthHard: 'rgba(74, 186, 121, 0.45)', + CategoryFourthSoft: 'rgba(74, 186, 121, 0.15)', + CategoryFifth: '#2DB3B3', + CategoryFifthHard: 'rgba(45, 179, 179, 0.45)', + CategoryFifthSoft: 'rgba(45, 179, 179, 0.15)', + CategorySixth: '#2B78EE', + CategorySixthHard: 'rgba(43, 120, 238, 0.45)', + CategorySixthSoft: 'rgba(43, 120, 238, 0.15)', + CategorySeventh: '#6E6EF7', + CategorySeventhHard: 'rgba(110, 110, 247, 0.45)', + CategorySeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; +exports.defaultBannerLightColor = { + BannerFirst: '#FF6952', + BannerFirstHard: 'rgba(255, 105, 82, 0.45)', + BannerFirstSoft: 'rgba(255, 105, 82, 0.15)', + BannerSecond: '#FA9247', + BannerSecondHard: 'rgba(250, 146, 71, 0.45)', + BannerSecondSoft: 'rgba(250, 146, 71, 0.15)', + BannerThird: '#FAB742', + BannerThirdHard: 'rgba(250, 183, 66, 0.45)', + BannerThirdSoft: 'rgba(250, 183, 66, 0.15)', + BannerFourth: '#4ABA79', + BannerFourthHard: 'rgba(74, 186, 121, 0.45)', + BannerFourthSoft: 'rgba(74, 186, 121, 0.15)', + BannerFifth: '#2DB3B3', + BannerFifthHard: 'rgba(45, 179, 179, 0.45)', + BannerFifthSoft: 'rgba(45, 179, 179, 0.15)', + BannerSixth: '#2B78EE', + BannerSixthHard: 'rgba(43, 120, 238, 0.45)', + BannerSixthSoft: 'rgba(43, 120, 238, 0.15)', + BannerSeventh: '#6E6EF7', + BannerSeventhHard: 'rgba(110, 110, 247, 0.45)', + BannerSeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; +exports.defaultBannerDarkColor = { + BannerFirst: '#FF6952', + BannerFirstHard: 'rgba(255, 105, 82, 0.45)', + BannerFirstSoft: 'rgba(255, 105, 82, 0.15)', + BannerSecond: '#FA9247', + BannerSecondHard: 'rgba(250, 146, 71, 0.45)', + BannerSecondSoft: 'rgba(250, 146, 71, 0.15)', + BannerThird: '#FAB742', + BannerThirdHard: 'rgba(250, 183, 66, 0.45)', + BannerThirdSoft: 'rgba(250, 183, 66, 0.15)', + BannerFourth: '#4ABA79', + BannerFourthHard: 'rgba(74, 186, 121, 0.45)', + BannerFourthSoft: 'rgba(74, 186, 121, 0.15)', + BannerFifth: '#2DB3B3', + BannerFifthHard: 'rgba(45, 179, 179, 0.45)', + BannerFifthSoft: 'rgba(45, 179, 179, 0.15)', + BannerSixth: '#2B78EE', + BannerSixthHard: 'rgba(43, 120, 238, 0.45)', + BannerSixthSoft: 'rgba(43, 120, 238, 0.15)', + BannerSeventh: '#6E6EF7', + BannerSeventhHard: 'rgba(110, 110, 247, 0.45)', + BannerSeventhSoft: 'rgba(110, 110, 247, 0.15)', +}; diff --git a/lib/packages/core/src/styles/constants/colors/index.js b/lib/packages/core/src/styles/constants/colors/index.js new file mode 100644 index 000000000..45f9def70 --- /dev/null +++ b/lib/packages/core/src/styles/constants/colors/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./color"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/styles/constants/colors/types.js b/lib/packages/core/src/styles/constants/colors/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/styles/constants/colors/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/styles/constants/defaultSpaces.js b/lib/packages/core/src/styles/constants/defaultSpaces.js new file mode 100644 index 000000000..d08deae1d --- /dev/null +++ b/lib/packages/core/src/styles/constants/defaultSpaces.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultSpaces = void 0; +const px_1 = __importDefault(require("../utils/px")); +exports.defaultSpaces = { + Space1: (0, px_1.default)(1), + Space2: (0, px_1.default)(2), + Space4: (0, px_1.default)(4), + Space6: (0, px_1.default)(6), + Space8: (0, px_1.default)(8), + Space10: (0, px_1.default)(10), + Space12: (0, px_1.default)(12), + Space16: (0, px_1.default)(16), + Space20: (0, px_1.default)(20), + Space24: (0, px_1.default)(24), + Space32: (0, px_1.default)(32), + Space40: (0, px_1.default)(40), + Space48: (0, px_1.default)(48), + Space64: (0, px_1.default)(64), +}; diff --git a/lib/packages/core/src/styles/constants/index.js b/lib/packages/core/src/styles/constants/index.js new file mode 100644 index 000000000..f97da7d60 --- /dev/null +++ b/lib/packages/core/src/styles/constants/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HIT_SLOP = void 0; +const HIT_SLOP_1 = __importDefault(require("./HIT_SLOP")); +exports.HIT_SLOP = HIT_SLOP_1.default; +__exportStar(require("./colors"), exports); +__exportStar(require("./defaultSpaces"), exports); +__exportStar(require("./theme"), exports); diff --git a/lib/packages/core/src/styles/constants/theme.js b/lib/packages/core/src/styles/constants/theme.js new file mode 100644 index 000000000..c3f109ffa --- /dev/null +++ b/lib/packages/core/src/styles/constants/theme.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultTheme = exports.defaultFonts = exports.CurrentTheme = void 0; +const getShadows_1 = require("../shadows/getShadows"); +const defaultSpaces_1 = require("./defaultSpaces"); +const colors_1 = require("./colors"); +var CurrentTheme; +(function (CurrentTheme) { + CurrentTheme["light"] = "light"; + CurrentTheme["dark"] = "dark"; +})(CurrentTheme || (exports.CurrentTheme = CurrentTheme = {})); +exports.defaultFonts = { + Regular: 'Inter-Regular', + Medium: 'Inter-Medium', + SemiBold: 'Inter-SemiBold', + Bold: 'Inter-Bold', + Italic: 'Inter-Italic', + BoldItalic: 'Inter-BoldItalic', +}; +exports.defaultTheme = { + currentTheme: CurrentTheme.light, + colors: { + [CurrentTheme.light]: { + ...colors_1.defaultTextLightColor, + ...colors_1.defaultElementLightColor, + ...colors_1.defaultIconLightColor, + ...colors_1.defaultBgLightColor, + ...colors_1.defaultCTALightColor, + ...colors_1.defaultBorderLightColor, + ...colors_1.defaultChartLightColor, + ...colors_1.defaultCategoryLightColor, + ...colors_1.defaultBannerLightColor, + }, + [CurrentTheme.dark]: { + ...colors_1.defaultTextDarkColor, + ...colors_1.defaultElementDarkColor, + ...colors_1.defaultIconDarkColor, + ...colors_1.defaultBgDarkColor, + ...colors_1.defaultCTADarkColor, + ...colors_1.defaultBorderDarkColor, + ...colors_1.defaultChartDarkColor, + ...colors_1.defaultCategoryDarkColor, + ...colors_1.defaultBannerDarkColor, + }, + }, + spaces: { + ...defaultSpaces_1.defaultSpaces, + }, + fonts: exports.defaultFonts, + shadows: (0, getShadows_1.getShadows)({ + spaces: defaultSpaces_1.defaultSpaces, + currentTheme: CurrentTheme.light, + }), +}; diff --git a/lib/packages/core/src/styles/context/ThemeProvider.js b/lib/packages/core/src/styles/context/ThemeProvider.js new file mode 100644 index 000000000..4c7ed166f --- /dev/null +++ b/lib/packages/core/src/styles/context/ThemeProvider.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const theme_1 = require("../constants/theme"); +const getShadows_1 = require("../shadows/getShadows"); +const context_1 = __importDefault(require("./context")); +const ThemeProvider = ({ theme, currentTheme, children }) => { + const [themeState, setThemeState] = (0, react_1.useState)(theme ?? theme_1.defaultTheme); + const [currentThemeState, setCurrentThemeState] = (0, react_1.useState)(currentTheme ?? theme_1.defaultTheme.currentTheme); + return ( + {children} + ); +}; +exports.default = ThemeProvider; diff --git a/lib/packages/core/src/styles/context/__tests__/ThemeProvider.test.js b/lib/packages/core/src/styles/context/__tests__/ThemeProvider.test.js new file mode 100644 index 000000000..f4f386219 --- /dev/null +++ b/lib/packages/core/src/styles/context/__tests__/ThemeProvider.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const ThemeProvider_1 = __importDefault(require("../ThemeProvider")); +describe('ThemeProvider', () => { + it('render correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/styles/context/context.js b/lib/packages/core/src/styles/context/context.js new file mode 100644 index 000000000..a1662867e --- /dev/null +++ b/lib/packages/core/src/styles/context/context.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultThemeContext = exports.missingFunc = exports.MissingThemeProviderError = void 0; +const react_1 = require("react"); +const theme_1 = require("../constants/theme"); +exports.MissingThemeProviderError = new Error('[@lad-tech/mobydick-core] useTheme hook was called outside of context, wrap your app with ThemeProvider component'); +const missingFunc = () => { + throw exports.MissingThemeProviderError; +}; +exports.missingFunc = missingFunc; +exports.defaultThemeContext = { + theme: theme_1.defaultTheme, + spaces: theme_1.defaultTheme.spaces, + colors: theme_1.defaultTheme.colors[theme_1.defaultTheme.currentTheme], + currentTheme: theme_1.defaultTheme.currentTheme, + fonts: theme_1.defaultFonts, + shadows: theme_1.defaultTheme.shadows, + setTheme: exports.missingFunc, + setCurrentTheme: exports.missingFunc, +}; +const ThemeContext = (0, react_1.createContext)(exports.defaultThemeContext); +ThemeContext.displayName = '@lad-tech/mobydick-core/ThemeContext'; +exports.default = ThemeContext; diff --git a/lib/packages/core/src/styles/context/index.js b/lib/packages/core/src/styles/context/index.js new file mode 100644 index 000000000..c27b11f1f --- /dev/null +++ b/lib/packages/core/src/styles/context/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ThemeProvider = exports.ThemeContext = void 0; +const context_1 = __importDefault(require("./context")); +exports.ThemeContext = context_1.default; +const ThemeProvider_1 = __importDefault(require("./ThemeProvider")); +exports.ThemeProvider = ThemeProvider_1.default; diff --git a/lib/packages/core/src/styles/hooks/__tests__/useStyles.tests.js b/lib/packages/core/src/styles/hooks/__tests__/useStyles.tests.js new file mode 100644 index 000000000..cb355ce65 --- /dev/null +++ b/lib/packages/core/src/styles/hooks/__tests__/useStyles.tests.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const react_native_1 = require("react-native"); +const useStyles_1 = __importDefault(require("../useStyles")); +const context_1 = require("../../context/context"); +const styles = () => react_native_1.StyleSheet.create({ test: { flex: 1 } }); +describe('useStyles', () => { + it('render correctly', () => { + const { result } = (0, react_hooks_1.renderHook)(() => (0, useStyles_1.default)(styles)); + expect(result.current).toStrictEqual([styles(), context_1.defaultThemeContext]); + }); +}); diff --git a/lib/packages/core/src/styles/hooks/__tests__/useTheme.test.js b/lib/packages/core/src/styles/hooks/__tests__/useTheme.test.js new file mode 100644 index 000000000..de79424d8 --- /dev/null +++ b/lib/packages/core/src/styles/hooks/__tests__/useTheme.test.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useTheme_1 = __importDefault(require("../useTheme")); +const context_1 = require("../../context/context"); +describe('useTheme', () => { + it('throw error when change without Provider', () => { + const { result } = (0, react_hooks_1.renderHook)(() => (0, useTheme_1.default)()); + expect(result.current).toStrictEqual(context_1.defaultThemeContext); + expect(result.current.setCurrentTheme).toThrow(context_1.MissingThemeProviderError); + expect(result.current.setTheme).toThrow(context_1.MissingThemeProviderError); + }); +}); diff --git a/lib/packages/core/src/styles/hooks/index.js b/lib/packages/core/src/styles/hooks/index.js new file mode 100644 index 000000000..1f3f0ad4d --- /dev/null +++ b/lib/packages/core/src/styles/hooks/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useStyles = exports.useTheme = void 0; +const useStyles_1 = __importDefault(require("./useStyles")); +exports.useStyles = useStyles_1.default; +const useTheme_1 = __importDefault(require("./useTheme")); +exports.useTheme = useTheme_1.default; diff --git a/lib/packages/core/src/styles/hooks/useStyles.js b/lib/packages/core/src/styles/hooks/useStyles.js new file mode 100644 index 000000000..187f83242 --- /dev/null +++ b/lib/packages/core/src/styles/hooks/useStyles.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const useTheme_1 = __importDefault(require("./useTheme")); +const useStyles = (createStyleFn, ...args) => { + const theme = (0, useTheme_1.default)(); + return [createStyleFn(theme, ...args), theme]; +}; +exports.default = useStyles; diff --git a/lib/packages/core/src/styles/hooks/useTheme.js b/lib/packages/core/src/styles/hooks/useTheme.js new file mode 100644 index 000000000..1c171e115 --- /dev/null +++ b/lib/packages/core/src/styles/hooks/useTheme.js @@ -0,0 +1,9 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const context_1 = __importDefault(require("../context/context")); +const useTheme = () => (0, react_1.useContext)(context_1.default); +exports.default = useTheme; diff --git a/lib/packages/core/src/styles/icons/font/SimpleIcon.js b/lib/packages/core/src/styles/icons/font/SimpleIcon.js new file mode 100644 index 000000000..fc35f244b --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/SimpleIcon.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.iconNames = void 0; +const react_1 = require("react"); +const Text_1 = __importDefault(require("../../../basic/components/Text/Text")); +const useTheme_1 = __importDefault(require("../../hooks/useTheme")); +const px_1 = __importDefault(require("../../utils/px")); +const unicodesMap_json_1 = __importDefault(require("./unicodesMap.json")); +const SimpleIcon = ({ size = (0, px_1.default)(24), name, style, color, }) => { + const { colors } = (0, useTheme_1.default)(); + const resolveGlyph = (0, react_1.useCallback)((iconName) => { + const glyph = unicodesMap_json_1.default[iconName]; + return String.fromCodePoint(glyph); + }, []); + const icon = (0, react_1.useMemo)(() => resolveGlyph(name), [name]); + const textStyle = { + fontSize: size, + fontFamily: 'Neotis', + color: color ?? colors.IconNeutral, + ...style, + }; + return {icon}; +}; +exports.iconNames = Object.keys(unicodesMap_json_1.default); +exports.default = SimpleIcon; diff --git a/lib/packages/core/src/styles/icons/font/SimpleIconAlbum.js b/lib/packages/core/src/styles/icons/font/SimpleIconAlbum.js new file mode 100644 index 000000000..81833ec6e --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/SimpleIconAlbum.js @@ -0,0 +1,47 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Pressable_1 = __importDefault(require("../../../basic/components/Pressable/Pressable")); +const FlatList_1 = __importDefault(require("../../../basic/components/FlatList/FlatList")); +const px_1 = __importDefault(require("../../utils/px")); +const SimpleIcon_1 = __importStar(require("./SimpleIcon")); +const renderItem = (onPress, color) => ({ item }) => { + return ( onPress(item)}> + + ); +}; +const keyExtractor = item => item; +const SimpleIconAlbum = ({ color, onPress, numColumns = 9, ...rest }) => { + return (); +}; +const styles = { + item: { + padding: (0, px_1.default)(10), + }, +}; +exports.default = SimpleIconAlbum; diff --git a/lib/packages/core/src/styles/icons/font/__tests__/SimpleIcon.test.js b/lib/packages/core/src/styles/icons/font/__tests__/SimpleIcon.test.js new file mode 100644 index 000000000..f1703d606 --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/__tests__/SimpleIcon.test.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const SimpleIcon_1 = __importDefault(require("../SimpleIcon")); +describe('@lad-tech/mobydick-core/icons/SimpleIcon', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)(); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/styles/icons/font/__tests__/SimpleIconAlbum.test.js b/lib/packages/core/src/styles/icons/font/__tests__/SimpleIconAlbum.test.js new file mode 100644 index 000000000..1692108a1 --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/__tests__/SimpleIconAlbum.test.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const SimpleIconAlbum_1 = __importDefault(require("../SimpleIconAlbum")); +describe('@lad-tech/mobydick-core/icons/SimpleIconAlbum', () => { + it('renders correctly', () => { + const { toJSON } = (0, react_native_1.render)( console.log()}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with color', () => { + const { toJSON } = (0, react_native_1.render)( console.log()}/>); + expect(toJSON()).toMatchSnapshot(); + }); + it('renders correctly with press', () => { + const onPress = jest.fn(); + const { getByTestId } = (0, react_native_1.render)(); + const pressable = getByTestId('icon-image'); + react_native_1.fireEvent.press(pressable, { target: null, currentTarget: null }); + expect(onPress).toHaveBeenCalledWith('icon-image'); + }); +}); diff --git a/lib/packages/core/src/styles/icons/font/index.js b/lib/packages/core/src/styles/icons/font/index.js new file mode 100644 index 000000000..d98247515 --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/index.js @@ -0,0 +1,34 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.iconNames = exports.SimpleIconAlbum = exports.SimpleIcon = void 0; +const SimpleIconAlbum_1 = __importDefault(require("./SimpleIconAlbum")); +exports.SimpleIconAlbum = SimpleIconAlbum_1.default; +const SimpleIcon_1 = __importStar(require("./SimpleIcon")); +exports.SimpleIcon = SimpleIcon_1.default; +Object.defineProperty(exports, "iconNames", { enumerable: true, get: function () { return SimpleIcon_1.iconNames; } }); diff --git a/lib/packages/core/src/styles/icons/font/unicodesMap.json b/lib/packages/core/src/styles/icons/font/unicodesMap.json new file mode 100644 index 000000000..725eb4a40 --- /dev/null +++ b/lib/packages/core/src/styles/icons/font/unicodesMap.json @@ -0,0 +1,103 @@ +{ + "icon-Bio_agefill": 59905, + "icon-Calendarfill": 59906, + "icon-CellsFill": 59907, + "icon-Chart2fill": 59908, + "icon-Chartfill": 59909, + "icon-Fatfill": 59910, + "icon-Kettlebellfill": 59911, + "icon-Musclefill": 59912, + "icon-Rulerfill": 59913, + "icon-Sleepfill": 59914, + "icon-Stepfill": 59915, + "icon-Time": 59916, + "icon-Waterfill": 59917, + "icon-account": 59918, + "icon-accountfill": 59919, + "icon-arrow-down": 59920, + "icon-arrow-left": 59921, + "icon-arrow-left-1": 59922, + "icon-arrow-right": 59923, + "icon-arrow-right-1": 59924, + "icon-arrow-up": 59925, + "icon-attachment": 59926, + "icon-bag": 59927, + "icon-bagfill": 59928, + "icon-bar": 59929, + "icon-bookmark": 59930, + "icon-calendar": 59931, + "icon-calendar_search": 59932, + "icon-call": 59933, + "icon-camera": 59934, + "icon-cancel": 59935, + "icon-cancel2": 59936, + "icon-card": 59937, + "icon-cart": 59938, + "icon-case": 59939, + "icon-chart": 59940, + "icon-chart2": 59941, + "icon-check": 59942, + "icon-check2": 59943, + "icon-copy": 59944, + "icon-delete": 59945, + "icon-diamond": 59946, + "icon-discount": 59947, + "icon-doc": 59948, + "icon-edit": 59949, + "icon-exchange": 59950, + "icon-filter": 59951, + "icon-flash": 59952, + "icon-folder": 59953, + "icon-folder-1": 59954, + "icon-grid": 59955, + "icon-gridfill": 59956, + "icon-group": 59957, + "icon-hangup": 59958, + "icon-heart": 59959, + "icon-heartfill": 59960, + "icon-hide": 59961, + "icon-home2": 59962, + "icon-house": 59963, + "icon-housefill": 59964, + "icon-image": 59965, + "icon-info": 59966, + "icon-info2": 59967, + "icon-kebab": 59968, + "icon-link": 59969, + "icon-list": 59970, + "icon-loading": 59971, + "icon-location": 59972, + "icon-lock": 59973, + "icon-logout": 59974, + "icon-mail": 59975, + "icon-mic": 59976, + "icon-minus": 59977, + "icon-money": 59978, + "icon-mute": 59979, + "icon-noconnection": 59980, + "icon-notification": 59981, + "icon-plus": 59982, + "icon-plus2": 59983, + "icon-present": 59984, + "icon-qr": 59985, + "icon-ruble": 59986, + "icon-search": 59987, + "icon-send": 59988, + "icon-settings": 59989, + "icon-share": 59990, + "icon-show": 59991, + "icon-smartphone": 59992, + "icon-sort-horizontal": 59993, + "icon-sort-vertical": 59994, + "icon-speed": 59995, + "icon-stack": 59996, + "icon-starfill": 59997, + "icon-staroutline": 59998, + "icon-unlock": 59999, + "icon-unmute": 60000, + "icon-video": 60001, + "icon-videooff": 60002, + "icon-volume": 60003, + "icon-wallet": 60004, + "icon-warning": 60005 +} diff --git a/lib/packages/core/src/styles/icons/index.js b/lib/packages/core/src/styles/icons/index.js new file mode 100644 index 000000000..e387da210 --- /dev/null +++ b/lib/packages/core/src/styles/icons/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./font"), exports); +__exportStar(require("./svg"), exports); diff --git a/lib/packages/core/src/styles/icons/svg/index.js b/lib/packages/core/src/styles/icons/svg/index.js new file mode 100644 index 000000000..075502377 --- /dev/null +++ b/lib/packages/core/src/styles/icons/svg/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Loader = exports.Check = exports.Exit = exports.Plus = exports.Hide = exports.Show = void 0; +const show_svg_1 = __importDefault(require("./show.svg")); +exports.Show = show_svg_1.default; +const hide_svg_1 = __importDefault(require("./hide.svg")); +exports.Hide = hide_svg_1.default; +const plus_svg_1 = __importDefault(require("./plus.svg")); +exports.Plus = plus_svg_1.default; +const exit_svg_1 = __importDefault(require("./exit.svg")); +exports.Exit = exit_svg_1.default; +const check_svg_1 = __importDefault(require("./check.svg")); +exports.Check = check_svg_1.default; +const loader_svg_1 = __importDefault(require("./loader.svg")); +exports.Loader = loader_svg_1.default; diff --git a/lib/packages/core/src/styles/index.js b/lib/packages/core/src/styles/index.js new file mode 100644 index 000000000..f3430a500 --- /dev/null +++ b/lib/packages/core/src/styles/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./icons"), exports); +__exportStar(require("./context"), exports); +__exportStar(require("./constants"), exports); +__exportStar(require("./types"), exports); +__exportStar(require("./hooks"), exports); +__exportStar(require("./utils"), exports); +__exportStar(require("./shadows"), exports); diff --git a/lib/packages/core/src/styles/shadows/getShadows.js b/lib/packages/core/src/styles/shadows/getShadows.js new file mode 100644 index 000000000..502d16a4a --- /dev/null +++ b/lib/packages/core/src/styles/shadows/getShadows.js @@ -0,0 +1,95 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getShadows = exports.shadowsAndroidDark = exports.shadowsAndroidLight = exports.shadowsIosDark = exports.shadowsIosLight = void 0; +const react_native_1 = require("react-native"); +const shadowsIosLight = ({ spaces, }) => ({ + small: { + shadowOffset: { + width: 0, + height: spaces.Space2, + }, + shadowRadius: spaces.Space4, + shadowOpacity: 0.16, + }, + medium: { + shadowOffset: { + width: 0, + height: spaces.Space6, + }, + shadowRadius: spaces.Space8, + shadowOpacity: 0.16, + }, + large: { + shadowOffset: { + width: 0, + height: spaces.Space12, + }, + shadowRadius: spaces.Space16, + shadowOpacity: 0.16, + }, +}); +exports.shadowsIosLight = shadowsIosLight; +const shadowsIosDark = ({ spaces, }) => ({ + small: { + shadowOffset: { + width: 0, + height: spaces.Space2, + }, + shadowRadius: spaces.Space4, + shadowOpacity: 0.48, + }, + medium: { + shadowOffset: { + width: 0, + height: spaces.Space6, + }, + shadowRadius: spaces.Space8, + shadowOpacity: 0.48, + }, + large: { + shadowOffset: { + width: 0, + height: spaces.Space12, + }, + shadowRadius: spaces.Space16, + shadowOpacity: 0.48, + }, +}); +exports.shadowsIosDark = shadowsIosDark; +const shadowsAndroidLight = ({ spaces, }) => ({ + small: { + elevation: spaces.Space1, + }, + medium: { + elevation: spaces.Space8, + }, + large: { + elevation: spaces.Space16, + }, +}); +exports.shadowsAndroidLight = shadowsAndroidLight; +const shadowsAndroidDark = ({ spaces, }) => ({ + small: { + elevation: spaces.Space4, + }, + medium: { + elevation: spaces.Space12, + }, + large: { + elevation: spaces.Space24, + }, +}); +exports.shadowsAndroidDark = shadowsAndroidDark; +const getShadows = ({ spaces, currentTheme, }) => { + const isDark = currentTheme === 'dark'; + if (react_native_1.Platform.OS === 'ios') { + return isDark ? (0, exports.shadowsIosDark)({ spaces }) : (0, exports.shadowsIosLight)({ spaces }); + } + if (react_native_1.Platform.OS === 'android') { + return isDark + ? (0, exports.shadowsAndroidDark)({ spaces }) + : (0, exports.shadowsAndroidLight)({ spaces }); + } + return (0, exports.shadowsAndroidLight)({ spaces }); +}; +exports.getShadows = getShadows; diff --git a/lib/packages/core/src/styles/shadows/index.js b/lib/packages/core/src/styles/shadows/index.js new file mode 100644 index 000000000..40d1e7f5e --- /dev/null +++ b/lib/packages/core/src/styles/shadows/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./getShadows"), exports); diff --git a/lib/packages/core/src/styles/types.js b/lib/packages/core/src/styles/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/core/src/styles/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/core/src/styles/utils/__tests__/rem.test.js b/lib/packages/core/src/styles/utils/__tests__/rem.test.js new file mode 100644 index 000000000..4bdbfd6ec --- /dev/null +++ b/lib/packages/core/src/styles/utils/__tests__/rem.test.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const rem_1 = __importDefault(require("../rem")); +describe('rem', () => { + it('should correct ios', () => { + react_native_1.Platform.OS = 'ios'; + const res = (0, rem_1.default)(10); + expect(res).toEqual(15); + }); + it('should correct android', () => { + react_native_1.Platform.OS = 'android'; + const res = (0, rem_1.default)(10); + expect(res).toEqual(15); + }); + it('should correct horizontal', () => { + react_native_1.Platform.OS = 'android'; + jest.spyOn(react_native_1.Dimensions, 'get').mockImplementation(() => ({ + width: 818, + height: 414, + scale: 1, + fontScale: 1, + })); + const res = (0, rem_1.default)(10); + expect(res).toEqual(11); + }); +}); diff --git a/lib/packages/core/src/styles/utils/createStyles.js b/lib/packages/core/src/styles/utils/createStyles.js new file mode 100644 index 000000000..05983a76f --- /dev/null +++ b/lib/packages/core/src/styles/utils/createStyles.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const createStyles = (fn) => { + return fn; +}; +exports.default = createStyles; diff --git a/lib/packages/core/src/styles/utils/index.js b/lib/packages/core/src/styles/utils/index.js new file mode 100644 index 000000000..ca5cbcceb --- /dev/null +++ b/lib/packages/core/src/styles/utils/index.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.px = exports.rem = exports.createStyles = void 0; +const createStyles_1 = __importDefault(require("./createStyles")); +exports.createStyles = createStyles_1.default; +const rem_1 = __importDefault(require("./rem")); +exports.rem = rem_1.default; +const px_1 = __importDefault(require("./px")); +exports.px = px_1.default; diff --git a/lib/packages/core/src/styles/utils/px.js b/lib/packages/core/src/styles/utils/px.js new file mode 100644 index 000000000..d44c9e2cb --- /dev/null +++ b/lib/packages/core/src/styles/utils/px.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("react-native"); +const px = (size) => { + return react_native_1.PixelRatio.roundToNearestPixel(size); +}; +exports.default = px; diff --git a/lib/packages/core/src/styles/utils/rem.js b/lib/packages/core/src/styles/utils/rem.js new file mode 100644 index 000000000..c3714f260 --- /dev/null +++ b/lib/packages/core/src/styles/utils/rem.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.scale = void 0; +const react_native_1 = require("react-native"); +const guidelineBaseWidth = 375; +const scale = (size) => { + const { width, height } = react_native_1.Dimensions.get('window'); + if (width < height) { + return (width / guidelineBaseWidth) * size; + } + else { + return (height / guidelineBaseWidth) * size; + } +}; +exports.scale = scale; +/** + * @deprecated Bad working with large screens use `px` instead + */ +const rem = (size, factor = 0.5) => { + const newSize = size + ((0, exports.scale)(size) - size) * factor; + return react_native_1.PixelRatio.roundToNearestPixel(newSize); +}; +exports.default = rem; diff --git a/lib/packages/core/src/typography/components/Typography/Typography.js b/lib/packages/core/src/typography/components/Typography/Typography.js new file mode 100644 index 000000000..bf6b99b31 --- /dev/null +++ b/lib/packages/core/src/typography/components/Typography/Typography.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Typography = void 0; +const Text_1 = __importDefault(require("../../../basic/components/Text/Text")); +const hooks_1 = require("../../hooks"); +const Typography = ({ children, font = 'Regular-Primary-S', style, ...props }) => { + const { fontStyle } = (0, hooks_1.useFont)(font); + return ( + {children} + ); +}; +exports.Typography = Typography; diff --git a/lib/packages/core/src/typography/components/Typography/__tests__/Typography.test.js b/lib/packages/core/src/typography/components/Typography/__tests__/Typography.test.js new file mode 100644 index 000000000..b10b4d77d --- /dev/null +++ b/lib/packages/core/src/typography/components/Typography/__tests__/Typography.test.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const Typography_1 = require("../Typography"); +describe('@lad-tech/mobydick-core/Typography', () => { + it('renders default correctly', () => { + const { toJSON } = (0, react_native_1.render)(My Text); + expect(toJSON()).toMatchSnapshot(); + }); +}); diff --git a/lib/packages/core/src/typography/components/Typography/index.js b/lib/packages/core/src/typography/components/Typography/index.js new file mode 100644 index 000000000..ef9323090 --- /dev/null +++ b/lib/packages/core/src/typography/components/Typography/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Typography"), exports); diff --git a/lib/packages/core/src/typography/components/index.js b/lib/packages/core/src/typography/components/index.js new file mode 100644 index 000000000..ef9323090 --- /dev/null +++ b/lib/packages/core/src/typography/components/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Typography"), exports); diff --git a/lib/packages/core/src/typography/hooks/__tests__/useFont.test.js b/lib/packages/core/src/typography/hooks/__tests__/useFont.test.js new file mode 100644 index 000000000..029f797cd --- /dev/null +++ b/lib/packages/core/src/typography/hooks/__tests__/useFont.test.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useFont_1 = require("../useFont"); +describe('useFont', () => { + test('positive case default font', () => { + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useFont_1.useFont)()); + expect(current.fontStyle).toStrictEqual({ + color: '#20242D', + fontFamily: 'Inter-Regular', + fontSize: 22.5, + lineHeight: 28.5, + minHeight: 28.5, + }); + }); + test('positive case custom font', () => { + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useFont_1.useFont)('Medium-Primary-S')); + expect(current.fontStyle).toStrictEqual({ + color: '#20242D', + fontFamily: 'Inter-Medium', + fontSize: 22.5, + lineHeight: 28.5, + minHeight: 28.5, + }); + }); +}); diff --git a/lib/packages/core/src/typography/hooks/index.js b/lib/packages/core/src/typography/hooks/index.js new file mode 100644 index 000000000..13f8fd033 --- /dev/null +++ b/lib/packages/core/src/typography/hooks/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./useFont"), exports); diff --git a/lib/packages/core/src/typography/hooks/useFont.js b/lib/packages/core/src/typography/hooks/useFont.js new file mode 100644 index 000000000..b0a13a865 --- /dev/null +++ b/lib/packages/core/src/typography/hooks/useFont.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useFont = void 0; +const useTheme_1 = __importDefault(require("../../styles/hooks/useTheme")); +const types_1 = require("../types"); +const utils_1 = require("../utils"); +const useFont = (font = 'Regular-Primary-S') => { + const { colors, theme } = (0, useTheme_1.default)(); + const getWeight = (weight) => theme.fonts[weight]; + const [weight, color, size] = font.split('-'); + const { fontSize, lineHeight } = (0, utils_1.getSize)(size); + const fontStyle = { + color: colors[`${types_1.TEXT}${color}`], + fontFamily: getWeight(weight), + fontSize, + lineHeight, + minHeight: lineHeight, + }; + return { fontStyle }; +}; +exports.useFont = useFont; diff --git a/lib/packages/core/src/typography/index.js b/lib/packages/core/src/typography/index.js new file mode 100644 index 000000000..45533b2b8 --- /dev/null +++ b/lib/packages/core/src/typography/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./components"), exports); +__exportStar(require("./utils"), exports); +__exportStar(require("./hooks"), exports); +__exportStar(require("./types"), exports); diff --git a/lib/packages/core/src/typography/types.js b/lib/packages/core/src/typography/types.js new file mode 100644 index 000000000..28ea9ddc7 --- /dev/null +++ b/lib/packages/core/src/typography/types.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TEXT = exports.TFontWeight = exports.TFontSize = void 0; +var TFontSize; +(function (TFontSize) { + TFontSize["H1"] = "H1"; + TFontSize["H2"] = "H2"; + TFontSize["H3"] = "H3"; + TFontSize["H4"] = "H4"; + TFontSize["H5"] = "H5"; + TFontSize["XL"] = "XL"; + TFontSize["L"] = "L"; + TFontSize["M"] = "M"; + TFontSize["S"] = "S"; + TFontSize["XS"] = "XS"; + TFontSize["XXS"] = "XXS"; + TFontSize["XXXS"] = "XXXS"; +})(TFontSize || (exports.TFontSize = TFontSize = {})); +var TFontWeight; +(function (TFontWeight) { + TFontWeight["Regular"] = "Regular"; + TFontWeight["Medium"] = "Medium"; + TFontWeight["SemiBold"] = "SemiBold"; + TFontWeight["Bold"] = "Bold"; + TFontWeight["Italic"] = "Italic"; + TFontWeight["BoldItalic"] = "BoldItalic"; +})(TFontWeight || (exports.TFontWeight = TFontWeight = {})); +exports.TEXT = 'Text'; diff --git a/lib/packages/core/src/typography/utils/getSize.js b/lib/packages/core/src/typography/utils/getSize.js new file mode 100644 index 000000000..44ddfcbad --- /dev/null +++ b/lib/packages/core/src/typography/utils/getSize.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSize = void 0; +const px_1 = __importDefault(require("../../styles/utils/px")); +const sizes = { + H1: { fontSize: (0, px_1.default)(36), lineHeight: (0, px_1.default)(40) }, + H2: { fontSize: (0, px_1.default)(32), lineHeight: (0, px_1.default)(36) }, + H3: { fontSize: (0, px_1.default)(28), lineHeight: (0, px_1.default)(32) }, + H4: { fontSize: (0, px_1.default)(24), lineHeight: (0, px_1.default)(26) }, + H5: { fontSize: (0, px_1.default)(22), lineHeight: (0, px_1.default)(24) }, + XL: { fontSize: (0, px_1.default)(20), lineHeight: (0, px_1.default)(24) }, + L: { fontSize: (0, px_1.default)(18), lineHeight: (0, px_1.default)(22) }, + M: { fontSize: (0, px_1.default)(16), lineHeight: (0, px_1.default)(20) }, + S: { fontSize: (0, px_1.default)(15), lineHeight: (0, px_1.default)(19) }, + XS: { fontSize: (0, px_1.default)(14), lineHeight: (0, px_1.default)(18) }, + XXS: { fontSize: (0, px_1.default)(12), lineHeight: (0, px_1.default)(16) }, + XXXS: { fontSize: (0, px_1.default)(10), lineHeight: (0, px_1.default)(14) }, +}; +// eslint-disable-next-line import/prefer-default-export +const getSize = (size) => sizes[size]; +exports.getSize = getSize; diff --git a/lib/packages/core/src/typography/utils/index.js b/lib/packages/core/src/typography/utils/index.js new file mode 100644 index 000000000..7964b9e43 --- /dev/null +++ b/lib/packages/core/src/typography/utils/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./getSize"), exports); diff --git a/lib/packages/dragAndDrop/index.js b/lib/packages/dragAndDrop/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/dragAndDrop/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDrop.js b/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDrop.js new file mode 100644 index 000000000..63e9e983d --- /dev/null +++ b/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDrop.js @@ -0,0 +1,132 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_gesture_handler_1 = require("react-native-gesture-handler"); +const react_native_reanimated_1 = __importStar(require("react-native-reanimated")); +const react_native_1 = require("react-native"); +const utils_1 = require("./utils"); +const DragAndDrop = ({ children, positions, id, scrollY, scrollView, columns, itemWidth, itemHeight, heightScrollView, }) => { + const position = (0, utils_1.getPosition)({ + index: positions.value[id], + col: columns, + height: itemHeight, + width: itemWidth, + }); + const x = (0, react_native_reanimated_1.useSharedValue)(position.x); + const y = (0, react_native_reanimated_1.useSharedValue)(position.y); + const isGestureActive = (0, react_native_reanimated_1.useSharedValue)(false); + const containerHeight = heightScrollView; + const contentHeight = Math.ceil(Object.keys(positions.value).length / columns) * itemHeight; + (0, react_native_reanimated_1.useAnimatedReaction)(() => positions.value[id], newOrder => { + const newPositions = (0, utils_1.getPosition)({ + index: newOrder, + col: columns, + height: itemHeight, + width: itemWidth, + }); + x.value = (0, react_native_reanimated_1.withTiming)(newPositions.x, utils_1.animationConfig); + y.value = (0, react_native_reanimated_1.withTiming)(newPositions.y, utils_1.animationConfig); + }); + const animatedStyle = (0, react_native_reanimated_1.useAnimatedStyle)(() => { + const zIndex = isGestureActive.value ? 1 : 0; + const scale = isGestureActive.value ? 1.1 : 1; + return { + position: 'absolute', + top: 0, + left: 0, + width: itemWidth, + height: itemHeight, + zIndex, + transform: [{ translateX: x.value }, { translateY: y.value }, { scale }], + }; + }); + const pan = react_native_gesture_handler_1.Gesture.Pan() + .onStart(event => { + x.value = x.value + event.translationX; + y.value = y.value + event.translationY; + isGestureActive.value = true; + }) + .onChange(event => { + x.value = x.value + event.changeX; + y.value = y.value + event.changeY; + // 1. We calculate where the tile should be + const newOrder = (0, utils_1.getOrder)({ + tx: x.value, + ty: y.value, + max: Object.keys(positions.value).length - 1, + col: columns, + width: itemWidth, + height: itemHeight, + }); + // 2. We swap the positions + const oldOrder = positions.value[id]; + if (newOrder !== oldOrder) { + const idToSwap = Object.keys(positions.value).find(key => positions.value[key] === newOrder); + if (idToSwap) { + // Spread operator is not supported in worklets + // And Object.assign doesn't seem to be working on alpha.6 + const newPositions = JSON.parse(JSON.stringify(positions.value)); + newPositions[id] = newOrder; + newPositions[idToSwap] = oldOrder; + positions.value = newPositions; + } + } + // 3. Scroll + const lowerBound = scrollY.value; + const upperBound = lowerBound + containerHeight - itemHeight; + const maxScroll = contentHeight - containerHeight; + const leftToScrollDown = maxScroll - scrollY.value; + if (y.value < lowerBound) { + const diff = Math.min(lowerBound - y.value, lowerBound); + scrollY.value -= diff; + y.value -= diff; + (0, react_native_reanimated_1.scrollTo)(scrollView, 0, scrollY.value, false); + } + if (y.value > upperBound) { + const diff = Math.min(y.value - upperBound, leftToScrollDown); + scrollY.value += diff; + y.value += diff; + (0, react_native_reanimated_1.scrollTo)(scrollView, 0, scrollY.value, false); + } + }) + .onEnd(_ => { + const destination = (0, utils_1.getPosition)({ + index: positions.value[id], + col: columns, + height: itemHeight, + width: itemWidth, + }); + x.value = (0, react_native_reanimated_1.withTiming)(destination.x, utils_1.animationConfig, () => (isGestureActive.value = false)); + y.value = (0, react_native_reanimated_1.withTiming)(destination.y, utils_1.animationConfig, () => (isGestureActive.value = false)); + }); + return ( + + + {children} + + + ); +}; +exports.default = DragAndDrop; diff --git a/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDropList.js b/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDropList.js new file mode 100644 index 000000000..1b4f98426 --- /dev/null +++ b/lib/packages/dragAndDrop/src/DragAndDrop/DragAndDropList.js @@ -0,0 +1,75 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_gesture_handler_1 = require("react-native-gesture-handler"); +const react_native_reanimated_1 = __importStar(require("react-native-reanimated")); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const DragAndDrop_1 = __importDefault(require("./DragAndDrop")); +const DragAndDropList = ({ list, renderItem, itemWidth, itemHeight, columns, contentContainerStyle, }) => { + const [styles] = (0, mobydick_core_1.useStyles)(createStyleFn); + const scrollY = (0, react_native_reanimated_1.useSharedValue)(0); + const scrollView = (0, react_native_reanimated_1.useAnimatedRef)(); + const [heightScrollView, setHeightScrollView] = (0, react_1.useState)(0); + const positions = (0, react_native_reanimated_1.useSharedValue)(Object.assign({}, ...list.map((_item, index) => ({ [index]: index })))); + const onScroll = (0, react_native_reanimated_1.useAnimatedScrollHandler)({ + onScroll: ({ contentOffset: { y } }) => { + scrollY.value = y; + }, + }); + return ( + + { + setHeightScrollView(event.nativeEvent.layout.height); + }} contentContainerStyle={[ + styles.contentContainer, + { + height: Math.ceil(list.length / columns) * itemHeight, + }, + contentContainerStyle, + ]} showsVerticalScrollIndicator={false} bounces={false} scrollEventThrottle={16}> + {list.map((item, index) => { + return ( + {renderItem(item, index, list)} + ); + })} + + + ); +}; +const createStyleFn = (0, mobydick_core_1.createStyles)(() => ({ + container: { + flex: 1, + }, + contentContainer: { + alignItems: 'center', + justifyContent: 'space-between', + }, +})); +exports.default = DragAndDropList; diff --git a/lib/packages/dragAndDrop/src/DragAndDrop/index.js b/lib/packages/dragAndDrop/src/DragAndDrop/index.js new file mode 100644 index 000000000..61160fbe3 --- /dev/null +++ b/lib/packages/dragAndDrop/src/DragAndDrop/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DragAndDropList = exports.DragAndDrop = void 0; +const DragAndDrop_1 = __importDefault(require("./DragAndDrop")); +exports.DragAndDrop = DragAndDrop_1.default; +const DragAndDropList_1 = __importDefault(require("./DragAndDropList")); +exports.DragAndDropList = DragAndDropList_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/dragAndDrop/src/DragAndDrop/types.js b/lib/packages/dragAndDrop/src/DragAndDrop/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/dragAndDrop/src/DragAndDrop/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/dragAndDrop/src/DragAndDrop/utils.js b/lib/packages/dragAndDrop/src/DragAndDrop/utils.js new file mode 100644 index 000000000..526fe843d --- /dev/null +++ b/lib/packages/dragAndDrop/src/DragAndDrop/utils.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.animationConfig = exports.getOrder = exports.getPosition = void 0; +const react_native_reanimated_1 = require("react-native-reanimated"); +const getPosition = ({ index, col, width, height, }) => { + 'worklet'; + return { + x: (index % col) * width, + y: Math.floor(index / col) * height, + }; +}; +exports.getPosition = getPosition; +const getOrder = ({ tx, ty, max, col, width, height, }) => { + 'worklet'; + const x = Math.round(tx / width) * width; + const y = Math.round(ty / height) * height; + const row = Math.max(y, 0) / height; + const columns = Math.max(x, 0) / width; + return Math.min(row * col + columns, max); +}; +exports.getOrder = getOrder; +exports.animationConfig = { + easing: react_native_reanimated_1.Easing.inOut(react_native_reanimated_1.Easing.ease), + duration: 350, +}; diff --git a/lib/packages/dragAndDrop/src/index.js b/lib/packages/dragAndDrop/src/index.js new file mode 100644 index 000000000..1ce54cca4 --- /dev/null +++ b/lib/packages/dragAndDrop/src/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./DragAndDrop"), exports); diff --git a/lib/packages/markdown/index.js b/lib/packages/markdown/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/markdown/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/markdown/src/Markdown/Markdown.js b/lib/packages/markdown/src/Markdown/Markdown.js new file mode 100644 index 000000000..097cc1a5f --- /dev/null +++ b/lib/packages/markdown/src/Markdown/Markdown.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_markdown_display_1 = __importDefault(require("react-native-markdown-display")); +const mobydick_core_1 = require("@lad-tech/mobydick-core"); +const Markdown = ({ children, style }) => { + const { colors } = (0, mobydick_core_1.useTheme)(); + const { fontStyle: bodyFontStyle } = (0, mobydick_core_1.useFont)('Regular-Primary-XXS'); + const { fontStyle: strongFontStyle } = (0, mobydick_core_1.useFont)('SemiBold-Primary-XXS'); + const innersStyle = { + body: { + fontFamily: bodyFontStyle.fontFamily, + fontSize: bodyFontStyle.fontSize, + color: bodyFontStyle.color, + }, + heading1: { + fontSize: px(24), + }, + heading2: { + fontSize: px(20), + }, + heading3: { + fontSize: px(18), + }, + strong: { + fontFamily: strongFontStyle.fontFamily, + }, + code_inline: { + backgroundColor: colors.BgSecondary, + }, + code_block: { + backgroundColor: colors.BgSecondary, + }, + fence: { + backgroundColor: colors.BgSecondary, + }, + }; + return ({children}); +}; +exports.default = Markdown; diff --git a/lib/packages/markdown/src/Markdown/index.js b/lib/packages/markdown/src/Markdown/index.js new file mode 100644 index 000000000..d0bbe4c1c --- /dev/null +++ b/lib/packages/markdown/src/Markdown/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Markdown = void 0; +const Markdown_1 = __importDefault(require("./Markdown")); +exports.Markdown = Markdown_1.default; +__exportStar(require("./types"), exports); diff --git a/lib/packages/markdown/src/Markdown/types.js b/lib/packages/markdown/src/Markdown/types.js new file mode 100644 index 000000000..c8ad2e549 --- /dev/null +++ b/lib/packages/markdown/src/Markdown/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/packages/markdown/src/index.js b/lib/packages/markdown/src/index.js new file mode 100644 index 000000000..c1a9d00db --- /dev/null +++ b/lib/packages/markdown/src/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Markdown"), exports); diff --git a/lib/packages/utils/index.js b/lib/packages/utils/index.js new file mode 100644 index 000000000..6bb2867b5 --- /dev/null +++ b/lib/packages/utils/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./src"), exports); diff --git a/lib/packages/utils/src/hooks/__tests__/useDebounce.test.js b/lib/packages/utils/src/hooks/__tests__/useDebounce.test.js new file mode 100644 index 000000000..6b16c7722 --- /dev/null +++ b/lib/packages/utils/src/hooks/__tests__/useDebounce.test.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useDebounce_1 = __importDefault(require("../useDebounce")); +describe('useDebounce', () => { + jest.useFakeTimers(); + test('typing correctly', () => { + const fn = (a, b) => { + return a + b; + }; + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useDebounce_1.default)(fn)); + current(null, 'qwe'); + }); + test('positive case with default delay', () => { + const fn = jest.fn(); + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useDebounce_1.default)(fn)); + for (let i = 0; i < 1 + Math.ceil(1000 / 60) * 4; i++) { + (0, react_hooks_1.act)(current); + } + jest.runAllTimers(); + expect(fn).toHaveBeenCalledTimes(1); + }); + test('positive case with custom delay', () => { + const fn = jest.fn(); + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useDebounce_1.default)(fn, 1)); + for (let i = 0; i < 1 + Math.ceil(1000 / 60) * 4; i++) { + (0, react_hooks_1.act)(current); + } + jest.runAllTimers(); + expect(fn).toHaveBeenCalledTimes(1); + }); +}); diff --git a/lib/packages/utils/src/hooks/__tests__/useIsForeground.test.js b/lib/packages/utils/src/hooks/__tests__/useIsForeground.test.js new file mode 100644 index 000000000..e1b80236d --- /dev/null +++ b/lib/packages/utils/src/hooks/__tests__/useIsForeground.test.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const react_native_1 = require("react-native"); +const useIsForeground_1 = __importDefault(require("../useIsForeground")); +describe('useIsForeground', () => { + afterEach(() => { + jest.resetAllMocks(); + }); + test('positive case', () => { + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useIsForeground_1.default)()); + expect(current).toBe(true); + }); + test('negative case', () => { + const appStateSpy = jest.spyOn(react_native_1.AppState, 'addEventListener'); + const { result } = (0, react_hooks_1.renderHook)(() => (0, useIsForeground_1.default)()); + const [firstCall] = appStateSpy.mock.calls; + const [, cb] = firstCall; + (0, react_hooks_1.act)(() => cb('inactive')); + expect(result.current).toBe(false); + }); +}); diff --git a/lib/packages/utils/src/hooks/__tests__/useLatest.test.js b/lib/packages/utils/src/hooks/__tests__/useLatest.test.js new file mode 100644 index 000000000..0a965f7ad --- /dev/null +++ b/lib/packages/utils/src/hooks/__tests__/useLatest.test.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useLatest_1 = __importDefault(require("../useLatest")); +describe('useLatest', () => { + test('positive case', () => { + const fn = jest.fn(); + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useLatest_1.default)(fn)); + (0, react_hooks_1.act)(current.current); + }); +}); diff --git a/lib/packages/utils/src/hooks/__tests__/useThrottle.test.js b/lib/packages/utils/src/hooks/__tests__/useThrottle.test.js new file mode 100644 index 000000000..d29cc2b7d --- /dev/null +++ b/lib/packages/utils/src/hooks/__tests__/useThrottle.test.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useThrottle_1 = __importDefault(require("../useThrottle")); +describe('useThrottle', () => { + jest.useFakeTimers(); + test('positive case with default delay', () => { + const fn = jest.fn(); + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useThrottle_1.default)(fn)); + for (let i = 0; i < 1 + Math.ceil(1000 / 60) * 4; i++) { + (0, react_hooks_1.act)(current.throttledFn); + } + jest.runAllTimers(); + expect(fn).toHaveBeenCalledTimes(1); + }); + test('positive case with custom delay', () => { + const fn = jest.fn(); + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useThrottle_1.default)(fn, 1)); + for (let i = 0; i < 1 + Math.ceil(1000 / 60) * 4; i++) { + (0, react_hooks_1.act)(current.throttledFn); + } + expect(fn).toHaveBeenCalledTimes(1); + }); +}); diff --git a/lib/packages/utils/src/hooks/__tests__/useToggle.test.js b/lib/packages/utils/src/hooks/__tests__/useToggle.test.js new file mode 100644 index 000000000..a3177263b --- /dev/null +++ b/lib/packages/utils/src/hooks/__tests__/useToggle.test.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_hooks_1 = require("@testing-library/react-hooks"); +const useToggle_1 = __importDefault(require("../useToggle")); +describe('useToggle', () => { + test('positive case', () => { + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useToggle_1.default)(true)); + expect(current[0]).toEqual(true); + (0, react_hooks_1.act)(() => current[1]()); + }); + test('case without initialState', () => { + const { result: { current }, } = (0, react_hooks_1.renderHook)(() => (0, useToggle_1.default)()); + expect(current[0]).toEqual(false); + (0, react_hooks_1.act)(() => current[1]()); + }); +}); diff --git a/lib/packages/utils/src/hooks/index.js b/lib/packages/utils/src/hooks/index.js new file mode 100644 index 000000000..f069e003d --- /dev/null +++ b/lib/packages/utils/src/hooks/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useIsForeground = exports.useToggle = exports.useLatest = exports.useDebounce = exports.useThrottle = void 0; +const useThrottle_1 = __importDefault(require("./useThrottle")); +exports.useThrottle = useThrottle_1.default; +const useDebounce_1 = __importDefault(require("./useDebounce")); +exports.useDebounce = useDebounce_1.default; +const useLatest_1 = __importDefault(require("./useLatest")); +exports.useLatest = useLatest_1.default; +const useToggle_1 = __importDefault(require("./useToggle")); +exports.useToggle = useToggle_1.default; +const useIsForeground_1 = __importDefault(require("./useIsForeground")); +exports.useIsForeground = useIsForeground_1.default; diff --git a/lib/packages/utils/src/hooks/useDebounce.js b/lib/packages/utils/src/hooks/useDebounce.js new file mode 100644 index 000000000..b0252f497 --- /dev/null +++ b/lib/packages/utils/src/hooks/useDebounce.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useLatest_1 = __importDefault(require("./useLatest")); +const useDebounce = (callback, delay = 1000) => { + const latestCallback = (0, useLatest_1.default)(callback); + let timeout = (0, react_1.useRef)(null).current; + const debouncedFn = (0, react_1.useMemo)(() => { + return (...args) => { + timeout && clearTimeout(timeout); + timeout = setTimeout(() => { + latestCallback.current(...args); + }, delay); + }; + }, []); + (0, react_1.useEffect)(() => () => { + timeout && clearTimeout(timeout); + }, [debouncedFn]); + return debouncedFn; +}; +exports.default = useDebounce; diff --git a/lib/packages/utils/src/hooks/useIsForeground.js b/lib/packages/utils/src/hooks/useIsForeground.js new file mode 100644 index 000000000..a067ebef8 --- /dev/null +++ b/lib/packages/utils/src/hooks/useIsForeground.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const useIsForeground = () => { + const [isForeground, setIsForeground] = (0, react_1.useState)(true); + (0, react_1.useEffect)(() => { + const onChange = (state) => { + setIsForeground(state === 'active'); + }; + const listener = react_native_1.AppState.addEventListener('change', onChange); + return () => listener.remove(); + }, [setIsForeground]); + return isForeground; +}; +exports.default = useIsForeground; diff --git a/lib/packages/utils/src/hooks/useLatest.js b/lib/packages/utils/src/hooks/useLatest.js new file mode 100644 index 000000000..ccde1663a --- /dev/null +++ b/lib/packages/utils/src/hooks/useLatest.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +function useLatest(value) { + const valueRef = (0, react_1.useRef)(value); + (0, react_1.useLayoutEffect)(() => { + valueRef.current = value; + }, [value]); + return valueRef; +} +exports.default = useLatest; diff --git a/lib/packages/utils/src/hooks/useThrottle.js b/lib/packages/utils/src/hooks/useThrottle.js new file mode 100644 index 000000000..e44394e33 --- /dev/null +++ b/lib/packages/utils/src/hooks/useThrottle.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useThrottle = (fn, time = 1000) => { + const timeout = (0, react_1.useRef)(null); + (0, react_1.useEffect)(() => { + return () => { + timeout.current && clearTimeout(timeout.current); + }; + }, []); + return { + throttledFn: (...params) => { + if (timeout.current) { + return; + } + timeout.current = setTimeout(() => { + timeout.current = null; + }, time); + fn(...params); + }, + }; +}; +exports.default = useThrottle; diff --git a/lib/packages/utils/src/hooks/useToggle.js b/lib/packages/utils/src/hooks/useToggle.js new file mode 100644 index 000000000..821a63f2e --- /dev/null +++ b/lib/packages/utils/src/hooks/useToggle.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const useToggle = (initialState = false) => { + const [state, setState] = (0, react_1.useState)(initialState); + const toggle = (0, react_1.useCallback)(() => setState(state => !state), []); + return [state, toggle]; +}; +exports.default = useToggle; diff --git a/lib/packages/utils/src/index.js b/lib/packages/utils/src/index.js new file mode 100644 index 000000000..fa32b1762 --- /dev/null +++ b/lib/packages/utils/src/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./hooks"), exports); diff --git a/lib/scripts/release.js b/lib/scripts/release.js new file mode 100644 index 000000000..84549dd8c --- /dev/null +++ b/lib/scripts/release.js @@ -0,0 +1,121 @@ +#!/usr/bin/env ts-node +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); +const child_process_1 = require("child_process"); +const yargs_1 = __importDefault(require("yargs")); +const simple_git_1 = __importDefault(require("simple-git")); +const package_json_1 = __importDefault(require("../package.json")); +const logger_1 = __importDefault(require("./utils/logger")); +const getIncrementedVersion_1 = require("./release/getIncrementedVersion"); +const setPackageVersion_1 = require("./release/setPackageVersion"); +const getPackageList_1 = require("./release/getPackageList"); +const publishPackage_1 = require("./release/publishPackage"); +const git = (0, simple_git_1.default)(); +const parser = (0, yargs_1.default)(process.argv.slice(2)) + .option('stage', { + type: 'string', + choices: ['alpha', 'beta'], + description: "Prerelease stage: 'alpha', 'beta'", +}) + .option('tag', { + type: 'string', + default: 'latest', + description: 'Tag', +}) + .option('skipVersionCheck', { + type: 'boolean', + default: false, + description: 'Skip checking version.', +}) + .option('skipPublish', { + type: 'boolean', + default: false, + description: 'Skip publishing step.', +}) + .example([['$0 minor --alpha', 'Prerelease to alpha stage.']]) + .parse(); +(async () => { + const argv = await parser; + const status = await git.status(); + if (status.files.length !== 0) { + logger_1.default.error('Working tree is not clean'); + process.exit(1); + } + logger_1.default.info('Releasing all packages'); + let incrementedVersion = package_json_1.default.version; + if (!argv.skipVersionCheck) { + incrementedVersion = (0, getIncrementedVersion_1.getIncrementedVersion)(incrementedVersion, { + type: argv._[0], + stage: argv.stage, + }); + logger_1.default.info(`New version: ${incrementedVersion}`); + await (0, setPackageVersion_1.setPackagesVersion)(incrementedVersion); + } + const packages = (0, getPackageList_1.getPackagesList)(); + if (!argv.skipPublish) { + logger_1.default.info('Publishing packages to npm'); + if (argv.stage && argv.tag === 'latest') { + argv.tag = 'next'; + } + await Promise.all(packages.map(p => (0, publishPackage_1.publishPackage)({ path: p.path, name: p.packageJson.name, tag: argv.tag }))); + logger_1.default.info('All packages were published successfully'); + } + (0, child_process_1.execSync)('npx react-native-version'); + await git.add([ + path_1.default.join(__dirname, '../packages'), + path_1.default.join(__dirname, '../package.json'), + path_1.default.join(__dirname, '../android'), + path_1.default.join(__dirname, '../ios'), + ]); + await git.commit(`[release] Version: ${incrementedVersion} [skip ci]`); + await git.push(); + await git.addTag(`v${incrementedVersion}`); + await git.pushTags(); + logger_1.default.info(' \n' + + ' . \n' + + ' /., \n' + + ' #@. \n' + + ' .&& \n' + + ' %% \n' + + ' ,*,. *&(/* \n' + + ' ,*#*,/* .#/(* (&(, \n' + + ' /#(*///// ,/**//#* , \n' + + ' .,.***,,,.** ,,. . .(*/, \n' + + ' ,(( ,. ..,,,( .,* . ...#&** \n' + + ' %..(&&@/*#,*./,(.*,*,***, /*%./. #&/#** \n' + + ' *(****/(/ ,**../.., .(/.((/**@@&@&, / \n' + + ' *(&( .,.*(/,. *,,.@/,,**%,,//*.*..(#/, \n' + + ' */*/.,,,.,&,./. *.&#* ,(,#*.#*.*..(#/, \n' + + ' *..../*... .%,#%.//*(.,.*.#,,. ,,,*/, \n' + + ' .**#**, @/(#@ (%*(#*/(*&#/&./@@@(,,*./ \n' + + ' .,%..,..,(/ % ,,.,,..,*/&#@ %*,*.&/,/ \n' + + ' **(.....,..(/%#(***,..*/%(/. *( . *%*. \n' + + ' #*..(*#/*(* #****.,,,..*#.,, *((,.&/* \n' + + ' */*/,,,,...*,,#*,, ..,,*//.,,./*,.%%,* \n' + + ' . */../(# /@/,.(#&/#%(*(..,(. ..,,/*., \n' + + ' .*#/*#%&, ./,.(% .&@%, ./(/...//*/,*(/. \n' + + ' ,,(#*/*, /*,&&&%##%&%.. .,/,,*,// \n' + + ' .,./,.(,.../*** ((%#*#,/,* .. .//(*, \n' + + ' ...(. ...**.. . ...* . **#/* \n' + + ' .,,/(**, . ... . .. ,,%(*,.. \n' + + ' ... */&.. . ../*#*... , .(%(. .. \n' + + ' *. .,(* ,*,/#///#*... .. /*/* ..,. \n' + + ' ,......* ,&%//((@**/,*. ...,**(/..,... \n' + + ' ,., . .,/,.,,*/(,*%(.,,***//,/*/(/, . ..* \n' + + ' .*,. .. .. (*/.,.., .,.,*.../,,,/*, . ,. \n' + + ' .(**,. .. ...,.//,,/**(**/..,*.**. .,. ... \n' + + ' ..*, . ..,,/*...*(,.,*.*, .#(,//(,//,.,... \n' + + ' ,,*,,... .,. ,,(.***,, .. ,,....,..#*#*(,,,,,. \n' + + ' .,,*/* ... .,.. . *,(. ..,* ,.. .*,.(,,,...... . \n' + + ' ..,/(....,,.,.( ,.,,, ....,#,...,,.,///.,,,.,.,. \n' + + ' .,**//*.,,,..*.. .,%,*, .,.. , .,/*,,.,,...,,., \n' + + ' .,..,(,. ,,*( ,....**, .,. . ... . ,..,//,/.,,,,.,. \n' + + ' ..,.,**. .,&/.,/, ...*.,*. ..%. (..,*./*,,**,,*/. \n' + + ' ..... .*,..,,* .,..,.,,.*/./*..* /,/,,..*%@##(,,*,,,,,. \n' + + ' ...,,,,..,*/.,,,..,(&/ ,(*.*.#/ .,,..,,//#%#,.,......* \n' + + ' Hello from Bibazavr \n'); +})(); diff --git a/lib/scripts/release/__tests__/getIncrementedVersion.test.js b/lib/scripts/release/__tests__/getIncrementedVersion.test.js new file mode 100644 index 000000000..221799505 --- /dev/null +++ b/lib/scripts/release/__tests__/getIncrementedVersion.test.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const getIncrementedVersion_1 = require("../getIncrementedVersion"); +describe('scripts/release/get-incremented-version', () => { + const processExit = jest + .spyOn(process, 'exit') + .mockImplementation(() => undefined); + it('returns right version with patch update', () => { + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'patch' })).toBe('1.1.2'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'patch', stage: 'alpha' })).toBe('1.1.2-alpha.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.2-alpha.0', { type: 'patch', stage: 'alpha' })).toBe('1.1.2-alpha.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.2-alpha.1', { type: 'patch' })).toBe('1.1.2'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.2-alpha.1', { type: 'patch', stage: 'beta' })).toBe('1.1.2-beta.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.2-beta.0', { type: 'patch', stage: 'beta' })).toBe('1.1.2-beta.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.2-beta.1', { type: 'patch' })).toBe('1.1.2'); + }); + it('returns right version with minor update', () => { + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'minor' })).toBe('1.2.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'minor', stage: 'alpha' })).toBe('1.2.0-alpha.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.2.0-alpha.0', { type: 'minor', stage: 'alpha' })).toBe('1.2.0-alpha.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.2.0-alpha.1', { type: 'minor' })).toBe('1.2.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.2.0-alpha.1', { type: 'minor', stage: 'beta' })).toBe('1.2.0-beta.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.2.0-beta.0', { type: 'minor', stage: 'beta' })).toBe('1.2.0-beta.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.2.0-beta.1', { type: 'minor' })).toBe('1.2.0'); + }); + it('returns right version with major update', () => { + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'major' })).toBe('2.0.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('1.1.1', { type: 'major', stage: 'alpha' })).toBe('2.0.0-alpha.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-alpha.0', { type: 'major' })).toBe('2.0.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-alpha.0', { type: 'major', stage: 'alpha' })).toBe('2.0.0-alpha.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-alpha.1', { type: 'major' })).toBe('2.0.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-alpha.1', { type: 'major', stage: 'beta' })).toBe('2.0.0-beta.0'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-beta.0', { type: 'major', stage: 'beta' })).toBe('2.0.0-beta.1'); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('2.0.0-beta.1', { type: 'major' })).toBe('2.0.0'); + }); + it('bad case', () => { + expect((0, getIncrementedVersion_1.getIncrementedVersion)('eqweqw', { type: 'badType' })).toBeUndefined(); + expect(processExit).toHaveBeenCalledWith(1); + expect((0, getIncrementedVersion_1.getIncrementedVersion)('eqweqw', { type: 'patch', stage: 'badStage' })).toBeUndefined(); + expect(processExit).toHaveBeenCalledWith(1); + }); +}); diff --git a/lib/scripts/release/getIncrementedVersion.js b/lib/scripts/release/getIncrementedVersion.js new file mode 100644 index 000000000..4a8e4221f --- /dev/null +++ b/lib/scripts/release/getIncrementedVersion.js @@ -0,0 +1,58 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getIncrementedVersion = void 0; +const logger_1 = __importDefault(require("../utils/logger")); +const VERSION_INCREMENT = ['patch', 'minor', 'major']; +const VERSION_STAGE = ['alpha', 'beta']; +function getIncrementedVersion(version, options) { + if (!VERSION_INCREMENT.includes(options.type)) { + logger_1.default.error(`Incorrect version type: ${options.type}, it should be one of these values: ${VERSION_INCREMENT.join(', ')}`); + return process.exit(1); + } + if (options.stage && !VERSION_STAGE.includes(options.stage)) { + logger_1.default.error(`Incorrect version stage: ${options.stage}, it should be one of these values: ${VERSION_STAGE.join(', ')}`); + return process.exit(1); + } + const updateVersion = (raw) => { + const splitted = raw.split('.'); + if (options.type === 'patch') { + splitted[2] = (parseInt(splitted[2], 10) + 1).toString(); + } + if (options.type === 'minor') { + splitted[1] = (parseInt(splitted[1], 10) + 1).toString(); + splitted[2] = '0'; + } + if (options.type === 'major') { + splitted[0] = (parseInt(splitted[0], 10) + 1).toString(); + splitted[1] = '0'; + splitted[2] = '0'; + } + return splitted.join('.'); + }; + const updateStage = (raw) => { + const [name, no] = (raw || '').split('.'); + if (!raw || name !== options.stage) { + return `${options.stage}.0`; + } + return `${name}.${parseInt(no, 10) + 1}`; + }; + const [rawVersion, rawStage] = version.split('-'); + // entering prerelease + if (!rawStage && options.stage) { + return `${updateVersion(rawVersion)}-${updateStage(rawStage)}`; + } + // exiting prerelase + if (rawStage && !options.stage) { + return rawVersion; + } + // release + if (!rawStage && !options.stage) { + return updateVersion(rawVersion); + } + // prerelease + return `${rawVersion}-${updateStage(rawStage)}`; +} +exports.getIncrementedVersion = getIncrementedVersion; diff --git a/lib/scripts/release/getPackageList.js b/lib/scripts/release/getPackageList.js new file mode 100644 index 000000000..a662d582f --- /dev/null +++ b/lib/scripts/release/getPackageList.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPackagesList = void 0; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +function getPackagesList() { + const basePath = path_1.default.join(__dirname, '../../packages'); + const packagesPaths = fs_1.default.readdirSync(basePath); + const packages = []; + for (const packagePath of packagesPaths) { + const packageJsonPath = path_1.default.join(basePath, packagePath, 'package.json'); + if (fs_1.default.realpathSync(packageJsonPath)) { + packages.push({ + path: path_1.default.join(basePath, packagePath), + packageJsonPath, + packageJson: JSON.parse(fs_1.default.readFileSync(packageJsonPath, { encoding: 'utf-8' })), + }); + } + } + return packages; +} +exports.getPackagesList = getPackagesList; diff --git a/lib/scripts/release/publishPackage.js b/lib/scripts/release/publishPackage.js new file mode 100644 index 000000000..98301b466 --- /dev/null +++ b/lib/scripts/release/publishPackage.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.publishPackage = void 0; +const child_process_1 = require("child_process"); +const logger_1 = __importDefault(require("../utils/logger")); +async function publishPackage({ path, name, tag, }) { + try { + (0, child_process_1.execSync)(`yarn --cwd ${path} build`); + (0, child_process_1.execSync)(`npm publish ${path} --tag ${tag}`); + logger_1.default.info(`Package ${name} was published`); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } + catch (error) { + logger_1.default.error(`Failed to publish package ${name}`); + process.stdout.write(`${error?.message}\n`); + process.exit(1); + } +} +exports.publishPackage = publishPackage; diff --git a/lib/scripts/release/setPackageVersion.js b/lib/scripts/release/setPackageVersion.js new file mode 100644 index 000000000..16641dc04 --- /dev/null +++ b/lib/scripts/release/setPackageVersion.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setPackagesVersion = void 0; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +async function writeVersionToPackageJson(filePath, version) { + const current = JSON.parse(fs_1.default.readFileSync(filePath, 'utf8')); + current.version = version; + if (current.peerDependencies) { + Object.keys(current.peerDependencies).forEach(packageName => { + if (packageName.includes('@lad-tech/mobydick-')) { + current.peerDependencies[packageName] = version; + } + }); + } + if (current.dependencies) { + Object.keys(current.dependencies).forEach(packageName => { + if (packageName.includes('@lad-tech/mobydick-')) { + current.dependencies[packageName] = version; + } + }); + } + fs_1.default.writeFileSync(filePath, JSON.stringify(current, null, 2)); +} +async function setPackagesVersion(version) { + const src = path_1.default.join(__dirname, '../../packages'); + const folders = fs_1.default.readdirSync(src); + await Promise.all(folders.map(folder => writeVersionToPackageJson(path_1.default.join(src, folder, '/package.json'), version))); + await writeVersionToPackageJson(path_1.default.join(__dirname, '../../package.json'), version); +} +exports.setPackagesVersion = setPackagesVersion; diff --git a/lib/scripts/semantic-release.js b/lib/scripts/semantic-release.js new file mode 100644 index 000000000..e8949877e --- /dev/null +++ b/lib/scripts/semantic-release.js @@ -0,0 +1,97 @@ +#!/usr/bin/env ts-node +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +const yargs_1 = __importDefault(require("yargs")); +const package_json_1 = __importDefault(require("../package.json")); +const logger_1 = __importDefault(require("./utils/logger")); +const setPackageVersion_1 = require("./release/setPackageVersion"); +const getPackageList_1 = require("./release/getPackageList"); +const publishPackage_1 = require("./release/publishPackage"); +const parser = (0, yargs_1.default)(process.argv.slice(2)) + .option('stage', { + type: 'string', + choices: ['alpha', 'beta'], + description: "Prerelease stage: 'alpha', 'beta'", +}) + .option('tag', { + type: 'string', + default: 'latest', + description: 'Tag', +}) + .option('skipVersionCheck', { + type: 'boolean', + default: false, + description: 'Skip checking version.', +}) + .option('skipPublish', { + type: 'boolean', + default: false, + description: 'Skip publishing step.', +}) + .example([['$0 minor --alpha', 'Prerelease to alpha stage.']]) + .parse(); +(async () => { + const argv = await parser; + logger_1.default.info('Releasing all packages'); + const incrementedVersion = package_json_1.default.version; + if (!argv.skipVersionCheck) { + logger_1.default.info(`New version: ${incrementedVersion}`); + await (0, setPackageVersion_1.setPackagesVersion)(incrementedVersion); + } + const packages = (0, getPackageList_1.getPackagesList)(); + if (!argv.skipPublish) { + logger_1.default.info('Publishing packages to npm'); + if (argv.stage && argv.tag === 'latest') { + argv.tag = 'next'; + } + await Promise.all(packages.map(p => (0, publishPackage_1.publishPackage)({ path: p.path, name: p.packageJson.name, tag: argv.tag }))); + logger_1.default.info('All packages were published successfully'); + } + (0, child_process_1.execSync)('npx react-native-version -A'); + logger_1.default.info(' . \n' + + ' /., \n' + + ' #@. \n' + + ' .&& \n' + + ' %% \n' + + ' ,*,. *&(/* \n' + + ' ,*#*,/* .#/(* (&(, \n' + + ' /#(*///// ,/**//#* , \n' + + ' .,.***,,,.** ,,. . .(*/, \n' + + ' ,(( ,. ..,,,( .,* . ...#&** \n' + + ' %..(&&@/*#,*./,(.*,*,***, /*%./. #&/#** \n' + + ' *(****/(/ ,**../.., .(/.((/**@@&@&, / \n' + + ' *(&( .,.*(/,. *,,.@/,,**%,,//*.*..(#/, \n' + + ' */*/.,,,.,&,./. *.&#* ,(,#*.#*.*..(#/, \n' + + ' *..../*... .%,#%.//*(.,.*.#,,. ,,,*/, \n' + + ' .**#**, @/(#@ (%*(#*/(*&#/&./@@@(,,*./ \n' + + ' .,%..,..,(/ % ,,.,,..,*/&#@ %*,*.&/,/ \n' + + ' **(.....,..(/%#(***,..*/%(/. *( . *%*. \n' + + ' #*..(*#/*(* #****.,,,..*#.,, *((,.&/* \n' + + ' */*/,,,,...*,,#*,, ..,,*//.,,./*,.%%,* \n' + + ' . */../(# /@/,.(#&/#%(*(..,(. ..,,/*., \n' + + ' .*#/*#%&, ./,.(% .&@%, ./(/...//*/,*(/. \n' + + ' ,,(#*/*, /*,&&&%##%&%.. .,/,,*,// \n' + + ' .,./,.(,.../*** ((%#*#,/,* .. .//(*, \n' + + ' ...(. ...**.. . ...* . **#/* \n' + + ' .,,/(**, . ... . .. ,,%(*,.. \n' + + ' ... */&.. . ../*#*... , .(%(. .. \n' + + ' *. .,(* ,*,/#///#*... .. /*/* ..,. \n' + + ' ,......* ,&%//((@**/,*. ...,**(/..,... \n' + + ' ,., . .,/,.,,*/(,*%(.,,***//,/*/(/, . ..* \n' + + ' .*,. .. .. (*/.,.., .,.,*.../,,,/*, . ,. \n' + + ' .(**,. .. ...,.//,,/**(**/..,*.**. .,. ... \n' + + ' ..*, . ..,,/*...*(,.,*.*, .#(,//(,//,.,... \n' + + ' ,,*,,... .,. ,,(.***,, .. ,,....,..#*#*(,,,,,. \n' + + ' .,,*/* ... .,.. . *,(. ..,* ,.. .*,.(,,,...... . \n' + + ' ..,/(....,,.,.( ,.,,, ....,#,...,,.,///.,,,.,.,. \n' + + ' .,**//*.,,,..*.. .,%,*, .,.. , .,/*,,.,,...,,., \n' + + ' .,..,(,. ,,*( ,....**, .,. . ... . ,..,//,/.,,,,.,. \n' + + ' ..,.,**. .,&/.,/, ...*.,*. ..%. (..,*./*,,**,,*/. \n' + + ' ..... .*,..,,* .,..,.,,.*/./*..* /,/,,..*%@##(,,*,,,,,. \n' + + ' ...,,,,..,*/.,,,..,(&/ ,(*.*.#/ .,,..,,//#%#,.,......* \n' + + ' Hello from Bibazavr \n'); +})(); diff --git a/lib/scripts/utils/logger.js b/lib/scripts/utils/logger.js new file mode 100644 index 000000000..19020c71d --- /dev/null +++ b/lib/scripts/utils/logger.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Prefix = void 0; +const winston_1 = require("winston"); +const logger = (0, winston_1.createLogger)({ + level: 'info', + format: winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.splat(), winston_1.format.json()), + transports: [], +}); +// +// If we're not in production then **ALSO** log to the `console` +// with the colorized simple format. +// +/* istanbul ignore next */ +if (process.env.NODE_ENV !== 'production') { + logger.add(new winston_1.transports.Console({ + format: winston_1.format.combine(winston_1.format.colorize(), winston_1.format.simple()), + })); +} +exports.default = logger; +exports.Prefix = 'Checker'; diff --git a/lib/src/app/ui/index.js b/lib/src/app/ui/index.js new file mode 100644 index 000000000..ea7507fda --- /dev/null +++ b/lib/src/app/ui/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_safe_area_context_1 = require("react-native-safe-area-context"); +const react_native_gesture_handler_1 = require("react-native-gesture-handler"); +const ui_1 = require("@shared/ui"); +const ui_2 = __importDefault(require("@pages/MainStack/ui")); +exports.default = () => { + return ( + + + + + + + + ); +}; diff --git a/lib/src/entities/index.js b/lib/src/entities/index.js new file mode 100644 index 000000000..7beb56cb3 --- /dev/null +++ b/lib/src/entities/index.js @@ -0,0 +1,2 @@ +"use strict"; +// важный файл - не удалять diff --git a/lib/src/pages/MainStack/Home/Calendar/ui/index.js b/lib/src/pages/MainStack/Home/Calendar/ui/index.js new file mode 100644 index 000000000..dec1e831f --- /dev/null +++ b/lib/src/pages/MainStack/Home/Calendar/ui/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const CalendarWidget_1 = require("@widgets/Calendar/ui/CalendarWidget"); +const ModalCalendarWidget_1 = require("@widgets/Calendar/ui/ModalCalendarWidget"); +const CalendarScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + ); +}; +exports.default = CalendarScreen; diff --git a/lib/src/pages/MainStack/Home/Chart/BarChart/ui/index.js b/lib/src/pages/MainStack/Home/Chart/BarChart/ui/index.js new file mode 100644 index 000000000..f1d29d6ec --- /dev/null +++ b/lib/src/pages/MainStack/Home/Chart/BarChart/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const chart_1 = require("@shared/lib/test/data/chart"); +const RenderSectionItem_1 = __importDefault(require("@widgets/Chart/ui/RenderSectionItem")); +const RenderHeader_1 = __importDefault(require("@widgets/Chart/ui/RenderHeader")); +const renderSectionItem = ({ period, transition, state }, index) => (); +const renderHeader = headerData => (); +const BarChartScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = BarChartScreen; diff --git a/lib/src/pages/MainStack/Home/Chart/LineChart/ui/index.js b/lib/src/pages/MainStack/Home/Chart/LineChart/ui/index.js new file mode 100644 index 000000000..05b97e601 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Chart/LineChart/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const chart_1 = require("@shared/lib/test/data/chart"); +const RenderSectionItem_1 = __importDefault(require("@widgets/Chart/ui/RenderSectionItem")); +const RenderHeader_1 = __importDefault(require("@widgets/Chart/ui/RenderHeader")); +const renderSectionItem = ({ period, transition, state }, index) => (); +const renderHeader = headerData => (); +const LineChartScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = LineChartScreen; diff --git a/lib/src/pages/MainStack/Home/Chart/ui/index.js b/lib/src/pages/MainStack/Home/Chart/ui/index.js new file mode 100644 index 000000000..3a1b6e7fd --- /dev/null +++ b/lib/src/pages/MainStack/Home/Chart/ui/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const NavigationButton_1 = __importDefault(require("@shared/ui/NavigationButton")); +const screens_1 = require("@shared/lib/constants/screens"); +const navigationRef_1 = require("@shared/lib/navigationRef"); +const ChartScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + ); +}; +exports.default = ChartScreen; diff --git a/lib/src/pages/MainStack/Home/Core/CTA/ui/index.js b/lib/src/pages/MainStack/Home/Core/CTA/ui/index.js new file mode 100644 index 000000000..5a53e2fc4 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/CTA/ui/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const ButtonWidget_1 = require("@widgets/Core/CTA/ui/ButtonWidget"); +const CTAScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = CTAScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Chat/ui/index.js b/lib/src/pages/MainStack/Home/Core/Chat/ui/index.js new file mode 100644 index 000000000..8a94f8954 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Chat/ui/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const ChatWidget_1 = require("@widgets/Core/Chat/ui/ChatWidget"); +const ChatScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = ChatScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Controls/ui/index.js b/lib/src/pages/MainStack/Home/Core/Controls/ui/index.js new file mode 100644 index 000000000..bb885c05f --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Controls/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const SliderWidget_1 = require("@widgets/Core/Controls/ui/SliderWidget"); +const ControlListWidget_1 = require("@widgets/Core/Controls/ui/ControlListWidget"); +const SwipeWidget_1 = require("@widgets/Core/Controls/ui/SwipeWidget"); +const ControlsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + ); +}; +exports.default = ControlsScreen; diff --git a/lib/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.js b/lib/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.js new file mode 100644 index 000000000..f8da1db91 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EL_HEIGHT = exports.EL_WIDTH = exports.COL = exports.MARGIN = void 0; +const react_native_1 = require("react-native"); +const ui_1 = require("@shared/ui"); +const BlockView_1 = require("@shared/ui/BlockView"); +const { width: WIDTH } = react_native_1.Dimensions.get('window'); +const arr = new Array(26).fill('').map((_, i) => i); +exports.MARGIN = px(8); +exports.COL = 2; +exports.EL_WIDTH = WIDTH / exports.COL - exports.MARGIN; +exports.EL_HEIGHT = exports.EL_WIDTH / 2; +const DragAndDropScreen = () => { + const { colors } = (0, ui_1.useTheme)(); + const bgColors = [ + colors.ElementMuted, + colors.ElementAdditional, + colors.ElementAttention, + colors.ElementBase, + colors.ElementNeutral, + colors.ElementSuccess, + colors.ElementWhite, + ]; + return ( ()}/>); +}; +exports.default = DragAndDropScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Inputs/ui/index.js b/lib/src/pages/MainStack/Home/Core/Inputs/ui/index.js new file mode 100644 index 000000000..0c00fa1c2 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Inputs/ui/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const InputsWidget_1 = __importDefault(require("@widgets/Core/Inputs/ui/InputsWidget")); +const InputsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = InputsScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Navbars/ui/index.js b/lib/src/pages/MainStack/Home/Core/Navbars/ui/index.js new file mode 100644 index 000000000..7d395978a --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Navbars/ui/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const TabsWidget_1 = require("@widgets/Core/Navbars/ui/TabsWidget"); +const PanelHeaderWidget_1 = require("@widgets/Core/Navbars/ui/PanelHeaderWidget"); +const NavbarsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + ); +}; +exports.default = NavbarsScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Other/ui/index.js b/lib/src/pages/MainStack/Home/Core/Other/ui/index.js new file mode 100644 index 000000000..d2b927402 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Other/ui/index.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const DotsWidget_1 = require("@widgets/Core/Other/ui/DotsWidget"); +const AvatarWidget_1 = require("@widgets/Core/Other/ui/AvatarWidget"); +const BadgeWidget_1 = require("@widgets/Core/Other/ui/BadgeWidget"); +const StatusWidget_1 = require("@widgets/Core/Other/ui/StatusWidget"); +const CollapsibleWidget_1 = require("@widgets/Core/Other/ui/CollapsibleWidget"); +const CrossedTextWidget_1 = require("@widgets/Core/Other/ui/CrossedTextWidget"); +const CarouselWidget_1 = require("@widgets/Core/Other/ui/CarouselWidget"); +const OtherScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + + + + + ); +}; +exports.default = OtherScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Popup/ui/index.js b/lib/src/pages/MainStack/Home/Core/Popup/ui/index.js new file mode 100644 index 000000000..054235e16 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Popup/ui/index.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const ActionSheetWidget_1 = require("@widgets/Core/Popup/ui/ActionSheetWidget"); +const ModalsWidget_1 = require("@widgets/Core/Popup/ui/ModalsWidget"); +const SnackbarWidget_1 = require("@widgets/Core/Popup/ui/SnackbarWidget"); +const TooltipWidget_1 = require("@widgets/Core/Popup/ui/TooltipWidget"); +const ModalWidget_1 = require("@widgets/Core/Popup/ui/ModalWidget"); +const PopupBaseWidget_1 = require("@widgets/Core/Popup/ui/PopupBaseWidget"); +const PopupScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + + + + ); +}; +exports.default = PopupScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Progress/ui/index.js b/lib/src/pages/MainStack/Home/Core/Progress/ui/index.js new file mode 100644 index 000000000..8bf9cdd6c --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Progress/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const IndicatorWidget_1 = require("@widgets/Core/Progress/ui/IndicatorWidget"); +const SpinnerWidget_1 = require("@widgets/Core/Progress/ui/SpinnerWidget"); +const PanelSpinnerWidget_1 = require("@widgets/Core/Progress/ui/PanelSpinnerWidget"); +const ProgressScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + ); +}; +exports.default = ProgressScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Styles/ui/index.js b/lib/src/pages/MainStack/Home/Core/Styles/ui/index.js new file mode 100644 index 000000000..34d738ced --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Styles/ui/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const ShadowWidget_1 = require("@widgets/Core/Styles/ui/ShadowWidget"); +const SimpleIconWidget_1 = require("@widgets/Core/Styles/ui/SimpleIconWidget"); +const renderItem = () => ; +const StylesScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + }/>); +}; +exports.default = StylesScreen; diff --git a/lib/src/pages/MainStack/Home/Core/Typography/ui/index.js b/lib/src/pages/MainStack/Home/Core/Typography/ui/index.js new file mode 100644 index 000000000..6739655c0 --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/Typography/ui/index.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const getAllTypography = () => { + const weights = Object.keys(ui_1.TFontWeight); + const sizes = Object.keys(ui_1.TFontSize); + const colors = Object.keys(ui_1.defaultTextLightColor).map(name => name.slice(4, name.length)); + const result = []; + weights.forEach(weight => { + colors.forEach(color => { + sizes.forEach(size => { + result.push(`${weight}-${color}-${size}`); + }); + }); + }); + return result; +}; +const renderItem = ({ item }) => ({item}); +const keyExtractor = item => item; +const TypographyScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + const data = getAllTypography(); + return ( + + ); +}; +exports.default = TypographyScreen; diff --git a/lib/src/pages/MainStack/Home/Core/ui/index.js b/lib/src/pages/MainStack/Home/Core/ui/index.js new file mode 100644 index 000000000..50435c4ae --- /dev/null +++ b/lib/src/pages/MainStack/Home/Core/ui/index.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const NavigationButton_1 = __importDefault(require("@shared/ui/NavigationButton")); +const screens_1 = require("@shared/lib/constants/screens"); +const navigationRef_1 = require("@shared/lib/navigationRef"); +const CoreScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + + + + + + + + ); +}; +exports.default = CoreScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithBottomAndTabsScreen.js b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithBottomAndTabsScreen.js new file mode 100644 index 000000000..a70be7a7e --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithBottomAndTabsScreen.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollViewWithBottomAndTabsScreen = void 0; +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const Inputs_1 = require("@widgets/KeyboardAware/Inputs"); +const Bottom_1 = require("@widgets/KeyboardAware/Bottom"); +const KeyboardAwareScrollViewWithBottomAndTabsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return (}> + + ); +}; +exports.KeyboardAwareScrollViewWithBottomAndTabsScreen = KeyboardAwareScrollViewWithBottomAndTabsScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithTabsScreen.js b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithTabsScreen.js new file mode 100644 index 000000000..d483f4a51 --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/KeyboardAwareScrollViewWithTabsScreen.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollViewWithTabsScreen = void 0; +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const Inputs_1 = require("@widgets/KeyboardAware/Inputs"); +const KeyboardAwareScrollViewWithTabsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.KeyboardAwareScrollViewWithTabsScreen = KeyboardAwareScrollViewWithTabsScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/index.js b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/index.js new file mode 100644 index 000000000..374dcaf82 --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui/index.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollViewTabsScreen = void 0; +const bottom_tabs_1 = require("@react-navigation/bottom-tabs"); +const KeyboardAwareScrollViewWithTabsScreen_1 = require("./KeyboardAwareScrollViewWithTabsScreen"); +const KeyboardAwareScrollViewWithBottomAndTabsScreen_1 = require("./KeyboardAwareScrollViewWithBottomAndTabsScreen"); +const screens_1 = require("@shared/lib/constants/screens"); +const Tab = (0, bottom_tabs_1.createBottomTabNavigator)(); +const KeyboardAwareScrollViewTabsScreen = () => { + return ( + + + ); +}; +exports.KeyboardAwareScrollViewTabsScreen = KeyboardAwareScrollViewTabsScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewScreen.js b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewScreen.js new file mode 100644 index 000000000..9d8c3687f --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewScreen.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollViewScreen = void 0; +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const Inputs_1 = require("@widgets/KeyboardAware/Inputs"); +const KeyboardAwareScrollViewScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.KeyboardAwareScrollViewScreen = KeyboardAwareScrollViewScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewWithBottomScreen.js b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewWithBottomScreen.js new file mode 100644 index 000000000..820e77198 --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewWithBottomScreen.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KeyboardAwareScrollViewWithBottomScreen = void 0; +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const Inputs_1 = require("@widgets/KeyboardAware/Inputs"); +const Bottom_1 = require("@widgets/KeyboardAware/Bottom"); +const KeyboardAwareScrollViewWithBottomScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return (}> + + ); +}; +exports.KeyboardAwareScrollViewWithBottomScreen = KeyboardAwareScrollViewWithBottomScreen; diff --git a/lib/src/pages/MainStack/Home/KeyboardAware/ui/index.js b/lib/src/pages/MainStack/Home/KeyboardAware/ui/index.js new file mode 100644 index 000000000..9039e0600 --- /dev/null +++ b/lib/src/pages/MainStack/Home/KeyboardAware/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const NavigationButton_1 = __importDefault(require("@shared/ui/NavigationButton")); +const screens_1 = require("@shared/lib/constants/screens"); +const navigationRef_1 = require("@shared/lib/navigationRef"); +const KeyboardAwareScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + ); +}; +exports.default = KeyboardAwareScreen; diff --git a/lib/src/pages/MainStack/Home/Markdown/ui/index.js b/lib/src/pages/MainStack/Home/Markdown/ui/index.js new file mode 100644 index 000000000..b28f14f6e --- /dev/null +++ b/lib/src/pages/MainStack/Home/Markdown/ui/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const MarkdownWidget_1 = require("@widgets/Markdown/ui/MarkdownWidget"); +const MarkdownScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + ); +}; +exports.default = MarkdownScreen; diff --git a/lib/src/pages/MainStack/Home/Utils/ui/index.js b/lib/src/pages/MainStack/Home/Utils/ui/index.js new file mode 100644 index 000000000..a902e984f --- /dev/null +++ b/lib/src/pages/MainStack/Home/Utils/ui/index.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const UtilsScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ; +}; +exports.default = UtilsScreen; diff --git a/lib/src/pages/MainStack/Home/ui/index.js b/lib/src/pages/MainStack/Home/ui/index.js new file mode 100644 index 000000000..bb729a4d4 --- /dev/null +++ b/lib/src/pages/MainStack/Home/ui/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const navigationRef_1 = require("@shared/lib/navigationRef"); +const screens_1 = require("@shared/lib/constants/screens"); +const NavigationButton_1 = __importDefault(require("@shared/ui/NavigationButton")); +const HomeScreen = () => { + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + + + + + + + + ); +}; +exports.default = HomeScreen; diff --git a/lib/src/pages/MainStack/Settings/ui/index.js b/lib/src/pages/MainStack/Settings/ui/index.js new file mode 100644 index 000000000..1d4cc2777 --- /dev/null +++ b/lib/src/pages/MainStack/Settings/ui/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles_1 = __importDefault(require("@shared/styles/getScreenStyles")); +const SettingsScreen = () => { + const { currentTheme, setCurrentTheme } = (0, ui_1.useTheme)(); + const [styles] = (0, ui_1.useStyles)(getScreenStyles_1.default); + return ( + { + setCurrentTheme(currentTheme === ui_1.CurrentTheme.light + ? ui_1.CurrentTheme.dark + : ui_1.CurrentTheme.light); + }}/> + ); +}; +exports.default = SettingsScreen; diff --git a/lib/src/pages/MainStack/ui/index.js b/lib/src/pages/MainStack/ui/index.js new file mode 100644 index 000000000..26bc99ade --- /dev/null +++ b/lib/src/pages/MainStack/ui/index.js @@ -0,0 +1,86 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const native_stack_1 = require("@react-navigation/native-stack"); +const native_1 = require("@react-navigation/native"); +const screens_1 = require("@shared/lib/constants/screens"); +const ui_1 = require("@shared/ui"); +const navigationRef_1 = require("@shared/lib/navigationRef"); +const useNavigationTheme_1 = require("@shared/lib/hooks/useNavigationTheme"); +const ui_2 = __importDefault(require("@pages/MainStack/Settings/ui")); +const ui_3 = __importDefault(require("@pages/MainStack/Home/ui")); +const ui_4 = __importDefault(require("@pages/MainStack/Home/Calendar/ui")); +const ui_5 = __importDefault(require("@pages/MainStack/Home/Core/ui")); +const ui_6 = __importDefault(require("@pages/MainStack/Home/Utils/ui")); +const ui_7 = __importDefault(require("@pages/MainStack/Home/Core/Typography/ui")); +const ui_8 = __importDefault(require("@pages/MainStack/Home/Core/Inputs/ui")); +const ui_9 = __importDefault(require("@pages/MainStack/Home/Chart/ui")); +const ui_10 = __importDefault(require("@pages/MainStack/Home/Chart/LineChart/ui")); +const ui_11 = __importDefault(require("@pages/MainStack/Home/Chart/BarChart/ui")); +const ui_12 = __importDefault(require("@pages/MainStack/Home/Core/Progress/ui")); +const ui_13 = __importDefault(require("@pages/MainStack/Home/Core/Popup/ui")); +const ui_14 = __importDefault(require("@pages/MainStack/Home/Core/Chat/ui")); +const ui_15 = __importDefault(require("@pages/MainStack/Home/Core/Controls/ui")); +const ui_16 = __importDefault(require("@pages/MainStack/Home/Core/Styles/ui")); +const ui_17 = __importDefault(require("@pages/MainStack/Home/Core/CTA/ui")); +const ui_18 = __importDefault(require("@pages/MainStack/Home/KeyboardAware/ui")); +const KeyboardAwareScrollViewScreen_1 = require("@pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewScreen"); +const KeyboardAwareScrollViewWithBottomScreen_1 = require("@pages/MainStack/Home/KeyboardAware/ScrollView/ui/KeyboardAwareScrollViewWithBottomScreen"); +const ui_19 = require("@pages/MainStack/Home/KeyboardAware/ScrollView/Tabs/ui"); +const ui_20 = __importDefault(require("@pages/MainStack/Home/Core/Other/ui")); +const ui_21 = __importDefault(require("@pages/MainStack/Home/Core/Navbars/ui")); +const ui_22 = __importDefault(require("@pages/MainStack/Home/Core/DragAndDrop/ui")); +const ui_23 = __importDefault(require("@pages/MainStack/Home/Markdown/ui")); +const Stack = (0, native_stack_1.createNativeStackNavigator)(); +const MainStack = () => { + const theme = (0, useNavigationTheme_1.useNavigationTheme)(); + return ( + { + return { + headerRight: () => { + return (}/>); + }, + }; + }}> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; +exports.default = MainStack; diff --git a/lib/src/shared/lib/constants/rootStackParamList.js b/lib/src/shared/lib/constants/rootStackParamList.js new file mode 100644 index 000000000..e93b7ec74 --- /dev/null +++ b/lib/src/shared/lib/constants/rootStackParamList.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const screens_1 = require("@shared/lib/constants/screens"); diff --git a/lib/src/shared/lib/constants/screens.js b/lib/src/shared/lib/constants/screens.js new file mode 100644 index 000000000..471db29d6 --- /dev/null +++ b/lib/src/shared/lib/constants/screens.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SCREENS = void 0; +var SCREENS; +(function (SCREENS) { + SCREENS["Home"] = "Home"; + SCREENS["Settings"] = "Settings"; + SCREENS["Core"] = "Core"; + SCREENS["Calendar"] = "Calendar"; + SCREENS["Utils"] = "Utils"; + SCREENS["Chart"] = "Chart"; + SCREENS["Chat"] = "Chat"; + SCREENS["Controls"] = "Controls"; + SCREENS["CTA"] = "CTA"; + SCREENS["Inputs"] = "Inputs"; + SCREENS["Popups"] = "Popups"; + SCREENS["Progress"] = "Progress"; + SCREENS["Styles"] = "Styles"; + SCREENS["Typography"] = "Typography"; + SCREENS["Other"] = "Other"; + SCREENS["Navbars"] = "Navbars"; + SCREENS["LineChart"] = "LineChart"; + SCREENS["BarChart"] = "BarChart"; + SCREENS["KeyboardAware"] = "KeyboardAware"; + SCREENS["KeyboardAwareScrollView"] = "KeyboardAwareScrollView"; + SCREENS["KeyboardAwareScrollViewWithBottom"] = "KeyboardAwareScrollViewWithBottom"; + SCREENS["KeyboardAwareScrollViewTabs"] = "KeyboardAwareScrollViewTabsScreen"; + SCREENS["KeyboardAwareScrollViewWithTabs"] = "KeyboardAwareScrollViewWithTabs"; + SCREENS["KeyboardAwareScrollViewWithBottomAndTabs"] = "KeyboardAwareScrollViewWithBottomAndTabs"; + SCREENS["DragAndDrop"] = "DragAndDrop"; + SCREENS["Markdown"] = "Markdown"; +})(SCREENS || (exports.SCREENS = SCREENS = {})); diff --git a/lib/src/shared/lib/hooks/__tests__/useNavigationTheme.test.js b/lib/src/shared/lib/hooks/__tests__/useNavigationTheme.test.js new file mode 100644 index 000000000..c05bfaf59 --- /dev/null +++ b/lib/src/shared/lib/hooks/__tests__/useNavigationTheme.test.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_1 = require("@testing-library/react-native"); +const useNavigationTheme_1 = require("../useNavigationTheme"); +describe('useNavigationTheme', () => { + test('default', () => { + const { result } = (0, react_native_1.renderHook)(() => (0, useNavigationTheme_1.useNavigationTheme)()); + expect(result).toStrictEqual({ + current: { + colors: { + background: '#FFF', + border: 'rgba(32, 36, 45, 0.3)', + card: '#FFF', + notification: '#5E6678', + primary: '#20242D', + text: '#20242D', + }, + dark: false, + }, + }); + }); +}); diff --git a/lib/src/shared/lib/hooks/useNavigationTheme.js b/lib/src/shared/lib/hooks/useNavigationTheme.js new file mode 100644 index 000000000..ad95620d6 --- /dev/null +++ b/lib/src/shared/lib/hooks/useNavigationTheme.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useNavigationTheme = void 0; +const ui_1 = require("@shared/ui"); +const useNavigationTheme = () => { + const { currentTheme, colors } = (0, ui_1.useTheme)(); + const theme = { + dark: currentTheme === ui_1.CurrentTheme.dark, + colors: { + primary: colors.BgContrast, + border: colors.BorderNormal, + text: colors.TextPrimary, + card: colors.BgPrimary, + background: colors.BgPrimary, + notification: colors.IconNeutral, + }, + }; + return theme; +}; +exports.useNavigationTheme = useNavigationTheme; diff --git a/lib/src/shared/lib/index.js b/lib/src/shared/lib/index.js new file mode 100644 index 000000000..4aef30ceb --- /dev/null +++ b/lib/src/shared/lib/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("@lad-tech/mobydick-utils"), exports); diff --git a/lib/src/shared/lib/navigationRef.js b/lib/src/shared/lib/navigationRef.js new file mode 100644 index 000000000..dffc21257 --- /dev/null +++ b/lib/src/shared/lib/navigationRef.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.goBack = exports.replace = exports.popToTop = exports.pop = exports.push = exports.navigate = exports.move = exports.navigationRef = void 0; +const native_1 = require("@react-navigation/native"); +exports.navigationRef = (0, native_1.createNavigationContainerRef)(); +const move = (...args) => () => { + push(...args); +}; +exports.move = move; +function navigate(...args) { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + exports.navigationRef.current.navigate(...args); + } +} +exports.navigate = navigate; +function push(...args) { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + // It's okay to pass args like that for better func usage + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + exports.navigationRef.current.dispatch(native_1.StackActions.push(...args)); + } +} +exports.push = push; +function pop(count) { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + exports.navigationRef.current.dispatch(native_1.StackActions.pop(count)); + } +} +exports.pop = pop; +function popToTop() { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + exports.navigationRef.current.dispatch(native_1.StackActions.popToTop()); + } +} +exports.popToTop = popToTop; +function replace(...args) { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + // It's okay to pass args like that for better func usage + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + exports.navigationRef.current.dispatch(native_1.StackActions.replace(...args)); + } +} +exports.replace = replace; +function goBack() { + if (exports.navigationRef.isReady() && exports.navigationRef.current) { + exports.navigationRef.current.goBack(); + } +} +exports.goBack = goBack; diff --git a/lib/src/shared/lib/test/data/avatar.js b/lib/src/shared/lib/test/data/avatar.js new file mode 100644 index 000000000..adc920bd0 --- /dev/null +++ b/lib/src/shared/lib/test/data/avatar.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultUserTest = exports.smallGroupDateTest = exports.defaultGroupDateTest = exports.userWithLogoTest = exports.userTest = void 0; +exports.userTest = { + firstName: 'Anonim', + lastName: 'Anonim', +}; +exports.userWithLogoTest = { + firstName: 'Anonim', + logo: require('@shared/ui/images/Avatar.png'), +}; +exports.defaultGroupDateTest = [ + { + firstName: 'Иван', + lastName: 'Пушкин', + }, + { + firstName: 'Иван', + lastName: 'Пушкин', + }, +]; +exports.smallGroupDateTest = [ + { + logo: require('@shared/ui/images/Avatar.png'), + firstName: 'Иван', + lastName: 'Пушкин', + }, + ...exports.defaultGroupDateTest, +]; +exports.defaultUserTest = [ + exports.userTest, +]; diff --git a/lib/src/shared/lib/test/data/chart.js b/lib/src/shared/lib/test/data/chart.js new file mode 100644 index 000000000..894717a80 --- /dev/null +++ b/lib/src/shared/lib/test/data/chart.js @@ -0,0 +1,121 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mockChartDataset = exports.mockChart = void 0; +const random = Math.random() * 10; +const mockChart = (n) => new Array(n).fill(0).map((_value, index) => { + return { + x: random * index, + y: 10 + Math.random() * index, + }; +}); +exports.mockChart = mockChart; +exports.mockChartDataset = { + 'period 1': [ + { + coordinates: (0, exports.mockChart)(20), + name: '1 line', + colors: [ + '#ff0000', + '#f4e91d', + ] + }, + { + coordinates: (0, exports.mockChart)(10), + name: '2 line', + }, + { + coordinates: (0, exports.mockChart)(5), + name: '3 line', + colors: [ + '#33135b', + '#9BE1DA', + '#c5cd56', + '#3b3f8e', + ] + }, + ], + 'pasdasdasderiod 1': [ + { + coordinates: (0, exports.mockChart)(20), + name: '1 line', + colors: [ + '#0022ff', + '#cd1df4', + ] + }, + { + coordinates: (0, exports.mockChart)(10), + name: '2 line', + }, + { + coordinates: (0, exports.mockChart)(5), + name: '3 line', + colors: [ + '#5b3113', + '#9BE1DA', + '#c5cd56', + '#668e3b', + ] + }, + ], + 'asdasdasdasdasd 1': [ + { + coordinates: (0, exports.mockChart)(20), + name: '1 line', + colors: [ + '#1c9680', + '#479459', + ] + }, + { + coordinates: (0, exports.mockChart)(10), + name: '2 line', + }, + { + coordinates: (0, exports.mockChart)(5), + name: '3 line', + colors: [ + '#33135b', + '#9BE1DA', + '#c5cd56', + '#3b3f8e', + ] + }, + ], + period: [ + { + coordinates: (0, exports.mockChart)(20), + name: '1 line', + colors: [ + '#ba80ff', + '#9BE1DA', + '#56CDCB', + '#3B8B8E', + ] + }, + { + coordinates: (0, exports.mockChart)(10), + name: '2 line', + colors: [ + '#E0F5E9', + '#e1db9b', + '#abcd56', + '#768e3b', + '#1cef38', + '#1df488', + '#1de7f9', + '#5787ff', + ], + }, + { + coordinates: (0, exports.mockChart)(5), + name: '3 line', + colors: [ + '#ee80ff', + '#e19b9b', + '#5ecd56', + '#833b8e', + ] + }, + ], +}; diff --git a/lib/src/shared/styles/getScreenStyles.js b/lib/src/shared/styles/getScreenStyles.js new file mode 100644 index 000000000..23f6499b2 --- /dev/null +++ b/lib/src/shared/styles/getScreenStyles.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const getScreenStyles = (0, ui_1.createStyles)(({ colors, spaces }) => ({ + container: { + flex: 1, + backgroundColor: colors.BgPrimary, + padding: spaces.Space8, + gap: spaces.Space16, + }, +})); +exports.default = getScreenStyles; diff --git a/lib/src/shared/ui/BlockView.js b/lib/src/shared/ui/BlockView.js new file mode 100644 index 000000000..49047d7ef --- /dev/null +++ b/lib/src/shared/ui/BlockView.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockView = void 0; +const ui_1 = require("@shared/ui"); +const BlockView = ({ item, width, height, backgroundColor, }) => { + const [styles, { colors }] = (0, ui_1.useStyles)(stylesFn); + return ( + {item} + ); +}; +exports.BlockView = BlockView; +const stylesFn = (0, ui_1.createStyles)(() => ({ + container: { + alignItems: 'center', + justifyContent: 'center', + }, +})); diff --git a/lib/src/shared/ui/Header.js b/lib/src/shared/ui/Header.js new file mode 100644 index 000000000..80a103f46 --- /dev/null +++ b/lib/src/shared/ui/Header.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const Header = ({ title }) => { + return {title}; +}; +exports.default = Header; diff --git a/lib/src/shared/ui/NavigationButton.js b/lib/src/shared/ui/NavigationButton.js new file mode 100644 index 000000000..f07f0722f --- /dev/null +++ b/lib/src/shared/ui/NavigationButton.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ui_1 = require("@shared/ui"); +const NavigationButton = ({ onPress, text }) => { + const [styles] = (0, ui_1.useStyles)(createStylesFn); + return ( + {text} + ); +}; +const createStylesFn = (0, ui_1.createStyles)(({ spaces, colors }) => ({ + container: { + borderColor: colors.BorderNormal, + borderWidth: spaces.Space1, + borderRadius: spaces.Space8, + padding: spaces.Space8, + backgroundColor: colors.BgPrimary, + }, +})); +exports.default = NavigationButton; diff --git a/lib/src/shared/ui/index.js b/lib/src/shared/ui/index.js new file mode 100644 index 000000000..963649fd7 --- /dev/null +++ b/lib/src/shared/ui/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("@lad-tech/mobydick-core"), exports); +__exportStar(require("@lad-tech/mobydick-chart"), exports); +__exportStar(require("@lad-tech/keyboard-aware"), exports); +__exportStar(require("@lad-tech/mobydick-calendar"), exports); +__exportStar(require("@lad-tech/mobydick-drag-and-drop"), exports); +__exportStar(require("@lad-tech/mobydick-markdown"), exports); diff --git a/lib/src/widgets/Calendar/ui/CalendarWidget.js b/lib/src/widgets/Calendar/ui/CalendarWidget.js new file mode 100644 index 000000000..61f45b38d --- /dev/null +++ b/lib/src/widgets/Calendar/ui/CalendarWidget.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CalendarWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const CalendarWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + + ); +}; +exports.CalendarWidget = CalendarWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Calendar/ui/ModalCalendarWidget.js b/lib/src/widgets/Calendar/ui/ModalCalendarWidget.js new file mode 100644 index 000000000..197e69f68 --- /dev/null +++ b/lib/src/widgets/Calendar/ui/ModalCalendarWidget.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalCalendarWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ModalCalendarWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + + openPopup({ + Content: props => , + })}/> + ); +}; +exports.ModalCalendarWidget = ModalCalendarWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Chart/ui/RenderHeader.js b/lib/src/widgets/Chart/ui/RenderHeader.js new file mode 100644 index 000000000..b79e4420b --- /dev/null +++ b/lib/src/widgets/Chart/ui/RenderHeader.js @@ -0,0 +1,53 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AnimatedText = void 0; +const react_native_reanimated_1 = __importStar(require("react-native-reanimated")); +const react_native_1 = require("react-native"); +const ui_1 = require("@shared/ui"); +exports.AnimatedText = react_native_reanimated_1.default.createAnimatedComponent(react_native_1.TextInput); +react_native_reanimated_1.default.addWhitelistedNativeProps({ text: true }); +const RenderHeader = ({ header }) => { + const { fontStyle } = (0, ui_1.useFont)('Regular-Primary-XS'); + const animatedPropsPeriod = (0, react_native_reanimated_1.useAnimatedProps)(() => { + return { + text: header.selectedPeriodName.value, + defaultValue: header.selectedPeriodName.value, + }; + }); + const animatedPropsRecord = (0, react_native_reanimated_1.useAnimatedProps)(() => { + const lastRecord = header.selectedValues.value[0]?.y.toString() ?? ''; + return { + text: lastRecord, + defaultValue: lastRecord, + }; + }); + return ( + + Last record + + ); +}; +exports.default = RenderHeader; diff --git a/lib/src/widgets/Chart/ui/RenderSectionItem.js b/lib/src/widgets/Chart/ui/RenderSectionItem.js new file mode 100644 index 000000000..0fb98a410 --- /dev/null +++ b/lib/src/widgets/Chart/ui/RenderSectionItem.js @@ -0,0 +1,58 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_native_reanimated_1 = __importStar(require("react-native-reanimated")); +const ui_1 = require("@shared/ui"); +const RenderSectionItem = ({ period, state, transition, index }) => { + const [styles, { colors }] = (0, ui_1.useStyles)(createStyleFn); + const animationStyles = (0, react_native_reanimated_1.useAnimatedStyle)(() => { + const { current, next } = state.value; + if (index !== current && index !== next) { + return { backgroundColor: colors.BgAccent }; + } + if (index === current && index === next) { + return { backgroundColor: colors.BgAccentHard }; + } + return { + backgroundColor: (0, react_native_reanimated_1.interpolateColor)(transition.value, index === next ? [0, 1] : [1, 0], [colors.BgAccent, colors.BgAccentHard]), + }; + }); + return ( + {period} + ); +}; +const createStyleFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + flexGrow: 1, + padding: spaces.Space8, + borderRadius: spaces.Space16, + margin: spaces.Space4, + }, + text: { + textAlign: 'center', + textAlignVertical: 'center', + }, +})); +exports.default = RenderSectionItem; diff --git a/lib/src/widgets/Core/CTA/ui/ButtonWidget.js b/lib/src/widgets/Core/CTA/ui/ButtonWidget.js new file mode 100644 index 000000000..f6932dcf9 --- /dev/null +++ b/lib/src/widgets/Core/CTA/ui/ButtonWidget.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ButtonWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ButtonWidget = () => { + const [styles] = (0, ui_1.useStyles)(style); + const [counter, setCounter] = (0, react_1.useState)(99); + const onChangeCounter = (value) => () => { + setCounter(val => val + value); + }; + return ( + + + + + + + + + + + + + + + + + + + + }/> + }/> + } rightIcon={}/> + + + + + + + + + + + + + + + ); +}; +exports.ButtonWidget = ButtonWidget; +const style = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space4, + }, + content: { + alignItems: 'center', + gap: spaces.Space4, + }, +})); diff --git a/lib/src/widgets/Core/Chat/ui/ChatWidget.js b/lib/src/widgets/Core/Chat/ui/ChatWidget.js new file mode 100644 index 000000000..e963a6ed6 --- /dev/null +++ b/lib/src/widgets/Core/Chat/ui/ChatWidget.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChatWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const ChatWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const [input, setInput] = (0, react_1.useState)(''); + const [myMessages, setMyMessages] = (0, react_1.useState)([ + { time: '12-12-1998', isMe: true, message: 'message' }, + ]); + const onSend = () => { + setMyMessages([ + ...myMessages, + { + time: new Date().toString(), + isMe: true, + message: input, + }, + ]); + setInput(''); + }; + return ( + + + + } renderItem={renderItem} keyExtractor={keyExtractor}/> + + + + + + ); +}; +exports.ChatWidget = ChatWidget; +const renderItem = ({ item }) => { + return ; +}; +const keyExtractor = (_item, index) => index.toString(); +const styleFn = (0, ui_1.createStyles)(({ colors }) => ({ + container: { flex: 1, backgroundColor: colors.BgSecondary }, +})); diff --git a/lib/src/widgets/Core/Controls/ui/ControlListWidget.js b/lib/src/widgets/Core/Controls/ui/ControlListWidget.js new file mode 100644 index 000000000..74e00f744 --- /dev/null +++ b/lib/src/widgets/Core/Controls/ui/ControlListWidget.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlListWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const ControlListWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const [checkbox, setCheckbox] = (0, react_1.useState)([]); + const [radio, setRadio] = (0, react_1.useState)([]); + return ( + ControlsList + + checkbox + + + option one + + + option two + + + + + + radio + + + option one + + + option two + + + + ); +}; +exports.ControlListWidget = ControlListWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { gap: spaces.Space8 }, +})); diff --git a/lib/src/widgets/Core/Controls/ui/SliderWidget.js b/lib/src/widgets/Core/Controls/ui/SliderWidget.js new file mode 100644 index 000000000..9c55fa66e --- /dev/null +++ b/lib/src/widgets/Core/Controls/ui/SliderWidget.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SliderWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const SliderWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const [range, setRange] = (0, react_1.useState)({ low: 0, high: 100 }); + const [low, setLow] = (0, react_1.useState)(0); + return ( + Slider + + default + { + setRange({ low, high }); + }}/> + {`Low: ${range.low} High: ${range.high} Step: ${5}`} + + + disableRange + { + setLow(low); + }}/> + {`Low: ${low} Step: ${1}`} + + ); +}; +exports.SliderWidget = SliderWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { gap: spaces.Space8 }, +})); diff --git a/lib/src/widgets/Core/Controls/ui/SwipeWidget.js b/lib/src/widgets/Core/Controls/ui/SwipeWidget.js new file mode 100644 index 000000000..15a50f3f0 --- /dev/null +++ b/lib/src/widgets/Core/Controls/ui/SwipeWidget.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SwipeWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const SwipeWidget = () => { + const [active, setActive] = (0, react_1.useState)(false); + return ( + Swipe + + ); +}; +exports.SwipeWidget = SwipeWidget; diff --git a/lib/src/widgets/Core/Inputs/ui/DropDownExample.js b/lib/src/widgets/Core/Inputs/ui/DropDownExample.js new file mode 100644 index 000000000..12bb89b51 --- /dev/null +++ b/lib/src/widgets/Core/Inputs/ui/DropDownExample.js @@ -0,0 +1,69 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ui_1 = require("@shared/ui"); +const DropDownExample = () => { + const [language, setLanguage] = (0, react_1.useState)(); + const [styles] = (0, ui_1.useStyles)(createStylesFn); + const [programmingLanguages, setProgrammingLanguages] = (0, react_1.useState)([]); + const languageList = [ + { + value: 1, + label: 'Russian', + }, + { + value: 2, + label: 'English', + }, + { + value: 3, + label: 'German', + }, + ]; + const programmingLanguageList = [ + { + value: 1, + label: 'JavaScript', + }, + { + value: 2, + label: 'Kotlin', + }, + { + value: 3, + label: 'Swift', + }, + { + value: 4, + label: 'Rust', + }, + { + value: 5, + label: 'C++', + }, + { + value: 6, + label: 'COBOL', + }, + ]; + return (<> + + + + + + ); +}; +const createStylesFn = (0, ui_1.createStyles)(_ => ({ + buttonStyle: { + width: '100%', + }, + flatListStyle: { + width: '95%', + }, +})); +exports.default = DropDownExample; diff --git a/lib/src/widgets/Core/Inputs/ui/ExampleSearch.js b/lib/src/widgets/Core/Inputs/ui/ExampleSearch.js new file mode 100644 index 000000000..822bb02f5 --- /dev/null +++ b/lib/src/widgets/Core/Inputs/ui/ExampleSearch.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const lib_1 = require("@shared/lib"); +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ExampleSearch = () => { + const [styles] = (0, ui_1.useStyles)(styleSource); + const [value, setValue] = (0, react_1.useState)(''); + const debouncedFn = (0, lib_1.useDebounce)((valueFn) => console.log('value', valueFn), 1000); + const onChangeText = (text) => { + setValue(text); + debouncedFn(text); + }; + return ( + + }/> + ); +}; +const styleSource = (0, ui_1.createStyles)(({ spaces }) => ({ + wrapper: { + gap: spaces.Space12, + }, +})); +exports.default = ExampleSearch; diff --git a/lib/src/widgets/Core/Inputs/ui/InputList.js b/lib/src/widgets/Core/Inputs/ui/InputList.js new file mode 100644 index 000000000..d7a75b12a --- /dev/null +++ b/lib/src/widgets/Core/Inputs/ui/InputList.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ui_1 = require("@shared/ui"); +const InputList = () => { + const [styles] = (0, ui_1.useStyles)(styleSource); + const [about, setAbout] = (0, react_1.useState)(''); + const [isSecureTextEntry, setSecureTextEntry] = (0, react_1.useState)(false); + return ( + + + + + setSecureTextEntry(!isSecureTextEntry)}> + + } secureTextEntry={isSecureTextEntry} required={true}/> + + + + + + + ); +}; +const styleSource = (0, ui_1.createStyles)(({ spaces }) => ({ + containerStyle: { + gap: spaces.Space12, + }, +})); +exports.default = InputList; diff --git a/lib/src/widgets/Core/Inputs/ui/InputsWidget.js b/lib/src/widgets/Core/Inputs/ui/InputsWidget.js new file mode 100644 index 000000000..30c946993 --- /dev/null +++ b/lib/src/widgets/Core/Inputs/ui/InputsWidget.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const DropDownExample_1 = __importDefault(require("./DropDownExample")); +const Verification_1 = __importDefault(require("./Verification")); +const ExampleSearch_1 = __importDefault(require("./ExampleSearch")); +const InputList_1 = __importDefault(require("./InputList")); +const InputsWidget = () => { + return (<> + + + + + ); +}; +exports.default = InputsWidget; diff --git a/lib/src/widgets/Core/Inputs/ui/Verification.js b/lib/src/widgets/Core/Inputs/ui/Verification.js new file mode 100644 index 000000000..9a11937c8 --- /dev/null +++ b/lib/src/widgets/Core/Inputs/ui/Verification.js @@ -0,0 +1,91 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = require("react"); +const react_native_1 = require("react-native"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ui_1 = require("@shared/ui"); +const Verification = () => { + const [styles] = (0, ui_1.useStyles)(styleSource); + const input0 = (0, react_1.useRef)(null); + const input1 = (0, react_1.useRef)(null); + const input2 = (0, react_1.useRef)(null); + const input3 = (0, react_1.useRef)(null); + const [char0, writeChar0] = (0, react_1.useState)(''); + const [char1, writeChar1] = (0, react_1.useState)(''); + const [char2, writeChar2] = (0, react_1.useState)(''); + const [char3, writeChar3] = (0, react_1.useState)(''); + const onLayout = (0, react_1.useCallback)(() => input0?.current?.focus(), []); + const onChangeText0 = (0, react_1.useCallback)((text) => { + writeChar0(text); + text.length && input1.current?.focus(); + }, []); + const onBackKeyPress0 = (0, react_1.useCallback)(() => { + if (char0 === '') { + react_native_1.Keyboard.dismiss(); + } + }, [char0]); + const onChangeText1 = (0, react_1.useCallback)((text) => { + writeChar1(text); + text.length && input2.current?.focus(); + }, []); + const onBackKeyPress1 = (0, react_1.useCallback)(() => { + if (char1 === '') { + input0.current?.focus(); + } + }, [char1]); + const onChangeText2 = (0, react_1.useCallback)((text) => { + writeChar2(text); + text.length && input3.current?.focus(); + }, []); + const onBackKeyPress2 = (0, react_1.useCallback)(() => { + if (char2 === '') { + input1.current?.focus(); + } + }, [char2]); + const onChangeText3 = (0, react_1.useCallback)((text) => { + writeChar3(text); + text.length && react_native_1.Keyboard.dismiss(); + }, []); + const onBackKeyPress3 = (0, react_1.useCallback)(() => { + if (char3 === '') { + input2.current?.focus(); + } + }, [char3]); + return ( + + + + + + + + + ); +}; +const styleSource = (0, ui_1.createStyles)(theme => { + const { colors, spaces } = theme; + return { + wrapper: { + gap: spaces.Space12, + }, + container: { + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + marginBottom: spaces.Space12, + }, + textInputContainerStyle: { + marginRight: spaces.Space12, + }, + borderStyle: { + width: spaces.Space16, + height: spaces.Space2, + backgroundColor: colors.BorderNormal, + marginHorizontal: spaces.Space6, + }, + }; +}); +exports.default = Verification; diff --git a/lib/src/widgets/Core/Navbars/ui/PanelHeaderWidget.js b/lib/src/widgets/Core/Navbars/ui/PanelHeaderWidget.js new file mode 100644 index 000000000..786d1d814 --- /dev/null +++ b/lib/src/widgets/Core/Navbars/ui/PanelHeaderWidget.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PanelHeaderWidget = void 0; +const ui_1 = require("@shared/ui"); +const PanelHeaderWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return (} rightView={} containerStyle={styles.container}/>); +}; +exports.PanelHeaderWidget = PanelHeaderWidget; +const stylesFn = (0, ui_1.createStyles)(({ colors }) => ({ + container: { + backgroundColor: colors.BgAccent, + }, +})); diff --git a/lib/src/widgets/Core/Navbars/ui/TabsWidget.js b/lib/src/widgets/Core/Navbars/ui/TabsWidget.js new file mode 100644 index 000000000..3a4bee6d3 --- /dev/null +++ b/lib/src/widgets/Core/Navbars/ui/TabsWidget.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TabsWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const TABS_TEST = [ + { value: 'tab1', label: 'tab1' }, + { value: 'tab2', label: 'tab2' }, + { value: 'tab3', label: 'tab3' }, + { value: 'tab4', label: 'tab4' }, + { value: 'tab5', label: 'tab5' }, + { value: 'tab6', label: 'tab6' }, + { value: 'tab7', label: 'tab7' }, + { value: 'tab8', label: 'tab8' }, + { value: 'tab9', label: 'tab9' }, +]; +const TabsWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + const [activeValue, setActiveValue] = (0, react_1.useState)('tab1'); + return ( + + setActiveValue(item.value)} activeValue={activeValue}/> + ); +}; +exports.TabsWidget = TabsWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/AvatarWidget.js b/lib/src/widgets/Core/Other/ui/AvatarWidget.js new file mode 100644 index 000000000..5eeb9aaad --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/AvatarWidget.js @@ -0,0 +1,91 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AvatarWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const avatar_1 = require("@shared/lib/test/data/avatar"); +const AvatarWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + + {'Content'} + + + + + + {'State'} + + + + + {'Size'} + + + + + + + {'Badge'} + + + + + + {'Badge counter'} + + + + + + + + {'Group'} + + + + + + ); +}; +exports.AvatarWidget = AvatarWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, + row: { + flexDirection: 'row', + gap: spaces.Space16, + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/BadgeWidget.js b/lib/src/widgets/Core/Other/ui/BadgeWidget.js new file mode 100644 index 000000000..765894558 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/BadgeWidget.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BadgeWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const BadgeWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + + {'BadgeIndicator'} + + + + + {'Counter'} + + + + + + + + ); +}; +exports.BadgeWidget = BadgeWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, + row: { + flexDirection: 'row', + gap: spaces.Space16, + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/CarouselWidget.js b/lib/src/widgets/Core/Other/ui/CarouselWidget.js new file mode 100644 index 000000000..b81965548 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/CarouselWidget.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CarouselWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const BlockView_1 = require("@shared/ui/BlockView"); +const data = [1, 2, 3, 4, 5, 6]; +const ITEM_WIDTH = px(80); +const CarouselWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + Carousel + } itemWidth={ITEM_WIDTH} sideMargin={2} keyExtractor={item => item.toString()}/> + LoopCarousel + } itemWidth={ITEM_WIDTH} sideMargin={2}/> + AutoCarousel + } itemWidth={ITEM_WIDTH} sideMargin={2} keyExtractor={item => item.toString()}/> + AutoLoopCarousel + } itemWidth={ITEM_WIDTH} sideMargin={2}/> + ); +}; +exports.CarouselWidget = CarouselWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/CollapsibleWidget.js b/lib/src/widgets/Core/Other/ui/CollapsibleWidget.js new file mode 100644 index 000000000..c4d989f38 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/CollapsibleWidget.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CollapsibleWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const CollapsibleWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + + + + Component to wrap content in Collapsible element with trigger to + open and close + + + + ); +}; +exports.CollapsibleWidget = CollapsibleWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/CrossedTextWidget.js b/lib/src/widgets/Core/Other/ui/CrossedTextWidget.js new file mode 100644 index 000000000..a5776d5c3 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/CrossedTextWidget.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CrossedTextWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const CrossedTextWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return (<> + + + + CrossedText + + + ); +}; +exports.CrossedTextWidget = CrossedTextWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/DotsWidget.js b/lib/src/widgets/Core/Other/ui/DotsWidget.js new file mode 100644 index 000000000..f421b4a39 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/DotsWidget.js @@ -0,0 +1,47 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DotsWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const DotsWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + const [activeDot, setActiveDot] = (0, react_1.useState)(0); + const length = 9; + const onPressIncrease = () => { + if (activeDot !== length - 1) { + setActiveDot(curr => curr + 1); + } + }; + const onPressDecrease = () => { + if (activeDot !== 0) { + setActiveDot(curr => curr - 1); + } + }; + return ( + + + + + Press me to decrease dot + + + + + + Press me to increase dot + + + + ); +}; +exports.DotsWidget = DotsWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Core/Other/ui/StatusWidget.js b/lib/src/widgets/Core/Other/ui/StatusWidget.js new file mode 100644 index 000000000..38203ea62 --- /dev/null +++ b/lib/src/widgets/Core/Other/ui/StatusWidget.js @@ -0,0 +1,43 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StatusWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const StatusWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + + + Dot + + + + + + + + Tag + + + + + + + + + ); +}; +exports.StatusWidget = StatusWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space16, + alignItems: 'center', + }, + row: { + flexDirection: 'row', + gap: spaces.Space16, + }, +})); diff --git a/lib/src/widgets/Core/Popup/ui/ActionSheetWidget.js b/lib/src/widgets/Core/Popup/ui/ActionSheetWidget.js new file mode 100644 index 000000000..a46d81dd6 --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/ActionSheetWidget.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ActionSheetWidget = void 0; +const ui_1 = require("@shared/ui"); +const ActionSheetWidget = () => { + const { openPopup } = (0, ui_1.usePopups)(); + return ( + ActionSheet + openPopup({ + Content: props => ( + + + + + + ), + })}/> + ); +}; +exports.ActionSheetWidget = ActionSheetWidget; diff --git a/lib/src/widgets/Core/Popup/ui/ModalWidget.js b/lib/src/widgets/Core/Popup/ui/ModalWidget.js new file mode 100644 index 000000000..78b6a272c --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/ModalWidget.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ModalWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + + openPopup({ + Content: props => ( + + + + + + + + ), + })}/> + ); +}; +exports.ModalWidget = ModalWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space8, + }, +})); diff --git a/lib/src/widgets/Core/Popup/ui/ModalsWidget.js b/lib/src/widgets/Core/Popup/ui/ModalsWidget.js new file mode 100644 index 000000000..617f51e92 --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/ModalsWidget.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalsWidget = void 0; +const ui_1 = require("@shared/ui"); +const ModalsWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + Modal + openPopup({ + Content: props => (), + })}/> + openPopup({ + Content: props => (), + })}/> + openPopup({ + Content: props => (), + })}/> + openPopup({ + Content: props => (), + })}/> + ); +}; +exports.ModalsWidget = ModalsWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ container: { gap: spaces.Space8 } })); diff --git a/lib/src/widgets/Core/Popup/ui/PopupBaseWidget.js b/lib/src/widgets/Core/Popup/ui/PopupBaseWidget.js new file mode 100644 index 000000000..11cc4d669 --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/PopupBaseWidget.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PopupBaseWidget = void 0; +const ui_1 = require("@shared/ui"); +const PopupBaseWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + Popup + openPopup({ + Content: props => , + })}/> + ); +}; +exports.PopupBaseWidget = PopupBaseWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space8, + }, +})); diff --git a/lib/src/widgets/Core/Popup/ui/SnackbarWidget.js b/lib/src/widgets/Core/Popup/ui/SnackbarWidget.js new file mode 100644 index 000000000..18f5286ad --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/SnackbarWidget.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SnackbarWidget = void 0; +const ui_1 = require("@shared/ui"); +const SnackbarWidget = () => { + const [styles] = (0, ui_1.useStyles)(styleFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + Snackbar + openPopup({ + Content: props => ( + + ), + })}/> + openPopup({ + Content: props => ( + + ), + })}/> + ); +}; +exports.SnackbarWidget = SnackbarWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces }) => ({ container: { gap: spaces.Space8 } })); diff --git a/lib/src/widgets/Core/Popup/ui/TooltipWidget.js b/lib/src/widgets/Core/Popup/ui/TooltipWidget.js new file mode 100644 index 000000000..4f604ba02 --- /dev/null +++ b/lib/src/widgets/Core/Popup/ui/TooltipWidget.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TooltipWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const TooltipWidget = () => { + const ref = (0, react_1.useRef)(null); + const [styles] = (0, ui_1.useStyles)(styleFn); + const { openPopup } = (0, ui_1.usePopups)(); + return ( + Tooltip + + Ref component + + openPopup({ + Content: props => ( + + + + + ), + })}/> + ); +}; +exports.TooltipWidget = TooltipWidget; +const styleFn = (0, ui_1.createStyles)(({ spaces, colors }) => ({ + container: { gap: spaces.Space8 }, + ref: { + alignItems: 'center', + padding: spaces.Space8, + backgroundColor: colors.BgAccent, + }, +})); diff --git a/lib/src/widgets/Core/Progress/ui/IndicatorWidget.js b/lib/src/widgets/Core/Progress/ui/IndicatorWidget.js new file mode 100644 index 000000000..61278ffb4 --- /dev/null +++ b/lib/src/widgets/Core/Progress/ui/IndicatorWidget.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IndicatorWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const IndicatorWidget = () => { + const [percent, setPercent] = (0, react_1.useState)(10); + const onPress = () => { + const randomPercent = Math.random(); + setPercent(randomPercent * 100); + }; + return ( + Indicator + + + + Press me to change percent + + + ); +}; +exports.IndicatorWidget = IndicatorWidget; diff --git a/lib/src/widgets/Core/Progress/ui/PanelSpinnerWidget.js b/lib/src/widgets/Core/Progress/ui/PanelSpinnerWidget.js new file mode 100644 index 000000000..e0e5c151f --- /dev/null +++ b/lib/src/widgets/Core/Progress/ui/PanelSpinnerWidget.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PanelSpinnerWidget = void 0; +const ui_1 = require("@shared/ui"); +const PanelSpinnerWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + PanelSpinner + + + + isLoading=true + + + + isLoading=false + + + { }}/> + with onCancel + + + ); +}; +exports.PanelSpinnerWidget = PanelSpinnerWidget; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + flexDirection: 'row', + gap: spaces.Space8, + }, + panelContainer: { + flex: 1, + alignItems: 'center', + }, +})); diff --git a/lib/src/widgets/Core/Progress/ui/SpinnerWidget.js b/lib/src/widgets/Core/Progress/ui/SpinnerWidget.js new file mode 100644 index 000000000..569dd73e6 --- /dev/null +++ b/lib/src/widgets/Core/Progress/ui/SpinnerWidget.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SpinnerWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const SpinnerWidget = () => { + const { colors } = (0, ui_1.useTheme)(); + const [styles] = (0, ui_1.useStyles)(stylesCreate); + return (<> + + + + + + + + + + ); +}; +exports.SpinnerWidget = SpinnerWidget; +const stylesCreate = (0, ui_1.createStyles)(_ => ({ + container: { + flexDirection: 'row', + justifyContent: 'space-evenly', + }, +})); diff --git a/lib/src/widgets/Core/Styles/ui/ShadowWidget.js b/lib/src/widgets/Core/Styles/ui/ShadowWidget.js new file mode 100644 index 000000000..681da4b8d --- /dev/null +++ b/lib/src/widgets/Core/Styles/ui/ShadowWidget.js @@ -0,0 +1,60 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ShadowWidget = void 0; +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const ShadowWidget = () => { + const [styles] = (0, ui_1.useStyles)(style); + return ( + + + + + shadowSmall + + + + shadowMedium + + + + shadowLarge + + + ); +}; +exports.ShadowWidget = ShadowWidget; +const style = (0, ui_1.createStyles)(({ shadows, spaces, colors }) => ({ + container: { + alignItems: 'center', + justifyContent: 'space-between', + }, + content: { + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + justifyContent: 'space-between', + gap: spaces.Space12, + }, + item: { + alignItems: 'center', + }, + box: { + backgroundColor: colors.BgSecondary, + margin: spaces.Space8, + height: spaces.Space64, + width: spaces.Space64, + }, + shadowSmall: { + ...shadows.small, + }, + shadowMedium: { + ...shadows.medium, + }, + shadowLarge: { + ...shadows.large, + }, +})); diff --git a/lib/src/widgets/Core/Styles/ui/SimpleIconWidget.js b/lib/src/widgets/Core/Styles/ui/SimpleIconWidget.js new file mode 100644 index 000000000..f280cd0ea --- /dev/null +++ b/lib/src/widgets/Core/Styles/ui/SimpleIconWidget.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SimpleIconWidget = void 0; +const react_1 = require("react"); +const ui_1 = require("@shared/ui"); +const Header_1 = __importDefault(require("@shared/ui/Header")); +const SimpleIconWidget = () => { + const [simpleIconName, setSimpleIconName] = (0, react_1.useState)(''); + return ( + + + {simpleIconName} + ); +}; +exports.SimpleIconWidget = SimpleIconWidget; diff --git a/lib/src/widgets/KeyboardAware/Bottom.js b/lib/src/widgets/KeyboardAware/Bottom.js new file mode 100644 index 000000000..f46247736 --- /dev/null +++ b/lib/src/widgets/KeyboardAware/Bottom.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BottomComponent = void 0; +const ui_1 = require("@shared/ui"); +const BottomComponent = () => { + const [styles] = (0, ui_1.useStyles)(style); + return ( + BottomComponents + + ); +}; +exports.BottomComponent = BottomComponent; +const style = (0, ui_1.createStyles)(({ shadows, colors, spaces }) => ({ + container: { + backgroundColor: colors.BgPrimary, + ...shadows.large, + alignItems: 'center', + padding: spaces.Space12, + }, +})); diff --git a/lib/src/widgets/KeyboardAware/Inputs.js b/lib/src/widgets/KeyboardAware/Inputs.js new file mode 100644 index 000000000..9147997f2 --- /dev/null +++ b/lib/src/widgets/KeyboardAware/Inputs.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Inputs = void 0; +const ui_1 = require("@shared/ui"); +const Inputs = () => { + const [styles] = (0, ui_1.useStyles)(style); + return ( + {new Array(20).fill(0).map((_value, index) => ())} + ); +}; +exports.Inputs = Inputs; +const style = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + gap: spaces.Space8, + }, +})); diff --git a/lib/src/widgets/Markdown/ui/MarkdownWidget.js b/lib/src/widgets/Markdown/ui/MarkdownWidget.js new file mode 100644 index 000000000..e353bc91c --- /dev/null +++ b/lib/src/widgets/Markdown/ui/MarkdownWidget.js @@ -0,0 +1,144 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MarkdownWidget = void 0; +const ui_1 = require("@shared/ui"); +const MarkdownWidget = () => { + const [styles] = (0, ui_1.useStyles)(stylesFn); + return ( + {markdown} + + ); +}; +exports.MarkdownWidget = MarkdownWidget; +const markdown = ` +# MobyDick + +Библиотека компонентов для мобильной разработки. + +# Содержание +1. [О проекте](#1-о-проекте) +2. [Разработка](#2-разработка) + - [Локальный запуск](#локальный-запуск) + - [Подготовка](#подготовка) + - [Установка](#установка) + - [Как запустить проект](#как-запустить-проект) + - [Code style](#code-style) + - [Процесс сборки приложения для релиза](#процесс-сборки-приложения-для-релиза) +3. [Тесты](#3-тесты) +4. [База знаний](#4-база-знаний) + +# 1. О проекте +Легковесная библиотека компонентов для разработки мобильных приложений. См. также [дизайн-систему в Figma](https://www.figma.com/file/O1ISmXoYQaYPfDZDBsme10/%E2%9D%96-Neotis--%C2%B7--Design-system?node-id=3%3A130). + +Чтобы не тянуть все зависимости, которые могут не пригодиться, либу разделили на модули: + + +- [@lad-tech/mobydick-core](./packages/core/README.md) +- [@lad-tech/mobydick-utils](./packages/utils/README.md) +- [@lad-tech/mobydick-calendar](./packages/calendar/README.md) + +# 2. Разработка +## Локальный запуск +### Подготовка +- **Пакетный менеджер** [\`yarn\`](https://yarnpkg.com/getting-started/install), так как он быстрый. +- Конфигурацию ESlint. Информация о ней находится в [отдельном репозитории](https://github.com/lad-tech/eslint-config), чтобы использовать ее на смежных проектах. + +Чтобы установить все пакеты, нужно установить ассоциации для нашего gitlab registry и закрепить accessToken. Для этого изучи пункты 1 и 2 в инструкции [“Как скачать наш пакет”](https://glab.lad24.ru/npm/registry#%D0%BA%D0%B0%D0%BA-%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0%D1%88-%D0%BF%D0%B0%D0%BA%D0%B5%D1%82). + +### Установка +1. Сначала прочитай [инструкцию](https://reactnative.dev/docs/environment-setup). +2. Установить Android SDK можно через [Android Studio](https://developer.android.com/studio) (самый простой способ) или через [IDEA](https://www.jetbrains.com/ru-ru/idea/), прописав нужные переменные для \`.bashrc\` или аналоги: + + \`\`\`bash + export ANDROID_HOME=$HOME/Android/Sdk + export PATH=$PATH:$ANDROID_HOME/emulator + export PATH=$PATH:$ANDROID_HOME/tools + export PATH=$PATH:$ANDROID_HOME/tools/bin + export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools + export ANDROID_SDK_ROOT=$ANDROID_HOME + export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin + export PATH=$PATH:$ANDROID_SDK_ROOT/emulator #регистируем новый Path + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ + \`\`\` + +3. Чтобы установить пакеты, лучше использовать команду \`yarn install --frozen-lockfile\`. + + +### Как запустить проект +Чтобы запустить проект локально, используй: + +- \`yarn start\` +- \`yarn android\` или \`yarn ios\` +- \`yarn storybook\` + +### Для debugging +Чтобы пользоваться React Native Debugger нужно добавить patch для StyleSheet у React Native +\`\`\`bash +702 bytes +diff --git a/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js b/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js +index 785fbfe..1d3b93c 100644 +--- a/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js ++++ b/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js +@@ -360,13 +360,6 @@ module.exports = { + // TODO: This should return S as the return type. But first, + // we need to codemod all the callsites that are typing this + // return value as a number (even though it was opaque). +- if (__DEV__) { +- for (const key in obj) { +- if (obj[key]) { +- Object.freeze(obj[key]); +- } +- } +- } + return obj; + }, + }; +\`\`\` + +## Code style +1. Константы + \`CAPS_SNAKE_CASE\` +2. Функции + \`camelCase\` +3. Классы + \`PascalCase\` +4. Enum + \`PascalCaseEnum.camelCase\` +5. Типы + \`PascalCaseType\` +6. Интерфейсы + \`PascalCase\` +7. Переменные внутри функций + \`camelCase\` +8. Названия файлов + - Если внутри файлов \`default export Class\`, то + \`PascalCase\` + - В любом другом случае (функции / константы / etc) + \`camelCase\` + +## Процесс сборки приложения для релиза + +Запустить скрипт в \`scripts/publish\` + +# 3. Тесты + +Чтобы запустить тесты, используй команду \`yarn run test\`. + +# 4. База знаний + +**Несколько простых правил для readme** +1. Основная структура readme-файла нерушима. +2. Технические писатели обеспечивают структуру и читаемость. +3. Если ты считаешь, что твоей команде не хватает какой-то информации, пиши в #docs. +4. Для каждой новой темы используй новый заголовок. Максимальный уровень вложенности заголовков равен 3. +5. Если на чём-то нужно заострить внимание, пиши полужирным “важно” и “примечание”. +`; +const stylesFn = (0, ui_1.createStyles)(({ spaces }) => ({ + container: { + flex: 1, + paddingHorizontal: spaces.Space10, + }, + footer: { + height: spaces.Space32, + }, +})); diff --git a/packages/calendar/src/Calendar/Calendar.tsx b/packages/calendar/src/Calendar/Calendar.tsx index cb8d985ef..f46513875 100644 --- a/packages/calendar/src/Calendar/Calendar.tsx +++ b/packages/calendar/src/Calendar/Calendar.tsx @@ -11,7 +11,7 @@ import { DateData, LocaleConfig, } from 'react-native-calendars'; -import {useStyles, useTheme, rem} from '@lad-tech/mobydick-core'; +import {px, useStyles, useTheme} from '@lad-tech/mobydick-core'; import {localeConfigRu} from './localeConfig'; import { @@ -109,10 +109,10 @@ const Calendar: FC = props => { arrowColor: colors.IconNeutral, monthTextColor: colors.TextPrimary, textDayHeaderFontFamily: 'Inter-SemiBold', - textDayHeaderFontSize: rem(14), - textDayFontSize: rem(14), + textDayHeaderFontSize: px(14), + textDayFontSize: px(14), textDayFontFamily: 'Inter-Regular', - weekVerticalMargin: rem(1), + weekVerticalMargin: px(1), 'stylesheet.day.period': { todayText: { fontWeight: '400', @@ -125,7 +125,7 @@ const Calendar: FC = props => { 'stylesheet.calendar.header': { dayHeader: { marginTop: 0, - marginBottom: rem(5), + marginBottom: px(5), color: colors.TextSecondary, }, }, diff --git a/packages/calendar/src/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap b/packages/calendar/src/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap index 2fd83acc3..c0f362ebc 100644 --- a/packages/calendar/src/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap +++ b/packages/calendar/src/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap @@ -8,7 +8,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -50,7 +50,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -63,7 +63,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -109,9 +109,9 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -162,9 +162,9 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -212,7 +212,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -230,8 +230,8 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -300,7 +300,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -316,7 +316,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -332,7 +332,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -348,7 +348,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -364,7 +364,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -380,7 +380,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -396,7 +396,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -418,7 +418,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -495,7 +495,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -606,7 +606,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -717,7 +717,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -825,7 +825,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -933,7 +933,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1041,7 +1041,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1149,7 +1149,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1190,7 +1190,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -1267,7 +1267,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1375,7 +1375,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1483,7 +1483,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1591,7 +1591,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1699,7 +1699,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1807,7 +1807,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1915,7 +1915,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1956,7 +1956,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -2033,7 +2033,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2141,7 +2141,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2249,7 +2249,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2357,7 +2357,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2465,7 +2465,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2573,7 +2573,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2681,7 +2681,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2722,7 +2722,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -2799,7 +2799,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2907,7 +2907,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3015,7 +3015,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3123,7 +3123,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3231,7 +3231,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3339,7 +3339,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3447,7 +3447,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3488,7 +3488,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -3565,7 +3565,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3673,7 +3673,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3781,7 +3781,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3889,7 +3889,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3997,7 +3997,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4105,7 +4105,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -4216,7 +4216,7 @@ exports[`Calendar press calendarLeftArrow 01 -> 12 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -4269,7 +4269,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -4311,7 +4311,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4324,7 +4324,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -4370,9 +4370,9 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -4423,9 +4423,9 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -4473,7 +4473,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4491,8 +4491,8 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -4561,7 +4561,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4577,7 +4577,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4593,7 +4593,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4609,7 +4609,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4625,7 +4625,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4641,7 +4641,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4657,7 +4657,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -4679,7 +4679,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -4756,7 +4756,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -4867,7 +4867,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -4978,7 +4978,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5086,7 +5086,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5194,7 +5194,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5302,7 +5302,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5410,7 +5410,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5451,7 +5451,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -5528,7 +5528,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5636,7 +5636,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5744,7 +5744,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5852,7 +5852,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5960,7 +5960,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6068,7 +6068,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6176,7 +6176,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6217,7 +6217,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -6294,7 +6294,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6402,7 +6402,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6510,7 +6510,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6618,7 +6618,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6726,7 +6726,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6834,7 +6834,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6942,7 +6942,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6983,7 +6983,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -7060,7 +7060,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7168,7 +7168,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7276,7 +7276,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7384,7 +7384,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7492,7 +7492,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7600,7 +7600,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7708,7 +7708,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7749,7 +7749,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -7826,7 +7826,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7934,7 +7934,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8042,7 +8042,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8150,7 +8150,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8258,7 +8258,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -8369,7 +8369,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -8480,7 +8480,7 @@ exports[`Calendar press calendarLeftArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -8533,7 +8533,7 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -8575,7 +8575,7 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8588,7 +8588,7 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -8634,9 +8634,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -8684,7 +8684,7 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8781,9 +8781,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -8798,9 +8798,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -8844,9 +8844,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -8861,9 +8861,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -8907,9 +8907,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -8924,9 +8924,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -8984,9 +8984,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9001,9 +9001,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9047,9 +9047,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9064,9 +9064,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9110,9 +9110,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9127,9 +9127,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9187,9 +9187,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9204,9 +9204,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9250,9 +9250,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9267,9 +9267,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9313,9 +9313,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9330,9 +9330,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9390,9 +9390,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9407,9 +9407,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9453,9 +9453,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9470,9 +9470,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9516,9 +9516,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9533,9 +9533,9 @@ exports[`Calendar press calendarPressTitle * 2 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9559,7 +9559,7 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -9601,7 +9601,7 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9614,7 +9614,7 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -9660,9 +9660,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -9710,7 +9710,7 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9807,9 +9807,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9824,9 +9824,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9870,9 +9870,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9887,9 +9887,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -9933,9 +9933,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -9950,9 +9950,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10010,9 +10010,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10027,9 +10027,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10073,9 +10073,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10090,9 +10090,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10136,9 +10136,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10153,9 +10153,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10213,9 +10213,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10230,9 +10230,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10276,9 +10276,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10293,9 +10293,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10339,9 +10339,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10356,9 +10356,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10416,9 +10416,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10433,9 +10433,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10479,9 +10479,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10496,9 +10496,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10542,9 +10542,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10559,9 +10559,9 @@ exports[`Calendar press calendarPressTitle * 3 calendarLeftArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10585,7 +10585,7 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -10627,7 +10627,7 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10640,7 +10640,7 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -10686,9 +10686,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -10736,7 +10736,7 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10833,9 +10833,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10850,9 +10850,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10896,9 +10896,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10913,9 +10913,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -10959,9 +10959,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -10976,9 +10976,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11036,9 +11036,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11053,9 +11053,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11099,9 +11099,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11116,9 +11116,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11162,9 +11162,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11179,9 +11179,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11239,9 +11239,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11256,9 +11256,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11302,9 +11302,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11319,9 +11319,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11365,9 +11365,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11382,9 +11382,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11442,9 +11442,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11459,9 +11459,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11505,9 +11505,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11522,9 +11522,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11568,9 +11568,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11585,9 +11585,9 @@ exports[`Calendar press calendarPressTitle calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11611,7 +11611,7 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -11653,7 +11653,7 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -11666,7 +11666,7 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -11712,9 +11712,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -11762,7 +11762,7 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -11859,9 +11859,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11876,9 +11876,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11922,9 +11922,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -11939,9 +11939,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -11985,9 +11985,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12002,9 +12002,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12062,9 +12062,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12079,9 +12079,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12125,9 +12125,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12142,9 +12142,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12188,9 +12188,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12205,9 +12205,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12265,9 +12265,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12282,9 +12282,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12328,9 +12328,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12345,9 +12345,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12391,9 +12391,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12408,9 +12408,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12468,9 +12468,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12485,9 +12485,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12531,9 +12531,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12548,9 +12548,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12594,9 +12594,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12611,9 +12611,9 @@ exports[`Calendar press calendarPressTitle*2 calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12637,7 +12637,7 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -12679,7 +12679,7 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -12692,7 +12692,7 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -12738,9 +12738,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -12788,7 +12788,7 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -12885,9 +12885,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12902,9 +12902,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -12948,9 +12948,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -12965,9 +12965,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13011,9 +13011,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13028,9 +13028,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13088,9 +13088,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13105,9 +13105,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13151,9 +13151,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13168,9 +13168,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13214,9 +13214,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13231,9 +13231,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13291,9 +13291,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13308,9 +13308,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13354,9 +13354,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13371,9 +13371,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13417,9 +13417,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13434,9 +13434,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13494,9 +13494,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13511,9 +13511,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13557,9 +13557,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13574,9 +13574,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13620,9 +13620,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -13637,9 +13637,9 @@ exports[`Calendar press calendarPressTitleYear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -13663,7 +13663,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -13705,7 +13705,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -13718,7 +13718,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -13764,9 +13764,9 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -13817,9 +13817,9 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -13867,7 +13867,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -13885,8 +13885,8 @@ exports[`Calendar press calendarRightArrow 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -13955,7 +13955,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -13971,7 +13971,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -13987,7 +13987,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14003,7 +14003,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14019,7 +14019,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14035,7 +14035,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14051,7 +14051,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14073,7 +14073,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -14150,7 +14150,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -14261,7 +14261,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14369,7 +14369,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14477,7 +14477,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14585,7 +14585,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14693,7 +14693,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14801,7 +14801,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14842,7 +14842,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -14919,7 +14919,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15027,7 +15027,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15135,7 +15135,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15243,7 +15243,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15351,7 +15351,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15459,7 +15459,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15567,7 +15567,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15608,7 +15608,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -15685,7 +15685,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15793,7 +15793,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15901,7 +15901,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16009,7 +16009,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16117,7 +16117,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16225,7 +16225,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16333,7 +16333,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16374,7 +16374,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -16451,7 +16451,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16559,7 +16559,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16667,7 +16667,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16775,7 +16775,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16883,7 +16883,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16991,7 +16991,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17099,7 +17099,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17140,7 +17140,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -17217,7 +17217,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17325,7 +17325,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17436,7 +17436,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17547,7 +17547,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17658,7 +17658,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17769,7 +17769,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17880,7 +17880,7 @@ exports[`Calendar press calendarRightArrow 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -17933,7 +17933,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -17975,7 +17975,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -17988,7 +17988,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -18034,9 +18034,9 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -18087,9 +18087,9 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -18137,7 +18137,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -18155,8 +18155,8 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -18225,7 +18225,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18241,7 +18241,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18257,7 +18257,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18273,7 +18273,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18289,7 +18289,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18305,7 +18305,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18321,7 +18321,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18343,7 +18343,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -18420,7 +18420,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18531,7 +18531,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18642,7 +18642,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18753,7 +18753,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18864,7 +18864,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18975,7 +18975,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -19086,7 +19086,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19127,7 +19127,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -19204,7 +19204,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19312,7 +19312,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19420,7 +19420,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19528,7 +19528,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19636,7 +19636,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19744,7 +19744,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19852,7 +19852,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19893,7 +19893,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -19970,7 +19970,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20078,7 +20078,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20186,7 +20186,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20294,7 +20294,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20402,7 +20402,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20510,7 +20510,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20618,7 +20618,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20659,7 +20659,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -20736,7 +20736,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20844,7 +20844,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20952,7 +20952,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21060,7 +21060,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21168,7 +21168,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21276,7 +21276,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21384,7 +21384,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21425,7 +21425,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -21502,7 +21502,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21610,7 +21610,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21718,7 +21718,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21826,7 +21826,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21934,7 +21934,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22042,7 +22042,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22150,7 +22150,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22191,7 +22191,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -22268,7 +22268,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22376,7 +22376,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22484,7 +22484,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -22595,7 +22595,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -22706,7 +22706,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -22817,7 +22817,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -22928,7 +22928,7 @@ exports[`Calendar press calendarRightArrow 12 -> 1 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -22981,7 +22981,7 @@ exports[`Calendar renders correctly 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -23023,7 +23023,7 @@ exports[`Calendar renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -23036,7 +23036,7 @@ exports[`Calendar renders correctly 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -23082,9 +23082,9 @@ exports[`Calendar renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -23135,9 +23135,9 @@ exports[`Calendar renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -23185,7 +23185,7 @@ exports[`Calendar renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -23203,8 +23203,8 @@ exports[`Calendar renders correctly 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -23273,7 +23273,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23289,7 +23289,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23305,7 +23305,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23321,7 +23321,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23337,7 +23337,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23353,7 +23353,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23369,7 +23369,7 @@ exports[`Calendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23391,7 +23391,7 @@ exports[`Calendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -23468,7 +23468,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23579,7 +23579,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23690,7 +23690,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23801,7 +23801,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23912,7 +23912,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24020,7 +24020,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24128,7 +24128,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24169,7 +24169,7 @@ exports[`Calendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -24246,7 +24246,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24354,7 +24354,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24462,7 +24462,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24570,7 +24570,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24678,7 +24678,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24786,7 +24786,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24894,7 +24894,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24935,7 +24935,7 @@ exports[`Calendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -25012,7 +25012,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25120,7 +25120,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25228,7 +25228,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25336,7 +25336,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25465,7 +25465,7 @@ exports[`Calendar renders correctly 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -25482,7 +25482,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -25593,7 +25593,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25701,7 +25701,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25742,7 +25742,7 @@ exports[`Calendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -25819,7 +25819,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25927,7 +25927,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26035,7 +26035,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26143,7 +26143,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26251,7 +26251,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26359,7 +26359,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26467,7 +26467,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26508,7 +26508,7 @@ exports[`Calendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -26585,7 +26585,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26693,7 +26693,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26801,7 +26801,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26909,7 +26909,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27017,7 +27017,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27125,7 +27125,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27233,7 +27233,7 @@ exports[`Calendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27283,7 +27283,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -27325,7 +27325,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -27338,7 +27338,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -27384,9 +27384,9 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -27437,9 +27437,9 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -27487,7 +27487,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -27505,8 +27505,8 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -27575,7 +27575,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27591,7 +27591,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27607,7 +27607,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27623,7 +27623,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27639,7 +27639,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27655,7 +27655,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27671,7 +27671,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -27693,7 +27693,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -27770,7 +27770,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -27881,7 +27881,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -27992,7 +27992,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -28103,7 +28103,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28211,7 +28211,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28319,7 +28319,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28427,7 +28427,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28468,7 +28468,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -28545,7 +28545,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28653,7 +28653,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28761,7 +28761,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28869,7 +28869,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -28977,7 +28977,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29085,7 +29085,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29193,7 +29193,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29234,7 +29234,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -29311,7 +29311,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29419,7 +29419,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29527,7 +29527,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29635,7 +29635,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29743,7 +29743,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29851,7 +29851,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -29959,7 +29959,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30000,7 +30000,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -30077,7 +30077,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30185,7 +30185,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30293,7 +30293,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30401,7 +30401,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30509,7 +30509,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30617,7 +30617,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30725,7 +30725,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30766,7 +30766,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -30843,7 +30843,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -30951,7 +30951,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -31059,7 +31059,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -31167,7 +31167,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -31275,7 +31275,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -31383,7 +31383,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -31491,7 +31491,7 @@ exports[`Calendar renders correctly dottedDates 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -31544,7 +31544,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -31586,7 +31586,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -31599,7 +31599,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -31645,9 +31645,9 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -31698,9 +31698,9 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -31748,7 +31748,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -31766,8 +31766,8 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -31836,7 +31836,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31852,7 +31852,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31868,7 +31868,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31884,7 +31884,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31900,7 +31900,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31916,7 +31916,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31932,7 +31932,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -31954,7 +31954,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -32031,7 +32031,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -32142,7 +32142,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -32253,7 +32253,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -32364,7 +32364,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -32472,7 +32472,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -32580,7 +32580,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -32688,7 +32688,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -32729,7 +32729,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -32806,7 +32806,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -32914,7 +32914,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33022,7 +33022,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33130,7 +33130,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33238,7 +33238,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33346,7 +33346,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33454,7 +33454,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33495,7 +33495,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -33572,7 +33572,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33680,7 +33680,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33788,7 +33788,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -33896,7 +33896,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34004,7 +34004,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34112,7 +34112,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34220,7 +34220,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34261,7 +34261,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -34338,7 +34338,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34446,7 +34446,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34554,7 +34554,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34662,7 +34662,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34770,7 +34770,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34878,7 +34878,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -34986,7 +34986,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35027,7 +35027,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -35104,7 +35104,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35212,7 +35212,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35320,7 +35320,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35428,7 +35428,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35536,7 +35536,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35644,7 +35644,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -35752,7 +35752,7 @@ exports[`Calendar renders correctly dottedDates cc 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -35805,7 +35805,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -35847,7 +35847,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -35860,7 +35860,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -35906,9 +35906,9 @@ exports[`Calendar renders correctly isClear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -35959,9 +35959,9 @@ exports[`Calendar renders correctly isClear 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -36009,7 +36009,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -36027,8 +36027,8 @@ exports[`Calendar renders correctly isClear 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -36097,7 +36097,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36113,7 +36113,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36129,7 +36129,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36145,7 +36145,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36161,7 +36161,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36177,7 +36177,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36193,7 +36193,7 @@ exports[`Calendar renders correctly isClear 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -36215,7 +36215,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -36292,7 +36292,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -36403,7 +36403,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -36514,7 +36514,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -36625,7 +36625,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -36736,7 +36736,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -36844,7 +36844,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -36952,7 +36952,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -36993,7 +36993,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -37070,7 +37070,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37178,7 +37178,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37286,7 +37286,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37394,7 +37394,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37502,7 +37502,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37610,7 +37610,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37718,7 +37718,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37759,7 +37759,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -37836,7 +37836,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -37944,7 +37944,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38052,7 +38052,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38160,7 +38160,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38268,7 +38268,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38376,7 +38376,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38484,7 +38484,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38525,7 +38525,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -38602,7 +38602,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38710,7 +38710,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38818,7 +38818,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -38926,7 +38926,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39034,7 +39034,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39142,7 +39142,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39250,7 +39250,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39291,7 +39291,7 @@ exports[`Calendar renders correctly isClear 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -39368,7 +39368,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39476,7 +39476,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39584,7 +39584,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39692,7 +39692,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39800,7 +39800,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -39908,7 +39908,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -40016,7 +40016,7 @@ exports[`Calendar renders correctly isClear 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -40066,7 +40066,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -40108,7 +40108,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -40121,7 +40121,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -40167,9 +40167,9 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -40220,9 +40220,9 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -40270,7 +40270,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -40288,8 +40288,8 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -40358,7 +40358,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40374,7 +40374,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40390,7 +40390,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40406,7 +40406,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40422,7 +40422,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40438,7 +40438,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40454,7 +40454,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -40476,7 +40476,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -40553,7 +40553,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -40664,7 +40664,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -40772,7 +40772,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -40880,7 +40880,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -40988,7 +40988,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41096,7 +41096,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41204,7 +41204,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41245,7 +41245,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -41322,7 +41322,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41430,7 +41430,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41538,7 +41538,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41646,7 +41646,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41754,7 +41754,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41862,7 +41862,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -41970,7 +41970,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42011,7 +42011,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -42088,7 +42088,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42196,7 +42196,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42304,7 +42304,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42412,7 +42412,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42520,7 +42520,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42628,7 +42628,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42736,7 +42736,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42777,7 +42777,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -42854,7 +42854,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -42962,7 +42962,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43070,7 +43070,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43178,7 +43178,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43286,7 +43286,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43394,7 +43394,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43502,7 +43502,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43543,7 +43543,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -43620,7 +43620,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -43728,7 +43728,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -43839,7 +43839,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -43950,7 +43950,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -44061,7 +44061,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -44172,7 +44172,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -44283,7 +44283,7 @@ exports[`Calendar renders correctly isClear isShowToday 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -44336,7 +44336,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -44378,7 +44378,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -44391,7 +44391,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -44437,9 +44437,9 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -44490,9 +44490,9 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -44540,7 +44540,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -44558,8 +44558,8 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -44628,7 +44628,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44644,7 +44644,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44660,7 +44660,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44676,7 +44676,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44692,7 +44692,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44708,7 +44708,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44724,7 +44724,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -44746,7 +44746,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -44823,7 +44823,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -44934,7 +44934,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45045,7 +45045,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45156,7 +45156,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45288,7 +45288,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -45305,7 +45305,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45449,7 +45449,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45593,7 +45593,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45636,7 +45636,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -45734,7 +45734,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -45751,7 +45751,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -45861,7 +45861,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -45969,7 +45969,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46077,7 +46077,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46185,7 +46185,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46293,7 +46293,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46401,7 +46401,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46442,7 +46442,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -46519,7 +46519,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46627,7 +46627,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46735,7 +46735,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46843,7 +46843,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -46951,7 +46951,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47059,7 +47059,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47167,7 +47167,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47208,7 +47208,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -47285,7 +47285,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47393,7 +47393,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47501,7 +47501,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47609,7 +47609,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47717,7 +47717,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47825,7 +47825,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47933,7 +47933,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -47974,7 +47974,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -48051,7 +48051,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48159,7 +48159,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48267,7 +48267,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48375,7 +48375,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48483,7 +48483,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48591,7 +48591,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48699,7 +48699,7 @@ exports[`Calendar renders correctly isShowToday = false > maxLengthDateRange max "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -48749,7 +48749,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -48791,7 +48791,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -48804,7 +48804,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -48850,9 +48850,9 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -48903,9 +48903,9 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -48953,7 +48953,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -48971,8 +48971,8 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -49041,7 +49041,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49057,7 +49057,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49073,7 +49073,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49089,7 +49089,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49105,7 +49105,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49121,7 +49121,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49137,7 +49137,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -49159,7 +49159,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -49236,7 +49236,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -49347,7 +49347,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -49458,7 +49458,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -49569,7 +49569,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -49680,7 +49680,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -49788,7 +49788,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -49896,7 +49896,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -49937,7 +49937,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -50014,7 +50014,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50122,7 +50122,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50230,7 +50230,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50338,7 +50338,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50446,7 +50446,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50554,7 +50554,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50662,7 +50662,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50703,7 +50703,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -50780,7 +50780,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50888,7 +50888,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -50996,7 +50996,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51104,7 +51104,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51233,7 +51233,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -51250,7 +51250,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -51361,7 +51361,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51469,7 +51469,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51510,7 +51510,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -51587,7 +51587,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51695,7 +51695,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51803,7 +51803,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -51911,7 +51911,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52019,7 +52019,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52127,7 +52127,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52235,7 +52235,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52276,7 +52276,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -52353,7 +52353,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52461,7 +52461,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52569,7 +52569,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52677,7 +52677,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52785,7 +52785,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -52893,7 +52893,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -53001,7 +53001,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -53051,7 +53051,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -53093,7 +53093,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -53106,7 +53106,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -53152,9 +53152,9 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -53205,9 +53205,9 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -53255,7 +53255,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -53273,8 +53273,8 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -53343,7 +53343,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53359,7 +53359,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53375,7 +53375,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53391,7 +53391,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53407,7 +53407,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53423,7 +53423,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53439,7 +53439,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -53461,7 +53461,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -53538,7 +53538,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -53649,7 +53649,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -53760,7 +53760,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -53871,7 +53871,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -53982,7 +53982,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54093,7 +54093,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54204,7 +54204,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54248,7 +54248,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -54325,7 +54325,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54436,7 +54436,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54547,7 +54547,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54658,7 +54658,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54769,7 +54769,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54880,7 +54880,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -54991,7 +54991,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55035,7 +55035,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -55112,7 +55112,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55223,7 +55223,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55355,7 +55355,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -55372,7 +55372,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55503,7 +55503,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -55520,7 +55520,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55651,7 +55651,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -55668,7 +55668,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -55779,7 +55779,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -55887,7 +55887,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -55928,7 +55928,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -56005,7 +56005,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -56113,7 +56113,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -56221,7 +56221,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -56329,7 +56329,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -56440,7 +56440,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -56551,7 +56551,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -56662,7 +56662,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -56706,7 +56706,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -56783,7 +56783,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -56894,7 +56894,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57005,7 +57005,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57116,7 +57116,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57227,7 +57227,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57338,7 +57338,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57449,7 +57449,7 @@ exports[`Calendar renders correctly isShowToday = true < maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -57502,7 +57502,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -57544,7 +57544,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -57557,7 +57557,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -57603,9 +57603,9 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -57656,9 +57656,9 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -57706,7 +57706,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -57724,8 +57724,8 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -57794,7 +57794,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57810,7 +57810,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57826,7 +57826,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57842,7 +57842,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57858,7 +57858,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57874,7 +57874,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57890,7 +57890,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -57912,7 +57912,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -57989,7 +57989,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -58100,7 +58100,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -58211,7 +58211,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -58322,7 +58322,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -58433,7 +58433,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -58541,7 +58541,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -58649,7 +58649,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -58690,7 +58690,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -58767,7 +58767,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -58875,7 +58875,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -58983,7 +58983,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59091,7 +59091,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59199,7 +59199,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59307,7 +59307,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59415,7 +59415,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59456,7 +59456,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -59533,7 +59533,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59641,7 +59641,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59749,7 +59749,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59857,7 +59857,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -59986,7 +59986,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -60003,7 +60003,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -60114,7 +60114,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60222,7 +60222,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60263,7 +60263,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -60340,7 +60340,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60448,7 +60448,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60556,7 +60556,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60664,7 +60664,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60772,7 +60772,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60880,7 +60880,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -60988,7 +60988,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61029,7 +61029,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -61106,7 +61106,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61214,7 +61214,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61322,7 +61322,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61430,7 +61430,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61538,7 +61538,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61646,7 +61646,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61754,7 +61754,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -61804,7 +61804,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -61846,7 +61846,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -61859,7 +61859,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -61905,9 +61905,9 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -61958,9 +61958,9 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -62008,7 +62008,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -62026,8 +62026,8 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -62096,7 +62096,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62112,7 +62112,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62128,7 +62128,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62144,7 +62144,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62160,7 +62160,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62176,7 +62176,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62192,7 +62192,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -62214,7 +62214,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -62291,7 +62291,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -62402,7 +62402,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -62513,7 +62513,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -62624,7 +62624,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -62756,7 +62756,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -62773,7 +62773,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -62917,7 +62917,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -63061,7 +63061,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -63104,7 +63104,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -63202,7 +63202,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -63219,7 +63219,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -63329,7 +63329,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63437,7 +63437,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63545,7 +63545,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63653,7 +63653,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63761,7 +63761,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63869,7 +63869,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -63910,7 +63910,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -63987,7 +63987,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64095,7 +64095,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64203,7 +64203,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64311,7 +64311,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64440,7 +64440,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -64457,7 +64457,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -64568,7 +64568,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64676,7 +64676,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64717,7 +64717,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -64794,7 +64794,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -64902,7 +64902,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65010,7 +65010,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65118,7 +65118,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65226,7 +65226,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65334,7 +65334,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65442,7 +65442,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65483,7 +65483,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -65560,7 +65560,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65668,7 +65668,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65776,7 +65776,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65884,7 +65884,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -65992,7 +65992,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -66100,7 +66100,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -66208,7 +66208,7 @@ exports[`Calendar renders correctly isShowToday = true > maxLengthDateRange maxD "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -66258,7 +66258,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -66300,7 +66300,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -66313,7 +66313,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -66359,9 +66359,9 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -66412,9 +66412,9 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -66462,7 +66462,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -66480,8 +66480,8 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -66550,7 +66550,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66566,7 +66566,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66582,7 +66582,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66598,7 +66598,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66614,7 +66614,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66630,7 +66630,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66646,7 +66646,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -66668,7 +66668,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -66745,7 +66745,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -66856,7 +66856,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -66967,7 +66967,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67078,7 +67078,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67189,7 +67189,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67300,7 +67300,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67411,7 +67411,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67455,7 +67455,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -67532,7 +67532,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67643,7 +67643,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67754,7 +67754,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67865,7 +67865,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -67976,7 +67976,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68087,7 +68087,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68198,7 +68198,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68242,7 +68242,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -68319,7 +68319,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68430,7 +68430,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68541,7 +68541,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68652,7 +68652,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68763,7 +68763,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68874,7 +68874,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -68985,7 +68985,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69029,7 +69029,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -69106,7 +69106,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69217,7 +69217,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69328,7 +69328,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69439,7 +69439,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69550,7 +69550,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69661,7 +69661,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69772,7 +69772,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -69816,7 +69816,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -69893,7 +69893,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70004,7 +70004,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70115,7 +70115,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70226,7 +70226,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70337,7 +70337,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70448,7 +70448,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70559,7 +70559,7 @@ exports[`Calendar renders correctly maxDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -70612,7 +70612,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -70654,7 +70654,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -70667,7 +70667,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -70713,9 +70713,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -70766,9 +70766,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -70816,7 +70816,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -70834,8 +70834,8 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -70904,7 +70904,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -70920,7 +70920,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -70936,7 +70936,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -70952,7 +70952,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -70968,7 +70968,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -70984,7 +70984,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -71000,7 +71000,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -71022,7 +71022,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -71099,7 +71099,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71210,7 +71210,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71321,7 +71321,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71432,7 +71432,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71543,7 +71543,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71654,7 +71654,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71765,7 +71765,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71809,7 +71809,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -71886,7 +71886,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -71997,7 +71997,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72108,7 +72108,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72219,7 +72219,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72330,7 +72330,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72441,7 +72441,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72552,7 +72552,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72596,7 +72596,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -72673,7 +72673,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72784,7 +72784,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -72895,7 +72895,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73006,7 +73006,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73117,7 +73117,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73228,7 +73228,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73339,7 +73339,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73383,7 +73383,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -73460,7 +73460,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73571,7 +73571,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73682,7 +73682,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73793,7 +73793,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -73904,7 +73904,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74015,7 +74015,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74126,7 +74126,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74170,7 +74170,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -74247,7 +74247,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74358,7 +74358,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74469,7 +74469,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74580,7 +74580,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74691,7 +74691,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74802,7 +74802,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74913,7 +74913,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -74966,7 +74966,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -75008,7 +75008,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -75021,7 +75021,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -75067,9 +75067,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -75120,9 +75120,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -75170,7 +75170,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -75188,8 +75188,8 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -75258,7 +75258,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75274,7 +75274,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75290,7 +75290,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75306,7 +75306,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75322,7 +75322,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75338,7 +75338,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75354,7 +75354,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -75376,7 +75376,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -75453,7 +75453,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -75564,7 +75564,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -75675,7 +75675,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -75786,7 +75786,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -75897,7 +75897,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76008,7 +76008,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76119,7 +76119,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76163,7 +76163,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -76240,7 +76240,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76351,7 +76351,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76462,7 +76462,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76573,7 +76573,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76684,7 +76684,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76795,7 +76795,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76906,7 +76906,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -76950,7 +76950,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -77027,7 +77027,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77138,7 +77138,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77249,7 +77249,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77360,7 +77360,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77471,7 +77471,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77582,7 +77582,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77693,7 +77693,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77737,7 +77737,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -77814,7 +77814,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -77925,7 +77925,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78036,7 +78036,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78147,7 +78147,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78258,7 +78258,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78369,7 +78369,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78480,7 +78480,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78524,7 +78524,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -78601,7 +78601,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78712,7 +78712,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78823,7 +78823,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -78934,7 +78934,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -79045,7 +79045,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -79156,7 +79156,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -79267,7 +79267,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange fromDate "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -79320,7 +79320,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -79362,7 +79362,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -79375,7 +79375,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -79421,9 +79421,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -79474,9 +79474,9 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -79524,7 +79524,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -79542,8 +79542,8 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -79612,7 +79612,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79628,7 +79628,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79644,7 +79644,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79660,7 +79660,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79676,7 +79676,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79692,7 +79692,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79708,7 +79708,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -79730,7 +79730,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -79807,7 +79807,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -79918,7 +79918,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80029,7 +80029,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80140,7 +80140,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80251,7 +80251,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80362,7 +80362,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80473,7 +80473,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80517,7 +80517,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -80594,7 +80594,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80705,7 +80705,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80816,7 +80816,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -80927,7 +80927,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81038,7 +81038,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81149,7 +81149,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81260,7 +81260,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81304,7 +81304,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -81381,7 +81381,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81492,7 +81492,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81603,7 +81603,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81714,7 +81714,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81825,7 +81825,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -81936,7 +81936,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82047,7 +82047,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82091,7 +82091,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -82168,7 +82168,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82279,7 +82279,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82390,7 +82390,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82501,7 +82501,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82612,7 +82612,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82723,7 +82723,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82834,7 +82834,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -82878,7 +82878,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -82955,7 +82955,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83066,7 +83066,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83177,7 +83177,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83288,7 +83288,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83399,7 +83399,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83510,7 +83510,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83621,7 +83621,7 @@ exports[`Calendar renders correctly maxDate minDate maxLengthDateRange isPeriod "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -83674,7 +83674,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -83716,7 +83716,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -83729,7 +83729,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -83775,9 +83775,9 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -83828,9 +83828,9 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -83878,7 +83878,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -83896,8 +83896,8 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -83966,7 +83966,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -83982,7 +83982,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -83998,7 +83998,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -84014,7 +84014,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -84030,7 +84030,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -84046,7 +84046,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -84062,7 +84062,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -84084,7 +84084,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -84161,7 +84161,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -84272,7 +84272,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -84383,7 +84383,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -84494,7 +84494,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -84605,7 +84605,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -84716,7 +84716,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -84824,7 +84824,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -84865,7 +84865,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -84942,7 +84942,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85050,7 +85050,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85158,7 +85158,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85266,7 +85266,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85374,7 +85374,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85482,7 +85482,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85590,7 +85590,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85631,7 +85631,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -85708,7 +85708,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85816,7 +85816,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -85924,7 +85924,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86032,7 +86032,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86140,7 +86140,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86248,7 +86248,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86356,7 +86356,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86397,7 +86397,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -86474,7 +86474,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86582,7 +86582,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86690,7 +86690,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86798,7 +86798,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -86906,7 +86906,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87014,7 +87014,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87122,7 +87122,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87163,7 +87163,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -87240,7 +87240,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87348,7 +87348,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87456,7 +87456,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87564,7 +87564,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87672,7 +87672,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87780,7 +87780,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87888,7 +87888,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -87929,7 +87929,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -88006,7 +88006,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -88114,7 +88114,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88225,7 +88225,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88336,7 +88336,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88447,7 +88447,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88558,7 +88558,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88669,7 +88669,7 @@ exports[`Calendar renders correctly maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -88722,7 +88722,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -88764,7 +88764,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -88777,7 +88777,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -88823,9 +88823,9 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -88876,9 +88876,9 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -88926,7 +88926,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -88944,8 +88944,8 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -89014,7 +89014,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89030,7 +89030,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89046,7 +89046,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89062,7 +89062,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89078,7 +89078,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89094,7 +89094,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89110,7 +89110,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -89132,7 +89132,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -89209,7 +89209,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89320,7 +89320,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89431,7 +89431,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89542,7 +89542,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89653,7 +89653,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89764,7 +89764,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89875,7 +89875,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -89919,7 +89919,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -89996,7 +89996,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90107,7 +90107,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90218,7 +90218,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90329,7 +90329,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90440,7 +90440,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90551,7 +90551,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90662,7 +90662,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90706,7 +90706,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -90783,7 +90783,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -90894,7 +90894,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91005,7 +91005,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91116,7 +91116,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91227,7 +91227,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91338,7 +91338,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91449,7 +91449,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91493,7 +91493,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -91570,7 +91570,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91681,7 +91681,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91792,7 +91792,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -91903,7 +91903,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92014,7 +92014,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92125,7 +92125,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92236,7 +92236,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92280,7 +92280,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -92357,7 +92357,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92468,7 +92468,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92579,7 +92579,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92690,7 +92690,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92801,7 +92801,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -92912,7 +92912,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -93023,7 +93023,7 @@ exports[`Calendar renders correctly minDate maxLengthDateRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -93076,7 +93076,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -93118,7 +93118,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -93131,7 +93131,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -93177,9 +93177,9 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -93230,9 +93230,9 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -93280,7 +93280,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -93298,8 +93298,8 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -93368,7 +93368,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93384,7 +93384,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93400,7 +93400,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93416,7 +93416,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93432,7 +93432,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93448,7 +93448,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93464,7 +93464,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -93486,7 +93486,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -93563,7 +93563,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -93674,7 +93674,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -93785,7 +93785,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -93896,7 +93896,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -94007,7 +94007,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94115,7 +94115,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94223,7 +94223,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94264,7 +94264,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -94341,7 +94341,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94449,7 +94449,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94557,7 +94557,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94665,7 +94665,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94773,7 +94773,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94881,7 +94881,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -94989,7 +94989,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95030,7 +95030,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -95107,7 +95107,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95215,7 +95215,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95323,7 +95323,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95431,7 +95431,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95560,7 +95560,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -95577,7 +95577,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -95688,7 +95688,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95796,7 +95796,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -95837,7 +95837,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -95914,7 +95914,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96022,7 +96022,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96130,7 +96130,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96238,7 +96238,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96346,7 +96346,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96454,7 +96454,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96562,7 +96562,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96603,7 +96603,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -96680,7 +96680,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96788,7 +96788,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -96896,7 +96896,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -97004,7 +97004,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -97112,7 +97112,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -97220,7 +97220,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -97328,7 +97328,7 @@ exports[`Calendar renders correctly not isValidDate 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] diff --git a/packages/calendar/src/Calendar/__tests__/__snapshots__/ModalCalendar.test.tsx.snap b/packages/calendar/src/Calendar/__tests__/__snapshots__/ModalCalendar.test.tsx.snap index 3fb96a67d..6fd85def7 100644 --- a/packages/calendar/src/Calendar/__tests__/__snapshots__/ModalCalendar.test.tsx.snap +++ b/packages/calendar/src/Calendar/__tests__/__snapshots__/ModalCalendar.test.tsx.snap @@ -59,15 +59,15 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -106,8 +106,8 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -118,7 +118,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -131,7 +131,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -173,7 +173,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -186,7 +186,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -232,9 +232,9 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -285,9 +285,9 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -335,7 +335,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -353,8 +353,8 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -423,7 +423,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -439,7 +439,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -455,7 +455,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -471,7 +471,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -487,7 +487,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -503,7 +503,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -519,7 +519,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -541,7 +541,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -618,7 +618,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -729,7 +729,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -840,7 +840,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -951,7 +951,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -1062,7 +1062,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1170,7 +1170,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1278,7 +1278,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1319,7 +1319,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -1396,7 +1396,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1504,7 +1504,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1612,7 +1612,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1720,7 +1720,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1828,7 +1828,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -1936,7 +1936,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2044,7 +2044,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2085,7 +2085,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -2162,7 +2162,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2270,7 +2270,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2378,7 +2378,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2486,7 +2486,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2615,7 +2615,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -2632,7 +2632,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -2743,7 +2743,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2851,7 +2851,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -2892,7 +2892,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -2969,7 +2969,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3077,7 +3077,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3185,7 +3185,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3293,7 +3293,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3401,7 +3401,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3509,7 +3509,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3617,7 +3617,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3658,7 +3658,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -3735,7 +3735,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3843,7 +3843,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -3951,7 +3951,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4059,7 +4059,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4167,7 +4167,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4275,7 +4275,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4383,7 +4383,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -4425,8 +4425,8 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` @@ -4437,9 +4437,9 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -4459,13 +4459,13 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -4480,7 +4480,7 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -4517,12 +4517,12 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -4534,13 +4534,13 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -4583,12 +4583,12 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -4600,13 +4600,13 @@ exports[`ModalCalendar bottomView IButtonView.large 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -4680,15 +4680,15 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -4727,8 +4727,8 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -4739,7 +4739,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4752,7 +4752,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -4794,7 +4794,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4807,7 +4807,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -4853,9 +4853,9 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -4906,9 +4906,9 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -4956,7 +4956,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4974,8 +4974,8 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -5044,7 +5044,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5060,7 +5060,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5076,7 +5076,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5092,7 +5092,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5108,7 +5108,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5124,7 +5124,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5140,7 +5140,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -5162,7 +5162,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -5239,7 +5239,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -5350,7 +5350,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -5461,7 +5461,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -5572,7 +5572,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -5683,7 +5683,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5791,7 +5791,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5899,7 +5899,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -5940,7 +5940,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -6017,7 +6017,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6125,7 +6125,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6233,7 +6233,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6341,7 +6341,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6449,7 +6449,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6557,7 +6557,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6665,7 +6665,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6706,7 +6706,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -6783,7 +6783,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6891,7 +6891,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -6999,7 +6999,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7107,7 +7107,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7236,7 +7236,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -7253,7 +7253,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -7364,7 +7364,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7472,7 +7472,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7513,7 +7513,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -7590,7 +7590,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7698,7 +7698,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7806,7 +7806,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -7914,7 +7914,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8022,7 +8022,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8130,7 +8130,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8238,7 +8238,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8279,7 +8279,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -8356,7 +8356,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8464,7 +8464,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8572,7 +8572,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8680,7 +8680,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8788,7 +8788,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -8896,7 +8896,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -9004,7 +9004,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -9046,8 +9046,8 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] @@ -9058,13 +9058,13 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -9080,7 +9080,7 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -9116,13 +9116,13 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -9133,13 +9133,13 @@ exports[`ModalCalendar bottomView IButtonView.small onAcceptDateRangeChange 1`] { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingHorizontal": 6, + "paddingHorizontal": 4, }, undefined, ], @@ -9213,15 +9213,15 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -9260,8 +9260,8 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -9272,7 +9272,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9285,7 +9285,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -9327,7 +9327,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9340,7 +9340,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -9386,9 +9386,9 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -9439,9 +9439,9 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -9489,7 +9489,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9507,8 +9507,8 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -9577,7 +9577,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9593,7 +9593,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9609,7 +9609,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9625,7 +9625,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9641,7 +9641,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9657,7 +9657,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9673,7 +9673,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -9695,7 +9695,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -9772,7 +9772,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -9883,7 +9883,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -9994,7 +9994,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -10105,7 +10105,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -10216,7 +10216,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10324,7 +10324,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10432,7 +10432,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10473,7 +10473,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -10550,7 +10550,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10658,7 +10658,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10766,7 +10766,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10874,7 +10874,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -10982,7 +10982,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11090,7 +11090,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11198,7 +11198,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11239,7 +11239,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -11316,7 +11316,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11424,7 +11424,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11532,7 +11532,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11640,7 +11640,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -11769,7 +11769,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -11786,7 +11786,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -11897,7 +11897,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12005,7 +12005,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12046,7 +12046,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -12123,7 +12123,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12231,7 +12231,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12339,7 +12339,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12447,7 +12447,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12555,7 +12555,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12663,7 +12663,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12771,7 +12771,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12812,7 +12812,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -12889,7 +12889,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -12997,7 +12997,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13105,7 +13105,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13213,7 +13213,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13321,7 +13321,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13429,7 +13429,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13537,7 +13537,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -13579,8 +13579,8 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` @@ -13591,13 +13591,13 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -13613,7 +13613,7 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -13649,13 +13649,13 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -13666,13 +13666,13 @@ exports[`ModalCalendar bottomView IButtonView.small onDateRangeChange 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingHorizontal": 6, + "paddingHorizontal": 4, }, undefined, ], @@ -13746,15 +13746,15 @@ exports[`ModalCalendar renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -13793,8 +13793,8 @@ exports[`ModalCalendar renders correctly 1`] = ` "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -13805,7 +13805,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -13818,7 +13818,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -13860,7 +13860,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -13873,7 +13873,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -13919,9 +13919,9 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -13972,9 +13972,9 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -14022,7 +14022,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -14040,8 +14040,8 @@ exports[`ModalCalendar renders correctly 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -14110,7 +14110,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14126,7 +14126,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14142,7 +14142,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14158,7 +14158,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14174,7 +14174,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14190,7 +14190,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14206,7 +14206,7 @@ exports[`ModalCalendar renders correctly 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -14228,7 +14228,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -14305,7 +14305,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -14416,7 +14416,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -14527,7 +14527,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -14638,7 +14638,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -14749,7 +14749,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14857,7 +14857,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -14965,7 +14965,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15006,7 +15006,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -15083,7 +15083,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15191,7 +15191,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15299,7 +15299,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15407,7 +15407,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15515,7 +15515,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15623,7 +15623,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15731,7 +15731,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15772,7 +15772,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -15849,7 +15849,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -15957,7 +15957,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16065,7 +16065,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16173,7 +16173,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16302,7 +16302,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -16319,7 +16319,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -16430,7 +16430,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16538,7 +16538,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16579,7 +16579,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -16656,7 +16656,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16764,7 +16764,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16872,7 +16872,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -16980,7 +16980,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17088,7 +17088,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17196,7 +17196,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17304,7 +17304,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17345,7 +17345,7 @@ exports[`ModalCalendar renders correctly 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -17422,7 +17422,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17530,7 +17530,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17638,7 +17638,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17746,7 +17746,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17854,7 +17854,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -17962,7 +17962,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -18070,7 +18070,7 @@ exports[`ModalCalendar renders correctly 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -18112,8 +18112,8 @@ exports[`ModalCalendar renders correctly 1`] = ` @@ -18124,9 +18124,9 @@ exports[`ModalCalendar renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -18203,15 +18203,15 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -18250,8 +18250,8 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -18262,7 +18262,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -18275,7 +18275,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -18317,7 +18317,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -18330,7 +18330,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -18376,9 +18376,9 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -18429,9 +18429,9 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -18479,7 +18479,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -18497,8 +18497,8 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -18567,7 +18567,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18583,7 +18583,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18599,7 +18599,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18615,7 +18615,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18631,7 +18631,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18647,7 +18647,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18663,7 +18663,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -18685,7 +18685,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -18762,7 +18762,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18873,7 +18873,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -18984,7 +18984,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -19095,7 +19095,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -19206,7 +19206,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19314,7 +19314,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19422,7 +19422,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19463,7 +19463,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -19540,7 +19540,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19648,7 +19648,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19756,7 +19756,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19864,7 +19864,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -19972,7 +19972,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20080,7 +20080,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20188,7 +20188,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20229,7 +20229,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -20306,7 +20306,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20414,7 +20414,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20522,7 +20522,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20630,7 +20630,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -20759,7 +20759,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -20776,7 +20776,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -20908,7 +20908,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -20925,7 +20925,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -21035,7 +21035,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21076,7 +21076,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -21153,7 +21153,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21261,7 +21261,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21369,7 +21369,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21477,7 +21477,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21585,7 +21585,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21693,7 +21693,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21801,7 +21801,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -21842,7 +21842,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -21919,7 +21919,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22027,7 +22027,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22135,7 +22135,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22243,7 +22243,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22351,7 +22351,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22459,7 +22459,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22567,7 +22567,7 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -22609,8 +22609,8 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` @@ -22621,9 +22621,9 @@ exports[`ModalCalendar renders correctly initialRange 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -22700,15 +22700,15 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { - "width": 726, + "width": 734, }, ] } @@ -22747,8 +22747,8 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -22759,7 +22759,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -22772,7 +22772,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -22814,7 +22814,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -22827,7 +22827,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -22873,9 +22873,9 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -22926,9 +22926,9 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -22976,7 +22976,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -22994,8 +22994,8 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "paddingRight": 5, }, { - "height": 390, - "width": 678, + "height": 260, + "width": 702, }, ] } @@ -23064,7 +23064,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23080,7 +23080,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23096,7 +23096,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23112,7 +23112,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23128,7 +23128,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23144,7 +23144,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23160,7 +23160,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday [ { "color": "#444B5A", - "marginBottom": 7.5, + "marginBottom": 5, "marginTop": 0, }, ] @@ -23182,7 +23182,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -23259,7 +23259,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23370,7 +23370,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23481,7 +23481,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23592,7 +23592,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -23703,7 +23703,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -23811,7 +23811,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -23919,7 +23919,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -23960,7 +23960,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -24037,7 +24037,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24145,7 +24145,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24253,7 +24253,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24361,7 +24361,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24469,7 +24469,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24577,7 +24577,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24685,7 +24685,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24726,7 +24726,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -24803,7 +24803,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -24911,7 +24911,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25019,7 +25019,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25127,7 +25127,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25256,7 +25256,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "overflow": "hidden", }, { - "borderRadius": 6, + "borderRadius": 4, "width": "100%", }, { @@ -25273,7 +25273,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, { @@ -25384,7 +25384,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25492,7 +25492,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25533,7 +25533,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -25610,7 +25610,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25718,7 +25718,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25826,7 +25826,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -25934,7 +25934,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26042,7 +26042,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26150,7 +26150,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26258,7 +26258,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26299,7 +26299,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "flexDirection": "row", "justifyContent": "space-around", - "marginVertical": 1.5, + "marginVertical": 1, } } > @@ -26376,7 +26376,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26484,7 +26484,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26592,7 +26592,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26700,7 +26700,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26808,7 +26808,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -26916,7 +26916,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27024,7 +27024,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "backgroundColor": "rgba(255, 255, 255, 0)", "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, + "fontSize": 14, "fontWeight": "300", }, ] @@ -27066,8 +27066,8 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday @@ -27078,9 +27078,9 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -27098,7 +27098,7 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -27135,12 +27135,12 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -27152,13 +27152,13 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -27201,12 +27201,12 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -27218,13 +27218,13 @@ exports[`ModalCalendar renders correctly initialRange only fromDate isShowToday { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/calendar/src/Calendar/__tests__/functions.test.ts b/packages/calendar/src/Calendar/__tests__/functions.test.ts index eacb4918b..77a66f9a5 100644 --- a/packages/calendar/src/Calendar/__tests__/functions.test.ts +++ b/packages/calendar/src/Calendar/__tests__/functions.test.ts @@ -191,7 +191,7 @@ describe('Calendar-functions', () => { dates: { '2022-12-15': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, endingDay: true, startingDay: true, textColor: '#000', @@ -229,7 +229,7 @@ describe('Calendar-functions', () => { dates: { '2022-01-20': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, customTextStyle: undefined, endingDay: true, startingDay: true, @@ -249,7 +249,7 @@ describe('Calendar-functions', () => { }, '2022-01-24': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, customTextStyle: undefined, endingDay: true, startingDay: true, @@ -288,7 +288,7 @@ describe('Calendar-functions', () => { dates: { '2022-01-22': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, endingDay: true, startingDay: true, textColor: '#000', @@ -304,7 +304,7 @@ describe('Calendar-functions', () => { }, '2022-01-24': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, customTextStyle: undefined, endingDay: true, startingDay: true, @@ -342,7 +342,7 @@ describe('Calendar-functions', () => { dates: { '2022-01-22': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, endingDay: true, startingDay: true, textColor: '#000', @@ -354,7 +354,7 @@ describe('Calendar-functions', () => { }, '2022-01-24': { color: '#fff', - customContainerStyle: {borderRadius: 6, width: '100%'}, + customContainerStyle: {borderRadius: 4, width: '100%'}, endingDay: true, startingDay: true, diff --git a/packages/calendar/src/Calendar/components/CalendarHeader.tsx b/packages/calendar/src/Calendar/components/CalendarHeader.tsx index ad14a8e03..44672eecc 100644 --- a/packages/calendar/src/Calendar/components/CalendarHeader.tsx +++ b/packages/calendar/src/Calendar/components/CalendarHeader.tsx @@ -1,7 +1,7 @@ import { createStyles, Pressable, - rem, + px, SimpleIcon, TouchableOpacity, Typography, @@ -65,10 +65,10 @@ const stylesCreate = createStyles(_ => ({ flexDirection: 'row', alignItems: 'center', justifyContent: 'center', - paddingTop: rem(12), + paddingTop: px(12), }, title: { - width: rem(160), + width: px(160), flexDirection: 'row', alignItems: 'center', justifyContent: 'center', diff --git a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/CalendarHeader.test.tsx.snap b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/CalendarHeader.test.tsx.snap index b64b64801..8ea3bed21 100644 --- a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/CalendarHeader.test.tsx.snap +++ b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/CalendarHeader.test.tsx.snap @@ -7,7 +7,7 @@ exports[`CalendarHeader render 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "paddingTop": 18, + "paddingTop": 12, } } > @@ -49,7 +49,7 @@ exports[`CalendarHeader render 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -62,7 +62,7 @@ exports[`CalendarHeader render 1`] = ` "alignItems": "center", "flexDirection": "row", "justifyContent": "center", - "width": 240, + "width": 160, } } > @@ -108,9 +108,9 @@ exports[`CalendarHeader render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -161,9 +161,9 @@ exports[`CalendarHeader render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -211,7 +211,7 @@ exports[`CalendarHeader render 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Months.test.tsx.snap b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Months.test.tsx.snap index 2b104fbc8..1ea135297 100644 --- a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Months.test.tsx.snap +++ b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Months.test.tsx.snap @@ -90,9 +90,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -107,9 +107,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -153,9 +153,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -170,9 +170,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -216,9 +216,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -233,9 +233,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -293,9 +293,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -310,9 +310,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -356,9 +356,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -373,9 +373,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -419,9 +419,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -436,9 +436,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -496,9 +496,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -513,9 +513,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -559,9 +559,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -576,9 +576,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -622,9 +622,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -639,9 +639,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -699,9 +699,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -716,9 +716,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -762,9 +762,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -779,9 +779,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -825,9 +825,9 @@ exports[`Months press month 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -842,9 +842,9 @@ exports[`Months press month 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -949,9 +949,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -966,9 +966,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1012,9 +1012,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1029,9 +1029,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1075,9 +1075,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1092,9 +1092,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1152,9 +1152,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1169,9 +1169,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1215,9 +1215,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1232,9 +1232,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1278,9 +1278,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1295,9 +1295,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1355,9 +1355,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1372,9 +1372,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1418,9 +1418,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1435,9 +1435,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1481,9 +1481,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1498,9 +1498,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1558,9 +1558,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1575,9 +1575,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1621,9 +1621,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1638,9 +1638,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1684,9 +1684,9 @@ exports[`Months render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 3, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1701,9 +1701,9 @@ exports[`Months render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] diff --git a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Years.test.tsx.snap b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Years.test.tsx.snap index e28b37693..1d20c42bb 100644 --- a/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Years.test.tsx.snap +++ b/packages/calendar/src/Calendar/components/__tests__/__snapshots__/Years.test.tsx.snap @@ -94,9 +94,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -111,9 +111,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -157,9 +157,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -174,9 +174,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -220,9 +220,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -237,9 +237,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -297,9 +297,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -314,9 +314,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -360,9 +360,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -377,9 +377,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -423,9 +423,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -440,9 +440,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -500,9 +500,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -517,9 +517,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -563,9 +563,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -580,9 +580,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -626,9 +626,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -643,9 +643,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -703,9 +703,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -720,9 +720,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -766,9 +766,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -783,9 +783,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -829,9 +829,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -846,9 +846,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -906,9 +906,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -923,9 +923,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -969,9 +969,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -986,9 +986,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1032,9 +1032,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1049,9 +1049,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1109,9 +1109,9 @@ exports[`Years press year 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1126,9 +1126,9 @@ exports[`Years press year 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1237,9 +1237,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1254,9 +1254,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1300,9 +1300,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1317,9 +1317,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1363,9 +1363,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1380,9 +1380,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1440,9 +1440,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1457,9 +1457,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1503,9 +1503,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1520,9 +1520,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1566,9 +1566,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1583,9 +1583,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1643,9 +1643,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1660,9 +1660,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1706,9 +1706,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1723,9 +1723,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1769,9 +1769,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1786,9 +1786,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1846,9 +1846,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1863,9 +1863,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1909,9 +1909,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1926,9 +1926,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1972,9 +1972,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -1989,9 +1989,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -2049,9 +2049,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -2066,9 +2066,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -2112,9 +2112,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -2129,9 +2129,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -2175,9 +2175,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -2192,9 +2192,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -2252,9 +2252,9 @@ exports[`Years render 1`] = ` [ { "alignItems": "center", - "borderRadius": 6, + "borderRadius": 4, "flex": 4, - "paddingVertical": 30, + "paddingVertical": 20, }, { "backgroundColor": "#FFF", @@ -2269,9 +2269,9 @@ exports[`Years render 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] diff --git a/packages/calendar/src/Calendar/functions.ts b/packages/calendar/src/Calendar/functions.ts index d5b9fa670..de4c1c9fc 100644 --- a/packages/calendar/src/Calendar/functions.ts +++ b/packages/calendar/src/Calendar/functions.ts @@ -1,6 +1,6 @@ import {DateData} from 'react-native-calendars'; import {MarkingProps} from 'react-native-calendars/src/calendar/day/marking'; -import {rem} from '@lad-tech/mobydick-core'; +import {px} from '@lad-tech/mobydick-core'; import { colorElem, @@ -26,7 +26,7 @@ const getStyleToday = (colorToday: colorElem): MarkingProps => { textColor: colorToday.textColor, customContainerStyle: { - borderRadius: rem(4), + borderRadius: px(4), width: '100%', }, customTextStyle: { @@ -63,7 +63,7 @@ export const getAllDatesBetween = ( textColor: colorPrime.textColor, customContainerStyle: { - borderRadius: rem(4), + borderRadius: px(4), width: '100%', }, customTextStyle: @@ -100,7 +100,7 @@ export const getAllDatesBetween = ( textColor: colorPrime.textColor, color: colorPrime.color, customContainerStyle: { - borderRadius: rem(4), + borderRadius: px(4), width: '100%', }, diff --git a/packages/calendar/src/Calendar/stylesCreate.ts b/packages/calendar/src/Calendar/stylesCreate.ts index db7bd9123..ccd145596 100644 --- a/packages/calendar/src/Calendar/stylesCreate.ts +++ b/packages/calendar/src/Calendar/stylesCreate.ts @@ -1,5 +1,5 @@ import {Dimensions} from 'react-native'; -import {createStyles, rem} from '@lad-tech/mobydick-core'; +import {createStyles, px} from '@lad-tech/mobydick-core'; const {width: WIDTH} = Dimensions.get('window'); @@ -11,8 +11,8 @@ const stylesCreate = createStyles(({spaces}) => ({ width: WIDTH - spaces.Space8 * 2, }, daysView: { - width: WIDTH - spaces.Space8 * 2 - rem(16) * 2, - height: rem(260), + width: WIDTH - spaces.Space8 * 2 - px(16) * 2, + height: px(260), }, })); diff --git a/packages/core/src/chat/components/ChatInputField.tsx b/packages/core/src/chat/components/ChatInputField.tsx index 8865b9283..77f05d9aa 100644 --- a/packages/core/src/chat/components/ChatInputField.tsx +++ b/packages/core/src/chat/components/ChatInputField.tsx @@ -1,10 +1,11 @@ import {Platform} from 'react-native'; -import {createStyles, rem} from '../../styles'; +import {createStyles} from '../../styles'; import InputField from '../../inputs/components/InputField/InputField'; import useStyles from '../../styles/hooks/useStyles'; import {LABELS} from '../../other'; import {IInputFieldsProps} from '../../inputs'; +import px from '../../styles/utils/px'; const ChatInputField = (props: IInputFieldsProps) => { const {textInputContainerStyle, style, containerStyle, ...otherProps} = props; @@ -24,8 +25,8 @@ const ChatInputField = (props: IInputFieldsProps) => { const stylesCreate = createStyles(({spaces}) => ({ inputContainer: { - minHeight: rem(38), - maxHeight: rem(196), + minHeight: px(38), + maxHeight: px(196), width: '100%', borderWidth: undefined, marginVertical: 0, diff --git a/packages/core/src/chat/components/ChatMessage.tsx b/packages/core/src/chat/components/ChatMessage.tsx index f89379ea4..da8fecf60 100644 --- a/packages/core/src/chat/components/ChatMessage.tsx +++ b/packages/core/src/chat/components/ChatMessage.tsx @@ -4,10 +4,10 @@ import View from '../../basic/components/View/View'; import {Typography} from '../../typography'; import {isNumber} from '../../other/functions/isNumber'; import useStyles from '../../styles/hooks/useStyles'; -import rem from '../../styles/utils/rem'; import {isValidMessageTime} from '../functions/isValidMessageTime'; import {IChatMessage} from '../types'; import {createStyles} from '../../styles'; +import px from '../../styles/utils/px'; const ChatMessage = (props: IChatMessage) => { const {isMe, message, image, time} = props; @@ -64,10 +64,10 @@ const stylesCreate = createStyles(({spaces, colors}, isMe: boolean) => ({ margin: spaces.Space4, }, image: { - minWidth: rem(129), - maxWidth: rem(148), - minHeight: rem(129), - maxHeight: rem(148), + minWidth: px(129), + maxWidth: px(148), + minHeight: px(129), + maxHeight: px(148), }, textArea: { paddingTop: spaces.Space8, diff --git a/packages/core/src/chat/components/ChatPressableIcon.tsx b/packages/core/src/chat/components/ChatPressableIcon.tsx index 8ea1313fa..fb7912402 100644 --- a/packages/core/src/chat/components/ChatPressableIcon.tsx +++ b/packages/core/src/chat/components/ChatPressableIcon.tsx @@ -1,10 +1,10 @@ import TouchableOpacity from '../../basic/components/TouchableOpacity/TouchableOpacity'; import SimpleIcon, {SimpleIconName} from '../../styles/icons/font/SimpleIcon'; import useStyles from '../../styles/hooks/useStyles'; -import rem from '../../styles/utils/rem'; import useTheme from '../../styles/hooks/useTheme'; import {ITouchableOpacityProps} from '../../basic'; import {createStyles} from '../../styles'; +import px from '../../styles/utils/px'; interface IChatPressableIcon extends ITouchableOpacityProps { name: SimpleIconName; @@ -32,8 +32,8 @@ const ChatPressableIcon = (props: IChatPressableIcon) => { const stylesCreate = createStyles(({spaces}) => ({ container: { - width: rem(38), - height: rem(38), + width: px(38), + height: px(38), borderRadius: spaces.Space8, marginLeft: spaces.Space6, justifyContent: 'center', diff --git a/packages/core/src/chat/components/__tests__/__snapshots__/ChatInput.test.tsx.snap b/packages/core/src/chat/components/__tests__/__snapshots__/ChatInput.test.tsx.snap index ea7cb44d8..fbf5274ce 100644 --- a/packages/core/src/chat/components/__tests__/__snapshots__/ChatInput.test.tsx.snap +++ b/packages/core/src/chat/components/__tests__/__snapshots__/ChatInput.test.tsx.snap @@ -24,8 +24,8 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` "alignItems": "flex-end", "backgroundColor": "#FFF", "flexDirection": "row", - "paddingHorizontal": 30, - "paddingVertical": 24, + "paddingHorizontal": 20, + "paddingVertical": 16, "width": "100%", }, undefined, @@ -36,13 +36,13 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -57,14 +57,14 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -72,9 +72,9 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -95,20 +95,20 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -155,12 +155,12 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#E5F0FF", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -170,7 +170,7 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -202,8 +202,8 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` "alignItems": "flex-end", "backgroundColor": "#FFF", "flexDirection": "row", - "paddingHorizontal": 30, - "paddingVertical": 24, + "paddingHorizontal": 20, + "paddingVertical": 16, "width": "100%", }, { @@ -216,13 +216,13 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -237,14 +237,14 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -252,9 +252,9 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -275,18 +275,18 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, [ { "color": "#20242D", - "fontSize": 24, + "fontSize": 16, "padding": 0, }, ], @@ -335,12 +335,12 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` { "alignItems": "center", "backgroundColor": "#E5F0FF", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -350,7 +350,7 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly android 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -387,8 +387,8 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle "alignItems": "flex-end", "backgroundColor": "#FFF", "flexDirection": "row", - "paddingHorizontal": 30, - "paddingVertical": 24, + "paddingHorizontal": 20, + "paddingVertical": 16, "width": "100%", }, { @@ -401,13 +401,13 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -422,14 +422,14 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -437,9 +437,9 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -460,20 +460,20 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -520,12 +520,12 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle { "alignItems": "center", "backgroundColor": "#E5F0FF", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -535,7 +535,7 @@ exports[`@lad-tech/mobydick-core/ChatInput renders correctly with containerStyle { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/chat/components/__tests__/__snapshots__/ChatInputField.test.tsx.snap b/packages/core/src/chat/components/__tests__/__snapshots__/ChatInputField.test.tsx.snap index 4cd43d1f0..0a44534f5 100644 --- a/packages/core/src/chat/components/__tests__/__snapshots__/ChatInputField.test.tsx.snap +++ b/packages/core/src/chat/components/__tests__/__snapshots__/ChatInputField.test.tsx.snap @@ -5,13 +5,13 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -26,14 +26,14 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly 1`] = ` "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -41,9 +41,9 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly 1`] = ` "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -65,20 +65,20 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -100,13 +100,13 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 1 style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -121,14 +121,14 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 1 "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -136,9 +136,9 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 1 "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -159,20 +159,20 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 1 style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -193,13 +193,13 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 2 style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -214,14 +214,14 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 2 "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -229,9 +229,9 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 2 "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, undefined, @@ -252,20 +252,20 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly focused/blur 2 style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -286,13 +286,13 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly with props 1`] style={ [ { - "minWidth": 195, + "minWidth": 130, }, [ { "flex": 1, "flexDirection": "column", - "marginRight": 3, + "marginRight": 2, "minWidth": undefined, }, undefined, @@ -307,14 +307,14 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly with props 1`] "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, [ @@ -322,9 +322,9 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly with props 1`] "alignItems": "center", "borderWidth": undefined, "marginVertical": 0, - "maxHeight": 294, - "minHeight": 57, - "paddingVertical": 12, + "maxHeight": 196, + "minHeight": 38, + "paddingVertical": 8, "width": "100%", }, { @@ -348,20 +348,20 @@ exports[`@lad-tech/mobydick-core/ChatInputField renders correctly with props 1`] style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { diff --git a/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessage.test.tsx.snap b/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessage.test.tsx.snap index bca67f35d..a33cb088c 100644 --- a/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessage.test.tsx.snap +++ b/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessage.test.tsx.snap @@ -15,18 +15,18 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotValid time { "backgroundColor": "#FFF", "borderBottomLeftRadius": 0, - "borderBottomRightRadius": 15, - "borderRadius": 15, - "marginVertical": 6, + "borderBottomRightRadius": 10, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -37,9 +37,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotValid time { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -52,8 +52,8 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotValid time style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } /> @@ -75,19 +75,19 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe 1`] = ` style={ { "backgroundColor": "#2B78EE", - "borderBottomLeftRadius": 15, + "borderBottomLeftRadius": 10, "borderBottomRightRadius": 0, - "borderRadius": 15, - "marginVertical": 6, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -98,9 +98,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -113,8 +113,8 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe 1`] = ` style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -125,9 +125,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe 1`] = ` { "color": "rgba(255, 255, 255, 0.75)", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -154,10 +154,10 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image 1`] = style={ { "backgroundColor": "#2B78EE", - "borderBottomLeftRadius": 15, + "borderBottomLeftRadius": 10, "borderBottomRightRadius": 0, - "borderRadius": 15, - "marginVertical": 6, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -165,13 +165,13 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image 1`] = style={ [ { - "maxHeight": 222, - "maxWidth": 222, - "minHeight": 193.5, - "minWidth": 193.5, + "maxHeight": 148, + "maxWidth": 148, + "minHeight": 129, + "minWidth": 129, }, { - "margin": 6, + "margin": 4, }, ] } @@ -184,10 +184,10 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image 1`] = } style={ { - "maxHeight": 222, - "maxWidth": 222, - "minHeight": 193.5, - "minWidth": 193.5, + "maxHeight": 148, + "maxWidth": 148, + "minHeight": 129, + "minWidth": 129, } } /> @@ -196,8 +196,8 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image 1`] = style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -208,9 +208,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image 1`] = { "color": "rgba(255, 255, 255, 0.75)", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -237,10 +237,10 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image number style={ { "backgroundColor": "#2B78EE", - "borderBottomLeftRadius": 15, + "borderBottomLeftRadius": 10, "borderBottomRightRadius": 0, - "borderRadius": 15, - "marginVertical": 6, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -248,13 +248,13 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image number style={ [ { - "maxHeight": 222, - "maxWidth": 222, - "minHeight": 193.5, - "minWidth": 193.5, + "maxHeight": 148, + "maxWidth": 148, + "minHeight": 129, + "minWidth": 129, }, { - "margin": 6, + "margin": 4, }, ] } @@ -263,10 +263,10 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image number source={42} style={ { - "maxHeight": 222, - "maxWidth": 222, - "minHeight": 193.5, - "minWidth": 193.5, + "maxHeight": 148, + "maxWidth": 148, + "minHeight": 129, + "minWidth": 129, } } /> @@ -275,8 +275,8 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image number style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -287,9 +287,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isMe image number { "color": "rgba(255, 255, 255, 0.75)", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -317,18 +317,18 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotMe 1`] = ` { "backgroundColor": "#FFF", "borderBottomLeftRadius": 0, - "borderBottomRightRadius": 15, - "borderRadius": 15, - "marginVertical": 6, + "borderBottomRightRadius": 10, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -339,9 +339,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotMe 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -354,8 +354,8 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotMe 1`] = ` style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -366,9 +366,9 @@ exports[`@lad-tech/mobydick-core/ChatMessage renders correctly isNotMe 1`] = ` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] diff --git a/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessageAvatar.test.tsx.snap b/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessageAvatar.test.tsx.snap index 70d04421e..92d8d608e 100644 --- a/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessageAvatar.test.tsx.snap +++ b/packages/core/src/chat/components/__tests__/__snapshots__/ChatMessageAvatar.test.tsx.snap @@ -40,9 +40,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] style={ { "alignSelf": "flex-end", - "marginVertical": 6, + "marginVertical": 4, "opacity": 1, - "paddingRight": 12, + "paddingRight": 8, } } > @@ -52,10 +52,10 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] { "alignItems": "center", "alignSelf": "center", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "width": 36, + "width": 24, }, { "backgroundColor": "#2B78EE", @@ -74,9 +74,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -100,18 +100,18 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] { "backgroundColor": "#FFF", "borderBottomLeftRadius": 0, - "borderBottomRightRadius": 15, - "borderRadius": 15, - "marginVertical": 6, + "borderBottomRightRadius": 10, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -122,9 +122,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -137,8 +137,8 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -149,9 +149,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly isNotMe 1`] { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -205,9 +205,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] style={ { "alignSelf": "flex-end", - "marginVertical": 6, + "marginVertical": 4, "opacity": 1, - "paddingRight": 12, + "paddingRight": 8, } } > @@ -217,10 +217,10 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] { "alignItems": "center", "alignSelf": "center", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "width": 36, + "width": 24, }, { "backgroundColor": "#2B78EE", @@ -239,9 +239,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -264,19 +264,19 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] style={ { "backgroundColor": "#2B78EE", - "borderBottomLeftRadius": 15, + "borderBottomLeftRadius": 10, "borderBottomRightRadius": 0, - "borderRadius": 15, - "marginVertical": 6, + "borderRadius": 10, + "marginVertical": 4, } } > @@ -287,9 +287,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -302,8 +302,8 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] style={ { "alignSelf": "flex-end", - "paddingBottom": 12, - "paddingHorizontal": 9, + "paddingBottom": 8, + "paddingHorizontal": 6, } } > @@ -314,9 +314,9 @@ exports[`@lad-tech/mobydick-core/ChatMessageAvatar renders correctly onPress 1`] { "color": "rgba(255, 255, 255, 0.75)", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] diff --git a/packages/core/src/chat/components/__tests__/__snapshots__/ChatPressableIcon.test.tsx.snap b/packages/core/src/chat/components/__tests__/__snapshots__/ChatPressableIcon.test.tsx.snap index 63ef5a26a..5ad4435cb 100644 --- a/packages/core/src/chat/components/__tests__/__snapshots__/ChatPressableIcon.test.tsx.snap +++ b/packages/core/src/chat/components/__tests__/__snapshots__/ChatPressableIcon.test.tsx.snap @@ -33,12 +33,12 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#E5F0FF", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -48,7 +48,7 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -90,12 +90,12 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly disabled 1` { "alignItems": "center", "backgroundColor": "black", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -105,7 +105,7 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly disabled 1` { "color": "red", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -147,12 +147,12 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly with props { "alignItems": "center", "backgroundColor": "black", - "borderRadius": 12, - "height": 57, + "borderRadius": 8, + "height": 38, "justifyContent": "center", - "marginLeft": 9, + "marginLeft": 6, "opacity": 1, - "width": 57, + "width": 38, } } > @@ -162,7 +162,7 @@ exports[`@lad-tech/mobydick-core/ChatPressableIcon renders correctly with props { "color": "red", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/controls/CheckBox/CheckSquare.tsx b/packages/core/src/controls/CheckBox/CheckSquare.tsx index 78fbc958d..0de2e6245 100644 --- a/packages/core/src/controls/CheckBox/CheckSquare.tsx +++ b/packages/core/src/controls/CheckBox/CheckSquare.tsx @@ -3,16 +3,16 @@ import {FC} from 'react'; import {IPressableProps, Pressable} from '../../basic/components/Pressable'; import {ICommonControlProps} from '../types'; import {Check} from '../../styles/icons'; -import rem from '../../styles/utils/rem'; import useTheme from '../../styles/hooks/useTheme'; +import px from '../../styles/utils/px'; const CheckSquare: FC = ({ selected, ...rest }) => { const {colors} = useTheme(); - const width = rest.width || rem(20); - const height = rest.height || rem(20); + const width = rest.width || px(20); + const height = rest.height || px(20); return ( diff --git a/packages/core/src/controls/CheckBox/__tests__/__snapshots__/CheckBox.test.tsx.snap b/packages/core/src/controls/CheckBox/__tests__/__snapshots__/CheckBox.test.tsx.snap index 4c5c052ec..71251bc09 100644 --- a/packages/core/src/controls/CheckBox/__tests__/__snapshots__/CheckBox.test.tsx.snap +++ b/packages/core/src/controls/CheckBox/__tests__/__snapshots__/CheckBox.test.tsx.snap @@ -78,10 +78,10 @@ exports[`CheckBox should renders correctly 1`] = ` [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -174,10 +174,10 @@ exports[`CheckBox should renders correctly checked 1`] = ` [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, + "borderRadius": 4, "borderWidth": 0, - "height": 30, - "width": 30, + "height": 20, + "width": 20, }, undefined, ] @@ -186,8 +186,8 @@ exports[`CheckBox should renders correctly checked 1`] = ` > ({ container: { flexDirection: 'row', diff --git a/packages/core/src/controls/ControlsLists/__tests__/__snapshots__/ControlsList.tsx.snap b/packages/core/src/controls/ControlsLists/__tests__/__snapshots__/ControlsList.tsx.snap index 6fdaa5c57..1deeb4c56 100644 --- a/packages/core/src/controls/ControlsLists/__tests__/__snapshots__/ControlsList.tsx.snap +++ b/packages/core/src/controls/ControlsLists/__tests__/__snapshots__/ControlsList.tsx.snap @@ -88,10 +88,10 @@ exports[`ControlsList should renders correctly with checkbox type 1`] = ` [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -105,9 +105,9 @@ exports[`ControlsList should renders correctly with checkbox type 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -193,10 +193,10 @@ exports[`ControlsList should renders correctly with checkbox type 1`] = ` [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -210,9 +210,9 @@ exports[`ControlsList should renders correctly with checkbox type 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -312,10 +312,10 @@ exports[`ControlsList should renders correctly with checkbox type and horizontal [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -329,9 +329,9 @@ exports[`ControlsList should renders correctly with checkbox type and horizontal { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -417,10 +417,10 @@ exports[`ControlsList should renders correctly with checkbox type and horizontal [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -434,9 +434,9 @@ exports[`ControlsList should renders correctly with checkbox type and horizontal { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -536,10 +536,10 @@ exports[`ControlsList should renders correctly with checkbox type and single 1`] [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -553,9 +553,9 @@ exports[`ControlsList should renders correctly with checkbox type and single 1`] { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -641,10 +641,10 @@ exports[`ControlsList should renders correctly with checkbox type and single 1`] [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, - "borderWidth": 3, - "height": 30, - "width": 30, + "borderRadius": 4, + "borderWidth": 2, + "height": 20, + "width": 20, }, undefined, ] @@ -658,9 +658,9 @@ exports[`ControlsList should renders correctly with checkbox type and single 1`] { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -762,10 +762,10 @@ exports[`ControlsList should renders correctly with radio type 1`] = ` "aspectRatio": 1, "backgroundColor": "#2B78EE", "borderColor": "#2B78EE", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="1" @@ -775,9 +775,9 @@ exports[`ControlsList should renders correctly with radio type 1`] = ` { "aspectRatio": 1, "borderColor": "#FFF", - "borderRadius": 13.5, - "borderWidth": 3, - "width": 27, + "borderRadius": 9, + "borderWidth": 2, + "width": 18, } } /> @@ -789,9 +789,9 @@ exports[`ControlsList should renders correctly with radio type 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -879,10 +879,10 @@ exports[`ControlsList should renders correctly with radio type 1`] = ` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="2" @@ -894,9 +894,9 @@ exports[`ControlsList should renders correctly with radio type 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -998,10 +998,10 @@ exports[`ControlsList should renders correctly with radio type and horizontal 1` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="1" @@ -1013,9 +1013,9 @@ exports[`ControlsList should renders correctly with radio type and horizontal 1` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1103,10 +1103,10 @@ exports[`ControlsList should renders correctly with radio type and horizontal 1` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="2" @@ -1118,9 +1118,9 @@ exports[`ControlsList should renders correctly with radio type and horizontal 1` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1222,10 +1222,10 @@ exports[`ControlsList should renders correctly with radio type and single 1`] = "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="1" @@ -1237,9 +1237,9 @@ exports[`ControlsList should renders correctly with radio type and single 1`] = { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1327,10 +1327,10 @@ exports[`ControlsList should renders correctly with radio type and single 1`] = "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="2" @@ -1342,9 +1342,9 @@ exports[`ControlsList should renders correctly with radio type and single 1`] = { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] diff --git a/packages/core/src/controls/Radio/__tests__/__snapshots__/Circle.test.tsx.snap b/packages/core/src/controls/Radio/__tests__/__snapshots__/Circle.test.tsx.snap index 620027efd..1298d9450 100644 --- a/packages/core/src/controls/Radio/__tests__/__snapshots__/Circle.test.tsx.snap +++ b/packages/core/src/controls/Radio/__tests__/__snapshots__/Circle.test.tsx.snap @@ -35,9 +35,9 @@ exports[`@lad-tech/mobydick-core/Radio/Circle renders correctly 1`] = ` { "aspectRatio": 1, "borderColor": "#FFF", - "borderRadius": 13.5, - "borderWidth": 3, - "width": 27, + "borderRadius": 9, + "borderWidth": 2, + "width": 18, } } /> @@ -78,9 +78,9 @@ exports[`@lad-tech/mobydick-core/Radio/Circle renders correctly selected 1`] = ` { "aspectRatio": 1, "borderColor": "#FFF", - "borderRadius": 13.5, - "borderWidth": 3, - "width": 27, + "borderRadius": 9, + "borderWidth": 2, + "width": 18, } } > @@ -91,10 +91,10 @@ exports[`@lad-tech/mobydick-core/Radio/Circle renders correctly selected 1`] = ` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } /> diff --git a/packages/core/src/controls/Radio/__tests__/__snapshots__/Radio.test.tsx.snap b/packages/core/src/controls/Radio/__tests__/__snapshots__/Radio.test.tsx.snap index 8619bdff6..a99e47c28 100644 --- a/packages/core/src/controls/Radio/__tests__/__snapshots__/Radio.test.tsx.snap +++ b/packages/core/src/controls/Radio/__tests__/__snapshots__/Radio.test.tsx.snap @@ -80,10 +80,10 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly 1`] = ` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="text" @@ -171,10 +171,10 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly disabled 1`] = ` "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="text" @@ -262,10 +262,10 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly selected 1`] = ` "aspectRatio": 1, "backgroundColor": "#2B78EE", "borderColor": "#2B78EE", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="text" @@ -275,9 +275,9 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly selected 1`] = ` { "aspectRatio": 1, "borderColor": "#FFF", - "borderRadius": 13.5, - "borderWidth": 3, - "width": 27, + "borderRadius": 9, + "borderWidth": 2, + "width": 18, } } /> @@ -365,10 +365,10 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly selected and disabled 1 "aspectRatio": 1, "backgroundColor": "#2B78EE", "borderColor": "#2B78EE", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="text" @@ -378,9 +378,9 @@ exports[`@lad-tech/mobydick-core/Radio renders correctly selected and disabled 1 { "aspectRatio": 1, "borderColor": "#FFF", - "borderRadius": 13.5, - "borderWidth": 3, - "width": 27, + "borderRadius": 9, + "borderWidth": 2, + "width": 18, } } /> diff --git a/packages/core/src/controls/Radio/stylesCreate.ts b/packages/core/src/controls/Radio/stylesCreate.ts index ea47af0dd..6f0d3247d 100644 --- a/packages/core/src/controls/Radio/stylesCreate.ts +++ b/packages/core/src/controls/Radio/stylesCreate.ts @@ -1,5 +1,5 @@ -import rem from '../../styles/utils/rem'; import {createStyles} from '../../styles'; +import px from '../../styles/utils/px'; const stylesCreate = createStyles( ({spaces, colors}, selected: boolean, disabled: boolean) => ({ @@ -10,9 +10,9 @@ const stylesCreate = createStyles( opacity: disabled ? 0.4 : 1, }, circle: { - width: rem(22), + width: px(22), aspectRatio: 1, - borderRadius: rem(11), + borderRadius: px(11), backgroundColor: selected ? colors.ElementBase : 'transparent', borderColor: selected ? colors.ElementBase : colors.BorderNormal, borderWidth: spaces.Space2, @@ -20,10 +20,10 @@ const stylesCreate = createStyles( alignItems: 'center', }, innerCircle: { - width: rem(18), + width: px(18), aspectRatio: 1, borderWidth: spaces.Space2, - borderRadius: rem(9), + borderRadius: px(9), borderColor: colors.BgPrimary, }, }), diff --git a/packages/core/src/controls/Slider/Slider.tsx b/packages/core/src/controls/Slider/Slider.tsx index 26f86097b..b6a5728db 100644 --- a/packages/core/src/controls/Slider/Slider.tsx +++ b/packages/core/src/controls/Slider/Slider.tsx @@ -13,7 +13,7 @@ import View from '../../basic/components/View/View'; import useStyles from '../../styles/hooks/useStyles'; import {LABELS} from '../../other/constants'; import {HIT_SLOP} from '../../styles'; -import rem from '../../styles/utils/rem'; +import px from '../../styles/utils/px'; import {clamp, getValueForPosition, isLowCloser} from './helpers'; import stylesCreate from './stylesCreate'; @@ -37,8 +37,8 @@ export interface ISliderProps extends ViewProps { onValueChanged?: (low: number, high: number, byUser: boolean) => void; hitSlop?: Insets; } -const THUMB_RADIUS_LOW = rem(12) * 2; -const THUMB_RADIUS_HIGH = THUMB_RADIUS_LOW + rem(6); +const THUMB_RADIUS_LOW = px(12) * 2; +const THUMB_RADIUS_HIGH = THUMB_RADIUS_LOW + px(6); const Slider: React.FC = ({ min, diff --git a/packages/core/src/controls/Swipe/Swipe.tsx b/packages/core/src/controls/Swipe/Swipe.tsx index 363840171..258411e61 100644 --- a/packages/core/src/controls/Swipe/Swipe.tsx +++ b/packages/core/src/controls/Swipe/Swipe.tsx @@ -8,8 +8,8 @@ import { } from 'react-native'; import useStyles from '../../styles/hooks/useStyles'; -import rem from '../../styles/utils/rem'; import {LABELS} from '../../other'; +import px from '../../styles/utils/px'; import stylesCreate from './stylesCreate'; import {ISwipe} from './types'; @@ -97,7 +97,7 @@ const Swipe: FC = ({active, disabled, onPress}) => { const translateX = pan.interpolate({ inputRange: [leftPos, rightPos], - outputRange: [0, rem(20)], + outputRange: [0, px(20)], extrapolate: 'clamp', }); diff --git a/packages/core/src/controls/Swipe/stylesCreate.ts b/packages/core/src/controls/Swipe/stylesCreate.ts index d5fc1c28c..aafdc6454 100644 --- a/packages/core/src/controls/Swipe/stylesCreate.ts +++ b/packages/core/src/controls/Swipe/stylesCreate.ts @@ -1,10 +1,10 @@ -import rem from '../../styles/utils/rem'; import {createStyles} from '../../styles'; +import px from '../../styles/utils/px'; const stylesCreate = createStyles(({spaces, colors}, disabled: boolean) => ({ container: { - width: rem(50), - height: rem(30), + width: px(50), + height: px(30), borderRadius: spaces.Space20, padding: spaces.Space2, opacity: disabled ? 0.4 : 1, @@ -13,7 +13,7 @@ const stylesCreate = createStyles(({spaces, colors}, disabled: boolean) => ({ flex: 1, aspectRatio: 1, backgroundColor: colors.ElementWhite, - borderRadius: rem(25), + borderRadius: px(25), }, })); diff --git a/packages/core/src/cta/components/Button/__tests__/__snapshots__/Button.test.tsx.snap b/packages/core/src/cta/components/Button/__tests__/__snapshots__/Button.test.tsx.snap index 57834fb1b..25eb773f8 100644 --- a/packages/core/src/cta/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +++ b/packages/core/src/cta/components/Button/__tests__/__snapshots__/Button.test.tsx.snap @@ -34,10 +34,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -49,13 +49,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -100,13 +100,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly 2`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -117,13 +117,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly 2`] = ` { "color": "#F54D3D", "fontFamily": "Inter-Bold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 6, + "paddingHorizontal": 4, }, undefined, ], @@ -169,10 +169,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly destructive 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -184,14 +184,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly destructive 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -203,13 +203,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly destructive 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#F54D3D", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -255,10 +255,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly disabled 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -299,10 +299,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly fixed 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -342,13 +342,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly large 1`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 18, + "paddingHorizontal": 12, + "paddingVertical": 12, } } /> @@ -387,13 +387,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly left icon size large 1 { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, - "paddingHorizontal": 39, - "paddingVertical": 18, + "paddingHorizontal": 26, + "paddingVertical": 12, } } > @@ -405,13 +405,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly left icon size large 1 { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -457,13 +457,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly left icon size small 1 { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 21, - "paddingVertical": 9, + "paddingHorizontal": 14, + "paddingVertical": 6, } } > @@ -475,13 +475,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly left icon size small 1 { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingHorizontal": 6, + "paddingHorizontal": 4, }, undefined, ], @@ -527,13 +527,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly left icon small 1`] = { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 9, - "paddingVertical": 9, + "paddingHorizontal": 6, + "paddingVertical": 6, } } > @@ -576,10 +576,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -640,10 +640,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading disabled 1`] = "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -704,10 +704,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -768,10 +768,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 2`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -832,10 +832,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 3`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -847,14 +847,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 3`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -866,13 +866,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 3`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#2B78EE", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -918,10 +918,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 4`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -933,14 +933,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 4`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -952,13 +952,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 4`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#2B78EE", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -1004,10 +1004,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 5`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1019,14 +1019,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 5`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -1038,13 +1038,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 5`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -1090,10 +1090,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 6`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#9BA1B0", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1105,14 +1105,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 6`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -1124,13 +1124,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 6`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#9BA1B0", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -1176,10 +1176,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 7`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1240,10 +1240,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 8`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1255,14 +1255,14 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 8`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { - "marginLeft": 3, + "marginLeft": 2, }, ] } @@ -1274,13 +1274,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading types 8`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#F54D3D", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -1326,10 +1326,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly loading without type 1 "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1370,10 +1370,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly secondary 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1413,13 +1413,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly small 1`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 9, - "paddingVertical": 9, + "paddingHorizontal": 6, + "paddingVertical": 6, } } /> @@ -1458,13 +1458,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly small 2`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 9, - "paddingVertical": 9, + "paddingHorizontal": 6, + "paddingVertical": 6, } } > @@ -1524,10 +1524,10 @@ exports[`@lad-tech/mobydick-core/Button renders correctly tertiary 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -1567,13 +1567,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly text 1`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 48, + "minHeight": 32, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -1584,13 +1584,13 @@ exports[`@lad-tech/mobydick-core/Button renders correctly text 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingHorizontal": 6, + "paddingHorizontal": 4, }, undefined, ], @@ -1635,7 +1635,7 @@ exports[`@lad-tech/mobydick-core/Button renders correctly without size 1`] = ` { "alignItems": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", "opacity": 1, diff --git a/packages/core/src/cta/components/Button/stylesCreate.ts b/packages/core/src/cta/components/Button/stylesCreate.ts index 005fa7077..442c34825 100644 --- a/packages/core/src/cta/components/Button/stylesCreate.ts +++ b/packages/core/src/cta/components/Button/stylesCreate.ts @@ -1,8 +1,8 @@ import {ViewStyle} from 'react-native'; -import rem from '../../../styles/utils/rem'; import {IThemeContext} from '../../../styles/types'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; import {IButtonSize, IButtonTypes} from './types'; @@ -24,7 +24,7 @@ const getButtonHorizontalPadding = ({ return theme.spaces.Space6; } if (leftIcon || rightIcon) { - return rem(14); + return px(14); } return theme.spaces.Space12; }; @@ -52,7 +52,7 @@ const getButtonStyles = ({ return { minHeight: theme.spaces.Space48, paddingVertical: theme.spaces.Space12, - paddingHorizontal: text ? rem(26) : theme.spaces.Space12, + paddingHorizontal: text ? px(26) : theme.spaces.Space12, }; case IButtonSize.fixed: return { diff --git a/packages/core/src/inputs/components/DropDown/__tests__/__snapshots__/DropDown.test.tsx.snap b/packages/core/src/inputs/components/DropDown/__tests__/__snapshots__/DropDown.test.tsx.snap index b2f153a88..84f1436cc 100644 --- a/packages/core/src/inputs/components/DropDown/__tests__/__snapshots__/DropDown.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/__tests__/__snapshots__/DropDown.test.tsx.snap @@ -8,7 +8,7 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -27,12 +27,12 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -80,20 +80,20 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, { - "paddingVertical": 12, + "paddingVertical": 8, }, { - "minHeight": 72, + "minHeight": 48, }, { "borderColor": "transparent", @@ -107,7 +107,7 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` "flex": 1, "flexDirection": "row", "flexWrap": "wrap", - "gap": 12, + "gap": 8, } } > @@ -117,10 +117,10 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "padding": 6, - "paddingLeft": 12, + "padding": 4, + "paddingLeft": 8, } } > @@ -131,12 +131,12 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { - "marginRight": 6, + "marginRight": 4, }, ] } @@ -184,7 +184,7 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > @@ -202,7 +202,7 @@ exports[`@lad-tech/mobydick-core/DropDown multiselect snapshot 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -222,7 +222,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements 1`] = ` "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -241,12 +241,12 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -294,18 +294,18 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements 1`] = ` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, undefined, { - "height": 72, + "height": 48, }, { "borderColor": "transparent", @@ -321,9 +321,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -345,7 +345,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -365,7 +365,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements disabled "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -384,12 +384,12 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements disabled { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -437,18 +437,18 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements disabled "alignItems": "center", "backgroundColor": "#D1D4DB", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, undefined, { - "height": 72, + "height": 48, }, { "borderColor": "transparent", @@ -464,9 +464,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements disabled { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -488,7 +488,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements disabled { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -508,7 +508,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type val "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -527,12 +527,12 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type val { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -580,18 +580,18 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type val "alignItems": "center", "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, undefined, { - "height": 72, + "height": 48, }, { "borderColor": "transparent", @@ -607,9 +607,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type val { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -631,7 +631,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type val { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -670,13 +670,13 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type wro { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingBottom": 12, + "paddingBottom": 8, }, { "paddingBottom": 8, @@ -728,13 +728,13 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type wro "alignItems": "center", "backgroundColor": "rgba(245, 77, 61, 0.15)", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, { "backgroundColor": "#000", @@ -760,9 +760,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type wro { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -784,7 +784,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly 10 elements type wro { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -804,7 +804,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array 1`] = "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -823,12 +823,12 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array 1`] = { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -876,18 +876,18 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array 1`] = "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, undefined, { - "height": 72, + "height": 48, }, { "borderColor": "transparent", @@ -903,9 +903,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array 1`] = { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -927,7 +927,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -947,7 +947,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t "justifyContent": "center", }, { - "width": 300, + "width": 200, }, ] } @@ -966,12 +966,12 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -985,9 +985,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { "color": "#F54D3D", @@ -1038,18 +1038,18 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, undefined, undefined, { - "height": 72, + "height": 48, }, { "borderColor": "transparent", @@ -1065,9 +1065,9 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -1089,7 +1089,7 @@ exports[`@lad-tech/mobydick-core/DropDown renders correctly without array with t { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1128,12 +1128,12 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, { - "paddingBottom": 12, + "paddingBottom": 8, }, ] } @@ -1181,13 +1181,13 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "paddingLeft": 27, - "paddingRight": 18, + "marginBottom": 8, + "paddingLeft": 18, + "paddingRight": 12, }, { "backgroundColor": "#000", @@ -1213,9 +1213,9 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -1237,7 +1237,7 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1259,8 +1259,8 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 24, - "marginRight": 6, + "fontSize": 16, + "marginRight": 4, } } > @@ -1273,9 +1273,9 @@ exports[`@lad-tech/mobydick-core/DropDown selectItemClose 1`] = ` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "flex": 1, diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.tsx b/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.tsx index 56c3167eb..e345120ee 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.tsx +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/Selector.test.tsx @@ -1,4 +1,4 @@ -import {render, fireEvent} from '@testing-library/react-native'; +import {fireEvent, render} from '@testing-library/react-native'; import {SafeAreaProvider} from 'react-native-safe-area-context'; import Selector from '../Selector'; @@ -127,7 +127,7 @@ describe('@lad-tech/mobydick-core/Selector', () => { ); expect(spy).toHaveBeenLastCalledWith({ - dropDownBorderWidth: 1.5, + dropDownBorderWidth: 1, dropDownHeight: 72, height: 640, navBarHeight: 50, diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Chip.test.tsx.snap b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Chip.test.tsx.snap index 16b70a185..f8920c069 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Chip.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Chip.test.tsx.snap @@ -7,10 +7,10 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly and onPress fired 1`] = "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "padding": 6, - "paddingLeft": 12, + "padding": 4, + "paddingLeft": 8, } } > @@ -21,12 +21,12 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly and onPress fired 1`] = { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { - "marginRight": 6, + "marginRight": 4, }, ] } @@ -74,7 +74,7 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly and onPress fired 1`] = { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > @@ -91,10 +91,10 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly with maxTextLength 1`] = "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "padding": 6, - "paddingLeft": 12, + "padding": 4, + "paddingLeft": 8, } } > @@ -105,12 +105,12 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly with maxTextLength 1`] = { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { - "marginRight": 6, + "marginRight": 4, }, ] } @@ -158,7 +158,7 @@ exports[`@lad-tech/mobydick-core/Chip renders correctly with maxTextLength 1`] = { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ChipList.test.tsx.snap b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ChipList.test.tsx.snap index 0731ad38e..3be38a521 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ChipList.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ChipList.test.tsx.snap @@ -7,7 +7,7 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 "flex": 1, "flexDirection": "row", "flexWrap": "wrap", - "gap": 12, + "gap": 8, } } > @@ -17,10 +17,10 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "padding": 6, - "paddingLeft": 12, + "padding": 4, + "paddingLeft": 8, } } > @@ -31,12 +31,12 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { - "marginRight": 6, + "marginRight": 4, }, ] } @@ -84,7 +84,7 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > @@ -98,10 +98,10 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "padding": 6, - "paddingLeft": 12, + "padding": 4, + "paddingLeft": 8, } } > @@ -112,12 +112,12 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { - "marginRight": 6, + "marginRight": 4, }, ] } @@ -165,7 +165,7 @@ exports[`@lad-tech/mobydick-core/ChipList renders correctly and onChange fired 1 { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/DropDownIcon.test.tsx.snap b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/DropDownIcon.test.tsx.snap index 53e310332..74317327c 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/DropDownIcon.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/DropDownIcon.test.tsx.snap @@ -10,7 +10,7 @@ exports[`@lad-tech/mobydick-core/DropDownIcon renders correctly custom close 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -37,7 +37,7 @@ exports[`@lad-tech/mobydick-core/DropDownIcon renders correctly custom open 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -53,7 +53,7 @@ exports[`@lad-tech/mobydick-core/DropDownIcon renders correctly standart close 1 { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -68,7 +68,7 @@ exports[`@lad-tech/mobydick-core/DropDownIcon renders correctly standart open 1` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, "transform": [ { "rotateX": "180deg", diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ListEmptySelector.test.tsx.snap b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ListEmptySelector.test.tsx.snap index 367ca9d28..7eb3df1ce 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ListEmptySelector.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/ListEmptySelector.test.tsx.snap @@ -8,9 +8,9 @@ exports[`npm/mobydick-inputs/ListEmptySelector renders correctly with text and f { "color": "#F54D3D", "fontFamily": "Inter-Regular", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, { "paddingHorizontal": 12, @@ -30,9 +30,9 @@ exports[`npm/mobydick-inputs/ListEmptySelector renders correctly without text an { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "paddingHorizontal": 12, diff --git a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Selector.test.tsx.snap b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Selector.test.tsx.snap index a57bbaa9b..442594f43 100644 --- a/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Selector.test.tsx.snap +++ b/packages/core/src/inputs/components/DropDown/components/__tests__/__snapshots__/Selector.test.tsx.snap @@ -53,9 +53,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom flatList styles 1`] = { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, { @@ -65,10 +65,10 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom flatList styles 1`] = "width": 2, }, { - "top": 79, + "top": 77, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -129,8 +129,8 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom flatList styles 1`] = [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -146,9 +146,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom flatList styles 1`] = { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -217,20 +217,20 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with array in selected { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 79, + "top": 77, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -295,8 +295,8 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with array in selected [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -312,9 +312,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with array in selected { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -352,8 +352,8 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with array in selected [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, null, @@ -367,9 +367,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with array in selected { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -438,20 +438,20 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with empty array in se { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 79, + "top": 77, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -516,8 +516,8 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with empty array in se [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, null, @@ -531,9 +531,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with empty array in se { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -571,8 +571,8 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with empty array in se [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, null, @@ -586,9 +586,9 @@ exports[`@lad-tech/mobydick-core/Selector Selector custom with empty array in se { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -657,20 +657,20 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem TouchableHig { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 87, + "top": 85, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -731,8 +731,8 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem TouchableHig [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, { "height": 10, @@ -750,9 +750,9 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem TouchableHig { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -821,20 +821,20 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 87, + "top": 85, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -895,8 +895,8 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -912,9 +912,9 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography { "color": "#F54D3D", "fontFamily": "Inter-Bold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, undefined, ] @@ -983,20 +983,20 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography w { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 87, + "top": 85, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -1057,8 +1057,8 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography w [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1074,9 +1074,9 @@ exports[`@lad-tech/mobydick-core/Selector render correct renderItem Typography w { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "backgroundColor": "red", @@ -1147,20 +1147,20 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly 1`] = ` { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 87, + "top": 85, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -1221,8 +1221,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly 1`] = ` [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, null, @@ -1236,9 +1236,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1307,20 +1307,20 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 18, - "borderWidth": 1.5, - "paddingVertical": 12, + "borderRadius": 12, + "borderWidth": 1, + "paddingVertical": 8, "position": "absolute", }, undefined, { - "width": 300, + "width": 200, }, { - "top": 87, + "top": 85, }, { - "maxHeight": 366, + "maxHeight": 244, }, ] } @@ -1405,8 +1405,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1422,9 +1422,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1462,8 +1462,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1479,9 +1479,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1519,8 +1519,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1536,9 +1536,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1576,8 +1576,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1593,9 +1593,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1633,8 +1633,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1650,9 +1650,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1690,8 +1690,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1707,9 +1707,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1747,8 +1747,8 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding [ { "justifyContent": "center", - "paddingHorizontal": 18, - "paddingVertical": 12, + "paddingHorizontal": 12, + "paddingVertical": 8, }, undefined, { @@ -1764,9 +1764,9 @@ exports[`@lad-tech/mobydick-core/Selector renders correctly with bottom padding { "color": "#20242D", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] diff --git a/packages/core/src/inputs/components/DropDown/constants/index.ts b/packages/core/src/inputs/components/DropDown/constants/index.ts index 42d4e6f58..a78da937b 100644 --- a/packages/core/src/inputs/components/DropDown/constants/index.ts +++ b/packages/core/src/inputs/components/DropDown/constants/index.ts @@ -1,12 +1,12 @@ -import rem from '../../../../styles/utils/rem'; +import px from '../../../../styles/utils/px'; -export const BORDER_BUTTON_WIDTH = rem(1); +export const BORDER_BUTTON_WIDTH = px(1); export const DROP_DOWN_POPUP_ID = 'DropDownPopup'; -export const DEFAULT_DROP_DOWN_HEIGHT = rem(48); -export const DEFAULT_DROP_DOWN_WIDTH = rem(200); -export const DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON = rem(4); +export const DEFAULT_DROP_DOWN_HEIGHT = px(48); +export const DEFAULT_DROP_DOWN_WIDTH = px(200); +export const DEFAULT_DROPDOWN_MARGIN_FROM_BUTTON = px(4); -export const LIST_MAX_HEIGHT = rem(244); -export const EMPTY_LIST_HEIGHT = rem(74); +export const LIST_MAX_HEIGHT = px(244); +export const EMPTY_LIST_HEIGHT = px(74); diff --git a/packages/core/src/inputs/components/DropDown/stylesCreate.tsx b/packages/core/src/inputs/components/DropDown/stylesCreate.tsx index e86e78448..04b25dc2d 100644 --- a/packages/core/src/inputs/components/DropDown/stylesCreate.tsx +++ b/packages/core/src/inputs/components/DropDown/stylesCreate.tsx @@ -1,8 +1,8 @@ import {IInputsTypes} from '../types'; import {disabledStyle, validStyle, wrongStyle} from '../../style'; -import rem from '../../../styles/utils/rem'; import {IThemeContext} from '../../../styles/types'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; const defaultStyle = createStyles(({spaces, colors}) => ({ container: { @@ -11,7 +11,7 @@ const defaultStyle = createStyles(({spaces, colors}) => ({ inputContainer: { backgroundColor: colors.BgSecondary, borderRadius: spaces.Space8, - paddingLeft: rem(18), + paddingLeft: px(18), paddingRight: spaces.Space12, borderWidth: spaces.Space1, borderColor: colors.BorderNormal, diff --git a/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.ts b/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.ts index 4c6886eb0..8579b7f37 100644 --- a/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.ts +++ b/packages/core/src/inputs/components/DropDown/utils/__tests__/getDropDownDimensions.test.ts @@ -1,7 +1,7 @@ import {Platform} from 'react-native'; -import rem from '../../../../../styles/utils/rem'; import {getDropDownDimensions} from '../getDropDownDimensions'; +import px from '../../../../../styles/utils/px'; describe('@lad-tech/mobydick-core/DropDownFunctions', () => { it('must return actual position list 8', () => { @@ -15,8 +15,8 @@ describe('@lad-tech/mobydick-core/DropDownFunctions', () => { height: 700, }), ).toEqual({ - underDropDownPos: 506, - aboveDropDownPos: 700 - 300 + rem(4), + underDropDownPos: 504, + aboveDropDownPos: 700 - 300 + px(4), isAboveDropDown: false, }); }); @@ -31,8 +31,8 @@ describe('@lad-tech/mobydick-core/DropDownFunctions', () => { height: 700, }), ).toEqual({ - underDropDownPos: 174, - aboveDropDownPos: 700 - 128 + rem(4), + underDropDownPos: 172, + aboveDropDownPos: 700 - 128 + px(4), isAboveDropDown: false, }); }); @@ -48,8 +48,8 @@ describe('@lad-tech/mobydick-core/DropDownFunctions', () => { height: 700, }), ).toEqual({ - underDropDownPos: 174, - aboveDropDownPos: 700 - 128 + rem(4), + underDropDownPos: 172, + aboveDropDownPos: 700 - 128 + px(4), isAboveDropDown: false, }); }); @@ -64,8 +64,8 @@ describe('@lad-tech/mobydick-core/DropDownFunctions', () => { height: 700, }), ).toEqual({ - underDropDownPos: 174, - aboveDropDownPos: 700 - 128 + rem(4), + underDropDownPos: 172, + aboveDropDownPos: 700 - 128 + px(4), isAboveDropDown: false, }); }); diff --git a/packages/core/src/inputs/components/InputField/InputField.tsx b/packages/core/src/inputs/components/InputField/InputField.tsx index 46165c821..d5307626f 100644 --- a/packages/core/src/inputs/components/InputField/InputField.tsx +++ b/packages/core/src/inputs/components/InputField/InputField.tsx @@ -12,7 +12,7 @@ import View from '../../../basic/components/View/View'; import TextInput from '../../../basic/components/TextInput/TextInput'; import useStyles from '../../../styles/hooks/useStyles'; import {useFont} from '../../../typography/hooks/useFont'; -import rem from '../../../styles/utils/rem'; +import px from '../../../styles/utils/px'; import {IInputFieldsProps} from './types'; import stylesCreate from './stylesCreate'; @@ -86,11 +86,11 @@ const InputField = forwardRef((props, ref) => { [onBlur], ); const getHeight = () => { - return multiline ? {minHeight: rem(80)} : {height: rem(48)}; + return multiline ? {minHeight: px(80)} : {height: px(48)}; }; const getPadding = useCallback(() => { - return rightIcon ? {paddingRight: rem(16)} : null; + return rightIcon ? {paddingRight: px(16)} : null; }, [rightIcon]); return ( diff --git a/packages/core/src/inputs/components/InputField/__tests__/__snapshots__/InputField.test.tsx.snap b/packages/core/src/inputs/components/InputField/__tests__/__snapshots__/InputField.test.tsx.snap index f4d863bf8..8a039b198 100644 --- a/packages/core/src/inputs/components/InputField/__tests__/__snapshots__/InputField.test.tsx.snap +++ b/packages/core/src/inputs/components/InputField/__tests__/__snapshots__/InputField.test.tsx.snap @@ -5,7 +5,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -25,9 +25,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -43,14 +43,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -69,20 +69,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -104,8 +104,8 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 24, - "marginRight": 6, + "fontSize": 16, + "marginRight": 4, } } > @@ -118,9 +118,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly 1`] = ` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "flex": 1, @@ -139,7 +139,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -152,14 +152,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 1`] = ` "alignItems": "center", "backgroundColor": "#D1D4DB", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -178,20 +178,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -207,7 +207,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 2`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -220,14 +220,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 2`] = ` "alignItems": "center", "backgroundColor": "#D1D4DB", "borderColor": "#D1D4DB", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -246,20 +246,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly disabled 2`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -275,7 +275,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 1`] = style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -288,14 +288,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 1`] = "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -314,20 +314,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 1`] = style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -343,7 +343,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 2`] = style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -356,14 +356,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 2`] = "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -382,20 +382,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly focused/blur 2`] = style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -411,7 +411,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = false style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -431,9 +431,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = false { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -449,14 +449,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = false "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -475,18 +475,18 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = false style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, [ { "color": "#20242D", - "fontSize": 24, + "fontSize": 16, "padding": 0, }, ], @@ -504,7 +504,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = true 1 style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -524,9 +524,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = true 1 { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -542,14 +542,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = true 1 "alignItems": undefined, "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "minHeight": 120, + "minHeight": 80, }, null, undefined, @@ -568,18 +568,18 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly multiline = true 1 style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": "top", }, [ { "color": "#20242D", - "fontSize": 24, + "fontSize": 16, "padding": 0, }, ], @@ -597,7 +597,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -617,9 +617,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -635,14 +635,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -662,18 +662,18 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, [ { "color": "#20242D", - "fontSize": 24, + "fontSize": 16, "padding": 0, }, ], @@ -697,8 +697,8 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 24, - "marginRight": 6, + "fontSize": 16, + "marginRight": 4, } } > @@ -711,9 +711,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly secureTextEntry 1` { "color": "#9BA1B0", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "flex": 1, @@ -732,7 +732,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -745,14 +745,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 1`] = ` "alignItems": "center", "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -771,20 +771,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -800,7 +800,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 2`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -813,14 +813,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 2`] = ` "alignItems": "center", "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderColor": "#2B78EE", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -839,20 +839,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly valid 2`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -868,7 +868,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -881,14 +881,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 1`] = ` "alignItems": "center", "backgroundColor": "rgba(245, 77, 61, 0.15)", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -907,20 +907,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -942,8 +942,8 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 1`] = ` { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 24, - "marginRight": 6, + "fontSize": 16, + "marginRight": 4, } } > @@ -956,9 +956,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 1`] = ` { "color": "#F54D3D", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "flex": 1, @@ -977,7 +977,7 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 2`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -990,14 +990,14 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 2`] = ` "alignItems": "center", "backgroundColor": "rgba(245, 77, 61, 0.15)", "borderColor": "#F54D3D", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -1016,20 +1016,20 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 2`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, undefined, ] @@ -1051,8 +1051,8 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 2`] = ` { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 24, - "marginRight": 6, + "fontSize": 16, + "marginRight": 4, } } > @@ -1065,9 +1065,9 @@ exports[`@lad-tech/mobydick-core/InputField renders correctly wrong 2`] = ` { "color": "#F54D3D", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "flex": 1, @@ -1086,7 +1086,7 @@ exports[`@lad-tech/mobydick-core/InputField renders title titleProps 1`] = ` style={ [ { - "minWidth": 195, + "minWidth": 130, }, undefined, ] @@ -1106,9 +1106,9 @@ exports[`@lad-tech/mobydick-core/InputField renders title titleProps 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Medium", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -1124,14 +1124,14 @@ exports[`@lad-tech/mobydick-core/InputField renders title titleProps 1`] = ` "alignItems": "center", "backgroundColor": "#EEEFF1", "borderColor": "transparent", - "borderRadius": 12, - "borderWidth": 1.5, + "borderRadius": 8, + "borderWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginVertical": 12, + "marginVertical": 8, }, { - "height": 72, + "height": 48, }, null, undefined, @@ -1150,18 +1150,18 @@ exports[`@lad-tech/mobydick-core/InputField renders title titleProps 1`] = ` style={ [ { - "borderRadius": 12, + "borderRadius": 8, "flex": 1, "padding": 0, - "paddingLeft": 27, - "paddingRight": 24, - "paddingVertical": 18, + "paddingLeft": 18, + "paddingRight": 16, + "paddingVertical": 12, "textAlignVertical": undefined, }, [ { "color": "#20242D", - "fontSize": 24, + "fontSize": 16, "padding": 0, }, ], diff --git a/packages/core/src/inputs/components/InputField/stylesCreate.ts b/packages/core/src/inputs/components/InputField/stylesCreate.ts index db3d03609..f63468e96 100644 --- a/packages/core/src/inputs/components/InputField/stylesCreate.ts +++ b/packages/core/src/inputs/components/InputField/stylesCreate.ts @@ -1,11 +1,12 @@ import {IInputsTypes} from '../types'; import {disabledStyle, validStyle, wrongStyle} from '../../style'; -import {createStyles, IThemeContext, rem} from '../../../styles'; +import {createStyles, IThemeContext} from '../../../styles'; +import px from '../../../styles/utils/px'; const defaultStyle = createStyles( ({spaces, colors}, focused: boolean, multiline: boolean) => ({ container: { - minWidth: rem(130), + minWidth: px(130), }, inputContainer: { backgroundColor: colors.BgSecondary, @@ -20,7 +21,7 @@ const defaultStyle = createStyles( textInput: { flex: 1, paddingRight: spaces.Space16, - paddingLeft: rem(18), + paddingLeft: px(18), textAlignVertical: multiline ? 'top' : undefined, padding: 0, // Android по дефолту ставит padding на input's paddingVertical: spaces.Space12, diff --git a/packages/core/src/inputs/components/Search/Search.tsx b/packages/core/src/inputs/components/Search/Search.tsx index e4ac22518..fbfa6984c 100644 --- a/packages/core/src/inputs/components/Search/Search.tsx +++ b/packages/core/src/inputs/components/Search/Search.tsx @@ -6,8 +6,8 @@ import SimpleIcon from '../../../styles/icons/font/SimpleIcon'; import TextInput from '../../../basic/components/TextInput/TextInput'; import {ITextInput} from '../../../basic'; import Pressable from '../../../basic/components/Pressable/Pressable'; -import rem from '../../../styles/utils/rem'; import {LABELS} from '../../../other'; +import px from '../../../styles/utils/px'; import {strings} from './constants'; import stylesCreate from './stylesCreate'; @@ -52,7 +52,7 @@ const Search = forwardRef((props, ref) => { accessibilityLabel={LABELS.cancelSearch} onPress={onCancel} style={styles.cancelIcon}> - + ) : null} diff --git a/packages/core/src/inputs/components/Search/__tests__/__snapshots__/Search.test.tsx.snap b/packages/core/src/inputs/components/Search/__tests__/__snapshots__/Search.test.tsx.snap index 9a0a60c31..6a6cab6e2 100644 --- a/packages/core/src/inputs/components/Search/__tests__/__snapshots__/Search.test.tsx.snap +++ b/packages/core/src/inputs/components/Search/__tests__/__snapshots__/Search.test.tsx.snap @@ -7,12 +7,12 @@ exports[`Search render correctly with value 1`] = ` { "alignItems": "center", "backgroundColor": "#EEEFF1", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "height": 54, + "height": 36, "justifyContent": "center", - "paddingLeft": 18, - "paddingRight": 12, + "paddingLeft": 12, + "paddingRight": 8, }, undefined, ] @@ -31,9 +31,9 @@ exports[`Search render correctly with value 1`] = ` { "color": "#20242D", "flex": 1, - "fontSize": 24, + "fontSize": 16, "padding": 0, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] @@ -75,9 +75,9 @@ exports[`Search render correctly with value 1`] = ` { "alignItems": "center", "backgroundColor": "#D1D4DB", - "borderRadius": 36, + "borderRadius": 24, "justifyContent": "center", - "padding": 6, + "padding": 4, } } > @@ -87,7 +87,7 @@ exports[`Search render correctly with value 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 24, + "fontSize": 16, } } > @@ -104,12 +104,12 @@ exports[`Search render correctly without value 1`] = ` { "alignItems": "center", "backgroundColor": "#EEEFF1", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", - "height": 54, + "height": 36, "justifyContent": "center", - "paddingLeft": 18, - "paddingRight": 12, + "paddingLeft": 12, + "paddingRight": 8, }, undefined, ] @@ -121,7 +121,7 @@ exports[`Search render correctly without value 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -139,9 +139,9 @@ exports[`Search render correctly without value 1`] = ` { "color": "#20242D", "flex": 1, - "fontSize": 24, + "fontSize": 16, "padding": 0, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] diff --git a/packages/core/src/inputs/components/Search/stylesCreate.ts b/packages/core/src/inputs/components/Search/stylesCreate.ts index 7d5f7f8cd..f9429541f 100644 --- a/packages/core/src/inputs/components/Search/stylesCreate.ts +++ b/packages/core/src/inputs/components/Search/stylesCreate.ts @@ -1,11 +1,12 @@ -import {createStyles, rem} from '../../../styles'; +import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; const stylesCreate = createStyles(({spaces, colors}) => ({ container: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', - height: rem(36), + height: px(36), backgroundColor: colors.BgSecondary, borderRadius: spaces.Space8, paddingLeft: spaces.Space12, @@ -22,7 +23,7 @@ const stylesCreate = createStyles(({spaces, colors}) => ({ alignItems: 'center', justifyContent: 'center', backgroundColor: colors.BgTertiary, - borderRadius: rem(24), + borderRadius: px(24), padding: spaces.Space4, }, })); diff --git a/packages/core/src/inputs/components/Verification/__tests__/__snapshots__/CodeField.test.tsx.snap b/packages/core/src/inputs/components/Verification/__tests__/__snapshots__/CodeField.test.tsx.snap index 32f9f5ec9..4b559db77 100644 --- a/packages/core/src/inputs/components/Verification/__tests__/__snapshots__/CodeField.test.tsx.snap +++ b/packages/core/src/inputs/components/Verification/__tests__/__snapshots__/CodeField.test.tsx.snap @@ -7,11 +7,11 @@ exports[`@lad-tech/mobydick-core/CodeField render correctly with value blur 1`] { "alignItems": "center", "backgroundColor": "#EEEFF1", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, - "minWidth": 102, + "minHeight": 48, + "minWidth": 68, }, undefined, ] @@ -39,9 +39,9 @@ exports[`@lad-tech/mobydick-core/CodeField render correctly with value blur 1`] { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 30, - "lineHeight": 36, - "minHeight": 36, + "fontSize": 20, + "lineHeight": 24, + "minHeight": 24, }, undefined, ] @@ -57,11 +57,11 @@ exports[`@lad-tech/mobydick-core/CodeField render correctly with value focus 1`] { "alignItems": "center", "backgroundColor": "#EEEFF1", - "borderRadius": 12, + "borderRadius": 8, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, - "minWidth": 102, + "minHeight": 48, + "minWidth": 68, }, undefined, ] @@ -88,9 +88,9 @@ exports[`@lad-tech/mobydick-core/CodeField render correctly with value focus 1`] { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 30, - "lineHeight": 36, - "minHeight": 36, + "fontSize": 20, + "lineHeight": 24, + "minHeight": 24, }, undefined, ] diff --git a/packages/core/src/inputs/components/Verification/stylesCreate.tsx b/packages/core/src/inputs/components/Verification/stylesCreate.tsx index acd5d98d1..27ceffbf1 100644 --- a/packages/core/src/inputs/components/Verification/stylesCreate.tsx +++ b/packages/core/src/inputs/components/Verification/stylesCreate.tsx @@ -1,11 +1,12 @@ -import {createStyles, rem} from '../../../styles'; +import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; const stylesCreate = createStyles(({spaces, colors}, focused: boolean) => ({ inputContainer: { backgroundColor: focused ? colors.BgAccentSoft : colors.BgSecondary, borderRadius: spaces.Space8, - minWidth: rem(68), - minHeight: rem(48), + minWidth: px(68), + minHeight: px(48), flexDirection: 'row', justifyContent: 'center', alignItems: 'center', diff --git a/packages/core/src/navbars/components/PanelHeader/__tests__/__snapshots__/PanelHeader.test.tsx.snap b/packages/core/src/navbars/components/PanelHeader/__tests__/__snapshots__/PanelHeader.test.tsx.snap index d8eed88de..c2ecb0277 100644 --- a/packages/core/src/navbars/components/PanelHeader/__tests__/__snapshots__/PanelHeader.test.tsx.snap +++ b/packages/core/src/navbars/components/PanelHeader/__tests__/__snapshots__/PanelHeader.test.tsx.snap @@ -29,10 +29,10 @@ exports[`Tab render panelHeader 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, { "backgroundColor": "#000", @@ -47,10 +47,10 @@ exports[`Tab render panelHeader 1`] = ` [ { "alignItems": "flex-start", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -64,7 +64,7 @@ exports[`Tab render panelHeader 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -76,7 +76,7 @@ exports[`Tab render panelHeader 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, { "flex": 1, @@ -91,10 +91,10 @@ exports[`Tab render panelHeader 1`] = ` [ { "alignItems": "flex-end", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -108,7 +108,7 @@ exports[`Tab render panelHeader 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -147,10 +147,10 @@ exports[`Tab render panelHeader edges 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, undefined, ] @@ -159,7 +159,7 @@ exports[`Tab render panelHeader edges 1`] = ` @@ -168,7 +168,7 @@ exports[`Tab render panelHeader edges 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] @@ -189,9 +189,9 @@ exports[`Tab render panelHeader edges 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, [ { @@ -209,7 +209,7 @@ exports[`Tab render panelHeader edges 1`] = ` @@ -237,10 +237,10 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, { "backgroundColor": "#000", @@ -255,10 +255,10 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` [ { "alignItems": "flex-start", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -272,7 +272,7 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -284,7 +284,7 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, { "flex": 1, @@ -299,10 +299,10 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` [ { "alignItems": "flex-end", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -316,7 +316,7 @@ exports[`Tab render panelHeader isSafeAreaView 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -356,10 +356,10 @@ exports[`Tab render panelHeader only leftView 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, { "backgroundColor": "#000", @@ -374,10 +374,10 @@ exports[`Tab render panelHeader only leftView 1`] = ` [ { "alignItems": "flex-start", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -391,7 +391,7 @@ exports[`Tab render panelHeader only leftView 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -403,7 +403,7 @@ exports[`Tab render panelHeader only leftView 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, { "flex": 1, @@ -414,7 +414,7 @@ exports[`Tab render panelHeader only leftView 1`] = ` @@ -452,10 +452,10 @@ exports[`Tab render panelHeader only rightView 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, { "backgroundColor": "#000", @@ -466,7 +466,7 @@ exports[`Tab render panelHeader only rightView 1`] = ` @@ -475,7 +475,7 @@ exports[`Tab render panelHeader only rightView 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, { "flex": 1, @@ -490,10 +490,10 @@ exports[`Tab render panelHeader only rightView 1`] = ` [ { "alignItems": "flex-end", - "maxWidth": 144, + "maxWidth": 96, }, { - "minWidth": 36, + "minWidth": 24, }, { "flex": 1, @@ -507,7 +507,7 @@ exports[`Tab render panelHeader only rightView 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -546,10 +546,10 @@ exports[`Tab render panelHeader with subtitle 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, undefined, ] @@ -558,7 +558,7 @@ exports[`Tab render panelHeader with subtitle 1`] = ` @@ -567,7 +567,7 @@ exports[`Tab render panelHeader with subtitle 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] @@ -588,9 +588,9 @@ exports[`Tab render panelHeader with subtitle 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, [ { @@ -608,7 +608,7 @@ exports[`Tab render panelHeader with subtitle 1`] = ` @@ -644,10 +644,10 @@ exports[`Tab render panelHeader with title 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, undefined, ] @@ -656,7 +656,7 @@ exports[`Tab render panelHeader with title 1`] = ` @@ -665,7 +665,7 @@ exports[`Tab render panelHeader with title 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] @@ -686,9 +686,9 @@ exports[`Tab render panelHeader with title 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -706,7 +706,7 @@ exports[`Tab render panelHeader with title 1`] = ` @@ -742,10 +742,10 @@ exports[`Tab render panelHeader without props 1`] = ` { "alignItems": "center", "flexDirection": "row", - "height": 90, + "height": 60, "justifyContent": "space-between", - "paddingHorizontal": 30, - "paddingVertical": 15, + "paddingHorizontal": 20, + "paddingVertical": 10, }, undefined, ] @@ -754,7 +754,7 @@ exports[`Tab render panelHeader without props 1`] = ` @@ -763,7 +763,7 @@ exports[`Tab render panelHeader without props 1`] = ` [ { "flex": 2, - "paddingHorizontal": 12, + "paddingHorizontal": 8, }, undefined, ] @@ -780,7 +780,7 @@ exports[`Tab render panelHeader without props 1`] = ` diff --git a/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.tsx b/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.tsx index cc4bdf174..1bc13434f 100644 --- a/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.tsx +++ b/packages/core/src/navbars/components/PanelHeader/components/ContentHeader.tsx @@ -5,8 +5,8 @@ import View from '../../../../basic/components/View/View'; import {LABELS} from '../../../../other'; import {Typography} from '../../../../typography'; import {createStyles, useStyles} from '../../../../styles'; -import rem from '../../../../styles/utils/rem'; import {IPanelHeaderProps} from '../../../types'; +import px from '../../../../styles/utils/px'; const ContentHeader: FC = props => { const { @@ -26,8 +26,8 @@ const ContentHeader: FC = props => { } = props; const [styles] = useStyles(stylesCreate); - const [widthLeftView, setWidthLeftView] = useState(rem(24)); - const [widthRightView, setWidthRightView] = useState(rem(24)); + const [widthLeftView, setWidthLeftView] = useState(px(24)); + const [widthRightView, setWidthRightView] = useState(px(24)); const onLayoutLeftView = useCallback((event: LayoutChangeEvent) => { setWidthLeftView(event.nativeEvent.layout.width); @@ -98,11 +98,11 @@ const stylesCreate = createStyles(({spaces}) => ({ paddingHorizontal: spaces.Space20, paddingVertical: spaces.Space10, - height: rem(60), + height: px(60), }, leftView: { alignItems: 'flex-start', - maxWidth: rem(96), + maxWidth: px(96), }, titleView: { flex: 2, @@ -110,7 +110,7 @@ const stylesCreate = createStyles(({spaces}) => ({ }, rightView: { alignItems: 'flex-end', - maxWidth: rem(96), + maxWidth: px(96), }, title: { textAlign: 'center', diff --git a/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tab.test.tsx.snap b/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tab.test.tsx.snap index 136e9ddef..ccce4a75d 100644 --- a/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tab.test.tsx.snap +++ b/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tab.test.tsx.snap @@ -33,11 +33,11 @@ exports[`Tab render correctly active false 1`] = ` style={ { "backgroundColor": "#D1D4DB", - "borderRadius": 12, - "marginRight": 12, + "borderRadius": 8, + "marginRight": 8, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -48,9 +48,9 @@ exports[`Tab render correctly active false 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -94,11 +94,11 @@ exports[`Tab render correctly with props 1`] = ` style={ { "backgroundColor": "#2B78EE", - "borderRadius": 12, - "marginRight": 12, + "borderRadius": 8, + "marginRight": 8, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -110,9 +110,9 @@ exports[`Tab render correctly with props 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] diff --git a/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap b/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap index 5687c11fa..ff20d6c76 100644 --- a/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +++ b/packages/core/src/navbars/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap @@ -13,8 +13,8 @@ exports[`Tabs render correctly 1`] = ` [ { "alignItems": "center", - "paddingHorizontal": 30, - "paddingVertical": 12, + "paddingHorizontal": 20, + "paddingVertical": 8, }, undefined, ] @@ -98,11 +98,11 @@ exports[`Tabs render correctly 1`] = ` style={ { "backgroundColor": "#D1D4DB", - "borderRadius": 12, - "marginRight": 12, + "borderRadius": 8, + "marginRight": 8, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -113,9 +113,9 @@ exports[`Tabs render correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -143,8 +143,8 @@ exports[`Tabs render correctly with props 1`] = ` [ { "alignItems": "center", - "paddingHorizontal": 30, - "paddingVertical": 12, + "paddingHorizontal": 20, + "paddingVertical": 8, }, { "flex": 1, @@ -232,11 +232,11 @@ exports[`Tabs render correctly with props 1`] = ` style={ { "backgroundColor": "#000", - "borderRadius": 12, - "marginRight": 12, + "borderRadius": 8, + "marginRight": 8, "opacity": 1, - "paddingHorizontal": 18, - "paddingVertical": 9, + "paddingHorizontal": 12, + "paddingVertical": 6, } } > @@ -247,9 +247,9 @@ exports[`Tabs render correctly with props 1`] = ` { "color": "#F54D3D", "fontFamily": "Inter-Regular", - "fontSize": 42, - "lineHeight": 48, - "minHeight": 48, + "fontSize": 28, + "lineHeight": 32, + "minHeight": 32, }, undefined, ] diff --git a/packages/core/src/other/components/Avatar/AvatarGroup.tsx b/packages/core/src/other/components/Avatar/AvatarGroup.tsx index 62a228058..76da8cf86 100644 --- a/packages/core/src/other/components/Avatar/AvatarGroup.tsx +++ b/packages/core/src/other/components/Avatar/AvatarGroup.tsx @@ -2,9 +2,9 @@ import {FC} from 'react'; import View from '../../../basic/components/View/View'; import {Typography} from '../../../typography'; -import rem from '../../../styles/utils/rem'; import useStyles from '../../../styles/hooks/useStyles'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; import Avatar from './Avatar'; import {IAvatarGroupProps} from './types'; @@ -71,7 +71,7 @@ const stylesCreate = createStyles(({spaces, colors}, length: number) => ({ flexDirection: 'row', maxWidth: length > 3 - ? spaces.Space40 * 4 - rem(36) + ? spaces.Space40 * 4 - px(36) : spaces.Space40 * length - spaces.Space12 * (length - 1), }, countView: { @@ -81,7 +81,7 @@ const stylesCreate = createStyles(({spaces, colors}, length: number) => ({ backgroundColor: colors.BgSecondary, justifyContent: 'center', zIndex: 4, - right: rem(36), + right: px(36), borderWidth: spaces.Space2, borderColor: colors.BgPrimary, @@ -103,7 +103,7 @@ const stylesCreate = createStyles(({spaces, colors}, length: number) => ({ zIndex: 3, }, avatarFour: { - right: rem(36), + right: px(36), zIndex: 4, }, })); diff --git a/packages/core/src/other/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap b/packages/core/src/other/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap index 209bc123b..59fafeee0 100644 --- a/packages/core/src/other/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap +++ b/packages/core/src/other/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap @@ -7,10 +7,10 @@ exports[`Avatar render avatar ITypeAvatar.icon 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -28,7 +28,7 @@ exports[`Avatar render avatar ITypeAvatar.icon 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -44,10 +44,10 @@ exports[`Avatar render avatar ITypeAvatar.text 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -66,9 +66,9 @@ exports[`Avatar render avatar ITypeAvatar.text 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -86,10 +86,10 @@ exports[`Avatar render avatar badge counter 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -108,10 +108,10 @@ exports[`Avatar render avatar badge counter 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 13.5, - "height": 27, + "borderRadius": 9, + "height": 18, "justifyContent": "center", - "minWidth": 27, + "minWidth": 18, "zIndex": 1, }, { @@ -129,13 +129,13 @@ exports[`Avatar render avatar badge counter 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "color": "#F54D3D", - "paddingHorizontal": 6, + "paddingHorizontal": 4, "textAlign": "center", }, ] @@ -151,9 +151,9 @@ exports[`Avatar render avatar badge counter 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -171,10 +171,10 @@ exports[`Avatar render avatar badge indicator 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -191,11 +191,11 @@ exports[`Avatar render avatar badge indicator 1`] = ` [ { "borderColor": "#FFF", - "borderRadius": 6.75, - "borderWidth": 1.5, - "height": 13.5, + "borderRadius": 4.5, + "borderWidth": 1, + "height": 9, "position": "absolute", - "width": 13.5, + "width": 9, "zIndex": 1, }, { @@ -215,9 +215,9 @@ exports[`Avatar render avatar badge indicator 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -235,10 +235,10 @@ exports[`Avatar render avatar badge null 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -257,9 +257,9 @@ exports[`Avatar render avatar badge null 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -277,10 +277,10 @@ exports[`Avatar render avatar badge status 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -299,7 +299,7 @@ exports[`Avatar render avatar badge status 1`] = ` "bottom": 0, "color": "#FAB742", "fontFamily": "Neotis", - "fontSize": 18, + "fontSize": 12, "position": "absolute", "right": 0, "zIndex": 1, @@ -315,9 +315,9 @@ exports[`Avatar render avatar badge status 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -335,10 +335,10 @@ exports[`Avatar render avatar disabled 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -357,9 +357,9 @@ exports[`Avatar render avatar disabled 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -377,10 +377,10 @@ exports[`Avatar render avatar not photo 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -403,9 +403,9 @@ exports[`Avatar render avatar not photo 1`] = ` } style={ { - "borderRadius": 30, - "height": 60, - "width": 60, + "borderRadius": 20, + "height": 40, + "width": 40, } } /> @@ -419,10 +419,10 @@ exports[`Avatar render avatar with photo L 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 45, - "height": 90, + "borderRadius": 30, + "height": 60, "justifyContent": "center", - "width": 90, + "width": 60, }, { "backgroundColor": "#2B78EE", @@ -445,9 +445,9 @@ exports[`Avatar render avatar with photo L 1`] = ` } style={ { - "borderRadius": 45, - "height": 90, - "width": 90, + "borderRadius": 30, + "height": 60, + "width": 60, } } /> @@ -461,10 +461,10 @@ exports[`Avatar render avatar with photo S 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "width": 36, + "width": 24, }, { "backgroundColor": "#2B78EE", @@ -487,9 +487,9 @@ exports[`Avatar render avatar with photo S 1`] = ` } style={ { - "borderRadius": 18, - "height": 36, - "width": 36, + "borderRadius": 12, + "height": 24, + "width": 24, } } /> @@ -503,10 +503,10 @@ exports[`Avatar render avatar with photo XL 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 60, - "height": 120, + "borderRadius": 40, + "height": 80, "justifyContent": "center", - "width": 120, + "width": 80, }, { "backgroundColor": "#2B78EE", @@ -531,9 +531,9 @@ exports[`Avatar render avatar with photo XL 1`] = ` } style={ { - "borderRadius": 60, - "height": 120, - "width": 120, + "borderRadius": 40, + "height": 80, + "width": 80, } } /> @@ -547,10 +547,10 @@ exports[`Avatar render avatar with photo without size 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -573,9 +573,9 @@ exports[`Avatar render avatar with photo without size 1`] = ` } style={ { - "borderRadius": 30, - "height": 60, - "width": 60, + "borderRadius": 20, + "height": 40, + "width": 40, } } /> @@ -589,10 +589,10 @@ exports[`Avatar render avatar without firstName 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#FA9247", @@ -611,9 +611,9 @@ exports[`Avatar render avatar without firstName 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -631,10 +631,10 @@ exports[`Avatar render avatar without firstName and lastName 1`] = ` { "alignItems": "center", "alignSelf": "center", - "borderRadius": 30, - "height": 60, + "borderRadius": 20, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#FAB742", @@ -652,7 +652,7 @@ exports[`Avatar render avatar without firstName and lastName 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > diff --git a/packages/core/src/other/components/Avatar/__tests__/__snapshots__/AvatarGroup.test.tsx.snap b/packages/core/src/other/components/Avatar/__tests__/__snapshots__/AvatarGroup.test.tsx.snap index 2dc1cf10d..9d04db95f 100644 --- a/packages/core/src/other/components/Avatar/__tests__/__snapshots__/AvatarGroup.test.tsx.snap +++ b/packages/core/src/other/components/Avatar/__tests__/__snapshots__/AvatarGroup.test.tsx.snap @@ -5,7 +5,7 @@ exports[`AvatarGroup render AvatarGroup < 3 1`] = ` style={ { "flexDirection": "row", - "maxWidth": 102, + "maxWidth": 68, } } > @@ -16,11 +16,11 @@ exports[`AvatarGroup render AvatarGroup < 3 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", @@ -41,9 +41,9 @@ exports[`AvatarGroup render AvatarGroup < 3 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -59,17 +59,17 @@ exports[`AvatarGroup render AvatarGroup < 3 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", }, { - "right": 18, + "right": 12, "zIndex": 2, }, { @@ -85,9 +85,9 @@ exports[`AvatarGroup render AvatarGroup < 3 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -104,7 +104,7 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` style={ { "flexDirection": "row", - "maxWidth": 186, + "maxWidth": 124, } } > @@ -115,11 +115,11 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -140,9 +140,9 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -158,17 +158,17 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", }, { - "right": 18, + "right": 12, "zIndex": 2, }, { @@ -184,9 +184,9 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -202,17 +202,17 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", }, { - "right": 36, + "right": 24, "zIndex": 3, }, { @@ -228,9 +228,9 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -246,17 +246,17 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", }, { - "right": 54, + "right": 36, "zIndex": 4, }, { @@ -272,9 +272,9 @@ exports[`AvatarGroup render AvatarGroup = 4 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -291,7 +291,7 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` style={ { "flexDirection": "row", - "maxWidth": 186, + "maxWidth": 124, } } > @@ -302,11 +302,11 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", @@ -332,10 +332,10 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` style={ { "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, - "width": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, + "width": 40, } } /> @@ -347,17 +347,17 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", }, { - "right": 18, + "right": 12, "zIndex": 2, }, { @@ -373,9 +373,9 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -391,17 +391,17 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#2B78EE", }, { - "right": 36, + "right": 24, "zIndex": 3, }, { @@ -417,9 +417,9 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -433,12 +433,12 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` { "backgroundColor": "#EEEFF1", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "right": 54, - "width": 60, + "right": 36, + "width": 40, "zIndex": 4, } } @@ -450,9 +450,9 @@ exports[`AvatarGroup render AvatarGroup 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "alignSelf": "center", @@ -472,7 +472,7 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` style={ { "flexDirection": "row", - "maxWidth": 186, + "maxWidth": 124, } } > @@ -483,11 +483,11 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", @@ -513,10 +513,10 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` style={ { "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, - "width": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, + "width": 40, } } /> @@ -528,17 +528,17 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", }, { - "right": 18, + "right": 12, "zIndex": 2, }, { @@ -554,9 +554,9 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -572,17 +572,17 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", }, { - "right": 36, + "right": 24, "zIndex": 3, }, { @@ -598,9 +598,9 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -614,12 +614,12 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` { "backgroundColor": "#EEEFF1", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "right": 54, - "width": 60, + "right": 36, + "width": 40, "zIndex": 4, } } @@ -631,9 +631,9 @@ exports[`AvatarGroup render AvatarGroup groupCount 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "alignSelf": "center", @@ -653,7 +653,7 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` style={ { "flexDirection": "row", - "maxWidth": 186, + "maxWidth": 124, } } > @@ -664,11 +664,11 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", @@ -694,10 +694,10 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` style={ { "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, - "width": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, + "width": 40, } } /> @@ -709,17 +709,17 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", }, { - "right": 18, + "right": 12, "zIndex": 2, }, { @@ -735,9 +735,9 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -753,17 +753,17 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` "alignItems": "center", "alignSelf": "center", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "width": 60, + "width": 40, }, { "backgroundColor": "#ff0000", }, { - "right": 36, + "right": 24, "zIndex": 3, }, { @@ -779,9 +779,9 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -795,12 +795,12 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` { "backgroundColor": "#EEEFF1", "borderColor": "#FFF", - "borderRadius": 30, - "borderWidth": 3, - "height": 60, + "borderRadius": 20, + "borderWidth": 2, + "height": 40, "justifyContent": "center", - "right": 54, - "width": 60, + "right": 36, + "width": 40, "zIndex": 4, } } @@ -812,9 +812,9 @@ exports[`AvatarGroup render AvatarGroup with props 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "alignSelf": "center", diff --git a/packages/core/src/other/components/Avatar/components/AvatarBadge.tsx b/packages/core/src/other/components/Avatar/components/AvatarBadge.tsx index d61bc720a..fd896d976 100644 --- a/packages/core/src/other/components/Avatar/components/AvatarBadge.tsx +++ b/packages/core/src/other/components/Avatar/components/AvatarBadge.tsx @@ -4,8 +4,8 @@ import Counter from '../../Badge/Counter/Counter'; import SimpleIcon from '../../../../styles/icons/font/SimpleIcon'; import useStyles from '../../../../styles/hooks/useStyles'; import useTheme from '../../../../styles/hooks/useTheme'; -import rem from '../../../../styles/utils/rem'; import {createStyles} from '../../../../styles'; +import px from '../../../../styles/utils/px'; interface IProps { badge?: IBadge; @@ -34,7 +34,7 @@ const AvatarBadge = (props: IProps): JSX.Element | null => { return ( diff --git a/packages/core/src/other/components/Avatar/components/IconAvatar.tsx b/packages/core/src/other/components/Avatar/components/IconAvatar.tsx index 939c9a14e..2b1c92b9a 100644 --- a/packages/core/src/other/components/Avatar/components/IconAvatar.tsx +++ b/packages/core/src/other/components/Avatar/components/IconAvatar.tsx @@ -3,7 +3,7 @@ import {FC} from 'react'; import {IAvatarSize} from '../types'; import SimpleIcon from '../../../../styles/icons/font/SimpleIcon'; import useTheme from '../../../../styles/hooks/useTheme'; -import rem from '../../../../styles/utils/rem'; +import px from '../../../../styles/utils/px'; interface IProps { size: IAvatarSize; @@ -12,14 +12,14 @@ interface IProps { const getSizeIcon = (size: IAvatarSize) => { switch (size) { case IAvatarSize.S: - return rem(12); + return px(12); case IAvatarSize.L: - return rem(30); + return px(30); case IAvatarSize.XL: - return rem(40); + return px(40); case IAvatarSize.M: default: - return rem(20); + return px(20); } }; diff --git a/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/IconAvatar.test.tsx.snap b/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/IconAvatar.test.tsx.snap index 1830bf7ed..8e7655c93 100644 --- a/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/IconAvatar.test.tsx.snap +++ b/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/IconAvatar.test.tsx.snap @@ -7,7 +7,7 @@ exports[`IconAvatar render IconAvatar 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 18, + "fontSize": 12, } } > @@ -22,7 +22,7 @@ exports[`IconAvatar render IconAvatar size L background 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 45, + "fontSize": 30, } } > @@ -37,7 +37,7 @@ exports[`IconAvatar render IconAvatar size M background 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -52,7 +52,7 @@ exports[`IconAvatar render IconAvatar size S 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 18, + "fontSize": 12, } } > @@ -67,7 +67,7 @@ exports[`IconAvatar render IconAvatar size XL background 1`] = ` { "color": "#FFF", "fontFamily": "Neotis", - "fontSize": 60, + "fontSize": 40, } } > diff --git a/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/TextAvatar.test.tsx.snap b/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/TextAvatar.test.tsx.snap index 9e0257ab5..a8059ba2d 100644 --- a/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/TextAvatar.test.tsx.snap +++ b/packages/core/src/other/components/Avatar/components/__tests__/__snapshots__/TextAvatar.test.tsx.snap @@ -8,9 +8,9 @@ exports[`TextAvatar render TextAvatar 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -28,9 +28,9 @@ exports[`TextAvatar render TextAvatar size L 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, undefined, ] @@ -48,9 +48,9 @@ exports[`TextAvatar render TextAvatar size M 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, undefined, ] @@ -68,9 +68,9 @@ exports[`TextAvatar render TextAvatar size S 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 15, - "lineHeight": 21, - "minHeight": 21, + "fontSize": 10, + "lineHeight": 14, + "minHeight": 14, }, undefined, ] @@ -88,9 +88,9 @@ exports[`TextAvatar render TextAvatar size XL 1`] = ` { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 33, - "lineHeight": 36, - "minHeight": 36, + "fontSize": 22, + "lineHeight": 24, + "minHeight": 24, }, undefined, ] diff --git a/packages/core/src/other/components/Avatar/stylesCreate.ts b/packages/core/src/other/components/Avatar/stylesCreate.ts index 6a49e3265..7136b0e4f 100644 --- a/packages/core/src/other/components/Avatar/stylesCreate.ts +++ b/packages/core/src/other/components/Avatar/stylesCreate.ts @@ -1,6 +1,7 @@ import {ImageStyle} from 'react-native'; -import {createStyles, rem} from '../../../styles'; +import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; import {IAvatarSize} from './types'; @@ -8,34 +9,34 @@ const getSizeStyles = (sizeAvatar: IAvatarSize): ImageStyle => { switch (sizeAvatar) { case IAvatarSize.S: return { - width: rem(24), - height: rem(24), - borderRadius: rem(12), + width: px(24), + height: px(24), + borderRadius: px(12), }; case IAvatarSize.M: return { - width: rem(40), - height: rem(40), - borderRadius: rem(20), + width: px(40), + height: px(40), + borderRadius: px(20), }; case IAvatarSize.L: return { - width: rem(60), - height: rem(60), - borderRadius: rem(30), + width: px(60), + height: px(60), + borderRadius: px(30), }; case IAvatarSize.XL: return { - width: rem(80), - height: rem(80), - borderRadius: rem(40), + width: px(80), + height: px(80), + borderRadius: px(40), }; } }; const getBorderStyles = (color: string, border?: boolean) => { return ( border && { - borderWidth: rem(2), + borderWidth: px(2), borderColor: color, } ); diff --git a/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.tsx b/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.tsx index c61219869..41f56446a 100644 --- a/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.tsx +++ b/packages/core/src/other/components/Badge/BadgeIndicator/BadgeIndicator.tsx @@ -3,8 +3,8 @@ import {FC, useCallback} from 'react'; import View from '../../../../basic/components/View/View'; import useStyles from '../../../../styles/hooks/useStyles'; import useTheme from '../../../../styles/hooks/useTheme'; -import rem from '../../../../styles/utils/rem'; import {createStyles} from '../../../../styles'; +import px from '../../../../styles/utils/px'; import {IBadgeIndicatorProps, IIndicatorTypes} from './types'; @@ -34,9 +34,9 @@ const stylesCreate = createStyles(({spaces, colors}) => ({ indicator: { position: 'absolute', zIndex: 1, - width: rem(9), - height: rem(9), - borderRadius: rem(9) / 2, + width: px(9), + height: px(9), + borderRadius: px(9) / 2, borderColor: colors.BgPrimary, borderWidth: spaces.Space1, }, diff --git a/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/__snapshots__/BadgeIndicator.tsx.snap b/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/__snapshots__/BadgeIndicator.tsx.snap index c93c4b43d..901e1a35a 100644 --- a/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/__snapshots__/BadgeIndicator.tsx.snap +++ b/packages/core/src/other/components/Badge/BadgeIndicator/__tests__/__snapshots__/BadgeIndicator.tsx.snap @@ -6,11 +6,11 @@ exports[`BadgeIndicator render BadgeIndicator primary 1`] = ` [ { "borderColor": "#FFF", - "borderRadius": 6.75, - "borderWidth": 1.5, - "height": 13.5, + "borderRadius": 4.5, + "borderWidth": 1, + "height": 9, "position": "absolute", - "width": 13.5, + "width": 9, "zIndex": 1, }, { @@ -30,11 +30,11 @@ exports[`BadgeIndicator render BadgeIndicator secondary 1`] = ` [ { "borderColor": "#FFF", - "borderRadius": 6.75, - "borderWidth": 1.5, - "height": 13.5, + "borderRadius": 4.5, + "borderWidth": 1, + "height": 9, "position": "absolute", - "width": 13.5, + "width": 9, "zIndex": 1, }, { diff --git a/packages/core/src/other/components/Badge/Counter/__tests__/__snapshots__/Counter.test.tsx.snap b/packages/core/src/other/components/Badge/Counter/__tests__/__snapshots__/Counter.test.tsx.snap index 1de600b33..f142128de 100644 --- a/packages/core/src/other/components/Badge/Counter/__tests__/__snapshots__/Counter.test.tsx.snap +++ b/packages/core/src/other/components/Badge/Counter/__tests__/__snapshots__/Counter.test.tsx.snap @@ -10,10 +10,10 @@ exports[`Counter render counter ICounterSize.medium 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -27,13 +27,13 @@ exports[`Counter render counter ICounterSize.medium 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -52,10 +52,10 @@ exports[`Counter render counter ICounterSize.small 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#2B78EE", - "borderRadius": 13.5, - "height": 27, + "borderRadius": 9, + "height": 18, "justifyContent": "center", - "minWidth": 27, + "minWidth": 18, "zIndex": 1, }, undefined, @@ -69,13 +69,13 @@ exports[`Counter render counter ICounterSize.small 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, { "color": "#FFF", - "paddingHorizontal": 6, + "paddingHorizontal": 4, "textAlign": "center", }, ] @@ -94,10 +94,10 @@ exports[`Counter render counter ICounterTypes.accent 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -111,13 +111,13 @@ exports[`Counter render counter ICounterTypes.accent 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -136,10 +136,10 @@ exports[`Counter render counter ICounterTypes.accentLight 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -153,13 +153,13 @@ exports[`Counter render counter ICounterTypes.accentLight 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#2B78EE", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -178,10 +178,10 @@ exports[`Counter render counter ICounterTypes.attention 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#F54D3D", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -195,13 +195,13 @@ exports[`Counter render counter ICounterTypes.attention 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -220,10 +220,10 @@ exports[`Counter render counter ICounterTypes.attentionLight 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -237,13 +237,13 @@ exports[`Counter render counter ICounterTypes.attentionLight 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#F54D3D", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -262,10 +262,10 @@ exports[`Counter render counter ICounterTypes.muted 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#B6BBC6", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -279,13 +279,13 @@ exports[`Counter render counter ICounterTypes.muted 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -304,10 +304,10 @@ exports[`Counter render counter ICounterTypes.mutedLight 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#FFF", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, undefined, @@ -321,13 +321,13 @@ exports[`Counter render counter ICounterTypes.mutedLight 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#9BA1B0", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] @@ -346,10 +346,10 @@ exports[`Counter render counter style 1`] = ` "alignItems": "center", "alignSelf": "center", "backgroundColor": "#2B78EE", - "borderRadius": 18, - "height": 36, + "borderRadius": 12, + "height": 24, "justifyContent": "center", - "minWidth": 36, + "minWidth": 24, "zIndex": 1, }, { @@ -365,13 +365,13 @@ exports[`Counter render counter style 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { "color": "#FFF", - "paddingHorizontal": 9, + "paddingHorizontal": 6, "textAlign": "center", }, ] diff --git a/packages/core/src/other/components/Badge/Counter/stylesCreate.ts b/packages/core/src/other/components/Badge/Counter/stylesCreate.ts index 8e2961ea7..8ed18a373 100644 --- a/packages/core/src/other/components/Badge/Counter/stylesCreate.ts +++ b/packages/core/src/other/components/Badge/Counter/stylesCreate.ts @@ -1,12 +1,12 @@ -import rem from '../../../../styles/utils/rem'; import {createStyles} from '../../../../styles'; +import px from '../../../../styles/utils/px'; import {ICounterSize, ICounterTypes} from './types'; const stylesCreate = createStyles( ({spaces, colors}, size: ICounterSize, type?: ICounterTypes) => { const isMedium = size === ICounterSize.medium; - const defaultSize = isMedium ? spaces.Space24 : rem(18); + const defaultSize = isMedium ? spaces.Space24 : px(18); const getBackgroundColor = () => { switch (type) { diff --git a/packages/core/src/other/components/Carousel/Carousel.tsx b/packages/core/src/other/components/Carousel/Carousel.tsx index 72091ccec..96b60beea 100644 --- a/packages/core/src/other/components/Carousel/Carousel.tsx +++ b/packages/core/src/other/components/Carousel/Carousel.tsx @@ -7,12 +7,12 @@ import { } from 'react-native'; import {useSafeAreaFrame} from 'react-native-safe-area-context'; -import rem from '../../../styles/utils/rem'; import TouchableOpacity from '../../../basic/components/TouchableOpacity/TouchableOpacity'; import {LABELS} from '../../constants'; import useStyles from '../../../styles/hooks/useStyles'; import Dots from '../Dots/Dots'; import {isNumber} from '../../functions/isNumber'; +import px from '../../../styles/utils/px'; import stylesCreate from './stylesCreate'; import {ICarouselAlign, ICarouselProps} from './types'; @@ -28,7 +28,7 @@ const Carousel = ({ sliderItem, keyExtractor, loading = false, - sideMargin = rem(10), + sideMargin = px(10), itemWidth, onPressItem, activeItemId, diff --git a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoCarousel.test.tsx.snap b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoCarousel.test.tsx.snap index afdfc4d1b..0352fc089 100644 --- a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoCarousel.test.tsx.snap +++ b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoCarousel.test.tsx.snap @@ -136,7 +136,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -200,7 +200,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -264,7 +264,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -328,7 +328,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -392,7 +392,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -456,7 +456,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -520,7 +520,7 @@ exports[`AutoCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoLoopCarousel.test.tsx.snap b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoLoopCarousel.test.tsx.snap index c3e5c60cf..1cf62ad49 100644 --- a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoLoopCarousel.test.tsx.snap +++ b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/AutoLoopCarousel.test.tsx.snap @@ -193,7 +193,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -257,7 +257,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -321,7 +321,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -385,7 +385,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -449,7 +449,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -513,7 +513,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -577,7 +577,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -641,7 +641,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -705,7 +705,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -769,7 +769,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -833,7 +833,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -897,7 +897,7 @@ exports[`AutoLoopCarousel render AutoCarousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/Carousel.test.tsx.snap b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/Carousel.test.tsx.snap index 3f683d353..aea70542f 100644 --- a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/Carousel.test.tsx.snap +++ b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/Carousel.test.tsx.snap @@ -59,7 +59,7 @@ exports[`Carousel render Carousel 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -125,7 +125,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -136,7 +136,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -189,7 +189,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -200,7 +200,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -253,7 +253,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -264,7 +264,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -317,7 +317,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -328,7 +328,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -381,7 +381,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -392,7 +392,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -445,7 +445,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -456,7 +456,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -509,7 +509,7 @@ exports[`Carousel render Carousel 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -520,7 +520,7 @@ exports[`Carousel render Carousel 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -591,7 +591,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -657,7 +657,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -668,7 +668,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -721,7 +721,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -732,7 +732,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -785,7 +785,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -796,7 +796,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -849,7 +849,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -860,7 +860,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -913,7 +913,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -924,7 +924,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -977,7 +977,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -988,7 +988,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1041,7 +1041,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1052,7 +1052,7 @@ exports[`Carousel render Carousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1123,7 +1123,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -1189,7 +1189,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1200,7 +1200,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1253,7 +1253,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1264,7 +1264,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1317,7 +1317,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1328,7 +1328,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1381,7 +1381,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1392,7 +1392,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1445,7 +1445,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1456,7 +1456,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1509,7 +1509,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1520,7 +1520,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1573,7 +1573,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1584,7 +1584,7 @@ exports[`Carousel render Carousel animateAutoScroll true 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1655,7 +1655,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -1721,7 +1721,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1732,7 +1732,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1785,7 +1785,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1796,7 +1796,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1849,7 +1849,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1860,7 +1860,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1913,7 +1913,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1924,7 +1924,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1977,7 +1977,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1988,7 +1988,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2041,7 +2041,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2052,7 +2052,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2105,7 +2105,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2116,7 +2116,7 @@ exports[`Carousel render Carousel autoScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2187,7 +2187,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -2253,7 +2253,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2264,7 +2264,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2317,7 +2317,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2328,7 +2328,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2381,7 +2381,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2392,7 +2392,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2445,7 +2445,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2456,7 +2456,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2509,7 +2509,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2520,7 +2520,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2573,7 +2573,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2584,7 +2584,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2637,7 +2637,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2648,7 +2648,7 @@ exports[`Carousel render Carousel averageItemLength 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2719,7 +2719,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -2785,7 +2785,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2796,7 +2796,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2849,7 +2849,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2860,7 +2860,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2913,7 +2913,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2924,7 +2924,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2977,7 +2977,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2988,7 +2988,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3041,7 +3041,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3052,7 +3052,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3105,7 +3105,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3116,7 +3116,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3169,7 +3169,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3180,7 +3180,7 @@ exports[`Carousel render Carousel averageItemLength onScrollToIndexFailed 1`] = { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3252,7 +3252,7 @@ exports[`Carousel render Carousel isDots 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -3318,7 +3318,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3329,7 +3329,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3382,7 +3382,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3393,7 +3393,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3446,7 +3446,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3457,7 +3457,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3510,7 +3510,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3521,7 +3521,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3574,7 +3574,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3585,7 +3585,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3638,7 +3638,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3649,7 +3649,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3702,7 +3702,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3713,7 +3713,7 @@ exports[`Carousel render Carousel isDots 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3729,7 +3729,7 @@ exports[`Carousel render Carousel isDots 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -3750,10 +3750,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -3765,10 +3765,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -3780,10 +3780,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -3795,10 +3795,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -3810,10 +3810,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -3825,10 +3825,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -3840,10 +3840,10 @@ exports[`Carousel render Carousel isDots 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -3917,7 +3917,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -3983,7 +3983,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3994,7 +3994,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4047,7 +4047,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4058,7 +4058,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4111,7 +4111,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4122,7 +4122,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4175,7 +4175,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4186,7 +4186,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4239,7 +4239,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4250,7 +4250,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4303,7 +4303,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4314,7 +4314,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4367,7 +4367,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4378,7 +4378,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4394,7 +4394,7 @@ exports[`Carousel render Carousel isDots with props 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -4415,10 +4415,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "red", @@ -4430,10 +4430,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "black", @@ -4445,10 +4445,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "black", @@ -4460,10 +4460,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "black", @@ -4475,10 +4475,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "black", @@ -4490,10 +4490,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "black", @@ -4505,10 +4505,10 @@ exports[`Carousel render Carousel isDots with props 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "black", @@ -4581,7 +4581,7 @@ exports[`Carousel render Carousel loading 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -4647,7 +4647,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4658,7 +4658,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4711,7 +4711,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4722,7 +4722,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4775,7 +4775,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4786,7 +4786,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4839,7 +4839,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4850,7 +4850,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4903,7 +4903,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4914,7 +4914,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4967,7 +4967,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4978,7 +4978,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5031,7 +5031,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5042,7 +5042,7 @@ exports[`Carousel render Carousel loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5113,7 +5113,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -5179,7 +5179,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5190,7 +5190,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5243,7 +5243,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5254,7 +5254,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5307,7 +5307,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5318,7 +5318,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5371,7 +5371,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5382,7 +5382,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5435,7 +5435,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5446,7 +5446,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5499,7 +5499,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5510,7 +5510,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5563,7 +5563,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5574,7 +5574,7 @@ exports[`Carousel render Carousel not activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5645,7 +5645,7 @@ exports[`Carousel render Carousel not index 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -5711,7 +5711,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5722,7 +5722,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5775,7 +5775,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5786,7 +5786,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5839,7 +5839,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5850,7 +5850,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5903,7 +5903,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5914,7 +5914,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5967,7 +5967,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5978,7 +5978,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6031,7 +6031,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6042,7 +6042,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6095,7 +6095,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6106,7 +6106,7 @@ exports[`Carousel render Carousel not index 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6177,7 +6177,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -6243,7 +6243,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6254,7 +6254,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6307,7 +6307,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6318,7 +6318,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6371,7 +6371,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6382,7 +6382,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6435,7 +6435,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6446,7 +6446,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6499,7 +6499,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6510,7 +6510,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6563,7 +6563,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6574,7 +6574,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6627,7 +6627,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6638,7 +6638,7 @@ exports[`Carousel render Carousel not scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6709,7 +6709,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -6775,7 +6775,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6786,7 +6786,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6839,7 +6839,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6850,7 +6850,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6903,7 +6903,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6914,7 +6914,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6967,7 +6967,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6978,7 +6978,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7031,7 +7031,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7042,7 +7042,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7095,7 +7095,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7106,7 +7106,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7159,7 +7159,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7170,7 +7170,7 @@ exports[`Carousel render Carousel onActiveChange 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7241,7 +7241,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -7307,7 +7307,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7318,7 +7318,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7371,7 +7371,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7382,7 +7382,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7435,7 +7435,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7446,7 +7446,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7499,7 +7499,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7510,7 +7510,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7563,7 +7563,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7574,7 +7574,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7627,7 +7627,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7638,7 +7638,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7691,7 +7691,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7702,7 +7702,7 @@ exports[`Carousel render Carousel onScroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7773,7 +7773,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -7839,7 +7839,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7850,7 +7850,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7903,7 +7903,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7914,7 +7914,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7967,7 +7967,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -7978,7 +7978,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8031,7 +8031,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8042,7 +8042,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8095,7 +8095,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8106,7 +8106,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8159,7 +8159,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8170,7 +8170,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8223,7 +8223,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8234,7 +8234,7 @@ exports[`Carousel render Carousel onScrollToIndexFailed 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8305,7 +8305,7 @@ exports[`Carousel render Carousel scroll 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -8371,7 +8371,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8382,7 +8382,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8435,7 +8435,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8446,7 +8446,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8499,7 +8499,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8510,7 +8510,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8563,7 +8563,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8574,7 +8574,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8627,7 +8627,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8638,7 +8638,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8691,7 +8691,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8702,7 +8702,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8755,7 +8755,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8766,7 +8766,7 @@ exports[`Carousel render Carousel scroll 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8837,7 +8837,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -8903,7 +8903,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8914,7 +8914,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -8967,7 +8967,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -8978,7 +8978,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9031,7 +9031,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9042,7 +9042,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9095,7 +9095,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9106,7 +9106,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9159,7 +9159,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9170,7 +9170,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9223,7 +9223,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9234,7 +9234,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9287,7 +9287,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9298,7 +9298,7 @@ exports[`Carousel render Carousel scroll align = center 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9369,7 +9369,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -9435,7 +9435,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9446,7 +9446,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9499,7 +9499,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9510,7 +9510,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9563,7 +9563,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9574,7 +9574,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9627,7 +9627,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9638,7 +9638,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9691,7 +9691,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9702,7 +9702,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9755,7 +9755,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9766,7 +9766,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9819,7 +9819,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9830,7 +9830,7 @@ exports[`Carousel render Carousel scroll align = center count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -9901,7 +9901,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -9967,7 +9967,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -9978,7 +9978,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10031,7 +10031,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10042,7 +10042,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10095,7 +10095,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10106,7 +10106,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10159,7 +10159,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10170,7 +10170,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10223,7 +10223,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10234,7 +10234,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10287,7 +10287,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10298,7 +10298,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10351,7 +10351,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10362,7 +10362,7 @@ exports[`Carousel render Carousel scroll align = center honest 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10433,7 +10433,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={280} + snapToInterval={270} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -10499,7 +10499,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10510,7 +10510,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10563,7 +10563,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10574,7 +10574,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10627,7 +10627,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10638,7 +10638,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10691,7 +10691,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10702,7 +10702,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10755,7 +10755,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10766,7 +10766,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10819,7 +10819,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10830,7 +10830,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -10883,7 +10883,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -10894,7 +10894,7 @@ exports[`Carousel render Carousel scroll align = center honest count 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/LoopCarousel.test.tsx.snap b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/LoopCarousel.test.tsx.snap index afcb39592..544557899 100644 --- a/packages/core/src/other/components/Carousel/__tests__/__snapshots__/LoopCarousel.test.tsx.snap +++ b/packages/core/src/other/components/Carousel/__tests__/__snapshots__/LoopCarousel.test.tsx.snap @@ -116,7 +116,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -182,7 +182,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -193,7 +193,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -246,7 +246,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -257,7 +257,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -310,7 +310,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -321,7 +321,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -374,7 +374,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -385,7 +385,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -438,7 +438,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -449,7 +449,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -502,7 +502,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -513,7 +513,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -566,7 +566,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -577,7 +577,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -630,7 +630,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -641,7 +641,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -694,7 +694,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -705,7 +705,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -758,7 +758,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -769,7 +769,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -822,7 +822,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -833,7 +833,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -886,7 +886,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -897,7 +897,7 @@ exports[`LoopCarousel render LoopCarousel activeItemId 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1032,7 +1032,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -1098,7 +1098,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1109,7 +1109,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1162,7 +1162,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1173,7 +1173,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1226,7 +1226,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1237,7 +1237,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1290,7 +1290,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1301,7 +1301,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1354,7 +1354,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1365,7 +1365,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1418,7 +1418,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1429,7 +1429,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1482,7 +1482,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1493,7 +1493,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1546,7 +1546,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1557,7 +1557,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1610,7 +1610,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1621,7 +1621,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1674,7 +1674,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1685,7 +1685,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1738,7 +1738,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1749,7 +1749,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1802,7 +1802,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -1813,7 +1813,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = 0 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -1948,7 +1948,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -2014,7 +2014,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2025,7 +2025,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2078,7 +2078,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2089,7 +2089,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2142,7 +2142,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2153,7 +2153,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2206,7 +2206,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2217,7 +2217,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2270,7 +2270,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2281,7 +2281,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2334,7 +2334,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2345,7 +2345,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2398,7 +2398,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2409,7 +2409,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2462,7 +2462,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2473,7 +2473,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2526,7 +2526,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2537,7 +2537,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2590,7 +2590,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2601,7 +2601,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2654,7 +2654,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2665,7 +2665,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2718,7 +2718,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2729,7 +2729,7 @@ exports[`LoopCarousel render LoopCarousel contentOffset = contentSize 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2864,7 +2864,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -2930,7 +2930,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -2941,7 +2941,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -2994,7 +2994,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3005,7 +3005,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3058,7 +3058,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3069,7 +3069,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3122,7 +3122,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3133,7 +3133,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3186,7 +3186,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3197,7 +3197,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3250,7 +3250,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3261,7 +3261,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3314,7 +3314,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3325,7 +3325,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3378,7 +3378,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3389,7 +3389,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3442,7 +3442,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3453,7 +3453,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3506,7 +3506,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3517,7 +3517,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3570,7 +3570,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3581,7 +3581,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3634,7 +3634,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3645,7 +3645,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3780,7 +3780,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="center" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -3846,7 +3846,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3857,7 +3857,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3910,7 +3910,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3921,7 +3921,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -3974,7 +3974,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -3985,7 +3985,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4038,7 +4038,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4049,7 +4049,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4102,7 +4102,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4113,7 +4113,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4166,7 +4166,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4177,7 +4177,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4230,7 +4230,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4241,7 +4241,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4294,7 +4294,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4305,7 +4305,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4358,7 +4358,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4369,7 +4369,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4422,7 +4422,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4433,7 +4433,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4486,7 +4486,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4497,7 +4497,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4550,7 +4550,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4561,7 +4561,7 @@ exports[`LoopCarousel render LoopCarousel initScroll isLoop align === center 1`] { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4696,7 +4696,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -4762,7 +4762,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4773,7 +4773,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4826,7 +4826,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4837,7 +4837,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4890,7 +4890,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4901,7 +4901,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -4954,7 +4954,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -4965,7 +4965,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5018,7 +5018,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5029,7 +5029,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5082,7 +5082,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5093,7 +5093,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5146,7 +5146,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5157,7 +5157,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5210,7 +5210,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5221,7 +5221,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5274,7 +5274,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5285,7 +5285,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5338,7 +5338,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5349,7 +5349,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5402,7 +5402,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5413,7 +5413,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5466,7 +5466,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5477,7 +5477,7 @@ exports[`LoopCarousel render LoopCarousel not index isLoop 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5612,7 +5612,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` scrollEventThrottle={16} showsHorizontalScrollIndicator={false} snapToAlignment="start" - snapToInterval={130} + snapToInterval={120} stickyHeaderIndices={[]} viewabilityConfig={ { @@ -5678,7 +5678,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5689,7 +5689,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5742,7 +5742,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5753,7 +5753,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5806,7 +5806,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5817,7 +5817,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5870,7 +5870,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5881,7 +5881,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5934,7 +5934,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -5945,7 +5945,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -5998,7 +5998,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6009,7 +6009,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6062,7 +6062,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6073,7 +6073,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6126,7 +6126,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6137,7 +6137,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6190,7 +6190,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6201,7 +6201,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6254,7 +6254,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6265,7 +6265,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6318,7 +6318,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6329,7 +6329,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6382,7 +6382,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "alignItems": "center", "justifyContent": "center", - "marginHorizontal": 15, + "marginHorizontal": 10, "opacity": 1, } } @@ -6393,7 +6393,7 @@ exports[`LoopCarousel render LoopCarousel onPressItem loading 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6605,7 +6605,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6669,7 +6669,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6733,7 +6733,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6797,7 +6797,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6861,7 +6861,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6925,7 +6925,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -6989,7 +6989,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7053,7 +7053,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7117,7 +7117,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7181,7 +7181,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7245,7 +7245,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -7309,7 +7309,7 @@ exports[`LoopCarousel render LoopCarousel sideMargin 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/other/components/Collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap b/packages/core/src/other/components/Collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap index eb7ac02ed..82ee28321 100644 --- a/packages/core/src/other/components/Collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +++ b/packages/core/src/other/components/Collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap @@ -5,7 +5,7 @@ exports[`Collapsible render crossed onPress - 1 1`] = ` style={ [ { - "padding": 30, + "padding": 20, "width": "100%", }, { @@ -61,9 +61,9 @@ exports[`Collapsible render crossed onPress - 1 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, [ { @@ -84,7 +84,7 @@ exports[`Collapsible render crossed onPress - 1 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -100,7 +100,7 @@ exports[`Collapsible render crossed onPress - 1 android 1`] = ` style={ [ { - "padding": 30, + "padding": 20, "width": "100%", }, undefined, @@ -153,9 +153,9 @@ exports[`Collapsible render crossed onPress - 1 android 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -174,7 +174,7 @@ exports[`Collapsible render crossed onPress - 1 android 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -191,7 +191,7 @@ exports[`Collapsible render crossed onPress - 2 1`] = ` style={ [ { - "padding": 30, + "padding": 20, "width": "100%", }, undefined, @@ -244,9 +244,9 @@ exports[`Collapsible render crossed onPress - 2 1`] = ` { "color": "#444B5A", "fontFamily": "Inter-SemiBold", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -265,7 +265,7 @@ exports[`Collapsible render crossed onPress - 2 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/other/components/CrossedText/CrossedText.tsx b/packages/core/src/other/components/CrossedText/CrossedText.tsx index 4a9513887..353592969 100644 --- a/packages/core/src/other/components/CrossedText/CrossedText.tsx +++ b/packages/core/src/other/components/CrossedText/CrossedText.tsx @@ -2,9 +2,9 @@ import {FC} from 'react'; import View from '../../../basic/components/View/View'; import {Typography} from '../../../typography'; -import rem from '../../../styles/utils/rem'; import {createStyles} from '../../../styles'; import useStyles from '../../../styles/hooks/useStyles'; +import px from '../../../styles/utils/px'; import {ICrossedTextProps} from './types'; @@ -12,7 +12,7 @@ const CrossedText: FC = ({ children, style, lineColor, - lineHeight = rem(1), + lineHeight = px(1), ...props }) => { const [styles] = useStyles(stylesCreate); diff --git a/packages/core/src/other/components/CrossedText/__tests__/__snapshots__/CrossesText.test.tsx.snap b/packages/core/src/other/components/CrossedText/__tests__/__snapshots__/CrossesText.test.tsx.snap index 137dcab8f..da59f853b 100644 --- a/packages/core/src/other/components/CrossedText/__tests__/__snapshots__/CrossesText.test.tsx.snap +++ b/packages/core/src/other/components/CrossedText/__tests__/__snapshots__/CrossesText.test.tsx.snap @@ -9,9 +9,9 @@ exports[`CrossedText render crossed text default 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] @@ -36,7 +36,7 @@ exports[`CrossedText render crossed text default 1`] = ` }, { "backgroundColor": "#000", - "height": 1.5, + "height": 1, }, ] } @@ -54,9 +54,9 @@ exports[`CrossedText render crossed text with lineHeight 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] diff --git a/packages/core/src/other/components/Dots/__tests__/__snapshots__/Dots.test.tsx.snap b/packages/core/src/other/components/Dots/__tests__/__snapshots__/Dots.test.tsx.snap index 7fa375c65..c85ccba64 100644 --- a/packages/core/src/other/components/Dots/__tests__/__snapshots__/Dots.test.tsx.snap +++ b/packages/core/src/other/components/Dots/__tests__/__snapshots__/Dots.test.tsx.snap @@ -21,7 +21,7 @@ exports[`Dots render dots activeDot left 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -42,10 +42,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -57,10 +57,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -72,10 +72,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -87,10 +87,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -102,10 +102,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -117,10 +117,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -132,10 +132,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -147,10 +147,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -162,10 +162,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -177,10 +177,10 @@ exports[`Dots render dots activeDot left 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -200,7 +200,7 @@ exports[`Dots render dots activeDot left 2`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -221,10 +221,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -236,10 +236,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -251,10 +251,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -266,10 +266,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -281,10 +281,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -296,10 +296,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -311,10 +311,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -326,10 +326,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -341,10 +341,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -356,10 +356,10 @@ exports[`Dots render dots activeDot left 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -379,7 +379,7 @@ exports[`Dots render dots activeDot left 3`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -400,10 +400,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -415,10 +415,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -430,10 +430,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -445,10 +445,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -460,10 +460,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -475,10 +475,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -490,10 +490,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -505,10 +505,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -520,10 +520,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -535,10 +535,10 @@ exports[`Dots render dots activeDot left 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -558,7 +558,7 @@ exports[`Dots render dots activeDot left 4`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -579,10 +579,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -594,10 +594,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -609,10 +609,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -624,10 +624,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -639,10 +639,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -654,10 +654,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -669,10 +669,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -684,10 +684,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -699,10 +699,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -714,10 +714,10 @@ exports[`Dots render dots activeDot left 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -737,7 +737,7 @@ exports[`Dots render dots activeDot right 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -758,10 +758,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -773,10 +773,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -788,10 +788,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -803,10 +803,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -818,10 +818,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -833,10 +833,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -848,10 +848,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -863,10 +863,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -878,10 +878,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -893,10 +893,10 @@ exports[`Dots render dots activeDot right 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -916,7 +916,7 @@ exports[`Dots render dots activeDot right 2`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -937,10 +937,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -952,10 +952,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -967,10 +967,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -982,10 +982,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -997,10 +997,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1012,10 +1012,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1027,10 +1027,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1042,10 +1042,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1057,10 +1057,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1072,10 +1072,10 @@ exports[`Dots render dots activeDot right 2`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1095,7 +1095,7 @@ exports[`Dots render dots activeDot right 3`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -1116,10 +1116,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1131,10 +1131,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -1146,10 +1146,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1161,10 +1161,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1176,10 +1176,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1191,10 +1191,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1206,10 +1206,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1221,10 +1221,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1236,10 +1236,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1251,10 +1251,10 @@ exports[`Dots render dots activeDot right 3`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1274,7 +1274,7 @@ exports[`Dots render dots activeDot right 4`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -1295,10 +1295,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -1310,10 +1310,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1325,10 +1325,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1340,10 +1340,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1355,10 +1355,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1370,10 +1370,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1385,10 +1385,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1400,10 +1400,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1415,10 +1415,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1430,10 +1430,10 @@ exports[`Dots render dots activeDot right 4`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1453,7 +1453,7 @@ exports[`Dots render dots activeDot=2 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -1474,10 +1474,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1489,10 +1489,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1504,10 +1504,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -1519,10 +1519,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1534,10 +1534,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1549,10 +1549,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1564,10 +1564,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1579,10 +1579,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1594,10 +1594,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1609,10 +1609,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1624,10 +1624,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1639,10 +1639,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1654,10 +1654,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1669,10 +1669,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1684,10 +1684,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1699,10 +1699,10 @@ exports[`Dots render dots activeDot=2 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1735,7 +1735,7 @@ exports[`Dots render dots activeDot=2 fixedSize 1`] = ` { "borderRadius": 2, "height": 4, - "marginHorizontal": 7.5, + "marginHorizontal": 5, "width": 4, }, { @@ -1750,7 +1750,7 @@ exports[`Dots render dots activeDot=2 fixedSize 1`] = ` { "borderRadius": 2, "height": 4, - "marginHorizontal": 7.5, + "marginHorizontal": 5, "width": 4, }, { @@ -1765,7 +1765,7 @@ exports[`Dots render dots activeDot=2 fixedSize 1`] = ` { "borderRadius": 2, "height": 4, - "marginHorizontal": 7.5, + "marginHorizontal": 5, "width": 4, }, { @@ -1780,7 +1780,7 @@ exports[`Dots render dots activeDot=2 fixedSize 1`] = ` { "borderRadius": 2, "height": 4, - "marginHorizontal": 7.5, + "marginHorizontal": 5, "width": 4, }, { @@ -1795,7 +1795,7 @@ exports[`Dots render dots activeDot=2 fixedSize 1`] = ` { "borderRadius": 2, "height": 4, - "marginHorizontal": 7.5, + "marginHorizontal": 5, "width": 4, }, { @@ -1814,7 +1814,7 @@ exports[`Dots render dots activeDot=10 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -1835,10 +1835,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1850,10 +1850,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1865,10 +1865,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1880,10 +1880,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1895,10 +1895,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1910,10 +1910,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -1925,10 +1925,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -1940,10 +1940,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1955,10 +1955,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -1970,10 +1970,10 @@ exports[`Dots render dots activeDot=10 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -1993,7 +1993,7 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -2014,10 +2014,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2029,10 +2029,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2044,10 +2044,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2059,10 +2059,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2074,10 +2074,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2089,10 +2089,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2104,10 +2104,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -2119,10 +2119,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2134,10 +2134,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2149,10 +2149,10 @@ exports[`Dots render dots activeDot=10 animateAutoScroll 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -2181,10 +2181,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -2196,10 +2196,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2211,10 +2211,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2226,10 +2226,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -2241,10 +2241,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2256,10 +2256,10 @@ exports[`Dots render dots length < 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2277,7 +2277,7 @@ exports[`Dots render dots length > 7 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -2298,10 +2298,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -2313,10 +2313,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2328,10 +2328,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2343,10 +2343,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -2358,10 +2358,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2373,10 +2373,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2388,10 +2388,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2403,10 +2403,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2418,10 +2418,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2433,10 +2433,10 @@ exports[`Dots render dots length > 7 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2456,7 +2456,7 @@ exports[`Dots render dots onLayout 1`] = ` onLayout={[Function]} style={ { - "width": 150, + "width": 100, } } > @@ -2477,10 +2477,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#5E6678", @@ -2492,10 +2492,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2507,10 +2507,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "marginHorizontal": 7.5, - "width": 12, + "borderRadius": 4, + "height": 8, + "marginHorizontal": 5, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -2522,10 +2522,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 4.5, - "height": 9, - "marginHorizontal": 7.5, - "width": 9, + "borderRadius": 3, + "height": 6, + "marginHorizontal": 5, + "width": 6, }, { "backgroundColor": "#B6BBC6", @@ -2537,10 +2537,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2552,10 +2552,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2567,10 +2567,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2582,10 +2582,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2597,10 +2597,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", @@ -2612,10 +2612,10 @@ exports[`Dots render dots onLayout 1`] = ` style={ [ { - "borderRadius": 3, - "height": 6, - "marginHorizontal": 7.5, - "width": 6, + "borderRadius": 2, + "height": 4, + "marginHorizontal": 5, + "width": 4, }, { "backgroundColor": "#B6BBC6", diff --git a/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.ts b/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.ts index aab68827d..28ca4157b 100644 --- a/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.ts +++ b/packages/core/src/other/components/Dots/__tests__/stylesCreate.test.ts @@ -2,7 +2,7 @@ import {renderHook} from '@testing-library/react-hooks'; import stylesCreate from '../stylesCreate'; import useTheme from '../../../../styles/hooks/useTheme'; -import rem from '../../../../styles/utils/rem'; +import px from '../../../../styles/utils/px'; describe('dots/stylesCreate', () => { it('must return', () => { @@ -10,15 +10,15 @@ describe('dots/stylesCreate', () => { expect(stylesCreate(result.current)).toEqual({ dot: { - width: rem(8), - height: rem(8), - marginHorizontal: rem(5), - borderRadius: rem(8) / 2, + width: px(8), + height: px(8), + marginHorizontal: px(5), + borderRadius: px(8) / 2, }, dots: { flexDirection: 'row', alignItems: 'center', - paddingTop: rem(5), + paddingTop: px(5), }, }); }); diff --git a/packages/core/src/other/components/Dots/constants.ts b/packages/core/src/other/components/Dots/constants.ts index f8e32842f..155571046 100644 --- a/packages/core/src/other/components/Dots/constants.ts +++ b/packages/core/src/other/components/Dots/constants.ts @@ -1,12 +1,12 @@ -import rem from '../../../styles/utils/rem'; +import px from '../../../styles/utils/px'; export const SPAN_SIZE = 3; -export const SIZE_LARGE = rem(8); -export const SIZE_MEDIUM = rem(6); -export const SIZE_SMALL = rem(4); +export const SIZE_LARGE = px(8); +export const SIZE_MEDIUM = px(6); +export const SIZE_SMALL = px(4); -export const MARGIN_DOT = rem(5) * 2; +export const MARGIN_DOT = px(5) * 2; export const WIDTH_SMALL = (SIZE_LARGE + MARGIN_DOT) * 3 + diff --git a/packages/core/src/other/components/Dots/stylesCreate.ts b/packages/core/src/other/components/Dots/stylesCreate.ts index 08c040e78..be8173cec 100644 --- a/packages/core/src/other/components/Dots/stylesCreate.ts +++ b/packages/core/src/other/components/Dots/stylesCreate.ts @@ -1,17 +1,17 @@ -import rem from '../../../styles/utils/rem'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; const stylesCreate = createStyles(({spaces}, size: number = spaces.Space8) => ({ dot: { width: size, height: size, - marginHorizontal: rem(5), + marginHorizontal: px(5), borderRadius: size / 2, }, dots: { flexDirection: 'row', alignItems: 'center', - paddingTop: rem(5), + paddingTop: px(5), }, })); diff --git a/packages/core/src/other/components/Status/__tests__/__snapshots__/Status.test.tsx.snap b/packages/core/src/other/components/Status/__tests__/__snapshots__/Status.test.tsx.snap index 7e29e35fd..53452ce9b 100644 --- a/packages/core/src/other/components/Status/__tests__/__snapshots__/Status.test.tsx.snap +++ b/packages/core/src/other/components/Status/__tests__/__snapshots__/Status.test.tsx.snap @@ -5,9 +5,9 @@ exports[`Status render not state 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "#EEEFF1", @@ -23,9 +23,9 @@ exports[`Status render not state 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] @@ -41,9 +41,9 @@ exports[`Status render type dot blue 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "width": 12, + "borderRadius": 4, + "height": 8, + "width": 8, }, { "backgroundColor": "#2B78EE", @@ -59,9 +59,9 @@ exports[`Status render type dot gray 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "width": 12, + "borderRadius": 4, + "height": 8, + "width": 8, }, { "backgroundColor": "#B6BBC6", @@ -77,9 +77,9 @@ exports[`Status render type dot green 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "width": 12, + "borderRadius": 4, + "height": 8, + "width": 8, }, { "backgroundColor": "#4ABA79", @@ -97,9 +97,9 @@ exports[`Status render type dot orange 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "width": 12, + "borderRadius": 4, + "height": 8, + "width": 8, }, { "backgroundColor": "#FAB742", @@ -115,9 +115,9 @@ exports[`Status render type dot red 1`] = ` style={ [ { - "borderRadius": 6, - "height": 12, - "width": 12, + "borderRadius": 4, + "height": 8, + "width": 8, }, { "backgroundColor": "#F54D3D", @@ -133,9 +133,9 @@ exports[`Status render type tag blue 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "rgba(43, 120, 238, 0.15)", @@ -153,9 +153,9 @@ exports[`Status render type tag blue 1`] = ` { "color": "#2B78EE", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] @@ -171,9 +171,9 @@ exports[`Status render type tag gray 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "#EEEFF1", @@ -189,9 +189,9 @@ exports[`Status render type tag gray 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] @@ -207,9 +207,9 @@ exports[`Status render type tag green 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "rgba(74, 186, 121, 0.15)", @@ -225,9 +225,9 @@ exports[`Status render type tag green 1`] = ` { "color": "#29A35C", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] @@ -243,9 +243,9 @@ exports[`Status render type tag orange 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "rgba(250, 183, 66, 0.15)", @@ -261,9 +261,9 @@ exports[`Status render type tag orange 1`] = ` { "color": "#F97A1F", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] @@ -279,9 +279,9 @@ exports[`Status render type tag red 1`] = ` style={ [ { - "borderRadius": 6, - "paddingHorizontal": 9, - "paddingVertical": 3, + "borderRadius": 4, + "paddingHorizontal": 6, + "paddingVertical": 2, }, { "backgroundColor": "rgba(245, 77, 61, 0.15)", @@ -297,9 +297,9 @@ exports[`Status render type tag red 1`] = ` { "color": "#F54D3D", "fontFamily": "Inter-Regular", - "fontSize": 18, - "lineHeight": 24, - "minHeight": 24, + "fontSize": 12, + "lineHeight": 16, + "minHeight": 16, }, undefined, ] diff --git a/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/ActionSheetBase.test.tsx.snap b/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/ActionSheetBase.test.tsx.snap index 6a255559f..b94934f29 100644 --- a/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/ActionSheetBase.test.tsx.snap +++ b/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/ActionSheetBase.test.tsx.snap @@ -161,12 +161,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly with i { "alignItems": "center", "borderTopColor": "#D1D4DB", - "borderTopWidth": 1.5, + "borderTopWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -191,12 +191,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly with i { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } diff --git a/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/Item.test.tsx.snap b/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/Item.test.tsx.snap index 64938bcb7..cb21119ff 100644 --- a/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/Item.test.tsx.snap +++ b/packages/core/src/popups/components/ActionSheetBase/__tests__/__snapshots__/Item.test.tsx.snap @@ -36,13 +36,13 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item 1 [ { "alignItems": "center", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "marginBottom": 45, - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginBottom": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -67,12 +67,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item 1 { "color": "#2B78EE", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -119,13 +119,13 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "alignItems": "center", - "borderTopLeftRadius": 18, - "borderTopRightRadius": 18, + "borderTopLeftRadius": 12, + "borderTopRightRadius": 12, "flexDirection": "row", "justifyContent": "space-between", - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -150,12 +150,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -202,16 +202,16 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "alignItems": "center", - "borderBottomLeftRadius": 18, - "borderBottomRightRadius": 18, + "borderBottomLeftRadius": 12, + "borderBottomRightRadius": 12, "borderTopColor": "#D1D4DB", - "borderTopWidth": 1.5, + "borderTopWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginBottom": 12, - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginBottom": 8, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -236,12 +236,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -328,10 +328,10 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w "aspectRatio": 1, "backgroundColor": "transparent", "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 16.5, - "borderWidth": 3, + "borderRadius": 11, + "borderWidth": 2, "justifyContent": "center", - "width": 33, + "width": 22, } } value="title" @@ -376,13 +376,13 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "alignItems": "center", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "marginBottom": 45, - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginBottom": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -407,12 +407,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#9BA1B0", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -459,13 +459,13 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "alignItems": "center", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "marginBottom": 45, - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginBottom": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -486,7 +486,7 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w @@ -496,7 +496,7 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -510,12 +510,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#2B78EE", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -562,13 +562,13 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "alignItems": "center", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "marginBottom": 12, - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginBottom": 8, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -593,12 +593,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } @@ -683,10 +683,10 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w [ { "borderColor": "rgba(32, 36, 45, 0.3)", - "borderRadius": 6, + "borderRadius": 4, "borderWidth": 0, - "height": 30, - "width": 30, + "height": 20, + "width": 20, }, undefined, ] @@ -695,8 +695,8 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly Item w > @@ -740,12 +740,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly inner { "alignItems": "center", "borderTopColor": "#D1D4DB", - "borderTopWidth": 1.5, + "borderTopWidth": 1, "flexDirection": "row", "justifyContent": "space-between", - "marginHorizontal": 12, - "minHeight": 75, - "paddingHorizontal": 30, + "marginHorizontal": 8, + "minHeight": 50, + "paddingHorizontal": 20, }, { "backgroundColor": "#FFF", @@ -770,12 +770,12 @@ exports[`@lad-tech/mobydick-core/ActionSheetBase should renders correctly inner { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, { - "paddingVertical": 22.5, + "paddingVertical": 15, }, ] } diff --git a/packages/core/src/popups/components/ActionSheetBase/stylesCreate.ts b/packages/core/src/popups/components/ActionSheetBase/stylesCreate.ts index 750a99971..c1115a3d9 100644 --- a/packages/core/src/popups/components/ActionSheetBase/stylesCreate.ts +++ b/packages/core/src/popups/components/ActionSheetBase/stylesCreate.ts @@ -1,7 +1,7 @@ import {ViewStyle} from 'react-native'; -import rem from '../../../styles/utils/rem'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; import {IItemType} from './types'; @@ -29,7 +29,7 @@ const stylesCreate = createStyles(({spaces, colors}, itemType?: IItemType) => { case IItemType.cancelItem: return { borderRadius: spaces.Space12, - marginBottom: rem(30), + marginBottom: px(30), justifyContent: 'center', }; default: @@ -54,7 +54,7 @@ const stylesCreate = createStyles(({spaces, colors}, itemType?: IItemType) => { alignItems: 'center', paddingHorizontal: spaces.Space20, marginHorizontal: spaces.Space8, - minHeight: rem(50), + minHeight: px(50), ...getItemStyle(), }, @@ -67,7 +67,7 @@ const stylesCreate = createStyles(({spaces, colors}, itemType?: IItemType) => { alignItems: 'center', }, textSelected: { - paddingVertical: rem(15), + paddingVertical: px(15), }, }; }); diff --git a/packages/core/src/popups/components/ModalBase/AlertContent.tsx b/packages/core/src/popups/components/ModalBase/AlertContent.tsx index 8a8125b21..7e6a2303a 100644 --- a/packages/core/src/popups/components/ModalBase/AlertContent.tsx +++ b/packages/core/src/popups/components/ModalBase/AlertContent.tsx @@ -7,7 +7,7 @@ import SimpleIcon, { import useStyles from '../../../styles/hooks/useStyles'; import useTheme from '../../../styles/hooks/useTheme'; import View from '../../../basic/components/View/View'; -import rem from '../../../styles/utils/rem'; +import px from '../../../styles/utils/px'; import stylesCreate from './stylesCreate'; @@ -27,7 +27,7 @@ const AlertContent: FC = props => { diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/AlertContent.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/AlertContent.test.tsx.snap index 3cc868ffe..7d46b68bc 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/AlertContent.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/AlertContent.test.tsx.snap @@ -7,7 +7,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly AlertContent { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, undefined, ] @@ -19,7 +19,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly AlertContent { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -35,7 +35,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly AlertContent { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, { "backgroundColor": "#fff", @@ -49,7 +49,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly AlertContent { "color": "#fff", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/CloseIcon.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/CloseIcon.test.tsx.snap index 13bb3f3bb..95823c9f3 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/CloseIcon.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/CloseIcon.test.tsx.snap @@ -35,8 +35,8 @@ exports[`@lad-tech/mobydick-core/CloseIcon should renders correctly 1`] = ` "justifyContent": "center", "opacity": 1, "position": "absolute", - "right": 24, - "top": 24, + "right": 16, + "top": 16, "zIndex": 2, } } @@ -47,7 +47,7 @@ exports[`@lad-tech/mobydick-core/CloseIcon should renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/HorizontalButtonsView.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/HorizontalButtonsView.test.tsx.snap index 7835bf041..514cd8051 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/HorizontalButtonsView.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/HorizontalButtonsView.test.tsx.snap @@ -5,7 +5,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -42,12 +42,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -59,13 +59,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -108,12 +108,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -125,13 +125,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -149,7 +149,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -186,12 +186,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -203,13 +203,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -252,12 +252,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -269,13 +269,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -293,7 +293,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -330,12 +330,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -347,13 +347,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -396,12 +396,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -413,13 +413,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -437,7 +437,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -474,12 +474,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -491,13 +491,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -540,12 +540,12 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -557,13 +557,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly HorizontalBu { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ImageView.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ImageView.test.tsx.snap index ca9b2fbb4..70e1cb33d 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ImageView.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ImageView.test.tsx.snap @@ -5,7 +5,7 @@ exports[`@lad-tech/mobydick-core/ImageView should renders correctly 1`] = ` style={ [ { - "marginBottom": 6, + "marginBottom": 4, }, undefined, ] @@ -20,7 +20,7 @@ exports[`@lad-tech/mobydick-core/ImageView should renders correctly with styles style={ [ { - "marginBottom": 6, + "marginBottom": 4, }, { "flex": 1, diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ModalBase.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ModalBase.test.tsx.snap index 4b970efd3..71095c46c 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ModalBase.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/ModalBase.test.tsx.snap @@ -57,12 +57,12 @@ exports[`@lad-tech/mobydick-core/ModalBase should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, undefined, ] diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/TextContent.text.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/TextContent.text.tsx.snap index 7eb5a1590..96c5a0c2d 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/TextContent.text.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/TextContent.text.tsx.snap @@ -4,8 +4,8 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly with description @@ -16,13 +16,13 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly with description { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, { @@ -41,8 +41,8 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly with titleFont 1 @@ -53,9 +53,9 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly with titleFont 1 { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { @@ -77,13 +77,13 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly with titleFont 1 { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, { @@ -102,8 +102,8 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly without descript @@ -114,9 +114,9 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly without descript { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -138,13 +138,13 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly without descript { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, { @@ -163,8 +163,8 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly without titleFon @@ -175,9 +175,9 @@ exports[`@lad-tech/mobydick-core/Title should renders correctly without titleFon { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { diff --git a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/VerticalButtonsView.test.tsx.snap b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/VerticalButtonsView.test.tsx.snap index 6fdeed6e7..07dabe914 100644 --- a/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/VerticalButtonsView.test.tsx.snap +++ b/packages/core/src/popups/components/ModalBase/__tests__/__snapshots__/VerticalButtonsView.test.tsx.snap @@ -6,7 +6,7 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly VerticalButt { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -43,10 +43,10 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly VerticalButt "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -58,13 +58,13 @@ exports[`@lad-tech/mobydick-core/modalBase should renders correctly VerticalButt { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/Modals/ModalLoading.tsx b/packages/core/src/popups/components/Modals/ModalLoading.tsx index 0e15493cd..27542ca73 100644 --- a/packages/core/src/popups/components/Modals/ModalLoading.tsx +++ b/packages/core/src/popups/components/Modals/ModalLoading.tsx @@ -3,10 +3,10 @@ import {FC} from 'react'; import {ModalBase} from '../ModalBase'; import {IContentProps} from '../../types'; import useStyles from '../../../styles/hooks/useStyles'; -import rem from '../../../styles/utils/rem'; import {ISizeSpinner} from '../../../progress/components/Spinner/types'; import Spinner from '../../../progress/components/Spinner/Spinner'; import {IButtonTypes} from '../../../cta/components/Button/types'; +import px from '../../../styles/utils/px'; import {IModalProps} from './types'; import stylesCreate from './stylesCreate'; @@ -20,7 +20,7 @@ const ModalLoading: FC = props => { overlayStyle={styles.overlayStyle} containerStyle={styles.container} {...props}> - + diff --git a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalAsk.test.tsx.snap b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalAsk.test.tsx.snap index 2fd6ba272..3af2f8715 100644 --- a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalAsk.test.tsx.snap +++ b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalAsk.test.tsx.snap @@ -59,12 +59,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -78,7 +78,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, { "backgroundColor": "rgba(245, 77, 61, 0.15)", @@ -92,7 +92,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -102,8 +102,8 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` @@ -114,9 +114,9 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -136,13 +136,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -157,7 +157,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -194,12 +194,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "transparent", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -211,13 +211,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -260,12 +260,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -277,13 +277,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -357,12 +357,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -376,7 +376,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, { "backgroundColor": "rgba(245, 77, 61, 0.15)", @@ -390,7 +390,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -400,8 +400,8 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional @@ -412,9 +412,9 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -434,13 +434,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -455,7 +455,7 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional style={ { "flexDirection": "row", - "paddingTop": 30, + "paddingTop": 20, } } > @@ -492,12 +492,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginRight": 9, - "minHeight": 72, + "marginRight": 6, + "minHeight": 48, "opacity": 1, } } @@ -509,13 +509,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -558,12 +558,12 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flex": 1, "flexDirection": "row", "justifyContent": "center", - "marginLeft": 9, - "minHeight": 72, + "marginLeft": 6, + "minHeight": 48, "opacity": 1, } } @@ -575,13 +575,13 @@ exports[`@lad-tech/mobydick-core/modalAsk should renders correctly with optional { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalError.test.tsx.snap b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalError.test.tsx.snap index 0decc50bb..bc754de75 100644 --- a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalError.test.tsx.snap +++ b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalError.test.tsx.snap @@ -59,12 +59,12 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -78,7 +78,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, { "backgroundColor": "rgba(245, 77, 61, 0.15)", @@ -92,7 +92,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -102,8 +102,8 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` @@ -114,9 +114,9 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -136,13 +136,13 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -158,7 +158,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -195,10 +195,10 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -210,13 +210,13 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -290,12 +290,12 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -309,7 +309,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, { "backgroundColor": "rgba(245, 77, 61, 0.15)", @@ -323,7 +323,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "color": "#F54D3D", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -333,8 +333,8 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option @@ -345,9 +345,9 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -367,13 +367,13 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -389,7 +389,7 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -426,10 +426,10 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#F54D3D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -441,13 +441,13 @@ exports[`@lad-tech/mobydick-core/modalError should renders correctly with option { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalLoading.test.tsx.snap b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalLoading.test.tsx.snap index 7f9503755..7eb4a0cd4 100644 --- a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalLoading.test.tsx.snap +++ b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalLoading.test.tsx.snap @@ -59,12 +59,12 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -90,7 +90,7 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` height="48" style={ { - "margin": 9, + "margin": 6, } } width="48" @@ -99,8 +99,8 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` @@ -111,9 +111,9 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -133,13 +133,13 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -155,7 +155,7 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -192,10 +192,10 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -207,13 +207,13 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly 1`] = ` { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -287,12 +287,12 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -318,7 +318,7 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti height="48" style={ { - "margin": 9, + "margin": 6, } } width="48" @@ -327,8 +327,8 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti @@ -339,9 +339,9 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -361,13 +361,13 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -383,7 +383,7 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -420,10 +420,10 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "rgba(43, 120, 238, 0.15)", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -435,13 +435,13 @@ exports[`@lad-tech/mobydick-core/modalLoading should renders correctly with opti { "color": "#2B78EE", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalSuccess.test.tsx.snap b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalSuccess.test.tsx.snap index 9ae88f946..2e0d8f89a 100644 --- a/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalSuccess.test.tsx.snap +++ b/packages/core/src/popups/components/Modals/__tests__/__snapshots__/ModalSuccess.test.tsx.snap @@ -59,12 +59,12 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -78,7 +78,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, undefined, ] @@ -90,7 +90,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -100,8 +100,8 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` @@ -112,9 +112,9 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -134,13 +134,13 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -156,7 +156,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -193,10 +193,10 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -208,13 +208,13 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly 1`] = ` { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], @@ -288,12 +288,12 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "alignItems": "center", "backgroundColor": "#FFF", - "borderRadius": 18, + "borderRadius": 12, "justifyContent": "center", - "marginVertical": 30, - "paddingHorizontal": 30, - "paddingVertical": 36, - "width": 726, + "marginVertical": 20, + "paddingHorizontal": 20, + "paddingVertical": 24, + "width": 734, }, { "maxWidth": "80%", @@ -307,7 +307,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "backgroundColor": "rgba(43, 120, 238, 0.15)", "borderRadius": 100, - "padding": 18, + "padding": 12, }, undefined, ] @@ -319,7 +319,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 54, + "fontSize": 36, } } > @@ -329,8 +329,8 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti @@ -341,9 +341,9 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "color": "#20242D", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { @@ -363,13 +363,13 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "color": "#5E6678", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingTop": 12, + "paddingTop": 8, "textAlign": "center", }, undefined, @@ -385,7 +385,7 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "alignItems": "center", "alignSelf": "stretch", - "marginTop": 30, + "marginTop": 20, } } > @@ -422,10 +422,10 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti "alignItems": "center", "alignSelf": "stretch", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "minHeight": 72, + "minHeight": 48, "opacity": 1, } } @@ -437,13 +437,13 @@ exports[`@lad-tech/mobydick-core/modalSuccess should renders correctly with opti { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/SnackbarBase.test.tsx.snap b/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/SnackbarBase.test.tsx.snap index 99c811799..aac9f1d6c 100644 --- a/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/SnackbarBase.test.tsx.snap +++ b/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/SnackbarBase.test.tsx.snap @@ -23,12 +23,12 @@ exports[`@lad-tech/mobydick-core/SnackbarBase should renders correctly 1`] = ` { "alignItems": "center", "backgroundColor": "#20242D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "margin": 30, - "paddingHorizontal": 30, - "paddingVertical": 24, + "margin": 20, + "paddingHorizontal": 20, + "paddingVertical": 16, }, undefined, ] @@ -60,12 +60,12 @@ exports[`@lad-tech/mobydick-core/SnackbarBase should renders correctly with time { "alignItems": "center", "backgroundColor": "#20242D", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "margin": 30, - "paddingHorizontal": 30, - "paddingVertical": 24, + "margin": 20, + "paddingHorizontal": 20, + "paddingVertical": 16, }, undefined, ] diff --git a/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/Title.test.tsx.snap b/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/Title.test.tsx.snap index ee3e9713d..2a5a00d48 100644 --- a/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/Title.test.tsx.snap +++ b/packages/core/src/popups/components/SnackbarBase/__tests__/__snapshots__/Title.test.tsx.snap @@ -8,14 +8,14 @@ exports[`@lad-tech/mobydick-core/SnackbarBase/Title should renders correctly wit { "color": "#444B5A", "fontFamily": "Inter-Medium", - "fontSize": 24, - "lineHeight": 30, - "minHeight": 30, + "fontSize": 16, + "lineHeight": 20, + "minHeight": 20, }, [ { "flex": 1, - "paddingRight": 12, + "paddingRight": 8, }, { "backgroundColor": "#000", @@ -36,14 +36,14 @@ exports[`@lad-tech/mobydick-core/SnackbarBase/Title should renders correctly wit { "color": "#FFF", "fontFamily": "Inter-Medium", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { "flex": 1, - "paddingRight": 12, + "paddingRight": 8, }, { "flex": 1, diff --git a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Arrow.test.tsx.snap b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Arrow.test.tsx.snap index 683464baa..2031ec396 100644 --- a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Arrow.test.tsx.snap +++ b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Arrow.test.tsx.snap @@ -18,12 +18,12 @@ exports[`@lad-tech/mobydick-core/TooltipBase/Arrow should renders correctly bott "borderBottomColor": "transparent", "borderBottomWidth": 0, "borderLeftColor": "transparent", - "borderLeftWidth": 12, + "borderLeftWidth": 8, "borderRightColor": "transparent", - "borderRightWidth": 12, + "borderRightWidth": 8, "borderTopColor": "#20242D", - "borderTopWidth": 12, - "bottom": -12, + "borderTopWidth": 8, + "bottom": -8, }, { "alignSelf": "center", @@ -49,12 +49,12 @@ exports[`@lad-tech/mobydick-core/TooltipBase/Arrow should renders correctly bott "borderBottomColor": "transparent", "borderBottomWidth": 0, "borderLeftColor": "transparent", - "borderLeftWidth": 12, + "borderLeftWidth": 8, "borderRightColor": "transparent", - "borderRightWidth": 12, + "borderRightWidth": 8, "borderTopColor": "#20242D", - "borderTopWidth": 12, - "bottom": -12, + "borderTopWidth": 8, + "bottom": -8, }, { "right": 10, @@ -80,14 +80,14 @@ exports[`@lad-tech/mobydick-core/TooltipBase/Arrow should renders correctly top }, { "borderBottomColor": "#20242D", - "borderBottomWidth": 12, + "borderBottomWidth": 8, "borderLeftColor": "transparent", - "borderLeftWidth": 12, + "borderLeftWidth": 8, "borderRightColor": "transparent", - "borderRightWidth": 12, + "borderRightWidth": 8, "borderTopColor": "transparent", "borderTopWidth": 0, - "top": -12, + "top": -8, }, { "left": 10, diff --git a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/DescriptionText.test.tsx.snap b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/DescriptionText.test.tsx.snap index e6401a69e..304a74053 100644 --- a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/DescriptionText.test.tsx.snap +++ b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/DescriptionText.test.tsx.snap @@ -8,13 +8,13 @@ exports[`@lad-tech/mobydick-core/TooltipBase/DescriptionText should renders corr { "color": "#FFF", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingBottom": 12, + "paddingBottom": 8, "zIndex": 1, }, undefined, @@ -34,13 +34,13 @@ exports[`@lad-tech/mobydick-core/TooltipBase/DescriptionText should renders corr { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { - "paddingBottom": 12, + "paddingBottom": 8, "zIndex": 1, }, { diff --git a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/LeftButton.test.tsx.snap b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/LeftButton.test.tsx.snap index c782e789f..0a40ee9be 100644 --- a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/LeftButton.test.tsx.snap +++ b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/LeftButton.test.tsx.snap @@ -34,11 +34,11 @@ exports[`@lad-tech/mobydick-core/TooltipBase/LeftButton should renders correctly "alignItems": "center", "alignSelf": "flex-start", "backgroundColor": "#2B78EE", - "borderRadius": 18, + "borderRadius": 12, "flexDirection": "row", "justifyContent": "center", - "marginVertical": 12, - "minHeight": 72, + "marginVertical": 8, + "minHeight": 48, "opacity": 1, } } @@ -50,13 +50,13 @@ exports[`@lad-tech/mobydick-core/TooltipBase/LeftButton should renders correctly { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 27, - "lineHeight": 33, - "minHeight": 33, + "fontSize": 18, + "lineHeight": 22, + "minHeight": 22, }, [ { - "paddingHorizontal": 9, + "paddingHorizontal": 6, }, undefined, ], diff --git a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Title.test.tsx.snap b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Title.test.tsx.snap index 9e6a7e524..2d04f896e 100644 --- a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Title.test.tsx.snap +++ b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/Title.test.tsx.snap @@ -8,9 +8,9 @@ exports[`@lad-tech/mobydick-core/TooltipBase/Title should renders correctly 1`] { "color": "#FFF", "fontFamily": "Inter-SemiBold", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { @@ -33,9 +33,9 @@ exports[`@lad-tech/mobydick-core/TooltipBase/Title should renders correctly font { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 21, - "lineHeight": 27, - "minHeight": 27, + "fontSize": 14, + "lineHeight": 18, + "minHeight": 18, }, [ { diff --git a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/TooltipBase.test.tsx.snap b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/TooltipBase.test.tsx.snap index 7f4a3863d..f1958db1f 100644 --- a/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/TooltipBase.test.tsx.snap +++ b/packages/core/src/popups/components/TooltipBase/__tests__/__snapshots__/TooltipBase.test.tsx.snap @@ -56,11 +56,11 @@ exports[`@lad-tech/mobydick-core/TooltipBase/TooltipBase should renders correctl { "alignItems": "flex-start", "backgroundColor": "#20242D", - "borderRadius": 12, + "borderRadius": 8, "justifyContent": "center", - "marginVertical": 12, - "paddingHorizontal": 24, - "paddingVertical": 12, + "marginVertical": 8, + "paddingHorizontal": 16, + "paddingVertical": 8, "position": "absolute", "right": 32, "top": 2411, @@ -127,12 +127,12 @@ exports[`@lad-tech/mobydick-core/TooltipBase/TooltipBase should renders correctl { "alignItems": "flex-start", "backgroundColor": "#20242D", - "borderRadius": 12, + "borderRadius": 8, "bottom": -1770, "justifyContent": "center", - "marginVertical": 12, - "paddingHorizontal": 24, - "paddingVertical": 12, + "marginVertical": 8, + "paddingHorizontal": 16, + "paddingVertical": 8, "position": "absolute", "zIndex": 1, } @@ -197,11 +197,11 @@ exports[`@lad-tech/mobydick-core/TooltipBase/TooltipBase should renders correctl { "alignItems": "flex-start", "backgroundColor": "#20242D", - "borderRadius": 12, + "borderRadius": 8, "justifyContent": "center", - "marginVertical": 12, - "paddingHorizontal": 24, - "paddingVertical": 12, + "marginVertical": 8, + "paddingHorizontal": 16, + "paddingVertical": 8, "position": "absolute", "right": 32, "top": 2411, @@ -268,12 +268,12 @@ exports[`@lad-tech/mobydick-core/TooltipBase/TooltipBase should renders correctl { "alignItems": "flex-start", "backgroundColor": "#20242D", - "borderRadius": 12, + "borderRadius": 8, "justifyContent": "center", "left": 287, - "marginVertical": 12, - "paddingHorizontal": 24, - "paddingVertical": 12, + "marginVertical": 8, + "paddingHorizontal": 16, + "paddingVertical": 8, "position": "absolute", "top": 2411, "zIndex": 1, diff --git a/packages/core/src/progress/components/Indicator/__tests__/__snapshots__/Indicator.test.tsx.snap b/packages/core/src/progress/components/Indicator/__tests__/__snapshots__/Indicator.test.tsx.snap index 6ddbd353a..8f3c97450 100644 --- a/packages/core/src/progress/components/Indicator/__tests__/__snapshots__/Indicator.test.tsx.snap +++ b/packages/core/src/progress/components/Indicator/__tests__/__snapshots__/Indicator.test.tsx.snap @@ -6,8 +6,8 @@ exports[`@lad-tech/mobydick-core/Indicator renders correctly with colors 1`] = ` [ { "backgroundColor": "#EEEFF1", - "borderRadius": 30, - "height": 3, + "borderRadius": 20, + "height": 2, "width": "90%", }, undefined, @@ -19,7 +19,7 @@ exports[`@lad-tech/mobydick-core/Indicator renders correctly with colors 1`] = ` style={ { "backgroundColor": "#2B78EE", - "borderRadius": 30, + "borderRadius": 20, "bottom": 0, "left": 0, "position": "absolute", diff --git a/packages/core/src/progress/components/PanelSpinner/PanelSpinner.tsx b/packages/core/src/progress/components/PanelSpinner/PanelSpinner.tsx index d450f2bf6..ca5bec8fe 100644 --- a/packages/core/src/progress/components/PanelSpinner/PanelSpinner.tsx +++ b/packages/core/src/progress/components/PanelSpinner/PanelSpinner.tsx @@ -5,8 +5,8 @@ import SimpleIcon from '../../../styles/icons/font/SimpleIcon'; import useStyles from '../../../styles/hooks/useStyles'; import {Spinner} from '../Spinner'; import {ISizeSpinner} from '../Spinner/types'; -import rem from '../../../styles/utils/rem'; import Pressable from '../../../basic/components/Pressable/Pressable'; +import px from '../../../styles/utils/px'; import stylesCreate from './stylesCreate'; import {PanelSpinnerProps} from './types'; @@ -24,7 +24,7 @@ const PanelSpinner: FC = props => { ]}> @@ -32,7 +32,7 @@ const PanelSpinner: FC = props => { diff --git a/packages/core/src/progress/components/PanelSpinner/__tests__/__snapshots__/PanelSpinner.test.tsx.snap b/packages/core/src/progress/components/PanelSpinner/__tests__/__snapshots__/PanelSpinner.test.tsx.snap index 55ed94917..ab282b3af 100644 --- a/packages/core/src/progress/components/PanelSpinner/__tests__/__snapshots__/PanelSpinner.test.tsx.snap +++ b/packages/core/src/progress/components/PanelSpinner/__tests__/__snapshots__/PanelSpinner.test.tsx.snap @@ -7,18 +7,18 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly 1`] = ` "alignItems": "center", "backgroundColor": "#FFF", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 300, - "borderWidth": 1, + "borderRadius": 200, + "borderWidth": 0.5, "elevation": 10, "justifyContent": "center", - "padding": 30, + "padding": 20, "shadowColor": "#20242D", "shadowOffset": { "height": 1, "width": 0, }, "shadowOpacity": 0.3, - "shadowRadius": 18, + "shadowRadius": 12, } } > @@ -51,18 +51,18 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly canceled 1`] = ` "alignItems": "center", "backgroundColor": "#FFF", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 300, - "borderWidth": 1, + "borderRadius": 200, + "borderWidth": 0.5, "elevation": 10, "justifyContent": "center", - "padding": 30, + "padding": 20, "shadowColor": "#20242D", "shadowOffset": { "height": 1, "width": 0, }, "shadowOpacity": 0.3, - "shadowRadius": 18, + "shadowRadius": 12, } } > @@ -120,9 +120,9 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly canceled 1`] = ` { "alignItems": "center", "aspectRatio": 1, - "borderRadius": 36, + "borderRadius": 24, "justifyContent": "center", - "width": 72, + "width": 48, }, { "position": "absolute", @@ -136,7 +136,7 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly canceled 1`] = ` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > @@ -153,18 +153,18 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly done 1`] = ` "alignItems": "center", "backgroundColor": "#FFF", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 300, - "borderWidth": 1, + "borderRadius": 200, + "borderWidth": 0.5, "elevation": 10, "justifyContent": "center", - "padding": 30, + "padding": 20, "shadowColor": "#20242D", "shadowOffset": { "height": 1, "width": 0, }, "shadowOpacity": 0.3, - "shadowRadius": 18, + "shadowRadius": 12, } } > @@ -173,9 +173,9 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly done 1`] = ` { "alignItems": "center", "aspectRatio": 1, - "borderRadius": 36, + "borderRadius": 24, "justifyContent": "center", - "width": 72, + "width": 48, } } > @@ -185,7 +185,7 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly done 1`] = ` { "color": "#2B78EE", "fontFamily": "Neotis", - "fontSize": 72, + "fontSize": 48, } } > @@ -202,18 +202,18 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly error 1`] = ` "alignItems": "center", "backgroundColor": "#FFF", "borderColor": "rgba(32, 36, 45, 0.15)", - "borderRadius": 300, - "borderWidth": 1, + "borderRadius": 200, + "borderWidth": 0.5, "elevation": 10, "justifyContent": "center", - "padding": 30, + "padding": 20, "shadowColor": "#20242D", "shadowOffset": { "height": 1, "width": 0, }, "shadowOpacity": 0.3, - "shadowRadius": 18, + "shadowRadius": 12, } } > @@ -223,9 +223,9 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly error 1`] = ` { "alignItems": "center", "aspectRatio": 1, - "borderRadius": 36, + "borderRadius": 24, "justifyContent": "center", - "width": 72, + "width": 48, }, { "backgroundColor": "#EEEFF1", @@ -239,7 +239,7 @@ exports[`@lad-tech/mobydick-core/PanelSpinner renders correctly error 1`] = ` { "color": "#9BA1B0", "fontFamily": "Neotis", - "fontSize": 48, + "fontSize": 32, } } > diff --git a/packages/core/src/progress/components/PanelSpinner/stylesCreate.ts b/packages/core/src/progress/components/PanelSpinner/stylesCreate.ts index c047e80c0..8f1440141 100644 --- a/packages/core/src/progress/components/PanelSpinner/stylesCreate.ts +++ b/packages/core/src/progress/components/PanelSpinner/stylesCreate.ts @@ -1,5 +1,5 @@ -import rem from '../../../styles/utils/rem'; import {createStyles} from '../../../styles'; +import px from '../../../styles/utils/px'; const stylesCreate = createStyles(({spaces, colors}) => ({ container: { @@ -8,8 +8,8 @@ const stylesCreate = createStyles(({spaces, colors}) => ({ padding: spaces.Space20, backgroundColor: colors.BgPrimary, borderColor: colors.BorderSoft, - borderWidth: rem(0.5), - borderRadius: rem(200), + borderWidth: px(0.5), + borderRadius: px(200), shadowColor: colors.BgBlack, // ios shadowOffset: { @@ -17,7 +17,7 @@ const stylesCreate = createStyles(({spaces, colors}) => ({ height: 1, }, shadowOpacity: 0.3, - shadowRadius: rem(12), + shadowRadius: px(12), // android elevation: 10, }, diff --git a/packages/core/src/styles/constants/HIT_SLOP.ts b/packages/core/src/styles/constants/HIT_SLOP.ts index 3643a59c6..5c3b752d2 100644 --- a/packages/core/src/styles/constants/HIT_SLOP.ts +++ b/packages/core/src/styles/constants/HIT_SLOP.ts @@ -1,9 +1,9 @@ -import rem from '../utils/rem'; +import px from '../utils/px'; const HIT_SLOP = { - small: {top: rem(10), bottom: rem(10), left: rem(10), right: rem(10)}, - medium: {top: rem(20), bottom: rem(20), left: rem(20), right: rem(20)}, - large: {top: rem(30), bottom: rem(30), left: rem(30), right: rem(30)}, + small: {top: px(10), bottom: px(10), left: px(10), right: px(10)}, + medium: {top: px(20), bottom: px(20), left: px(20), right: px(20)}, + large: {top: px(30), bottom: px(30), left: px(30), right: px(30)}, }; export default HIT_SLOP; diff --git a/packages/core/src/styles/constants/defaultSpaces.ts b/packages/core/src/styles/constants/defaultSpaces.ts index 9cafc2085..fae67d4f0 100644 --- a/packages/core/src/styles/constants/defaultSpaces.ts +++ b/packages/core/src/styles/constants/defaultSpaces.ts @@ -1,20 +1,20 @@ -import rem from '../utils/rem'; +import px from '../utils/px'; export const defaultSpaces: IDefaultSpaces = { - Space1: rem(1), - Space2: rem(2), - Space4: rem(4), - Space6: rem(6), - Space8: rem(8), - Space10: rem(10), - Space12: rem(12), - Space16: rem(16), - Space20: rem(20), - Space24: rem(24), - Space32: rem(32), - Space40: rem(40), - Space48: rem(48), - Space64: rem(64), + Space1: px(1), + Space2: px(2), + Space4: px(4), + Space6: px(6), + Space8: px(8), + Space10: px(10), + Space12: px(12), + Space16: px(16), + Space20: px(20), + Space24: px(24), + Space32: px(32), + Space40: px(40), + Space48: px(48), + Space64: px(64), }; export type IDefaultSpaces = { diff --git a/packages/core/src/styles/icons/font/SimpleIcon.tsx b/packages/core/src/styles/icons/font/SimpleIcon.tsx index f8fff788b..2be1c70fd 100644 --- a/packages/core/src/styles/icons/font/SimpleIcon.tsx +++ b/packages/core/src/styles/icons/font/SimpleIcon.tsx @@ -3,7 +3,7 @@ import {TextStyle} from 'react-native'; import Text from '../../../basic/components/Text/Text'; import useTheme from '../../hooks/useTheme'; -import rem from '../../utils/rem'; +import px from '../../utils/px'; import glyphMap from './unicodesMap.json'; @@ -15,7 +15,7 @@ interface IProps { } const SimpleIcon = ({ - size = rem(24), + size = px(24), name, style, color, diff --git a/packages/core/src/styles/icons/font/SimpleIconAlbum.tsx b/packages/core/src/styles/icons/font/SimpleIconAlbum.tsx index d15999534..21b206a09 100644 --- a/packages/core/src/styles/icons/font/SimpleIconAlbum.tsx +++ b/packages/core/src/styles/icons/font/SimpleIconAlbum.tsx @@ -1,8 +1,8 @@ import {FlatListProps} from 'react-native'; -import rem from '../../utils/rem'; import Pressable from '../../../basic/components/Pressable/Pressable'; import FlatList from '../../../basic/components/FlatList/FlatList'; +import px from '../../utils/px'; import SimpleIcon, {iconNames, SimpleIconName} from './SimpleIcon'; @@ -15,7 +15,7 @@ const renderItem = style={styles.item} key={item} onPress={() => onPress(item)}> - + ); }; @@ -45,7 +45,7 @@ const SimpleIconAlbum = ({ const styles = { item: { - padding: rem(10), + padding: px(10), }, }; diff --git a/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIcon.test.tsx.snap b/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIcon.test.tsx.snap index e5d2e78fc..dc25d6832 100644 --- a/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIcon.test.tsx.snap +++ b/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIcon.test.tsx.snap @@ -7,7 +7,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIcon renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 36, + "fontSize": 24, } } > diff --git a/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIconAlbum.test.tsx.snap b/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIconAlbum.test.tsx.snap index 681a05da4..ca4bbf6e2 100644 --- a/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIconAlbum.test.tsx.snap +++ b/packages/core/src/styles/icons/font/__tests__/__snapshots__/SimpleIconAlbum.test.tsx.snap @@ -168,7 +168,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Bio_agefill" @@ -179,7 +179,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -218,7 +218,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Calendarfill" @@ -229,7 +229,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -268,7 +268,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-CellsFill" @@ -279,7 +279,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -318,7 +318,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Chart2fill" @@ -329,7 +329,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -368,7 +368,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Chartfill" @@ -379,7 +379,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -418,7 +418,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Fatfill" @@ -429,7 +429,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -468,7 +468,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Kettlebellfill" @@ -479,7 +479,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -518,7 +518,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Musclefill" @@ -529,7 +529,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -568,7 +568,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Rulerfill" @@ -579,7 +579,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -632,7 +632,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Sleepfill" @@ -643,7 +643,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -682,7 +682,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Stepfill" @@ -693,7 +693,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -732,7 +732,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Time" @@ -743,7 +743,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -782,7 +782,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Waterfill" @@ -793,7 +793,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -832,7 +832,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-account" @@ -843,7 +843,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -882,7 +882,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-accountfill" @@ -893,7 +893,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -932,7 +932,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-down" @@ -943,7 +943,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -982,7 +982,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-left" @@ -993,7 +993,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1032,7 +1032,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-left-1" @@ -1043,7 +1043,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1096,7 +1096,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-right" @@ -1107,7 +1107,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1146,7 +1146,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-right-1" @@ -1157,7 +1157,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1196,7 +1196,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-up" @@ -1207,7 +1207,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1246,7 +1246,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-attachment" @@ -1257,7 +1257,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1296,7 +1296,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bag" @@ -1307,7 +1307,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1346,7 +1346,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bagfill" @@ -1357,7 +1357,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1396,7 +1396,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bar" @@ -1407,7 +1407,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1446,7 +1446,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bookmark" @@ -1457,7 +1457,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1496,7 +1496,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-calendar" @@ -1507,7 +1507,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1560,7 +1560,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-calendar_search" @@ -1571,7 +1571,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1610,7 +1610,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-call" @@ -1621,7 +1621,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1660,7 +1660,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-camera" @@ -1671,7 +1671,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1710,7 +1710,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cancel" @@ -1721,7 +1721,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1760,7 +1760,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cancel2" @@ -1771,7 +1771,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1810,7 +1810,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-card" @@ -1821,7 +1821,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1860,7 +1860,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cart" @@ -1871,7 +1871,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1910,7 +1910,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-case" @@ -1921,7 +1921,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -1960,7 +1960,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-chart" @@ -1971,7 +1971,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2024,7 +2024,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-chart2" @@ -2035,7 +2035,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2074,7 +2074,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-check" @@ -2085,7 +2085,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2124,7 +2124,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-check2" @@ -2135,7 +2135,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2174,7 +2174,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-copy" @@ -2185,7 +2185,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2224,7 +2224,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-delete" @@ -2235,7 +2235,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2274,7 +2274,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-diamond" @@ -2285,7 +2285,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2324,7 +2324,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-discount" @@ -2335,7 +2335,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2374,7 +2374,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-doc" @@ -2385,7 +2385,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2424,7 +2424,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-edit" @@ -2435,7 +2435,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2488,7 +2488,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-exchange" @@ -2499,7 +2499,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2538,7 +2538,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-filter" @@ -2549,7 +2549,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2588,7 +2588,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-flash" @@ -2599,7 +2599,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2638,7 +2638,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-folder" @@ -2649,7 +2649,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2688,7 +2688,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-folder-1" @@ -2699,7 +2699,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2738,7 +2738,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-grid" @@ -2749,7 +2749,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2788,7 +2788,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-gridfill" @@ -2799,7 +2799,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2838,7 +2838,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-group" @@ -2849,7 +2849,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2888,7 +2888,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-hangup" @@ -2899,7 +2899,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -2952,7 +2952,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-heart" @@ -2963,7 +2963,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3002,7 +3002,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-heartfill" @@ -3013,7 +3013,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3052,7 +3052,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-hide" @@ -3063,7 +3063,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3102,7 +3102,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-home2" @@ -3113,7 +3113,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3152,7 +3152,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-house" @@ -3163,7 +3163,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3202,7 +3202,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-housefill" @@ -3213,7 +3213,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3252,7 +3252,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-image" @@ -3263,7 +3263,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3302,7 +3302,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-info" @@ -3313,7 +3313,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3352,7 +3352,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-info2" @@ -3363,7 +3363,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3416,7 +3416,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-kebab" @@ -3427,7 +3427,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3466,7 +3466,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-link" @@ -3477,7 +3477,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3516,7 +3516,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-list" @@ -3527,7 +3527,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3566,7 +3566,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-loading" @@ -3577,7 +3577,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3616,7 +3616,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-location" @@ -3627,7 +3627,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3666,7 +3666,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-lock" @@ -3677,7 +3677,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3716,7 +3716,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-logout" @@ -3727,7 +3727,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3766,7 +3766,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mail" @@ -3777,7 +3777,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3816,7 +3816,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mic" @@ -3827,7 +3827,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3880,7 +3880,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-minus" @@ -3891,7 +3891,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3930,7 +3930,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-money" @@ -3941,7 +3941,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -3980,7 +3980,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mute" @@ -3991,7 +3991,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4030,7 +4030,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-noconnection" @@ -4041,7 +4041,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4080,7 +4080,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-notification" @@ -4091,7 +4091,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4130,7 +4130,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-plus" @@ -4141,7 +4141,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4180,7 +4180,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-plus2" @@ -4191,7 +4191,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4230,7 +4230,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-present" @@ -4241,7 +4241,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4280,7 +4280,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-qr" @@ -4291,7 +4291,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4344,7 +4344,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-ruble" @@ -4355,7 +4355,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4394,7 +4394,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-search" @@ -4405,7 +4405,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4444,7 +4444,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-send" @@ -4455,7 +4455,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4494,7 +4494,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-settings" @@ -4505,7 +4505,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4544,7 +4544,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-share" @@ -4555,7 +4555,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4594,7 +4594,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-show" @@ -4605,7 +4605,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4644,7 +4644,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-smartphone" @@ -4655,7 +4655,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4694,7 +4694,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-sort-horizontal" @@ -4705,7 +4705,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4744,7 +4744,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-sort-vertical" @@ -4755,7 +4755,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly 1`] = ` { "color": "#5E6678", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4943,7 +4943,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Bio_agefill" @@ -4954,7 +4954,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -4993,7 +4993,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Calendarfill" @@ -5004,7 +5004,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5043,7 +5043,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-CellsFill" @@ -5054,7 +5054,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5093,7 +5093,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Chart2fill" @@ -5104,7 +5104,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5143,7 +5143,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Chartfill" @@ -5154,7 +5154,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5193,7 +5193,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Fatfill" @@ -5204,7 +5204,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5243,7 +5243,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Kettlebellfill" @@ -5254,7 +5254,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5293,7 +5293,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Musclefill" @@ -5304,7 +5304,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5343,7 +5343,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Rulerfill" @@ -5354,7 +5354,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5407,7 +5407,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Sleepfill" @@ -5418,7 +5418,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5457,7 +5457,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Stepfill" @@ -5468,7 +5468,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5507,7 +5507,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Time" @@ -5518,7 +5518,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5557,7 +5557,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-Waterfill" @@ -5568,7 +5568,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5607,7 +5607,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-account" @@ -5618,7 +5618,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5657,7 +5657,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-accountfill" @@ -5668,7 +5668,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5707,7 +5707,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-down" @@ -5718,7 +5718,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5757,7 +5757,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-left" @@ -5768,7 +5768,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5807,7 +5807,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-left-1" @@ -5818,7 +5818,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5871,7 +5871,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-right" @@ -5882,7 +5882,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5921,7 +5921,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-right-1" @@ -5932,7 +5932,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -5971,7 +5971,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-arrow-up" @@ -5982,7 +5982,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6021,7 +6021,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-attachment" @@ -6032,7 +6032,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6071,7 +6071,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bag" @@ -6082,7 +6082,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6121,7 +6121,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bagfill" @@ -6132,7 +6132,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6171,7 +6171,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bar" @@ -6182,7 +6182,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6221,7 +6221,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-bookmark" @@ -6232,7 +6232,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6271,7 +6271,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-calendar" @@ -6282,7 +6282,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6335,7 +6335,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-calendar_search" @@ -6346,7 +6346,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6385,7 +6385,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-call" @@ -6396,7 +6396,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6435,7 +6435,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-camera" @@ -6446,7 +6446,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6485,7 +6485,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cancel" @@ -6496,7 +6496,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6535,7 +6535,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cancel2" @@ -6546,7 +6546,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6585,7 +6585,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-card" @@ -6596,7 +6596,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6635,7 +6635,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-cart" @@ -6646,7 +6646,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6685,7 +6685,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-case" @@ -6696,7 +6696,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6735,7 +6735,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-chart" @@ -6746,7 +6746,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6799,7 +6799,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-chart2" @@ -6810,7 +6810,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6849,7 +6849,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-check" @@ -6860,7 +6860,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6899,7 +6899,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-check2" @@ -6910,7 +6910,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6949,7 +6949,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-copy" @@ -6960,7 +6960,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -6999,7 +6999,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-delete" @@ -7010,7 +7010,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7049,7 +7049,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-diamond" @@ -7060,7 +7060,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7099,7 +7099,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-discount" @@ -7110,7 +7110,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7149,7 +7149,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-doc" @@ -7160,7 +7160,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7199,7 +7199,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-edit" @@ -7210,7 +7210,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7263,7 +7263,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-exchange" @@ -7274,7 +7274,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7313,7 +7313,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-filter" @@ -7324,7 +7324,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7363,7 +7363,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-flash" @@ -7374,7 +7374,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7413,7 +7413,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-folder" @@ -7424,7 +7424,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7463,7 +7463,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-folder-1" @@ -7474,7 +7474,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7513,7 +7513,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-grid" @@ -7524,7 +7524,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7563,7 +7563,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-gridfill" @@ -7574,7 +7574,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7613,7 +7613,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-group" @@ -7624,7 +7624,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7663,7 +7663,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-hangup" @@ -7674,7 +7674,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7727,7 +7727,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-heart" @@ -7738,7 +7738,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7777,7 +7777,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-heartfill" @@ -7788,7 +7788,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7827,7 +7827,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-hide" @@ -7838,7 +7838,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7877,7 +7877,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-home2" @@ -7888,7 +7888,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7927,7 +7927,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-house" @@ -7938,7 +7938,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -7977,7 +7977,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-housefill" @@ -7988,7 +7988,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8027,7 +8027,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-image" @@ -8038,7 +8038,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8077,7 +8077,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-info" @@ -8088,7 +8088,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8127,7 +8127,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-info2" @@ -8138,7 +8138,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8191,7 +8191,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-kebab" @@ -8202,7 +8202,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8241,7 +8241,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-link" @@ -8252,7 +8252,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8291,7 +8291,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-list" @@ -8302,7 +8302,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8341,7 +8341,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-loading" @@ -8352,7 +8352,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8391,7 +8391,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-location" @@ -8402,7 +8402,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8441,7 +8441,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-lock" @@ -8452,7 +8452,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8491,7 +8491,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-logout" @@ -8502,7 +8502,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8541,7 +8541,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mail" @@ -8552,7 +8552,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8591,7 +8591,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mic" @@ -8602,7 +8602,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8655,7 +8655,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-minus" @@ -8666,7 +8666,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8705,7 +8705,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-money" @@ -8716,7 +8716,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8755,7 +8755,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-mute" @@ -8766,7 +8766,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8805,7 +8805,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-noconnection" @@ -8816,7 +8816,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8855,7 +8855,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-notification" @@ -8866,7 +8866,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8905,7 +8905,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-plus" @@ -8916,7 +8916,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -8955,7 +8955,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-plus2" @@ -8966,7 +8966,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9005,7 +9005,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-present" @@ -9016,7 +9016,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9055,7 +9055,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-qr" @@ -9066,7 +9066,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9119,7 +9119,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-ruble" @@ -9130,7 +9130,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9169,7 +9169,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-search" @@ -9180,7 +9180,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9219,7 +9219,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-send" @@ -9230,7 +9230,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9269,7 +9269,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-settings" @@ -9280,7 +9280,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9319,7 +9319,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-share" @@ -9330,7 +9330,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9369,7 +9369,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-show" @@ -9380,7 +9380,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9419,7 +9419,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-smartphone" @@ -9430,7 +9430,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9469,7 +9469,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-sort-horizontal" @@ -9480,7 +9480,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > @@ -9519,7 +9519,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co onStartShouldSetResponder={[Function]} style={ { - "padding": 15, + "padding": 10, } } testID="icon-sort-vertical" @@ -9530,7 +9530,7 @@ exports[`@lad-tech/mobydick-core/icons/SimpleIconAlbum renders correctly with co { "color": "#333", "fontFamily": "Neotis", - "fontSize": 30, + "fontSize": 20, } } > diff --git a/packages/core/src/styles/utils/index.ts b/packages/core/src/styles/utils/index.ts index 0de380b8e..0e127a47f 100644 --- a/packages/core/src/styles/utils/index.ts +++ b/packages/core/src/styles/utils/index.ts @@ -1,4 +1,5 @@ import createStyles from './createStyles'; import rem from './rem'; +import px from './px'; -export {createStyles, rem}; +export {createStyles, rem, px}; diff --git a/packages/core/src/styles/utils/px.ts b/packages/core/src/styles/utils/px.ts new file mode 100644 index 000000000..2132fe6c8 --- /dev/null +++ b/packages/core/src/styles/utils/px.ts @@ -0,0 +1,7 @@ +import {PixelRatio} from 'react-native'; + +const px = (size: number): number => { + return PixelRatio.roundToNearestPixel(size); +}; + +export default px; diff --git a/packages/core/src/styles/utils/rem.ts b/packages/core/src/styles/utils/rem.ts index 8baa66168..296a5c795 100644 --- a/packages/core/src/styles/utils/rem.ts +++ b/packages/core/src/styles/utils/rem.ts @@ -1,5 +1,4 @@ import {Dimensions, PixelRatio} from 'react-native'; -const Pixel = PixelRatio; const guidelineBaseWidth = 375; export const scale = (size: number): number => { @@ -12,10 +11,13 @@ export const scale = (size: number): number => { } }; +/** + * @deprecated Bad working with large screens use `px` instead + */ const rem = (size: number, factor = 0.5): number => { const newSize = size + (scale(size) - size) * factor; - return Pixel.roundToNearestPixel(newSize); + return PixelRatio.roundToNearestPixel(newSize); }; export default rem; diff --git a/packages/core/src/typography/components/Typography/__tests__/__snapshots__/Typography.test.tsx.snap b/packages/core/src/typography/components/Typography/__tests__/__snapshots__/Typography.test.tsx.snap index 9404069ac..41c1476a0 100644 --- a/packages/core/src/typography/components/Typography/__tests__/__snapshots__/Typography.test.tsx.snap +++ b/packages/core/src/typography/components/Typography/__tests__/__snapshots__/Typography.test.tsx.snap @@ -8,9 +8,9 @@ exports[`@lad-tech/mobydick-core/Typography renders default correctly 1`] = ` { "color": "#20242D", "fontFamily": "Inter-Regular", - "fontSize": 22.5, - "lineHeight": 28.5, - "minHeight": 28.5, + "fontSize": 15, + "lineHeight": 19, + "minHeight": 19, }, undefined, ] diff --git a/packages/core/src/typography/hooks/__tests__/useFont.test.ts b/packages/core/src/typography/hooks/__tests__/useFont.test.ts index af9f0be26..c3c9e0e0c 100644 --- a/packages/core/src/typography/hooks/__tests__/useFont.test.ts +++ b/packages/core/src/typography/hooks/__tests__/useFont.test.ts @@ -11,9 +11,9 @@ describe('useFont', () => { expect(current.fontStyle).toStrictEqual({ color: '#20242D', fontFamily: 'Inter-Regular', - fontSize: 22.5, - lineHeight: 28.5, - minHeight: 28.5, + fontSize: 15, + lineHeight: 19, + minHeight: 19, }); }); test('positive case custom font', () => { @@ -24,9 +24,9 @@ describe('useFont', () => { expect(current.fontStyle).toStrictEqual({ color: '#20242D', fontFamily: 'Inter-Medium', - fontSize: 22.5, - lineHeight: 28.5, - minHeight: 28.5, + fontSize: 15, + lineHeight: 19, + minHeight: 19, }); }); }); diff --git a/packages/core/src/typography/utils/getSize.tsx b/packages/core/src/typography/utils/getSize.tsx index 8dd3aef0a..12ee5d38a 100644 --- a/packages/core/src/typography/utils/getSize.tsx +++ b/packages/core/src/typography/utils/getSize.tsx @@ -1,20 +1,20 @@ -import rem from '../../styles/utils/rem'; import {TFontSize, TSizes} from '../types'; +import px from '../../styles/utils/px'; const sizes: TSizes = { - H1: {fontSize: rem(36), lineHeight: rem(40)}, - H2: {fontSize: rem(32), lineHeight: rem(36)}, - H3: {fontSize: rem(28), lineHeight: rem(32)}, - H4: {fontSize: rem(24), lineHeight: rem(26)}, - H5: {fontSize: rem(22), lineHeight: rem(24)}, + H1: {fontSize: px(36), lineHeight: px(40)}, + H2: {fontSize: px(32), lineHeight: px(36)}, + H3: {fontSize: px(28), lineHeight: px(32)}, + H4: {fontSize: px(24), lineHeight: px(26)}, + H5: {fontSize: px(22), lineHeight: px(24)}, - XL: {fontSize: rem(20), lineHeight: rem(24)}, - L: {fontSize: rem(18), lineHeight: rem(22)}, - M: {fontSize: rem(16), lineHeight: rem(20)}, - S: {fontSize: rem(15), lineHeight: rem(19)}, - XS: {fontSize: rem(14), lineHeight: rem(18)}, - XXS: {fontSize: rem(12), lineHeight: rem(16)}, - XXXS: {fontSize: rem(10), lineHeight: rem(14)}, + XL: {fontSize: px(20), lineHeight: px(24)}, + L: {fontSize: px(18), lineHeight: px(22)}, + M: {fontSize: px(16), lineHeight: px(20)}, + S: {fontSize: px(15), lineHeight: px(19)}, + XS: {fontSize: px(14), lineHeight: px(18)}, + XXS: {fontSize: px(12), lineHeight: px(16)}, + XXXS: {fontSize: px(10), lineHeight: px(14)}, }; // eslint-disable-next-line import/prefer-default-export export const getSize = ( diff --git a/packages/markdown/src/Markdown/Markdown.tsx b/packages/markdown/src/Markdown/Markdown.tsx index f50e049d5..f11c05ed8 100644 --- a/packages/markdown/src/Markdown/Markdown.tsx +++ b/packages/markdown/src/Markdown/Markdown.tsx @@ -1,6 +1,6 @@ import {FC, PropsWithChildren} from 'react'; import MarkdownDisplay, {MarkdownProps} from 'react-native-markdown-display'; -import {rem, useFont, useTheme} from '@lad-tech/mobydick-core'; +import {px, useFont, useTheme} from '@lad-tech/mobydick-core'; const Markdown: FC> = ({children, style}) => { const {colors} = useTheme(); @@ -14,13 +14,13 @@ const Markdown: FC> = ({children, style}) => { color: bodyFontStyle.color, }, heading1: { - fontSize: rem(24), + fontSize: px(24), }, heading2: { - fontSize: rem(20), + fontSize: px(20), }, heading3: { - fontSize: rem(18), + fontSize: px(18), }, strong: { fontFamily: strongFontStyle.fontFamily, diff --git a/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.tsx b/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.tsx index 90e9b6101..25f4d2680 100644 --- a/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.tsx +++ b/src/pages/MainStack/Home/Core/DragAndDrop/ui/index.tsx @@ -1,12 +1,12 @@ import {Dimensions} from 'react-native'; -import {DragAndDropList, rem, useTheme} from '@shared/ui'; +import {DragAndDropList, px, useTheme} from '@shared/ui'; import {BlockView} from '@shared/ui/BlockView'; const {width: WIDTH} = Dimensions.get('window'); const arr = new Array(26).fill('').map((_, i) => i); -export const MARGIN = rem(8); +export const MARGIN = px(8); export const COL = 2; export const EL_WIDTH = WIDTH / COL - MARGIN; export const EL_HEIGHT = EL_WIDTH / 2; diff --git a/src/widgets/Core/Other/ui/CarouselWidget.tsx b/src/widgets/Core/Other/ui/CarouselWidget.tsx index 35e1005a9..4218377aa 100644 --- a/src/widgets/Core/Other/ui/CarouselWidget.tsx +++ b/src/widgets/Core/Other/ui/CarouselWidget.tsx @@ -4,7 +4,7 @@ import { Carousel, createStyles, LoopCarousel, - rem, + px, Typography, useStyles, View, @@ -13,7 +13,7 @@ import Header from '@shared/ui/Header'; import {BlockView} from '@shared/ui/BlockView'; const data: number[] = [1, 2, 3, 4, 5, 6]; -const ITEM_WIDTH = rem(80); +const ITEM_WIDTH = px(80); export const CarouselWidget = () => { const [styles] = useStyles(stylesFn);

    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 literal 0 HcmV?d00001 diff --git a/dimensionCompare/was/ipad.png b/dimensionCompare/was/ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..d603ac8556c33a11bd81fe4bf09178f638303882 GIT binary patch literal 109882 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