@momo-kits/native-kits 0.157.1-beta.9-debug → 0.157.1-com.1-debug
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compose/build.gradle.kts +1 -1
- package/compose/compose.podspec +1 -1
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +21 -7
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
- package/gradle.properties +1 -1
- package/ios/Input/Input.swift +4 -0
- package/local.properties +2 -2
- package/package.json +1 -1
- package/src/doctor/README.md +73 -0
- package/src/doctor/package-lock.json +885 -0
- package/src/doctor/package.json +44 -0
- package/src/doctor/publish.sh +27 -0
- package/src/doctor/src/Users.json +112 -0
- package/src/doctor/src/Whitelist.json +6 -0
- package/src/doctor/src/commands/check.ts +81 -0
- package/src/doctor/src/commands/doctor.ts +193 -0
- package/src/doctor/src/index.ts +35 -0
- package/src/doctor/src/logger.ts +84 -0
- package/src/doctor/src/task/native.ts +21 -0
- package/src/doctor/src/task/utils.ts +20 -0
- package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
- package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
- package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
- package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
- package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
- package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
- package/src/doctor/src/utils/getErrorMessage.ts +84 -0
- package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
- package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
- package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
- package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
- package/src/doctor/src/utils/sendMessage.ts +28 -0
- package/src/doctor/tsconfig.json +14 -0
- package/src/doctor/yarn.lock +492 -0
- package/src/foundations/Application/BottomSheet.tsx +358 -0
- package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
- package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
- package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
- package/src/foundations/Application/BottomTab/index.tsx +449 -0
- package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
- package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
- package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
- package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
- package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
- package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
- package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
- package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
- package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
- package/src/foundations/Application/Localize.ts +44 -0
- package/src/foundations/Application/ModalScreen.tsx +148 -0
- package/src/foundations/Application/Navigation.ts +63 -0
- package/src/foundations/Application/NavigationContainer.tsx +245 -0
- package/src/foundations/Application/Navigator.ts +171 -0
- package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
- package/src/foundations/Application/StackScreen.tsx +420 -0
- package/src/foundations/Application/TooltipPortal.tsx +127 -0
- package/src/foundations/Application/WidgetContainer.tsx +162 -0
- package/src/foundations/Application/index.ts +34 -0
- package/src/foundations/Application/types.ts +350 -0
- package/src/foundations/Application/utils.tsx +239 -0
- package/src/foundations/Assets/DotAnimation.json +256 -0
- package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
- package/src/foundations/Assets/icon.json +4052 -0
- package/src/foundations/Assets/icon_bank.json +506 -0
- package/src/foundations/Assets/language.json +208 -0
- package/src/foundations/Assets/lottie_circle_loader.json +1 -0
- package/src/foundations/Assets/pinAnimation.json +1 -0
- package/src/foundations/Assets/unpinAnimation.json +1 -0
- package/src/foundations/Badge/Badge.tsx +104 -0
- package/src/foundations/Badge/BadgeDot.tsx +35 -0
- package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
- package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
- package/src/foundations/Badge/Shape.tsx +29 -0
- package/src/foundations/Badge/index.tsx +8 -0
- package/src/foundations/Badge/styles.ts +125 -0
- package/src/foundations/Badge/types.ts +68 -0
- package/src/foundations/Button/index.tsx +371 -0
- package/src/foundations/Button/styles.ts +65 -0
- package/src/foundations/CheckBox/index.tsx +104 -0
- package/src/foundations/CheckBox/styles.ts +17 -0
- package/src/foundations/CheckBox/types.ts +37 -0
- package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
- package/src/foundations/Consts/index.ts +4 -0
- package/src/foundations/Consts/styles.ts +52 -0
- package/src/foundations/Consts/theme.ts +121 -0
- package/src/foundations/Context/index.ts +27 -0
- package/src/foundations/Divider/DashDivider.tsx +46 -0
- package/src/foundations/Divider/index.tsx +45 -0
- package/src/foundations/FoundationList/index.tsx +12 -0
- package/src/foundations/FoundationList/types.ts +7 -0
- package/src/foundations/Icon/index.tsx +57 -0
- package/src/foundations/Icon/types.ts +32 -0
- package/src/foundations/IconButton/index.tsx +144 -0
- package/src/foundations/IconButton/styles.ts +20 -0
- package/src/foundations/Image/index.tsx +115 -0
- package/src/foundations/Image/styles.ts +7 -0
- package/src/foundations/Image/types.ts +7 -0
- package/src/foundations/Input/Input.tsx +280 -0
- package/src/foundations/Input/InputDropDown.tsx +161 -0
- package/src/foundations/Input/InputMoney.tsx +325 -0
- package/src/foundations/Input/InputOTP.tsx +299 -0
- package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
- package/src/foundations/Input/InputSearch.tsx +351 -0
- package/src/foundations/Input/InputTextArea.tsx +218 -0
- package/src/foundations/Input/SystemTextInput.tsx +44 -0
- package/src/foundations/Input/TextTyping.tsx +115 -0
- package/src/foundations/Input/common.tsx +243 -0
- package/src/foundations/Input/index.tsx +373 -0
- package/src/foundations/Input/styles.ts +226 -0
- package/src/foundations/Input/utils.ts +97 -0
- package/src/foundations/Layout/Card.tsx +108 -0
- package/src/foundations/Layout/FloatingButton.tsx +179 -0
- package/src/foundations/Layout/GridSystem.tsx +137 -0
- package/src/foundations/Layout/Item.tsx +59 -0
- package/src/foundations/Layout/ItemList.tsx +66 -0
- package/src/foundations/Layout/ItemSectionList.tsx +40 -0
- package/src/foundations/Layout/Screen.tsx +644 -0
- package/src/foundations/Layout/Section.tsx +103 -0
- package/src/foundations/Layout/TrackingScope.tsx +18 -0
- package/src/foundations/Layout/index.ts +34 -0
- package/src/foundations/Layout/styles.ts +95 -0
- package/src/foundations/Layout/types.ts +40 -0
- package/src/foundations/Layout/utils.ts +47 -0
- package/src/foundations/Loader/DotLoader.tsx +37 -0
- package/src/foundations/Loader/Loader.tsx +13 -0
- package/src/foundations/Loader/ProgressBar.tsx +45 -0
- package/src/foundations/Loader/Spinner.tsx +29 -0
- package/src/foundations/Loader/index.tsx +6 -0
- package/src/foundations/Loader/styles.ts +10 -0
- package/src/foundations/Loader/types.ts +35 -0
- package/src/foundations/Loader/utils.ts +25 -0
- package/src/foundations/Pagination/Dot.tsx +19 -0
- package/src/foundations/Pagination/PaginationDot.tsx +44 -0
- package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
- package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
- package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
- package/src/foundations/Pagination/index.tsx +25 -0
- package/src/foundations/Pagination/styles.ts +51 -0
- package/src/foundations/Pagination/types.ts +40 -0
- package/src/foundations/Popup/PopupNotify.tsx +276 -0
- package/src/foundations/Popup/PopupPromotion.tsx +118 -0
- package/src/foundations/Popup/index.tsx +4 -0
- package/src/foundations/Popup/types.ts +96 -0
- package/src/foundations/Radio/index.tsx +108 -0
- package/src/foundations/Radio/styles.ts +15 -0
- package/src/foundations/Radio/types.ts +31 -0
- package/src/foundations/Skeleton/index.tsx +118 -0
- package/src/foundations/Skeleton/styles.ts +5 -0
- package/src/foundations/Skeleton/types.ts +6 -0
- package/src/foundations/Switch/index.tsx +68 -0
- package/src/foundations/Switch/styles.ts +25 -0
- package/src/foundations/Switch/types.ts +19 -0
- package/src/foundations/Tag/index.tsx +128 -0
- package/src/foundations/Tag/types.ts +41 -0
- package/src/foundations/Text/index.tsx +241 -0
- package/src/foundations/Text/styles.ts +78 -0
- package/src/foundations/Text/types.ts +53 -0
- package/src/foundations/Text/utils.ts +63 -0
- package/src/foundations/Title/index.tsx +285 -0
- package/src/foundations/Title/styles.ts +55 -0
- package/src/foundations/Title/types.ts +21 -0
- package/src/foundations/index.ts +50 -0
- package/src/foundations/package.json +35 -0
- package/src/foundations/publish.sh +17 -0
- package/src/libs/AutoComplete/index.tsx +88 -0
- package/src/libs/AutoComplete/package.json +16 -0
- package/src/libs/AutoComplete/publish.sh +16 -0
- package/src/libs/AutoComplete/styles.ts +15 -0
- package/src/libs/AutoComplete/types.ts +60 -0
- package/src/libs/Avatar/index.tsx +146 -0
- package/src/libs/Avatar/package.json +16 -0
- package/src/libs/Avatar/publish.sh +20 -0
- package/src/libs/Avatar/styles.ts +18 -0
- package/src/libs/Avatar/types.ts +57 -0
- package/src/libs/Badge/Badge.tsx +70 -0
- package/src/libs/Badge/BadgeDot.tsx +11 -0
- package/src/libs/Badge/BadgeRibbon.tsx +122 -0
- package/src/libs/Badge/Shape.tsx +29 -0
- package/src/libs/Badge/index.tsx +7 -0
- package/src/libs/Badge/package.json +16 -0
- package/src/libs/Badge/publish.sh +18 -0
- package/src/libs/Badge/styles.ts +55 -0
- package/src/libs/Badge/types.ts +63 -0
- package/src/libs/Calendar/CalendarPro.tsx +307 -0
- package/src/libs/Calendar/Day.tsx +150 -0
- package/src/libs/Calendar/HeaderControl.tsx +55 -0
- package/src/libs/Calendar/LunarDateConverter.ts +228 -0
- package/src/libs/Calendar/LunarService.ts +206 -0
- package/src/libs/Calendar/Month.tsx +118 -0
- package/src/libs/Calendar/MonthList.tsx +226 -0
- package/src/libs/Calendar/TabHeader.tsx +91 -0
- package/src/libs/Calendar/Util.ts +288 -0
- package/src/libs/Calendar/holidayData.ts +118 -0
- package/src/libs/Calendar/index.tsx +383 -0
- package/src/libs/Calendar/package.json +18 -0
- package/src/libs/Calendar/publish.sh +18 -0
- package/src/libs/Calendar/styles.ts +122 -0
- package/src/libs/Calendar/types.ts +212 -0
- package/src/libs/Carousel/animation.ts +62 -0
- package/src/libs/Carousel/index.tsx +517 -0
- package/src/libs/Carousel/package.json +18 -0
- package/src/libs/Carousel/publish.sh +16 -0
- package/src/libs/Carousel/types.ts +71 -0
- package/src/libs/Chip/index.tsx +164 -0
- package/src/libs/Chip/package.json +16 -0
- package/src/libs/Chip/publish.sh +16 -0
- package/src/libs/Chip/styles.ts +20 -0
- package/src/libs/Chip/types.ts +72 -0
- package/src/libs/Collapse/index.tsx +305 -0
- package/src/libs/Collapse/package.json +16 -0
- package/src/libs/Collapse/publish.sh +18 -0
- package/src/libs/Collapse/styles.ts +37 -0
- package/src/libs/Collapse/types.ts +84 -0
- package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
- package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
- package/src/libs/DateTimePicker/index.tsx +188 -0
- package/src/libs/DateTimePicker/package.json +16 -0
- package/src/libs/DateTimePicker/publish.sh +17 -0
- package/src/libs/DateTimePicker/styles.ts +31 -0
- package/src/libs/DateTimePicker/types.ts +102 -0
- package/src/libs/DateTimePicker/utils.ts +114 -0
- package/src/libs/Information/index.tsx +129 -0
- package/src/libs/Information/package.json +16 -0
- package/src/libs/Information/publish.sh +18 -0
- package/src/libs/Information/styles.ts +34 -0
- package/src/libs/Information/types.ts +79 -0
- package/src/libs/Logo/index.tsx +39 -0
- package/src/libs/Logo/package.json +17 -0
- package/src/libs/Logo/publish.sh +16 -0
- package/src/libs/Logo/styles.ts +25 -0
- package/src/libs/Logo/types.ts +13 -0
- package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
- package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
- package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
- package/src/libs/ProgressInfo/index.tsx +22 -0
- package/src/libs/ProgressInfo/package.json +16 -0
- package/src/libs/ProgressInfo/publish.sh +16 -0
- package/src/libs/ProgressInfo/styles.ts +46 -0
- package/src/libs/ProgressInfo/types.ts +60 -0
- package/src/libs/ProgressInfo/yarn.lock +8 -0
- package/src/libs/Rating/index.tsx +74 -0
- package/src/libs/Rating/package.json +16 -0
- package/src/libs/Rating/publish.sh +18 -0
- package/src/libs/Rating/type.ts +25 -0
- package/src/libs/Slider/Label.tsx +33 -0
- package/src/libs/Slider/helpers.ts +35 -0
- package/src/libs/Slider/hooks.tsx +218 -0
- package/src/libs/Slider/index.tsx +453 -0
- package/src/libs/Slider/package.json +16 -0
- package/src/libs/Slider/publish.sh +18 -0
- package/src/libs/Slider/styles.ts +36 -0
- package/src/libs/Stepper/NumberView.tsx +64 -0
- package/src/libs/Stepper/StepperButton.tsx +37 -0
- package/src/libs/Stepper/index.tsx +139 -0
- package/src/libs/Stepper/package.json +16 -0
- package/src/libs/Stepper/publish.sh +17 -0
- package/src/libs/Stepper/styles.ts +44 -0
- package/src/libs/Stepper/types.ts +154 -0
- package/src/libs/Steps/StepIcon.tsx +86 -0
- package/src/libs/Steps/StepsHorizontal.tsx +189 -0
- package/src/libs/Steps/StepsVertical.tsx +133 -0
- package/src/libs/Steps/index.tsx +20 -0
- package/src/libs/Steps/package.json +16 -0
- package/src/libs/Steps/publish.sh +16 -0
- package/src/libs/Steps/styles.ts +46 -0
- package/src/libs/Steps/types.ts +159 -0
- package/src/libs/Steps/utils.ts +175 -0
- package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
- package/src/libs/SuggestAction/index.tsx +3 -0
- package/src/libs/SuggestAction/package.json +16 -0
- package/src/libs/SuggestAction/publish.sh +16 -0
- package/src/libs/SuggestAction/styles.ts +30 -0
- package/src/libs/SuggestAction/types.ts +36 -0
- package/src/libs/Swipe/SwipeView.tsx +151 -0
- package/src/libs/Swipe/index.tsx +5 -0
- package/src/libs/Swipe/package.json +16 -0
- package/src/libs/Swipe/publish.sh +16 -0
- package/src/libs/Swipe/styles.ts +16 -0
- package/src/libs/Swipe/types.ts +109 -0
- package/src/libs/TabView/assets/Path.tsx +29 -0
- package/src/libs/TabView/index.tsx +184 -0
- package/src/libs/TabView/package.json +16 -0
- package/src/libs/TabView/publish.sh +16 -0
- package/src/libs/TabView/styles.ts +96 -0
- package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
- package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
- package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
- package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
- package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
- package/src/libs/TabView/types.ts +166 -0
- package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
- package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
- package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
- package/src/libs/Template/TrustBanner/index.tsx +161 -0
- package/src/libs/Template/TrustBanner/styles.ts +48 -0
- package/src/libs/Template/TrustBanner/types.ts +50 -0
- package/src/libs/Template/index.tsx +4 -0
- package/src/libs/Template/package.json +18 -0
- package/src/libs/Template/publish.sh +17 -0
- package/src/libs/Title/index.tsx +284 -0
- package/src/libs/Title/package.json +17 -0
- package/src/libs/Title/publish.sh +16 -0
- package/src/libs/Title/styles.ts +54 -0
- package/src/libs/Title/types.ts +21 -0
- package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
- package/src/libs/Tooltip/index.tsx +608 -0
- package/src/libs/Tooltip/package.json +16 -0
- package/src/libs/Tooltip/publish.sh +18 -0
- package/src/libs/Tooltip/styles.ts +70 -0
- package/src/libs/Tooltip/types.ts +61 -0
- package/src/libs/Uploader/index.tsx +87 -0
- package/src/libs/Uploader/package.json +17 -0
- package/src/libs/Uploader/publish.sh +18 -0
- package/src/libs/Uploader/styles.ts +30 -0
- package/src/libs/Uploader/types.ts +69 -0
- package/src/native/MoMoNative.podspec +18 -0
- package/src/native/calculator/android/build.gradle +61 -0
- package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src/native/calculator/android/gradlew +172 -0
- package/src/native/calculator/android/gradlew.bat +84 -0
- package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
- package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
- package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
- package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
- package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
- package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
- package/src/native/calculator/ios/KeyboardView.h +19 -0
- package/src/native/calculator/ios/KeyboardView.m +56 -0
- package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
- package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
- package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
- package/src/native/package.json +14 -0
- package/src/native/publish.sh +29 -0
- package/src/native/resource/android/build.gradle +57 -0
- package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
- package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
- package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
- package/src/native/resource/ios/RNResouce.m +71 -0
- package/src/native/resource/ios/RNResource.h +5 -0
- package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import React, {FC, useContext, useMemo} from 'react';
|
|
2
|
+
import {View} from 'react-native';
|
|
3
|
+
import {AvatarProps} from './types';
|
|
4
|
+
import {
|
|
5
|
+
ApplicationContext,
|
|
6
|
+
Colors,
|
|
7
|
+
Icon,
|
|
8
|
+
Image,
|
|
9
|
+
MiniAppContext,
|
|
10
|
+
ScreenContext,
|
|
11
|
+
Spacing,
|
|
12
|
+
Text,
|
|
13
|
+
} from '@momo-kits/foundation';
|
|
14
|
+
import styles from './styles';
|
|
15
|
+
|
|
16
|
+
const logo = 'https://static.momocdn.net/app/img/kits/logo_momo_circle.png';
|
|
17
|
+
const iconSupportDefault =
|
|
18
|
+
'https://static.momocdn.net/app/img/kits/_indicator.png';
|
|
19
|
+
|
|
20
|
+
const Avatar: FC<AvatarProps> = ({
|
|
21
|
+
size = 32,
|
|
22
|
+
name,
|
|
23
|
+
rounded = true,
|
|
24
|
+
showIconMomo = false,
|
|
25
|
+
showIconSupport = false,
|
|
26
|
+
iconSupport = iconSupportDefault,
|
|
27
|
+
image,
|
|
28
|
+
accessibilityLabel,
|
|
29
|
+
}) => {
|
|
30
|
+
const app = useContext<any>(MiniAppContext);
|
|
31
|
+
const screen = useContext<any>(ScreenContext);
|
|
32
|
+
const componentName = 'Avatar';
|
|
33
|
+
|
|
34
|
+
const componentId = useMemo(() => {
|
|
35
|
+
if (accessibilityLabel) {
|
|
36
|
+
return accessibilityLabel;
|
|
37
|
+
}
|
|
38
|
+
return `${app.appId}/${app.code}/${screen.screenName}/${componentName}${
|
|
39
|
+
name ? `/${name}` : ''
|
|
40
|
+
}`;
|
|
41
|
+
}, [componentName, accessibilityLabel, app, screen, name]);
|
|
42
|
+
|
|
43
|
+
const {theme} = useContext(ApplicationContext);
|
|
44
|
+
const borderRadius = rounded ? size / 2 : Spacing.XS;
|
|
45
|
+
|
|
46
|
+
const getShortName = (name: string) => {
|
|
47
|
+
const words = name.split(' ');
|
|
48
|
+
const lastTwoWords = words.slice(-2);
|
|
49
|
+
return lastTwoWords.map(word => word.charAt(0).toUpperCase()).join('');
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const getIconSize = () => {
|
|
53
|
+
switch (size) {
|
|
54
|
+
case 24: {
|
|
55
|
+
return 16;
|
|
56
|
+
}
|
|
57
|
+
case 32: {
|
|
58
|
+
return 16;
|
|
59
|
+
}
|
|
60
|
+
case 40: {
|
|
61
|
+
return 24;
|
|
62
|
+
}
|
|
63
|
+
case 48: {
|
|
64
|
+
return 32;
|
|
65
|
+
}
|
|
66
|
+
case 56: {
|
|
67
|
+
return 32;
|
|
68
|
+
}
|
|
69
|
+
case 72: {
|
|
70
|
+
return 40;
|
|
71
|
+
}
|
|
72
|
+
default: {
|
|
73
|
+
return 16;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const iconSize = getIconSize();
|
|
79
|
+
const shouldShowIconTop = showIconMomo && rounded;
|
|
80
|
+
const shouldShowIconBottom = showIconSupport && rounded;
|
|
81
|
+
const supportIconSize = {
|
|
82
|
+
width: getIconSize() / 2,
|
|
83
|
+
height: getIconSize() / 2,
|
|
84
|
+
borderRadius: getIconSize() / 4,
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return (
|
|
88
|
+
<View
|
|
89
|
+
style={[
|
|
90
|
+
styles.container,
|
|
91
|
+
{
|
|
92
|
+
width: size,
|
|
93
|
+
height: size,
|
|
94
|
+
backgroundColor: Colors.pink_09,
|
|
95
|
+
borderColor: theme.colors.border.default,
|
|
96
|
+
borderRadius: borderRadius,
|
|
97
|
+
},
|
|
98
|
+
]}
|
|
99
|
+
accessibilityLabel={componentId}>
|
|
100
|
+
{!!name && !image && (
|
|
101
|
+
<Text
|
|
102
|
+
color={Colors.pink_03}
|
|
103
|
+
typography={'description_xs_regular'}
|
|
104
|
+
accessibilityLabel={componentId + '|text'}>
|
|
105
|
+
{getShortName(name)}
|
|
106
|
+
</Text>
|
|
107
|
+
)}
|
|
108
|
+
{!name && !image && (
|
|
109
|
+
<Icon
|
|
110
|
+
size={iconSize}
|
|
111
|
+
source={'basic_person'}
|
|
112
|
+
color={Colors.pink_03}
|
|
113
|
+
accessibilityLabel={componentId + '|icon'}
|
|
114
|
+
/>
|
|
115
|
+
)}
|
|
116
|
+
{!!image && (
|
|
117
|
+
<Image
|
|
118
|
+
source={{uri: image}}
|
|
119
|
+
style={[
|
|
120
|
+
styles.image,
|
|
121
|
+
{
|
|
122
|
+
borderRadius,
|
|
123
|
+
},
|
|
124
|
+
]}
|
|
125
|
+
accessibilityLabel={componentId + '|img'}
|
|
126
|
+
/>
|
|
127
|
+
)}
|
|
128
|
+
{shouldShowIconTop && (
|
|
129
|
+
<Image
|
|
130
|
+
source={{uri: logo}}
|
|
131
|
+
style={[styles.icon, supportIconSize, {top: -1, right: -1}]}
|
|
132
|
+
accessibilityLabel={componentId + '|top-icon'}
|
|
133
|
+
/>
|
|
134
|
+
)}
|
|
135
|
+
{shouldShowIconBottom && (
|
|
136
|
+
<Image
|
|
137
|
+
source={{uri: iconSupport}}
|
|
138
|
+
style={[styles.icon, supportIconSize, {bottom: -1, right: -1}]}
|
|
139
|
+
accessibilityLabel={componentId + '|bottom-icon'}
|
|
140
|
+
/>
|
|
141
|
+
)}
|
|
142
|
+
</View>
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export {Avatar};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@momo-kits/avatar",
|
|
3
|
+
"version": "0.157.1-beta.4",
|
|
4
|
+
"private": false,
|
|
5
|
+
"main": "index.tsx",
|
|
6
|
+
"peerDependencies": {
|
|
7
|
+
"@momo-kits/foundation": "latest",
|
|
8
|
+
"react": "*",
|
|
9
|
+
"react-native": "*"
|
|
10
|
+
},
|
|
11
|
+
"license": "MoMo",
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"registry": "https://registry.npmjs.org/"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {}
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Prepare dist files
|
|
4
|
+
|
|
5
|
+
if [ "$1" == "stable" ]; then
|
|
6
|
+
npm version $(npm view @momo-kits/foundation@stable version)
|
|
7
|
+
npm version patch
|
|
8
|
+
npm publish --tag stable --access=public
|
|
9
|
+
elif [ "$1" == "latest" ]; then
|
|
10
|
+
npm publish --tag latest --access=public
|
|
11
|
+
elif [ "$1" == "beta" ]; then
|
|
12
|
+
npm publish --tag beta --access=public
|
|
13
|
+
else
|
|
14
|
+
npm publish --tag alpha --access=public
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
PACKAGE_NAME=$(npm pkg get name)
|
|
18
|
+
NEW_PACKAGE_VERSION=$(npm pkg get version)
|
|
19
|
+
|
|
20
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {StyleSheet} from 'react-native';
|
|
2
|
+
|
|
3
|
+
export default StyleSheet.create({
|
|
4
|
+
icon: {
|
|
5
|
+
position: 'absolute',
|
|
6
|
+
overflow: 'hidden',
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
container: {
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
justifyContent: 'center',
|
|
12
|
+
borderWidth: 1,
|
|
13
|
+
},
|
|
14
|
+
image: {
|
|
15
|
+
width: '100%',
|
|
16
|
+
height: '100%',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predefined set of sizes for the avatar. The numbers represent pixel values.
|
|
3
|
+
*/
|
|
4
|
+
type AvatarSize = 24 | 32 | 40 | 48 | 56 | 72;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Props for the Avatar component, which displays an image or icon representing a user.
|
|
8
|
+
*/
|
|
9
|
+
export type AvatarProps = {
|
|
10
|
+
/**
|
|
11
|
+
* Optional. Specifies the size of the avatar from a set of predefined sizes.
|
|
12
|
+
* If not provided, the component may use a default size.
|
|
13
|
+
*/
|
|
14
|
+
size?: AvatarSize;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Optional. If `true`, the avatar will have rounded corners, providing a circular appearance.
|
|
18
|
+
* Defaults to `false` if not provided, resulting in a square or rectangular avatar.
|
|
19
|
+
*/
|
|
20
|
+
rounded?: boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Optional. If `true`, an icon representing "Momo" will be displayed.
|
|
24
|
+
* This is specific to the use-case where the application requires a Momo icon.
|
|
25
|
+
* Defaults to `false` if not provided.
|
|
26
|
+
*/
|
|
27
|
+
showIconMomo?: boolean;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Optional. If `true`, a support icon will be displayed, suggesting this avatar is for support or helpdesk representation.
|
|
31
|
+
* Defaults to `false` if not provided.
|
|
32
|
+
*/
|
|
33
|
+
showIconSupport?: boolean;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Optional. Specifies the icon for support. This is used in conjunction with `showIconSupport`.
|
|
37
|
+
* If `showIconSupport` is `true` but no `iconSupport` is provided, a default icon may be used.
|
|
38
|
+
*/
|
|
39
|
+
iconSupport?: string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Optional. The name associated with the avatar. This could be the user’s full name,
|
|
43
|
+
* first name, or a username, depending on the implementation.
|
|
44
|
+
*/
|
|
45
|
+
name?: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Optional. The URL or local path of the image to be displayed as the avatar.
|
|
49
|
+
* If not provided, a placeholder or default avatar may be displayed.
|
|
50
|
+
*/
|
|
51
|
+
image?: string;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Optional. Assign accessibility label to the avatar for automated testing.
|
|
55
|
+
*/
|
|
56
|
+
accessibilityLabel?: string;
|
|
57
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React, { FC, useContext } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { BadgeProps } from './types';
|
|
5
|
+
import styles from './styles';
|
|
6
|
+
import {
|
|
7
|
+
ApplicationContext,
|
|
8
|
+
Colors,
|
|
9
|
+
Text,
|
|
10
|
+
useScaleSize,
|
|
11
|
+
} from '@momo-kits/foundation';
|
|
12
|
+
|
|
13
|
+
const Badge: FC<BadgeProps> = ({ label = 'Label', style, backgroundColor }) => {
|
|
14
|
+
const { theme } = useContext(ApplicationContext);
|
|
15
|
+
const scaledSize = useScaleSize(16);
|
|
16
|
+
|
|
17
|
+
const isValidatedColor = () => {
|
|
18
|
+
const colorKeys = Object.keys(Colors);
|
|
19
|
+
const colorValue = Object.values(Colors);
|
|
20
|
+
if (backgroundColor) {
|
|
21
|
+
const colorIndex = colorValue.indexOf(backgroundColor);
|
|
22
|
+
if (colorIndex !== -1) {
|
|
23
|
+
if (colorKeys[colorIndex]?.includes('_03')) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const isNumber = () => {
|
|
32
|
+
const numberRegex = /^\d+$/;
|
|
33
|
+
return numberRegex.test(String(label));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const formatTitle = () => {
|
|
37
|
+
if (isNumber() && Number(label) > 99) {
|
|
38
|
+
return '99+';
|
|
39
|
+
}
|
|
40
|
+
return label.toString();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
let badgeColor = isNumber()
|
|
44
|
+
? theme.colors.error.primary
|
|
45
|
+
: theme.colors.warning.primary;
|
|
46
|
+
|
|
47
|
+
if (backgroundColor && isValidatedColor()) {
|
|
48
|
+
badgeColor = backgroundColor;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<View
|
|
53
|
+
style={[
|
|
54
|
+
style,
|
|
55
|
+
styles.badge,
|
|
56
|
+
{
|
|
57
|
+
height: scaledSize,
|
|
58
|
+
minWidth: scaledSize,
|
|
59
|
+
},
|
|
60
|
+
{ backgroundColor: badgeColor },
|
|
61
|
+
]}
|
|
62
|
+
>
|
|
63
|
+
<Text color={Colors.black_01} typography={'action_xxs_bold'}>
|
|
64
|
+
{formatTitle()}
|
|
65
|
+
</Text>
|
|
66
|
+
</View>
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export default Badge;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, {FC} from 'react';
|
|
2
|
+
import {View} from 'react-native';
|
|
3
|
+
import {BadgeDotProps} from './types';
|
|
4
|
+
import styles from './styles';
|
|
5
|
+
|
|
6
|
+
const BadgeDot: FC<BadgeDotProps> = ({size = 'large', style}) => {
|
|
7
|
+
const dotStyle = size === 'small' ? styles.dotSmall : styles.dot;
|
|
8
|
+
return <View style={[style, dotStyle]} />;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default BadgeDot;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import React, {FC, useContext} from 'react';
|
|
2
|
+
import {View} from 'react-native';
|
|
3
|
+
import {DownTail, UpTail} from './Shape';
|
|
4
|
+
import styles from './styles';
|
|
5
|
+
import {BadgeRibbonProps} from './types';
|
|
6
|
+
import {ApplicationContext, Colors, Image, Text} from '@momo-kits/foundation';
|
|
7
|
+
|
|
8
|
+
const BadgeRibbon: FC<BadgeRibbonProps> = ({
|
|
9
|
+
position = 'top_right',
|
|
10
|
+
label = 'Label',
|
|
11
|
+
isRound = false,
|
|
12
|
+
style = {},
|
|
13
|
+
}) => {
|
|
14
|
+
const {theme} = useContext(ApplicationContext);
|
|
15
|
+
let ribbonRotate = '0deg';
|
|
16
|
+
let textRotate = '0deg';
|
|
17
|
+
let ribbonTail = <DownTail />;
|
|
18
|
+
let textMargin = 0;
|
|
19
|
+
let skewMargin = 0;
|
|
20
|
+
|
|
21
|
+
if (position === 'top_right' || position === 'bottom_right') {
|
|
22
|
+
ribbonRotate = '180deg';
|
|
23
|
+
textRotate = '180deg';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (position === 'bottom_left' || position === 'top_right') {
|
|
27
|
+
textMargin = 4;
|
|
28
|
+
ribbonTail = <UpTail />;
|
|
29
|
+
skewMargin = 4;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const renderRoundContent = () => {
|
|
33
|
+
return (
|
|
34
|
+
<View
|
|
35
|
+
style={[
|
|
36
|
+
styles.ribbonContent,
|
|
37
|
+
{
|
|
38
|
+
backgroundColor: theme.colors.warning.primary,
|
|
39
|
+
marginTop: textMargin,
|
|
40
|
+
},
|
|
41
|
+
]}>
|
|
42
|
+
<Text
|
|
43
|
+
style={[
|
|
44
|
+
styles.ribbonLabel,
|
|
45
|
+
{
|
|
46
|
+
transform: [
|
|
47
|
+
{
|
|
48
|
+
rotate: textRotate,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
]}
|
|
53
|
+
color={Colors.black_01}
|
|
54
|
+
typography={'label_xs_medium'}>
|
|
55
|
+
{label}
|
|
56
|
+
</Text>
|
|
57
|
+
</View>
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const renderSkewContent = () => {
|
|
62
|
+
return (
|
|
63
|
+
<View
|
|
64
|
+
style={{
|
|
65
|
+
flexDirection: 'row',
|
|
66
|
+
marginTop: skewMargin,
|
|
67
|
+
}}>
|
|
68
|
+
<View
|
|
69
|
+
style={[
|
|
70
|
+
styles.ribbonSkewContent,
|
|
71
|
+
{
|
|
72
|
+
backgroundColor: theme.colors.warning.primary,
|
|
73
|
+
},
|
|
74
|
+
]}>
|
|
75
|
+
<Text
|
|
76
|
+
style={[
|
|
77
|
+
styles.ribbonLabel,
|
|
78
|
+
{
|
|
79
|
+
transform: [
|
|
80
|
+
{
|
|
81
|
+
rotate: textRotate,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
]}
|
|
86
|
+
color={Colors.black_01}
|
|
87
|
+
typography={'label_xs_medium'}>
|
|
88
|
+
{label}
|
|
89
|
+
</Text>
|
|
90
|
+
</View>
|
|
91
|
+
<Image
|
|
92
|
+
source={{
|
|
93
|
+
uri: 'https://static.momocdn.net/app/img/kits/utils/Tail_4x.png',
|
|
94
|
+
}}
|
|
95
|
+
style={styles.skew}
|
|
96
|
+
/>
|
|
97
|
+
</View>
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const content = isRound ? renderRoundContent() : renderSkewContent();
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<View
|
|
105
|
+
style={[
|
|
106
|
+
style,
|
|
107
|
+
styles.ribbon,
|
|
108
|
+
{
|
|
109
|
+
transform: [
|
|
110
|
+
{
|
|
111
|
+
rotate: ribbonRotate,
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
]}>
|
|
116
|
+
{ribbonTail}
|
|
117
|
+
{content}
|
|
118
|
+
</View>
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default BadgeRibbon;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styles from './styles';
|
|
3
|
+
import {Image} from '@momo-kits/foundation';
|
|
4
|
+
|
|
5
|
+
const UpTail = () => {
|
|
6
|
+
return (
|
|
7
|
+
<Image
|
|
8
|
+
resizeMode={'stretch'}
|
|
9
|
+
source={{
|
|
10
|
+
uri: 'https://static.momocdn.net/app/img/kits/utils/Head_down_4x.png',
|
|
11
|
+
}}
|
|
12
|
+
style={[styles.tail, {transform: [{rotate: '180deg'}]}]}
|
|
13
|
+
/>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const DownTail = () => {
|
|
18
|
+
return (
|
|
19
|
+
<Image
|
|
20
|
+
resizeMode={'stretch'}
|
|
21
|
+
source={{
|
|
22
|
+
uri: 'https://static.momocdn.net/app/img/kits/utils/Head_4x.png',
|
|
23
|
+
}}
|
|
24
|
+
style={styles.tail}
|
|
25
|
+
/>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export {UpTail, DownTail};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Badge from './Badge';
|
|
2
|
+
import BadgeDot from './BadgeDot';
|
|
3
|
+
import BadgeRibbon from './BadgeRibbon';
|
|
4
|
+
import {BadgeDotProps, BadgeProps, BadgeRibbonProps} from './types';
|
|
5
|
+
|
|
6
|
+
export {Badge, BadgeRibbon, BadgeDot};
|
|
7
|
+
export type {BadgeProps, BadgeDotProps, BadgeRibbonProps};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@momo-kits/badge",
|
|
3
|
+
"version": "0.157.1-beta.4",
|
|
4
|
+
"private": false,
|
|
5
|
+
"main": "index.tsx",
|
|
6
|
+
"peerDependencies": {
|
|
7
|
+
"@momo-kits/foundation": "latest",
|
|
8
|
+
"react": "*",
|
|
9
|
+
"react-native": "*"
|
|
10
|
+
},
|
|
11
|
+
"license": "MoMo",
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"registry": "https://registry.npmjs.org/"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {}
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
if [ "$1" == "stable" ]; then
|
|
5
|
+
npm version $(npm view @momo-kits/foundation@stable version)
|
|
6
|
+
npm version patch
|
|
7
|
+
npm publish --tag stable --access=public
|
|
8
|
+
elif [ "$1" == "latest" ]; then
|
|
9
|
+
npm publish --tag latest --access=public
|
|
10
|
+
elif [ "$1" == "beta" ]; then
|
|
11
|
+
npm publish --tag beta --access=public
|
|
12
|
+
else
|
|
13
|
+
npm publish --tag alpha --access=public
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
PACKAGE_NAME=$(npm pkg get name)
|
|
17
|
+
NEW_PACKAGE_VERSION=$(npm pkg get version)
|
|
18
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {StyleSheet} from 'react-native';
|
|
2
|
+
import {Colors, Radius, Spacing} from '@momo-kits/foundation';
|
|
3
|
+
|
|
4
|
+
export default StyleSheet.create({
|
|
5
|
+
badge: {
|
|
6
|
+
paddingHorizontal: Spacing.XS,
|
|
7
|
+
borderRadius: Radius.M,
|
|
8
|
+
justifyContent: 'center',
|
|
9
|
+
alignItems: 'center',
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
borderWidth: 1,
|
|
12
|
+
borderColor: Colors.black_01,
|
|
13
|
+
alignSelf: 'baseline',
|
|
14
|
+
},
|
|
15
|
+
dot: {
|
|
16
|
+
width: 16,
|
|
17
|
+
height: 16,
|
|
18
|
+
borderWidth: 2,
|
|
19
|
+
borderColor: Colors.black_01,
|
|
20
|
+
backgroundColor: Colors.red_03,
|
|
21
|
+
borderRadius: 8,
|
|
22
|
+
},
|
|
23
|
+
dotSmall: {
|
|
24
|
+
width: 10,
|
|
25
|
+
height: 10,
|
|
26
|
+
borderWidth: 1,
|
|
27
|
+
borderColor: Colors.black_01,
|
|
28
|
+
backgroundColor: Colors.red_03,
|
|
29
|
+
borderRadius: 5,
|
|
30
|
+
},
|
|
31
|
+
ribbon: {
|
|
32
|
+
alignSelf: 'baseline',
|
|
33
|
+
flexDirection: 'row',
|
|
34
|
+
height: 20,
|
|
35
|
+
overflow: 'hidden',
|
|
36
|
+
},
|
|
37
|
+
ribbonContent: {
|
|
38
|
+
height: 16,
|
|
39
|
+
justifyContent: 'center',
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
borderBottomRightRadius: 12,
|
|
42
|
+
borderTopRightRadius: 12,
|
|
43
|
+
paddingRight: 6,
|
|
44
|
+
},
|
|
45
|
+
ribbonSkewContent: {
|
|
46
|
+
height: 16,
|
|
47
|
+
justifyContent: 'center',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
},
|
|
50
|
+
ribbonLabel: {
|
|
51
|
+
color: Colors.black_01,
|
|
52
|
+
},
|
|
53
|
+
skew: {width: 8, height: 16},
|
|
54
|
+
tail: {width: 5, height: 20},
|
|
55
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {ViewStyle} from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for a general Badge component. It can display a wide range of badges including simple labels, numbers, or dots.
|
|
5
|
+
*/
|
|
6
|
+
export type BadgeProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Optional. The text to display on the badge. This could be a number or string, depending on the badge's purpose.
|
|
9
|
+
*/
|
|
10
|
+
label?: string | number;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Optional. Custom styles to apply to the badge component. Can be a single style or an array of styles.
|
|
14
|
+
*/
|
|
15
|
+
style?: ViewStyle | ViewStyle[];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Optional. Custom background badge.
|
|
19
|
+
*/
|
|
20
|
+
backgroundColor?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Props for a BadgeDot component. It specifically represents a dot-style badge, typically used for notification indicators.
|
|
25
|
+
*/
|
|
26
|
+
export type BadgeDotProps = {
|
|
27
|
+
/**
|
|
28
|
+
* Optional. The size of the dot, either 'small' or 'large'. This allows for better visual alignment with different UI elements.
|
|
29
|
+
*/
|
|
30
|
+
size?: 'small' | 'large';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Optional. Custom styles to apply to the badge dot component. Can be a single style or an array of styles.
|
|
34
|
+
*/
|
|
35
|
+
style?: ViewStyle | ViewStyle[];
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Props for a BadgeRibbon component. It represents a more specialized badge in the shape of a ribbon, allowing for placement around containers.
|
|
40
|
+
*/
|
|
41
|
+
export type BadgeRibbonProps = {
|
|
42
|
+
/**
|
|
43
|
+
* The text to display on the ribbon-style badge. Unlike other badges, ribbons typically carry more descriptive text.
|
|
44
|
+
*/
|
|
45
|
+
label: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Optional. Determines the placement of the ribbon on its parent container. The position can be any corner of the container.
|
|
49
|
+
* Defaults to 'top_right' if not specified.
|
|
50
|
+
*/
|
|
51
|
+
position?: 'top_right' | 'top_left' | 'bottom_right' | 'bottom_left';
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Optional. If true, the edges of the ribbon badge will be rounded. This is purely a stylistic choice.
|
|
55
|
+
* Defaults to `false` if not provided, resulting in a flat-edged ribbon.
|
|
56
|
+
*/
|
|
57
|
+
isRound?: boolean;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Optional. Custom styles to apply to the ribbon badge component. Can be a single style or an array of styles.
|
|
61
|
+
*/
|
|
62
|
+
style?: ViewStyle | ViewStyle[];
|
|
63
|
+
};
|