@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,350 @@
1
+ package vn.momo.kits.components
2
+
3
+ import androidx.compose.foundation.background
4
+ import androidx.compose.foundation.border
5
+ import androidx.compose.foundation.layout.Box
6
+ import androidx.compose.foundation.layout.Column
7
+ import androidx.compose.foundation.layout.Row
8
+ import androidx.compose.foundation.layout.Spacer
9
+ import androidx.compose.foundation.layout.fillMaxWidth
10
+ import androidx.compose.foundation.layout.height
11
+ import androidx.compose.foundation.layout.padding
12
+ import androidx.compose.foundation.layout.size
13
+ import androidx.compose.foundation.layout.width
14
+ import androidx.compose.foundation.shape.CircleShape
15
+ import androidx.compose.runtime.Composable
16
+ import androidx.compose.runtime.remember
17
+ import androidx.compose.ui.Alignment
18
+ import androidx.compose.ui.Modifier
19
+ import androidx.compose.ui.draw.clip
20
+ import androidx.compose.ui.text.style.TextAlign
21
+ import androidx.compose.ui.unit.dp
22
+ import vn.momo.kits.application.IsShowBaseLineDebug
23
+ import vn.momo.kits.const.AppTheme
24
+ import vn.momo.kits.const.Colors
25
+ import vn.momo.kits.const.Spacing
26
+ import vn.momo.kits.const.Typography
27
+ import vn.momo.kits.const.scaleSize
28
+ import vn.momo.kits.modifier.conditional
29
+
30
+ // ─── Data model ───────────────────────────────────────────────────────────────
31
+
32
+ data class ProgressInfoItem(
33
+ val title: String,
34
+ val description: String? = null,
35
+ )
36
+
37
+ enum class ProgressInfoSize { Small, Large }
38
+
39
+ enum class ProgressInfoAlign { Left, Right, Center, Stretch }
40
+
41
+ // ─── Public entry-point ───────────────────────────────────────────────────────
42
+
43
+ /**
44
+ * Display-only step progress indicator migrated from the React Native ProgressInfo component.
45
+ *
46
+ * @param steps Ordered list of steps; each has a [ProgressInfoItem.title] and an
47
+ * optional [ProgressInfoItem.description].
48
+ * @param horizontal When `true` renders steps in a horizontal row with connector lines;
49
+ * when `false` (default) renders a vertical column.
50
+ * @param size Icon diameter: [ProgressInfoSize.Small] = 16 dp,
51
+ * [ProgressInfoSize.Large] = 24 dp (default).
52
+ * @param useNumber Show the 1-based step index inside the icon instead of the default dot.
53
+ * @param align Alignment of icon + text for the horizontal variant.
54
+ * @param showTitle Whether step titles are rendered (default `true`).
55
+ * @param showDescription Whether step descriptions are rendered (default `true`).
56
+ * @param customIcon Icon source key rendered inside each step circle (overrides the dot;
57
+ * itself overridden by [useNumber]).
58
+ * @param modifier Modifier applied to the root layout.
59
+ */
60
+ @Composable
61
+ fun ProgressInfo(
62
+ steps: List<ProgressInfoItem>,
63
+ horizontal: Boolean = false,
64
+ size: ProgressInfoSize = ProgressInfoSize.Large,
65
+ useNumber: Boolean = false,
66
+ align: ProgressInfoAlign = ProgressInfoAlign.Center,
67
+ showTitle: Boolean = true,
68
+ showDescription: Boolean = true,
69
+ customIcon: String? = null,
70
+ modifier: Modifier = Modifier,
71
+ ) {
72
+ if (horizontal) {
73
+ ProgressInfoHorizontal(
74
+ steps = steps,
75
+ size = size,
76
+ useNumber = useNumber,
77
+ align = align,
78
+ showTitle = showTitle,
79
+ showDescription = showDescription,
80
+ customIcon = customIcon,
81
+ modifier = modifier,
82
+ )
83
+ } else {
84
+ ProgressInfoVertical(
85
+ steps = steps,
86
+ size = size,
87
+ useNumber = useNumber,
88
+ showTitle = showTitle,
89
+ showDescription = showDescription,
90
+ customIcon = customIcon,
91
+ modifier = modifier,
92
+ )
93
+ }
94
+ }
95
+
96
+ // ─── Horizontal variant ───────────────────────────────────────────────────────
97
+
98
+ @Composable
99
+ private fun ProgressInfoHorizontal(
100
+ steps: List<ProgressInfoItem>,
101
+ size: ProgressInfoSize,
102
+ useNumber: Boolean,
103
+ align: ProgressInfoAlign,
104
+ showTitle: Boolean,
105
+ showDescription: Boolean,
106
+ customIcon: String?,
107
+ modifier: Modifier = Modifier,
108
+ ) {
109
+ Row(
110
+ modifier = modifier
111
+ .fillMaxWidth()
112
+ .conditional(IsShowBaseLineDebug) { border(1.dp, Colors.blue_03) },
113
+ verticalAlignment = Alignment.Top,
114
+ ) {
115
+ steps.forEachIndexed { index, item ->
116
+ val isFirst = index == 0
117
+ val isLast = index == steps.lastIndex
118
+
119
+ val columnAlign: Alignment.Horizontal = when (align) {
120
+ ProgressInfoAlign.Left -> Alignment.Start
121
+ ProgressInfoAlign.Right -> Alignment.End
122
+ ProgressInfoAlign.Stretch -> when {
123
+ isFirst -> Alignment.Start
124
+ isLast -> Alignment.End
125
+ else -> Alignment.CenterHorizontally
126
+ }
127
+ ProgressInfoAlign.Center -> Alignment.CenterHorizontally
128
+ }
129
+
130
+ val textAlign: TextAlign = when (align) {
131
+ ProgressInfoAlign.Left -> TextAlign.Left
132
+ ProgressInfoAlign.Right -> TextAlign.Right
133
+ ProgressInfoAlign.Stretch -> when {
134
+ isFirst -> TextAlign.Left
135
+ isLast -> TextAlign.Right
136
+ else -> TextAlign.Center
137
+ }
138
+ ProgressInfoAlign.Center -> TextAlign.Center
139
+ }
140
+
141
+ // In RN: non-center/stretch steps that are not last get a right margin
142
+ val endPadding = if (!isLast &&
143
+ align != ProgressInfoAlign.Center &&
144
+ align != ProgressInfoAlign.Stretch
145
+ ) Spacing.XS else 0.dp
146
+
147
+ // Left connector hidden when align=left or first item of stretch
148
+ val hideLineLeft = align == ProgressInfoAlign.Left ||
149
+ (align == ProgressInfoAlign.Stretch && isFirst)
150
+ // Right connector hidden when align=right or last item of stretch
151
+ val hideLineRight = align == ProgressInfoAlign.Right ||
152
+ (align == ProgressInfoAlign.Stretch && isLast)
153
+
154
+ Column(
155
+ modifier = Modifier
156
+ .weight(1f)
157
+ .padding(end = endPadding),
158
+ horizontalAlignment = columnAlign,
159
+ ) {
160
+ // Icon row with connector lines
161
+ Row(
162
+ modifier = Modifier.fillMaxWidth(),
163
+ verticalAlignment = Alignment.CenterVertically,
164
+ ) {
165
+ if (!hideLineLeft) {
166
+ ProgressInfoHorizontalLine(modifier = Modifier.weight(1f))
167
+ }
168
+ ProgressInfoStepIcon(
169
+ index = index,
170
+ size = size,
171
+ useNumber = useNumber,
172
+ customIcon = customIcon,
173
+ modifier = Modifier.padding(vertical = Spacing.XS),
174
+ )
175
+ if (!hideLineRight) {
176
+ ProgressInfoHorizontalLine(modifier = Modifier.weight(1f))
177
+ }
178
+ }
179
+
180
+ if (showTitle && item.title.isNotEmpty()) {
181
+ Text(
182
+ text = item.title,
183
+ style = Typography.headerXsSemibold,
184
+ textAlign = textAlign,
185
+ modifier = Modifier
186
+ .fillMaxWidth()
187
+ .padding(bottom = Spacing.XS),
188
+ )
189
+ }
190
+
191
+ val desc = item.description
192
+ if (showDescription && !desc.isNullOrEmpty()) {
193
+ Text(
194
+ text = desc,
195
+ style = Typography.descriptionDefaultRegular,
196
+ color = Colors.black_12,
197
+ textAlign = textAlign,
198
+ modifier = Modifier.fillMaxWidth(),
199
+ )
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+
206
+ // ─── Vertical variant ─────────────────────────────────────────────────────────
207
+
208
+ @Composable
209
+ private fun ProgressInfoVertical(
210
+ steps: List<ProgressInfoItem>,
211
+ size: ProgressInfoSize,
212
+ useNumber: Boolean,
213
+ showTitle: Boolean,
214
+ showDescription: Boolean,
215
+ customIcon: String?,
216
+ modifier: Modifier = Modifier,
217
+ ) {
218
+ val theme = AppTheme.current
219
+ // Mirrors RN: theme.colors.primary + "33" = 20 % alpha
220
+ val lineColor = remember(theme) { theme.colors.primary.copy(alpha = 0.2f) }
221
+
222
+ Column(
223
+ modifier = modifier
224
+ .fillMaxWidth()
225
+ .conditional(IsShowBaseLineDebug) { border(1.dp, Colors.blue_03) },
226
+ ) {
227
+ steps.forEachIndexed { index, item ->
228
+ val isLast = index == steps.lastIndex
229
+
230
+ Row(modifier = Modifier.fillMaxWidth()) {
231
+ // Left column: icon + vertical connector
232
+ Column(
233
+ horizontalAlignment = Alignment.CenterHorizontally,
234
+ modifier = Modifier.padding(end = Spacing.M),
235
+ ) {
236
+ ProgressInfoStepIcon(
237
+ index = index,
238
+ size = size,
239
+ useNumber = useNumber,
240
+ customIcon = customIcon,
241
+ )
242
+ if (!isLast) {
243
+ // width=2, weight fills the remaining row height (flex=1 in RN)
244
+ Spacer(
245
+ modifier = Modifier
246
+ .width(2.dp)
247
+ .weight(1f)
248
+ .background(lineColor),
249
+ )
250
+ }
251
+ }
252
+
253
+ // Right column: title + description
254
+ Column(
255
+ modifier = Modifier
256
+ .weight(1f)
257
+ .padding(
258
+ end = Spacing.S,
259
+ bottom = if (isLast) 0.dp else Spacing.S,
260
+ ),
261
+ ) {
262
+ if (showTitle && item.title.isNotEmpty()) {
263
+ Text(
264
+ text = item.title,
265
+ style = Typography.headerXsSemibold,
266
+ maxLines = 2,
267
+ modifier = Modifier
268
+ .fillMaxWidth()
269
+ .padding(end = Spacing.S),
270
+ )
271
+ }
272
+
273
+ val desc = item.description
274
+ if (showDescription && !desc.isNullOrEmpty()) {
275
+ Text(
276
+ text = desc,
277
+ style = Typography.descriptionDefaultRegular,
278
+ color = Colors.black_12,
279
+ )
280
+ }
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+
287
+ // ─── Step icon ────────────────────────────────────────────────────────────────
288
+
289
+ @Composable
290
+ private fun ProgressInfoStepIcon(
291
+ index: Int,
292
+ size: ProgressInfoSize,
293
+ useNumber: Boolean,
294
+ customIcon: String?,
295
+ modifier: Modifier = Modifier,
296
+ ) {
297
+ // Large = 24 dp (RN default), Small = 16 dp (RN scaled via useScaleSize(16))
298
+ val containerSize = scaleSize(if (size == ProgressInfoSize.Small) 16f else 24f).dp
299
+ // Inner content sizes mirror RN: dot 8/6 dp, icon 16/12 dp
300
+ val dotSize = scaleSize(if (size == ProgressInfoSize.Small) 6f else 8f).dp
301
+ val iconSize = scaleSize(if (size == ProgressInfoSize.Small) 12f else 16f).dp
302
+
303
+ Box(
304
+ contentAlignment = Alignment.Center,
305
+ modifier = modifier
306
+ .size(containerSize)
307
+ .clip(CircleShape)
308
+ .background(Colors.pink_08)
309
+ .border(width = 2.dp, color = Colors.pink_08, shape = CircleShape)
310
+ .conditional(IsShowBaseLineDebug) { border(1.dp, Colors.blue_03) },
311
+ ) {
312
+ when {
313
+ useNumber -> {
314
+ Text(
315
+ text = (index + 1).toString(),
316
+ style = Typography.headerXsSemibold,
317
+ color = Colors.pink_MoMo_Branding,
318
+ textAlign = TextAlign.Center,
319
+ )
320
+ }
321
+ !customIcon.isNullOrEmpty() -> {
322
+ Icon(
323
+ source = customIcon,
324
+ size = iconSize,
325
+ color = Colors.pink_MoMo_Branding,
326
+ )
327
+ }
328
+ else -> {
329
+ // Default: small filled dot in brand pink (mirrors RN styles.currIcon)
330
+ Box(
331
+ modifier = Modifier
332
+ .size(dotSize)
333
+ .clip(CircleShape)
334
+ .background(Colors.pink_MoMo_Branding),
335
+ )
336
+ }
337
+ }
338
+ }
339
+ }
340
+
341
+ // ─── Horizontal connector line ────────────────────────────────────────────────
342
+
343
+ @Composable
344
+ private fun ProgressInfoHorizontalLine(modifier: Modifier = Modifier) {
345
+ Box(
346
+ modifier = modifier
347
+ .height(2.dp)
348
+ .background(Colors.pink_08),
349
+ )
350
+ }
@@ -0,0 +1,87 @@
1
+ package vn.momo.kits.components
2
+
3
+ import androidx.compose.foundation.border
4
+ import androidx.compose.foundation.layout.Arrangement
5
+ import androidx.compose.foundation.layout.Row
6
+ import androidx.compose.runtime.Composable
7
+ import androidx.compose.runtime.Immutable
8
+ import androidx.compose.runtime.remember
9
+ import androidx.compose.ui.Alignment
10
+ import androidx.compose.ui.Modifier
11
+ import androidx.compose.ui.unit.dp
12
+ import vn.momo.kits.application.IsShowBaseLineDebug
13
+ import vn.momo.kits.const.Colors
14
+ import vn.momo.kits.const.scaleSize
15
+ import vn.momo.kits.modifier.activeOpacityClickable
16
+ import vn.momo.kits.modifier.conditional
17
+
18
+ @Composable
19
+ fun Rating(
20
+ modifier: Modifier = Modifier,
21
+ numOfStars: Int,
22
+ rating: Float,
23
+ onRatingChange: ((Int) -> Unit)? = null,
24
+ size: RatingSize = RatingSize.LARGE,
25
+ ) {
26
+ val iconSize = remember(size) {
27
+ when (size) {
28
+ RatingSize.SMALL -> RatingDefaults.Small.iconSize
29
+ RatingSize.MEDIUM -> RatingDefaults.Medium.iconSize
30
+ RatingSize.LARGE -> RatingDefaults.Large.iconSize
31
+ }
32
+ }
33
+
34
+ Row(
35
+ modifier = modifier
36
+ .conditional(IsShowBaseLineDebug) {
37
+ border(1.dp, Colors.blue_03)
38
+ },
39
+ verticalAlignment = Alignment.CenterVertically,
40
+ horizontalArrangement = Arrangement.spacedBy(2.dp)
41
+ ) {
42
+ for (index in 0 until numOfStars) {
43
+ val starIcon = remember(rating, index) {
44
+ when {
45
+ index < rating.toInt() -> "reaction_star_full"
46
+ index == rating.toInt() && rating % 1 != 0f -> "reaction_star_half"
47
+ else -> "reaction_star_non"
48
+ }
49
+ }
50
+ val starColor = remember(rating, index) {
51
+ when {
52
+ index < rating.toInt() -> Colors.yellow_03
53
+ index == rating.toInt() && rating % 1 != 0f -> Colors.yellow_03
54
+ else -> Colors.black_07
55
+ }
56
+ }
57
+
58
+ val starModifier = if (onRatingChange != null) {
59
+ Modifier.activeOpacityClickable {
60
+ onRatingChange(index + 1)
61
+ }
62
+ } else {
63
+ Modifier
64
+ }
65
+
66
+ Icon(
67
+ source = starIcon,
68
+ size = scaleSize(iconSize).dp,
69
+ color = starColor,
70
+ modifier = starModifier,
71
+ )
72
+ }
73
+ }
74
+ }
75
+
76
+ enum class RatingSize { SMALL, MEDIUM, LARGE }
77
+
78
+ object RatingDefaults {
79
+ @Immutable
80
+ data class Dimensions(
81
+ val iconSize: Float,
82
+ )
83
+
84
+ val Small = Dimensions(iconSize = 16f)
85
+ val Medium = Dimensions(iconSize = 20f)
86
+ val Large = Dimensions(iconSize = 24f)
87
+ }