@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.
Files changed (369) hide show
  1. package/compose/build.gradle.kts +1 -1
  2. package/compose/compose.podspec +1 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  9. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
  10. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  11. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  12. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +21 -7
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  17. package/gradle.properties +1 -1
  18. package/ios/Input/Input.swift +4 -0
  19. package/local.properties +2 -2
  20. package/package.json +1 -1
  21. package/src/doctor/README.md +73 -0
  22. package/src/doctor/package-lock.json +885 -0
  23. package/src/doctor/package.json +44 -0
  24. package/src/doctor/publish.sh +27 -0
  25. package/src/doctor/src/Users.json +112 -0
  26. package/src/doctor/src/Whitelist.json +6 -0
  27. package/src/doctor/src/commands/check.ts +81 -0
  28. package/src/doctor/src/commands/doctor.ts +193 -0
  29. package/src/doctor/src/index.ts +35 -0
  30. package/src/doctor/src/logger.ts +84 -0
  31. package/src/doctor/src/task/native.ts +21 -0
  32. package/src/doctor/src/task/utils.ts +20 -0
  33. package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
  34. package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
  35. package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
  36. package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
  37. package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
  38. package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
  39. package/src/doctor/src/utils/getErrorMessage.ts +84 -0
  40. package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
  41. package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
  42. package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
  43. package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
  44. package/src/doctor/src/utils/sendMessage.ts +28 -0
  45. package/src/doctor/tsconfig.json +14 -0
  46. package/src/doctor/yarn.lock +492 -0
  47. package/src/foundations/Application/BottomSheet.tsx +358 -0
  48. package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
  49. package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
  50. package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
  51. package/src/foundations/Application/BottomTab/index.tsx +449 -0
  52. package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
  53. package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
  54. package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
  55. package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
  56. package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
  57. package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
  58. package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
  59. package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
  60. package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
  61. package/src/foundations/Application/Localize.ts +44 -0
  62. package/src/foundations/Application/ModalScreen.tsx +148 -0
  63. package/src/foundations/Application/Navigation.ts +63 -0
  64. package/src/foundations/Application/NavigationContainer.tsx +245 -0
  65. package/src/foundations/Application/Navigator.ts +171 -0
  66. package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
  67. package/src/foundations/Application/StackScreen.tsx +420 -0
  68. package/src/foundations/Application/TooltipPortal.tsx +127 -0
  69. package/src/foundations/Application/WidgetContainer.tsx +162 -0
  70. package/src/foundations/Application/index.ts +34 -0
  71. package/src/foundations/Application/types.ts +350 -0
  72. package/src/foundations/Application/utils.tsx +239 -0
  73. package/src/foundations/Assets/DotAnimation.json +256 -0
  74. package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
  75. package/src/foundations/Assets/icon.json +4052 -0
  76. package/src/foundations/Assets/icon_bank.json +506 -0
  77. package/src/foundations/Assets/language.json +208 -0
  78. package/src/foundations/Assets/lottie_circle_loader.json +1 -0
  79. package/src/foundations/Assets/pinAnimation.json +1 -0
  80. package/src/foundations/Assets/unpinAnimation.json +1 -0
  81. package/src/foundations/Badge/Badge.tsx +104 -0
  82. package/src/foundations/Badge/BadgeDot.tsx +35 -0
  83. package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
  84. package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
  85. package/src/foundations/Badge/Shape.tsx +29 -0
  86. package/src/foundations/Badge/index.tsx +8 -0
  87. package/src/foundations/Badge/styles.ts +125 -0
  88. package/src/foundations/Badge/types.ts +68 -0
  89. package/src/foundations/Button/index.tsx +371 -0
  90. package/src/foundations/Button/styles.ts +65 -0
  91. package/src/foundations/CheckBox/index.tsx +104 -0
  92. package/src/foundations/CheckBox/styles.ts +17 -0
  93. package/src/foundations/CheckBox/types.ts +37 -0
  94. package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
  95. package/src/foundations/Consts/index.ts +4 -0
  96. package/src/foundations/Consts/styles.ts +52 -0
  97. package/src/foundations/Consts/theme.ts +121 -0
  98. package/src/foundations/Context/index.ts +27 -0
  99. package/src/foundations/Divider/DashDivider.tsx +46 -0
  100. package/src/foundations/Divider/index.tsx +45 -0
  101. package/src/foundations/FoundationList/index.tsx +12 -0
  102. package/src/foundations/FoundationList/types.ts +7 -0
  103. package/src/foundations/Icon/index.tsx +57 -0
  104. package/src/foundations/Icon/types.ts +32 -0
  105. package/src/foundations/IconButton/index.tsx +144 -0
  106. package/src/foundations/IconButton/styles.ts +20 -0
  107. package/src/foundations/Image/index.tsx +115 -0
  108. package/src/foundations/Image/styles.ts +7 -0
  109. package/src/foundations/Image/types.ts +7 -0
  110. package/src/foundations/Input/Input.tsx +280 -0
  111. package/src/foundations/Input/InputDropDown.tsx +161 -0
  112. package/src/foundations/Input/InputMoney.tsx +325 -0
  113. package/src/foundations/Input/InputOTP.tsx +299 -0
  114. package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
  115. package/src/foundations/Input/InputSearch.tsx +351 -0
  116. package/src/foundations/Input/InputTextArea.tsx +218 -0
  117. package/src/foundations/Input/SystemTextInput.tsx +44 -0
  118. package/src/foundations/Input/TextTyping.tsx +115 -0
  119. package/src/foundations/Input/common.tsx +243 -0
  120. package/src/foundations/Input/index.tsx +373 -0
  121. package/src/foundations/Input/styles.ts +226 -0
  122. package/src/foundations/Input/utils.ts +97 -0
  123. package/src/foundations/Layout/Card.tsx +108 -0
  124. package/src/foundations/Layout/FloatingButton.tsx +179 -0
  125. package/src/foundations/Layout/GridSystem.tsx +137 -0
  126. package/src/foundations/Layout/Item.tsx +59 -0
  127. package/src/foundations/Layout/ItemList.tsx +66 -0
  128. package/src/foundations/Layout/ItemSectionList.tsx +40 -0
  129. package/src/foundations/Layout/Screen.tsx +644 -0
  130. package/src/foundations/Layout/Section.tsx +103 -0
  131. package/src/foundations/Layout/TrackingScope.tsx +18 -0
  132. package/src/foundations/Layout/index.ts +34 -0
  133. package/src/foundations/Layout/styles.ts +95 -0
  134. package/src/foundations/Layout/types.ts +40 -0
  135. package/src/foundations/Layout/utils.ts +47 -0
  136. package/src/foundations/Loader/DotLoader.tsx +37 -0
  137. package/src/foundations/Loader/Loader.tsx +13 -0
  138. package/src/foundations/Loader/ProgressBar.tsx +45 -0
  139. package/src/foundations/Loader/Spinner.tsx +29 -0
  140. package/src/foundations/Loader/index.tsx +6 -0
  141. package/src/foundations/Loader/styles.ts +10 -0
  142. package/src/foundations/Loader/types.ts +35 -0
  143. package/src/foundations/Loader/utils.ts +25 -0
  144. package/src/foundations/Pagination/Dot.tsx +19 -0
  145. package/src/foundations/Pagination/PaginationDot.tsx +44 -0
  146. package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
  147. package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
  148. package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
  149. package/src/foundations/Pagination/index.tsx +25 -0
  150. package/src/foundations/Pagination/styles.ts +51 -0
  151. package/src/foundations/Pagination/types.ts +40 -0
  152. package/src/foundations/Popup/PopupNotify.tsx +276 -0
  153. package/src/foundations/Popup/PopupPromotion.tsx +118 -0
  154. package/src/foundations/Popup/index.tsx +4 -0
  155. package/src/foundations/Popup/types.ts +96 -0
  156. package/src/foundations/Radio/index.tsx +108 -0
  157. package/src/foundations/Radio/styles.ts +15 -0
  158. package/src/foundations/Radio/types.ts +31 -0
  159. package/src/foundations/Skeleton/index.tsx +118 -0
  160. package/src/foundations/Skeleton/styles.ts +5 -0
  161. package/src/foundations/Skeleton/types.ts +6 -0
  162. package/src/foundations/Switch/index.tsx +68 -0
  163. package/src/foundations/Switch/styles.ts +25 -0
  164. package/src/foundations/Switch/types.ts +19 -0
  165. package/src/foundations/Tag/index.tsx +128 -0
  166. package/src/foundations/Tag/types.ts +41 -0
  167. package/src/foundations/Text/index.tsx +241 -0
  168. package/src/foundations/Text/styles.ts +78 -0
  169. package/src/foundations/Text/types.ts +53 -0
  170. package/src/foundations/Text/utils.ts +63 -0
  171. package/src/foundations/Title/index.tsx +285 -0
  172. package/src/foundations/Title/styles.ts +55 -0
  173. package/src/foundations/Title/types.ts +21 -0
  174. package/src/foundations/index.ts +50 -0
  175. package/src/foundations/package.json +35 -0
  176. package/src/foundations/publish.sh +17 -0
  177. package/src/libs/AutoComplete/index.tsx +88 -0
  178. package/src/libs/AutoComplete/package.json +16 -0
  179. package/src/libs/AutoComplete/publish.sh +16 -0
  180. package/src/libs/AutoComplete/styles.ts +15 -0
  181. package/src/libs/AutoComplete/types.ts +60 -0
  182. package/src/libs/Avatar/index.tsx +146 -0
  183. package/src/libs/Avatar/package.json +16 -0
  184. package/src/libs/Avatar/publish.sh +20 -0
  185. package/src/libs/Avatar/styles.ts +18 -0
  186. package/src/libs/Avatar/types.ts +57 -0
  187. package/src/libs/Badge/Badge.tsx +70 -0
  188. package/src/libs/Badge/BadgeDot.tsx +11 -0
  189. package/src/libs/Badge/BadgeRibbon.tsx +122 -0
  190. package/src/libs/Badge/Shape.tsx +29 -0
  191. package/src/libs/Badge/index.tsx +7 -0
  192. package/src/libs/Badge/package.json +16 -0
  193. package/src/libs/Badge/publish.sh +18 -0
  194. package/src/libs/Badge/styles.ts +55 -0
  195. package/src/libs/Badge/types.ts +63 -0
  196. package/src/libs/Calendar/CalendarPro.tsx +307 -0
  197. package/src/libs/Calendar/Day.tsx +150 -0
  198. package/src/libs/Calendar/HeaderControl.tsx +55 -0
  199. package/src/libs/Calendar/LunarDateConverter.ts +228 -0
  200. package/src/libs/Calendar/LunarService.ts +206 -0
  201. package/src/libs/Calendar/Month.tsx +118 -0
  202. package/src/libs/Calendar/MonthList.tsx +226 -0
  203. package/src/libs/Calendar/TabHeader.tsx +91 -0
  204. package/src/libs/Calendar/Util.ts +288 -0
  205. package/src/libs/Calendar/holidayData.ts +118 -0
  206. package/src/libs/Calendar/index.tsx +383 -0
  207. package/src/libs/Calendar/package.json +18 -0
  208. package/src/libs/Calendar/publish.sh +18 -0
  209. package/src/libs/Calendar/styles.ts +122 -0
  210. package/src/libs/Calendar/types.ts +212 -0
  211. package/src/libs/Carousel/animation.ts +62 -0
  212. package/src/libs/Carousel/index.tsx +517 -0
  213. package/src/libs/Carousel/package.json +18 -0
  214. package/src/libs/Carousel/publish.sh +16 -0
  215. package/src/libs/Carousel/types.ts +71 -0
  216. package/src/libs/Chip/index.tsx +164 -0
  217. package/src/libs/Chip/package.json +16 -0
  218. package/src/libs/Chip/publish.sh +16 -0
  219. package/src/libs/Chip/styles.ts +20 -0
  220. package/src/libs/Chip/types.ts +72 -0
  221. package/src/libs/Collapse/index.tsx +305 -0
  222. package/src/libs/Collapse/package.json +16 -0
  223. package/src/libs/Collapse/publish.sh +18 -0
  224. package/src/libs/Collapse/styles.ts +37 -0
  225. package/src/libs/Collapse/types.ts +84 -0
  226. package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
  227. package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
  228. package/src/libs/DateTimePicker/index.tsx +188 -0
  229. package/src/libs/DateTimePicker/package.json +16 -0
  230. package/src/libs/DateTimePicker/publish.sh +17 -0
  231. package/src/libs/DateTimePicker/styles.ts +31 -0
  232. package/src/libs/DateTimePicker/types.ts +102 -0
  233. package/src/libs/DateTimePicker/utils.ts +114 -0
  234. package/src/libs/Information/index.tsx +129 -0
  235. package/src/libs/Information/package.json +16 -0
  236. package/src/libs/Information/publish.sh +18 -0
  237. package/src/libs/Information/styles.ts +34 -0
  238. package/src/libs/Information/types.ts +79 -0
  239. package/src/libs/Logo/index.tsx +39 -0
  240. package/src/libs/Logo/package.json +17 -0
  241. package/src/libs/Logo/publish.sh +16 -0
  242. package/src/libs/Logo/styles.ts +25 -0
  243. package/src/libs/Logo/types.ts +13 -0
  244. package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
  245. package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
  246. package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
  247. package/src/libs/ProgressInfo/index.tsx +22 -0
  248. package/src/libs/ProgressInfo/package.json +16 -0
  249. package/src/libs/ProgressInfo/publish.sh +16 -0
  250. package/src/libs/ProgressInfo/styles.ts +46 -0
  251. package/src/libs/ProgressInfo/types.ts +60 -0
  252. package/src/libs/ProgressInfo/yarn.lock +8 -0
  253. package/src/libs/Rating/index.tsx +74 -0
  254. package/src/libs/Rating/package.json +16 -0
  255. package/src/libs/Rating/publish.sh +18 -0
  256. package/src/libs/Rating/type.ts +25 -0
  257. package/src/libs/Slider/Label.tsx +33 -0
  258. package/src/libs/Slider/helpers.ts +35 -0
  259. package/src/libs/Slider/hooks.tsx +218 -0
  260. package/src/libs/Slider/index.tsx +453 -0
  261. package/src/libs/Slider/package.json +16 -0
  262. package/src/libs/Slider/publish.sh +18 -0
  263. package/src/libs/Slider/styles.ts +36 -0
  264. package/src/libs/Stepper/NumberView.tsx +64 -0
  265. package/src/libs/Stepper/StepperButton.tsx +37 -0
  266. package/src/libs/Stepper/index.tsx +139 -0
  267. package/src/libs/Stepper/package.json +16 -0
  268. package/src/libs/Stepper/publish.sh +17 -0
  269. package/src/libs/Stepper/styles.ts +44 -0
  270. package/src/libs/Stepper/types.ts +154 -0
  271. package/src/libs/Steps/StepIcon.tsx +86 -0
  272. package/src/libs/Steps/StepsHorizontal.tsx +189 -0
  273. package/src/libs/Steps/StepsVertical.tsx +133 -0
  274. package/src/libs/Steps/index.tsx +20 -0
  275. package/src/libs/Steps/package.json +16 -0
  276. package/src/libs/Steps/publish.sh +16 -0
  277. package/src/libs/Steps/styles.ts +46 -0
  278. package/src/libs/Steps/types.ts +159 -0
  279. package/src/libs/Steps/utils.ts +175 -0
  280. package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
  281. package/src/libs/SuggestAction/index.tsx +3 -0
  282. package/src/libs/SuggestAction/package.json +16 -0
  283. package/src/libs/SuggestAction/publish.sh +16 -0
  284. package/src/libs/SuggestAction/styles.ts +30 -0
  285. package/src/libs/SuggestAction/types.ts +36 -0
  286. package/src/libs/Swipe/SwipeView.tsx +151 -0
  287. package/src/libs/Swipe/index.tsx +5 -0
  288. package/src/libs/Swipe/package.json +16 -0
  289. package/src/libs/Swipe/publish.sh +16 -0
  290. package/src/libs/Swipe/styles.ts +16 -0
  291. package/src/libs/Swipe/types.ts +109 -0
  292. package/src/libs/TabView/assets/Path.tsx +29 -0
  293. package/src/libs/TabView/index.tsx +184 -0
  294. package/src/libs/TabView/package.json +16 -0
  295. package/src/libs/TabView/publish.sh +16 -0
  296. package/src/libs/TabView/styles.ts +96 -0
  297. package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
  298. package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
  299. package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
  300. package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
  301. package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
  302. package/src/libs/TabView/types.ts +166 -0
  303. package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
  304. package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
  305. package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
  306. package/src/libs/Template/TrustBanner/index.tsx +161 -0
  307. package/src/libs/Template/TrustBanner/styles.ts +48 -0
  308. package/src/libs/Template/TrustBanner/types.ts +50 -0
  309. package/src/libs/Template/index.tsx +4 -0
  310. package/src/libs/Template/package.json +18 -0
  311. package/src/libs/Template/publish.sh +17 -0
  312. package/src/libs/Title/index.tsx +284 -0
  313. package/src/libs/Title/package.json +17 -0
  314. package/src/libs/Title/publish.sh +16 -0
  315. package/src/libs/Title/styles.ts +54 -0
  316. package/src/libs/Title/types.ts +21 -0
  317. package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
  318. package/src/libs/Tooltip/index.tsx +608 -0
  319. package/src/libs/Tooltip/package.json +16 -0
  320. package/src/libs/Tooltip/publish.sh +18 -0
  321. package/src/libs/Tooltip/styles.ts +70 -0
  322. package/src/libs/Tooltip/types.ts +61 -0
  323. package/src/libs/Uploader/index.tsx +87 -0
  324. package/src/libs/Uploader/package.json +17 -0
  325. package/src/libs/Uploader/publish.sh +18 -0
  326. package/src/libs/Uploader/styles.ts +30 -0
  327. package/src/libs/Uploader/types.ts +69 -0
  328. package/src/native/MoMoNative.podspec +18 -0
  329. package/src/native/calculator/android/build.gradle +61 -0
  330. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  331. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  332. package/src/native/calculator/android/gradlew +172 -0
  333. package/src/native/calculator/android/gradlew.bat +84 -0
  334. package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
  335. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
  336. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
  337. package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
  338. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
  339. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
  340. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
  341. package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
  342. package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
  343. package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
  344. package/src/native/calculator/ios/KeyboardView.h +19 -0
  345. package/src/native/calculator/ios/KeyboardView.m +56 -0
  346. package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
  347. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
  348. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
  349. package/src/native/package.json +14 -0
  350. package/src/native/publish.sh +29 -0
  351. package/src/native/resource/android/build.gradle +57 -0
  352. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  353. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  354. package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
  355. package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
  356. package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
  357. package/src/native/resource/ios/RNResouce.m +71 -0
  358. package/src/native/resource/ios/RNResource.h +5 -0
  359. package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  360. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  361. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  362. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  363. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  364. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  365. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  366. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  367. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  368. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  369. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+
3
+ export type PopupNotifyProps = {
4
+ /**
5
+ * `id`: Optional. id component_name for tracking component.
6
+ */
7
+ id?: string;
8
+ /**
9
+ * `image`: Optional. Represents the URL or path of the image to be displayed in the PopupNotify component.
10
+ */
11
+ image?: string;
12
+
13
+ /**
14
+ * `title`: Represents the title text to be displayed in the PopupNotify component.
15
+ */
16
+ title: string;
17
+
18
+ /**
19
+ * `description`: Represents the description text to be displayed in the PopupNotify component.
20
+ */
21
+ description?: string | React.ReactNode;
22
+
23
+ /**
24
+ * `error`: Optional. Represents additional error text to be displayed in the PopupNotify component.
25
+ */
26
+ error?: string;
27
+
28
+ /**
29
+ * `secondary`: Optional. Represents the secondary action that can be performed from the PopupNotify component.
30
+ */
31
+ secondary?: PopupAction;
32
+
33
+ /**
34
+ * `primary`: Represents the primary action that can be performed from the PopupNotify component.
35
+ */
36
+ primary: PopupAction;
37
+
38
+ /**
39
+ * `buttonDirection`: Optional. Represents the direction in which the action buttons are laid out.
40
+ * - 'row': Buttons are laid out horizontally.
41
+ * - 'column': Buttons are laid out vertically.
42
+ * - 'auto': The layout is automatically determined by title length.
43
+ */
44
+ buttonDirection?: PopupActionDirection;
45
+
46
+ /**
47
+ * `onIconClose`: Optional. A callback function that is called when the close icon in the PopupNotify component is pressed.
48
+ */
49
+ onIconClose?: () => void;
50
+
51
+ /**
52
+ * onRequestClose on request close for modal
53
+ */
54
+ onRequestClose?: (callback?: () => void) => void;
55
+ };
56
+
57
+ export type PopupPromotionProps = {
58
+ /**
59
+ * `id`: Optional. id component_name for tracking component.
60
+ */
61
+ id?: string;
62
+
63
+ /**
64
+ * `image`: Represents the URL or path of the image to be displayed in the PopupPromotion component.
65
+ */
66
+ image: string;
67
+
68
+ /**
69
+ * `onClose`: Optional. A callback function that is called when the PopupPromotion component is closed.
70
+ */
71
+ onIconClose?: () => void;
72
+
73
+ /**
74
+ * `onActionClick`: Optional. A callback function that is called when the PopupPromotion component is closed.
75
+ */
76
+ onActionClick?: () => void;
77
+
78
+ /**
79
+ * onRequestClose on request close for modal
80
+ */
81
+ onRequestClose?: (callback?: () => void) => void;
82
+ };
83
+
84
+ type PopupAction = {
85
+ /**
86
+ * `title`: Represents the title text of the action button.
87
+ */
88
+ title: string;
89
+
90
+ /**
91
+ * `onPress`: A callback function that is called when the action button is pressed.
92
+ */
93
+ onPress: () => void;
94
+ };
95
+
96
+ type PopupActionDirection = 'row' | 'column' | 'auto';
@@ -0,0 +1,108 @@
1
+ import React, { FC, useContext } from 'react';
2
+ import { TouchableOpacity, View } from 'react-native';
3
+
4
+ import { RadioProps } from './types';
5
+ import { Text } from '../Text';
6
+ import styles from './styles';
7
+ import { useComponentId } from '../Application';
8
+ import {
9
+ ApplicationContext,
10
+ ComponentContext,
11
+ MiniAppContext,
12
+ } from '../Context';
13
+ import { Spacing } from '../Consts';
14
+
15
+ const Radio: FC<RadioProps> = ({
16
+ value,
17
+ groupValue,
18
+ disabled = false,
19
+ onChange,
20
+ label,
21
+ style,
22
+ params,
23
+ accessibilityState,
24
+ accessibilityLabel,
25
+ ...props
26
+ }) => {
27
+ const { theme } = useContext(ApplicationContext);
28
+ const context = useContext<any>(MiniAppContext);
29
+ const selected = value === groupValue;
30
+ const componentName = 'Radio';
31
+ const { componentId } = useComponentId(
32
+ `${componentName}${label ? `/${label}` : ''}`,
33
+ accessibilityLabel,
34
+ );
35
+
36
+ const showBaseLineDebug = context?.features?.showBaseLineDebug ?? false;
37
+ let disabledStyle = {};
38
+ let checkBoxStyle = {
39
+ borderWidth: 2,
40
+ borderColor: theme.colors.text.default,
41
+ };
42
+
43
+ if (selected) {
44
+ checkBoxStyle = {
45
+ borderWidth: 6,
46
+ borderColor: theme.colors.primary,
47
+ };
48
+ }
49
+ if (disabled) {
50
+ disabledStyle = {
51
+ borderColor: selected
52
+ ? theme.colors.background.tonal
53
+ : theme.colors.text.disable,
54
+ };
55
+ }
56
+
57
+ return (
58
+ <ComponentContext.Provider
59
+ value={{
60
+ componentName,
61
+ componentId,
62
+ params,
63
+ state: disabled ? 'disabled' : 'enabled',
64
+ action: 'click',
65
+ }}
66
+ >
67
+ <TouchableOpacity
68
+ {...props}
69
+ disabled={disabled}
70
+ onPress={onChange}
71
+ style={[
72
+ style,
73
+ {
74
+ flexDirection: 'row',
75
+ alignItems: 'center',
76
+ },
77
+ showBaseLineDebug && styles.debugBaseLine,
78
+ ]}
79
+ accessibilityState={{
80
+ checked: selected,
81
+ disabled: disabled as boolean,
82
+ ...accessibilityState,
83
+ }}
84
+ accessibilityLabel={componentId}
85
+ >
86
+ <View
87
+ style={[
88
+ styles.radio,
89
+ checkBoxStyle,
90
+ disabledStyle,
91
+ { marginRight: label ? Spacing.S : 0 },
92
+ ]}
93
+ />
94
+ {!!label && (
95
+ <Text
96
+ typography={'body_default_regular'}
97
+ style={styles.radioText}
98
+ accessibilityLabel={componentId + '|text'}
99
+ >
100
+ {label}
101
+ </Text>
102
+ )}
103
+ </TouchableOpacity>
104
+ </ComponentContext.Provider>
105
+ );
106
+ };
107
+
108
+ export { Radio };
@@ -0,0 +1,15 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { Radius, Spacing, Colors } from '../Consts';
3
+
4
+ export default StyleSheet.create({
5
+ radio: {
6
+ height: 20,
7
+ width: 20,
8
+ borderRadius: Radius.M,
9
+ },
10
+ container: { flex: 1 },
11
+ radioText: {
12
+ marginRight: Spacing.M,
13
+ },
14
+ debugBaseLine: { borderWidth: 1, borderColor: Colors.green_06 },
15
+ });
@@ -0,0 +1,31 @@
1
+ import {TouchableOpacityProps} from 'react-native';
2
+
3
+ export interface RadioProps extends TouchableOpacityProps {
4
+ /**
5
+ * `value`: Represents the value associated with the Radio component.
6
+ * It is used to determine whether the Radio component is selected or not in comparison with the `groupValue`.
7
+ */
8
+ value: any;
9
+
10
+ /**
11
+ * `label`: Optional. Represents the text label displayed next to the Radio component.
12
+ */
13
+ label?: string;
14
+
15
+ /**
16
+ * `onChange`: A callback function that is called when the value of the Radio component changes.
17
+ * It is triggered when the user interacts with the Radio component.
18
+ */
19
+ onChange: () => void;
20
+
21
+ /**
22
+ * `groupValue`: Represents the value of the selected Radio component within a group of Radio components.
23
+ * The Radio component for which `value` equals `groupValue` will be selected.
24
+ */
25
+ groupValue: any;
26
+
27
+ /**
28
+ * Optional. Params auto tracking component.
29
+ */
30
+ params?: any;
31
+ }
@@ -0,0 +1,118 @@
1
+ import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import {
3
+ Animated,
4
+ Easing,
5
+ LayoutAnimation,
6
+ Platform,
7
+ StyleSheet,
8
+ UIManager,
9
+ View,
10
+ } from 'react-native';
11
+ import LinearGradient from 'react-native-linear-gradient';
12
+ import { SkeletonTypes } from './types';
13
+ import { Colors, Styles } from '../Consts';
14
+ import styles from './styles';
15
+ import { ScreenContext, SkeletonContext } from '../Context';
16
+
17
+ const Skeleton: React.FC<SkeletonTypes> = ({ style }) => {
18
+ const screen = useContext<any>(ScreenContext);
19
+ const [width, setWidth] = useState(0);
20
+ const PRIMARY_COLOR = Colors.black_05;
21
+ const HIGHLIGHT_COLOR1 = Colors.black_05;
22
+ const HIGHLIGHT_COLOR2 = Colors.black_03;
23
+ const beginShimmerPosition = useRef(new Animated.Value(0)).current;
24
+
25
+ const shimmerColors = [HIGHLIGHT_COLOR1, HIGHLIGHT_COLOR2, HIGHLIGHT_COLOR1];
26
+ const linearTranslate = beginShimmerPosition.interpolate({
27
+ inputRange: [0, 1],
28
+ outputRange: [-width, width],
29
+ });
30
+ const animatedValue = useMemo(() => {
31
+ return Animated.loop(
32
+ Animated.timing(beginShimmerPosition, {
33
+ toValue: 1,
34
+ duration: 1000,
35
+ easing: Easing.linear,
36
+ useNativeDriver: Platform.OS !== 'web',
37
+ }),
38
+ );
39
+ }, [beginShimmerPosition]);
40
+
41
+ useEffect(() => {
42
+ animatedValue.start();
43
+ screen?.onLoading?.(true);
44
+ return () => {
45
+ animatedValue.stop();
46
+ screen?.onLoading?.(false);
47
+ };
48
+ }, [animatedValue, screen]);
49
+
50
+ const onLayout = (newWidth: number) => {
51
+ if (newWidth !== width) {
52
+ setWidth(newWidth);
53
+ }
54
+ };
55
+
56
+ return (
57
+ <View style={[styles.container, style]}>
58
+ <View
59
+ onLayout={e => onLayout(e.nativeEvent.layout.width)}
60
+ style={[Styles.flex, { backgroundColor: PRIMARY_COLOR }]}
61
+ >
62
+ <Animated.View
63
+ style={{
64
+ transform: [{ translateX: linearTranslate }],
65
+ width: '60%',
66
+ height: '100%',
67
+ }}
68
+ >
69
+ <LinearGradient
70
+ style={[StyleSheet.absoluteFill]}
71
+ colors={shimmerColors}
72
+ start={{
73
+ x: 0,
74
+ y: 0,
75
+ }}
76
+ end={{
77
+ x: 1,
78
+ y: 0,
79
+ }}
80
+ />
81
+ </Animated.View>
82
+ </View>
83
+ </View>
84
+ );
85
+ };
86
+
87
+ const SkeletonProvider: React.FC<{ loading: boolean; children: any }> = ({
88
+ loading = true,
89
+ children,
90
+ }) => {
91
+ const [previous, setPrevious] = useState(loading);
92
+
93
+ useEffect(() => {
94
+ if (previous !== loading) {
95
+ if (Platform.OS === 'android') {
96
+ if (UIManager.setLayoutAnimationEnabledExperimental) {
97
+ UIManager.setLayoutAnimationEnabledExperimental(true);
98
+ }
99
+ }
100
+ LayoutAnimation.configureNext({
101
+ duration: 500,
102
+ create: {
103
+ type: LayoutAnimation.Types.easeInEaseOut,
104
+ property: LayoutAnimation.Properties.opacity,
105
+ },
106
+ });
107
+ setPrevious(loading);
108
+ }
109
+ }, [loading, previous]);
110
+
111
+ return (
112
+ <SkeletonContext.Provider value={{ loading: previous }}>
113
+ {children}
114
+ </SkeletonContext.Provider>
115
+ );
116
+ };
117
+
118
+ export { Skeleton, SkeletonProvider };
@@ -0,0 +1,5 @@
1
+ import {StyleSheet} from 'react-native';
2
+
3
+ export default StyleSheet.create({
4
+ container: {overflow: 'hidden', width: '100%', height: '100%'},
5
+ });
@@ -0,0 +1,6 @@
1
+ export type SkeletonTypes = {
2
+ /**
3
+ * Optional. Custom styles for the Skeleton component.
4
+ */
5
+ style?: object;
6
+ };
@@ -0,0 +1,68 @@
1
+ import React, { FC, useContext } from 'react';
2
+ import { TouchableOpacity, View } from 'react-native';
3
+ import { SwitchProps } from './types';
4
+ import styles from './styles';
5
+ import { Colors } from '../Consts';
6
+ import { useComponentId } from '../Application';
7
+ import { ComponentContext, MiniAppContext } from '../Context';
8
+
9
+ const Switch: FC<SwitchProps> = ({
10
+ value = false,
11
+ onChange,
12
+ disabled = false,
13
+ style,
14
+ params,
15
+ accessibilityLabel,
16
+ ...props
17
+ }) => {
18
+ const context = useContext<any>(MiniAppContext);
19
+ const circleBackgroundColor = value ? Colors.black_01 : Colors.black_03;
20
+ const circleAlign = value ? 'flex-end' : 'flex-start';
21
+ const componentName = 'Switch';
22
+
23
+ const { componentId } = useComponentId(componentName, accessibilityLabel);
24
+
25
+ const showBaseLineDebug = context?.features?.showBaseLineDebug ?? false;
26
+
27
+ let backgroundColor = value ? Colors.green_03 : Colors.black_07;
28
+ if (disabled) {
29
+ backgroundColor = value ? Colors.green_09 : Colors.black_05;
30
+ }
31
+
32
+ return (
33
+ <ComponentContext.Provider
34
+ value={{
35
+ componentName,
36
+ params,
37
+ state: disabled ? 'disabled' : 'enabled',
38
+ action: 'click',
39
+ }}
40
+ >
41
+ <TouchableOpacity
42
+ {...props}
43
+ disabled={disabled}
44
+ accessibilityState={{
45
+ checked: value,
46
+ disabled: disabled === null ? false : disabled,
47
+ ...props.accessibilityState,
48
+ }}
49
+ accessibilityLabel={componentId}
50
+ onPress={() => onChange?.(!value)}
51
+ style={[
52
+ style,
53
+ styles.container,
54
+ { backgroundColor, alignItems: circleAlign },
55
+ showBaseLineDebug && styles.debugBaseLine,
56
+ ]}
57
+ >
58
+ <View
59
+ style={[styles.circle, { backgroundColor: circleBackgroundColor }]}
60
+ >
61
+ <View style={[styles.circleSmall, { backgroundColor }]} />
62
+ </View>
63
+ </TouchableOpacity>
64
+ </ComponentContext.Provider>
65
+ );
66
+ };
67
+
68
+ export { Switch };
@@ -0,0 +1,25 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { Colors } from '../Consts';
3
+
4
+ export default StyleSheet.create({
5
+ container: {
6
+ width: 38,
7
+ height: 24,
8
+ borderRadius: 20,
9
+ justifyContent: 'center',
10
+ paddingHorizontal: 4,
11
+ },
12
+ circle: {
13
+ width: 14,
14
+ height: 14,
15
+ borderRadius: 8,
16
+ alignItems: 'center',
17
+ justifyContent: 'center',
18
+ },
19
+ circleSmall: {
20
+ width: 6,
21
+ height: 6,
22
+ borderRadius: 4,
23
+ },
24
+ debugBaseLine: { borderWidth: 1, borderColor: Colors.green_06 },
25
+ });
@@ -0,0 +1,19 @@
1
+ import {TouchableOpacityProps} from 'react-native';
2
+
3
+ export interface SwitchProps extends TouchableOpacityProps {
4
+ /**
5
+ * `value`: Represents whether the Switch component is currently in the 'on' (`true`) or 'off' (`false`) state.
6
+ */
7
+ value: boolean;
8
+
9
+ /**
10
+ * `onChange`: A callback function that is called when the value of the Switch component changes.
11
+ * It receives the new value of the Switch as a parameter.
12
+ */
13
+ onChange: (value: boolean) => void;
14
+
15
+ /**
16
+ * Optional. Params auto tracking component.
17
+ */
18
+ params?: any;
19
+ }
@@ -0,0 +1,128 @@
1
+ import React, { FC, useContext } from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import { TagProps } from './types';
4
+ import { Colors, Radius, Spacing } from '../Consts';
5
+ import { Icon } from '../Icon';
6
+ import { Text, useScaleSize } from '../Text';
7
+ import { useComponentId } from '../Application';
8
+ import { MiniAppContext } from '../Context';
9
+
10
+ const backgroundColor = {
11
+ default: Colors.black_04,
12
+ orange: Colors.orange_08,
13
+ green: Colors.green_08,
14
+ red: Colors.red_08,
15
+ blue: Colors.blue_08,
16
+ grey: Colors.black_04,
17
+ };
18
+
19
+ const textColor = {
20
+ default: Colors.black_17,
21
+ orange: Colors.orange_03,
22
+ green: Colors.green_03,
23
+ red: Colors.red_03,
24
+ blue: Colors.blue_03,
25
+ grey: Colors.black_12,
26
+ };
27
+
28
+ const Tag: FC<TagProps> = ({
29
+ label = 'Label',
30
+ icon,
31
+ color = 'default',
32
+ size = 'large',
33
+ style,
34
+ customColor,
35
+ accessibilityLabel,
36
+ }) => {
37
+ const context = useContext<any>(MiniAppContext);
38
+ const scaledHeight24 = useScaleSize(24);
39
+ const scaledHeight18 = useScaleSize(18);
40
+
41
+ const showBaseLineDebug = context?.features?.showBaseLineDebug ?? false;
42
+
43
+ const styles = StyleSheet.create({
44
+ container: {
45
+ paddingHorizontal: Spacing.S,
46
+ borderRadius: Radius.S,
47
+ flexDirection: 'row',
48
+ height: scaledHeight24,
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ },
52
+ mediumContainer: {
53
+ paddingHorizontal: Spacing.S,
54
+ borderRadius: Radius.S,
55
+ height: scaledHeight18,
56
+ alignItems: 'center',
57
+ flexDirection: 'row',
58
+ justifyContent: 'center',
59
+ },
60
+ icon: {
61
+ marginRight: Spacing.XS,
62
+ },
63
+ debugBaseLine: { borderWidth: 1, borderColor: Colors.green_06 },
64
+ });
65
+
66
+ let labelColor = textColor[color];
67
+ let tagColor = backgroundColor[color];
68
+ let sizeStyle = styles.mediumContainer;
69
+ const componentName = 'Tag';
70
+
71
+ const { componentId } = useComponentId(
72
+ `${componentName}/${label}`,
73
+ accessibilityLabel,
74
+ );
75
+ //Check if custom color is [color]_03 (only check in dev mode)
76
+ const validateCustomColor = (color: string) => {
77
+ if (__DEV__) {
78
+ const colorCore: { [key: string]: string } = Colors;
79
+ const primaryColors = Object.keys(Colors)
80
+ .map(i => {
81
+ if (i.includes('_03')) {
82
+ return colorCore[i];
83
+ }
84
+ })
85
+ .filter(color => color);
86
+ return primaryColors.includes(color);
87
+ }
88
+ return true;
89
+ };
90
+
91
+ if (size === 'large') {
92
+ sizeStyle = styles.container;
93
+ }
94
+ if (customColor && validateCustomColor(customColor)) {
95
+ labelColor = Colors.black_01;
96
+ tagColor = customColor;
97
+ }
98
+
99
+ return (
100
+ <View
101
+ style={[
102
+ style,
103
+ sizeStyle,
104
+ { backgroundColor: tagColor },
105
+ showBaseLineDebug && styles.debugBaseLine,
106
+ ]}
107
+ accessibilityLabel={componentId}
108
+ >
109
+ {!!icon && (
110
+ <Icon
111
+ style={styles.icon}
112
+ size={16}
113
+ source={icon as string}
114
+ color={labelColor}
115
+ />
116
+ )}
117
+ <Text
118
+ color={labelColor}
119
+ typography={'label_s_medium'}
120
+ accessibilityLabel={`${componentId}|text`}
121
+ >
122
+ {label}
123
+ </Text>
124
+ </View>
125
+ );
126
+ };
127
+
128
+ export { Tag };
@@ -0,0 +1,41 @@
1
+ import {ViewStyle} from 'react-native';
2
+
3
+ export type TagProps = {
4
+ /**
5
+ * `label`: Represents the text label displayed on the Tag component.
6
+ */
7
+ label: string;
8
+
9
+ /**
10
+ * `size`: Optional. Defines the size of the Tag component.
11
+ * Defaults to 'medium' if not provided.
12
+ */
13
+ size?: 'medium' | 'large';
14
+
15
+ /**
16
+ * `icon`: Optional. Represents the name or key of the icon to be displayed in the Tag component.
17
+ */
18
+ icon?: string;
19
+
20
+ /**
21
+ * `color`: Optional. Defines the color style of the Tag component.
22
+ */
23
+ color?: 'default' | 'orange' | 'green' | 'red' | 'blue' | 'grey';
24
+
25
+ /**
26
+ * `style`: Optional. Used to apply custom styling to the Tag component.
27
+ * Accepts an object of style properties.
28
+ */
29
+ style?: ViewStyle;
30
+
31
+ /**
32
+ * `customColor`: Optional. Represents a custom color string (e.g., hex, rgb, rgba, etc.)
33
+ * that can be applied to the Tag component.
34
+ */
35
+ customColor?: string;
36
+
37
+ /**
38
+ * `accessibilityLabel`: Optional. Represents the accessibility label for the Tag component.
39
+ */
40
+ accessibilityLabel?: string;
41
+ };