@momo-kits/native-kits 0.157.5 → 0.158.1-beta.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 (246) hide show
  1. package/.claude/settings.local.json +11 -0
  2. package/.claude/skills/design-system/SKILL.md +88 -0
  3. package/.claude/skills/design-system/references/components/avatar.md +134 -0
  4. package/.claude/skills/design-system/references/components/badge.md +127 -0
  5. package/.claude/skills/design-system/references/components/bottom-tab.md +177 -0
  6. package/.claude/skills/design-system/references/components/bottomsheet.md +170 -0
  7. package/.claude/skills/design-system/references/components/button.md +206 -0
  8. package/.claude/skills/design-system/references/components/carousel.md +117 -0
  9. package/.claude/skills/design-system/references/components/checkbox.md +98 -0
  10. package/.claude/skills/design-system/references/components/chip.md +146 -0
  11. package/.claude/skills/design-system/references/components/collapse.md +120 -0
  12. package/.claude/skills/design-system/references/components/date-picker.md +119 -0
  13. package/.claude/skills/design-system/references/components/divider.md +84 -0
  14. package/.claude/skills/design-system/references/components/icon.md +130 -0
  15. package/.claude/skills/design-system/references/components/image.md +81 -0
  16. package/.claude/skills/design-system/references/components/information.md +107 -0
  17. package/.claude/skills/design-system/references/components/input-dropdown.md +138 -0
  18. package/.claude/skills/design-system/references/components/input-money.md +157 -0
  19. package/.claude/skills/design-system/references/components/input-otp.md +132 -0
  20. package/.claude/skills/design-system/references/components/input-phone-number.md +140 -0
  21. package/.claude/skills/design-system/references/components/input-search.md +124 -0
  22. package/.claude/skills/design-system/references/components/input-text-area.md +133 -0
  23. package/.claude/skills/design-system/references/components/input.md +152 -0
  24. package/.claude/skills/design-system/references/components/loader.md +87 -0
  25. package/.claude/skills/design-system/references/components/pagination.md +105 -0
  26. package/.claude/skills/design-system/references/components/popup-notify.md +128 -0
  27. package/.claude/skills/design-system/references/components/progress-info.md +114 -0
  28. package/.claude/skills/design-system/references/components/radio.md +86 -0
  29. package/.claude/skills/design-system/references/components/rating.md +126 -0
  30. package/.claude/skills/design-system/references/components/skeleton.md +120 -0
  31. package/.claude/skills/design-system/references/components/slider.md +141 -0
  32. package/.claude/skills/design-system/references/components/snackbar.md +97 -0
  33. package/.claude/skills/design-system/references/components/stepper.md +100 -0
  34. package/.claude/skills/design-system/references/components/steps.md +91 -0
  35. package/.claude/skills/design-system/references/components/suggest-action.md +95 -0
  36. package/.claude/skills/design-system/references/components/swipe.md +121 -0
  37. package/.claude/skills/design-system/references/components/switch.md +98 -0
  38. package/.claude/skills/design-system/references/components/tab-view.md +120 -0
  39. package/.claude/skills/design-system/references/components/tag.md +118 -0
  40. package/.claude/skills/design-system/references/components/text.md +151 -0
  41. package/.claude/skills/design-system/references/components/toast.md +99 -0
  42. package/.claude/skills/design-system/references/components/tooltip.md +138 -0
  43. package/.claude/skills/design-system/references/components/top-nav-miniapp.md +94 -0
  44. package/.claude/skills/design-system/references/components/top-nav.md +226 -0
  45. package/.claude/skills/design-system/references/components/uploader.md +115 -0
  46. package/.claude/skills/design-system/references/navigation/bottom-tab.md +131 -0
  47. package/.claude/skills/design-system/references/navigation/bottomsheet.md +161 -0
  48. package/.claude/skills/design-system/references/navigation/modal.md +133 -0
  49. package/.claude/skills/design-system/references/navigation/navigation-options.md +225 -0
  50. package/.claude/skills/design-system/references/navigation/navigator.md +111 -0
  51. package/.claude/skills/design-system/references/navigation/setup.md +134 -0
  52. package/.claude/skills/design-system/references/navigation/stack.md +128 -0
  53. package/.claude/skills/design-system/references/spec-convention.md +80 -0
  54. package/.claude/skills/design-system/references/tokens/colors.md +131 -0
  55. package/.claude/skills/design-system/references/tokens/spacing-radius.md +144 -0
  56. package/.claude/skills/design-system/references/tokens/theme.md +125 -0
  57. package/.claude/skills/design-system/references/tokens/typography.md +135 -0
  58. package/.claude/skills/design-system-kits/SKILL.md +102 -0
  59. package/.claude/skills/design-system-kits/references/code-convention.md +118 -0
  60. package/.claude/skills/design-system-kits/references/components/avatar.md +45 -0
  61. package/.claude/skills/design-system-kits/references/components/badge.md +27 -0
  62. package/.claude/skills/design-system-kits/references/components/button.md +65 -0
  63. package/.claude/skills/design-system-kits/references/components/carousel.md +51 -0
  64. package/.claude/skills/design-system-kits/references/components/checkbox.md +39 -0
  65. package/.claude/skills/design-system-kits/references/components/chip.md +54 -0
  66. package/.claude/skills/design-system-kits/references/components/collapse.md +63 -0
  67. package/.claude/skills/design-system-kits/references/components/date-picker.md +36 -0
  68. package/.claude/skills/design-system-kits/references/components/divider.md +21 -0
  69. package/.claude/skills/design-system-kits/references/components/icon.md +382 -0
  70. package/.claude/skills/design-system-kits/references/components/image.md +62 -0
  71. package/.claude/skills/design-system-kits/references/components/information.md +61 -0
  72. package/.claude/skills/design-system-kits/references/components/input-dropdown.md +92 -0
  73. package/.claude/skills/design-system-kits/references/components/input-money.md +128 -0
  74. package/.claude/skills/design-system-kits/references/components/input-otp.md +85 -0
  75. package/.claude/skills/design-system-kits/references/components/input-phone-number.md +96 -0
  76. package/.claude/skills/design-system-kits/references/components/input-search.md +127 -0
  77. package/.claude/skills/design-system-kits/references/components/input-text-area.md +100 -0
  78. package/.claude/skills/design-system-kits/references/components/input.md +126 -0
  79. package/.claude/skills/design-system-kits/references/components/loader.md +41 -0
  80. package/.claude/skills/design-system-kits/references/components/pagination.md +47 -0
  81. package/.claude/skills/design-system-kits/references/components/popup-notify.md +69 -0
  82. package/.claude/skills/design-system-kits/references/components/popup-promotion.md +35 -0
  83. package/.claude/skills/design-system-kits/references/components/progress-info.md +55 -0
  84. package/.claude/skills/design-system-kits/references/components/radio.md +42 -0
  85. package/.claude/skills/design-system-kits/references/components/rating.md +36 -0
  86. package/.claude/skills/design-system-kits/references/components/skeleton.md +25 -0
  87. package/.claude/skills/design-system-kits/references/components/slider.md +53 -0
  88. package/.claude/skills/design-system-kits/references/components/snackbar.md +52 -0
  89. package/.claude/skills/design-system-kits/references/components/stepper.md +46 -0
  90. package/.claude/skills/design-system-kits/references/components/steps.md +57 -0
  91. package/.claude/skills/design-system-kits/references/components/suggest-action.md +44 -0
  92. package/.claude/skills/design-system-kits/references/components/swipe.md +44 -0
  93. package/.claude/skills/design-system-kits/references/components/switch.md +43 -0
  94. package/.claude/skills/design-system-kits/references/components/tab-view.md +56 -0
  95. package/.claude/skills/design-system-kits/references/components/tag.md +50 -0
  96. package/.claude/skills/design-system-kits/references/components/text.md +56 -0
  97. package/.claude/skills/design-system-kits/references/components/toast.md +51 -0
  98. package/.claude/skills/design-system-kits/references/components/tooltip.md +95 -0
  99. package/.claude/skills/design-system-kits/references/components/uploader.md +48 -0
  100. package/.claude/skills/design-system-kits/references/design-spec-structure.md +356 -0
  101. package/.claude/skills/design-system-kits/references/design-spec-to-code.md +596 -0
  102. package/.claude/skills/design-system-kits/references/navigation/bottom-tab.md +155 -0
  103. package/.claude/skills/design-system-kits/references/navigation/bottomsheet.md +94 -0
  104. package/.claude/skills/design-system-kits/references/navigation/modal.md +125 -0
  105. package/.claude/skills/design-system-kits/references/navigation/navigation-options.md +430 -0
  106. package/.claude/skills/design-system-kits/references/navigation/navigator.md +177 -0
  107. package/.claude/skills/design-system-kits/references/navigation/setup.md +94 -0
  108. package/.claude/skills/design-system-kits/references/navigation/stack.md +152 -0
  109. package/.claude/skills/design-system-kits/references/screen-layout-rule.md +125 -0
  110. package/.claude/skills/design-system-kits/references/tokens/colors.md +183 -0
  111. package/.claude/skills/design-system-kits/references/tokens/spacing-radius.md +45 -0
  112. package/.claude/skills/design-system-kits/references/tokens/theme.md +97 -0
  113. package/.claude/skills/design-system-kits/references/tokens/typography.md +105 -0
  114. package/.claude/skills/vibe-design/SKILL.md +306 -0
  115. package/build.gradle.kts +11 -0
  116. package/compose/build.gradle.kts +180 -0
  117. package/compose/build.gradle.kts.backup +180 -0
  118. package/compose/compose.podspec +54 -0
  119. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +117 -0
  120. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  121. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  122. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  123. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  124. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  125. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  126. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  127. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  128. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  129. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  130. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  131. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  132. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  133. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  134. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  135. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
  136. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  137. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  138. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  139. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  140. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  141. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  142. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  143. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  144. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
  145. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  146. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  147. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  148. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  149. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
  150. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  151. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  152. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
  153. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
  154. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  155. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  156. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
  157. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  158. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  159. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  160. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  161. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
  162. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
  163. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
  164. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
  165. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
  166. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
  167. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
  168. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
  169. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
  170. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
  171. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
  172. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  173. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  174. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  175. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  176. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  177. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  178. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  179. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +338 -0
  180. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  181. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  182. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  183. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  184. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +348 -0
  185. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  186. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  187. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  188. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  189. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  190. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +531 -0
  191. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  192. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  193. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  194. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
  195. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  196. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  197. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  198. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  199. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  200. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  201. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  202. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  203. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +16 -0
  204. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +188 -0
  205. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  206. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  207. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  208. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  209. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +50 -0
  210. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  211. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  212. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  213. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  214. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  215. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
  216. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
  217. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
  218. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +161 -0
  219. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
  220. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
  221. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  222. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
  223. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  224. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  225. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
  226. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  227. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  228. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
  229. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  230. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  231. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +46 -0
  232. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  233. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  234. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  235. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  236. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +161 -0
  237. package/gradle/libs.versions.toml +57 -0
  238. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  239. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  240. package/gradle.properties +26 -0
  241. package/gradlew +252 -0
  242. package/gradlew.bat +94 -0
  243. package/ios/Popup/PopupPromotion.swift +2 -2
  244. package/local.properties +8 -0
  245. package/package.json +1 -1
  246. package/settings.gradle.kts +52 -0
@@ -0,0 +1,382 @@
1
+ # Icon
2
+
3
+ ## React Native
4
+
5
+ ```tsx
6
+ import { Icon, IconSources, IconBankSources } from '@momo-kits/foundation';
7
+
8
+ <Icon
9
+ source="ic_back" // icon identifier string (from IconSources) or remote URL
10
+ size={24} // icon size in pixels (default: 24)
11
+ color={Colors.black_17} // tint color (default: theme text color, null = no tint)
12
+ style={{}} // optional custom styles
13
+ accessibilityLabel="settings" // optional accessibility label
14
+ />
15
+ ```
16
+
17
+ ## Compose
18
+
19
+ ```kotlin
20
+ import vn.momo.kits.components.Icon
21
+
22
+ Icon(
23
+ source = "icon_name", // icon identifier string (from Icons) or remote URL
24
+ size = 24.dp, // icon size in dp (default: 24.dp)
25
+ color = Colors.black_17, // tint color (default: theme text color, null = no tint)
26
+ modifier = Modifier, // optional modifier
27
+ )
28
+ ```
29
+
30
+ ## Key Differences
31
+
32
+ | Feature | React Native | Compose |
33
+ |---------|-------------|---------|
34
+ | Source | String (identifier or URL) | String (identifier or URL) |
35
+ | Size | number (pixels) | Dp |
36
+ | Style | `StyleProp<ImageStyle>` via `style` | `Modifier` via `modifier` |
37
+
38
+ ## IconSources (1350 icons)
39
+
40
+ All icons are remote PNG images hosted on `img.mservice.com.vn` or `static.momocdn.net`. The `source` prop accepts either an icon key string or a remote HTTP URL.
41
+
42
+ ### Naming Convention
43
+
44
+ Icons follow the pattern: `[size_]category_name`
45
+
46
+ - **No size prefix** = default 24px asset (legacy naming)
47
+ - **Size prefix**: `16_`, `24_`, `32_`, `48_` = specific size variant
48
+
49
+ ### Categories
50
+
51
+ #### Arrow (`arrow_*`)
52
+ Navigation arrows, chevrons, rotation, undo/redo.
53
+ - `arrow_arrow-back`, `arrow_arrow-down`, `arrow_arrow-next`, `arrow_arrow-top`
54
+ - `arrow_chevron_down`, `arrow_chevron_left`, `arrow_chevron_right`, `arrow_chevron_up`
55
+ - `arrow_chevron_down_small`, `arrow_chevron_left_small`, `arrow_chevron_right_small`, `arrow_chevron_up_small`
56
+ - `arrow_chevrons_double_down`, `arrow_chevrons_double_left`, `arrow_chevrons_double_right`, `arrow_chevrons_double_up`
57
+ - `arrow_circle_chevron_bottom`, `arrow_circle_chevron_left`, `arrow_circle_chevron_right`, `arrow_circle_chevron_top`
58
+ - `arrow_arrow_bold_forward`, `arrow_arrow_bold_forward_all`, `arrow_arrow_bold_redo`, `arrow_arrow_bold_reply`, `arrow_arrow_bold_reply_all`, `arrow_arrow_bold_undo`
59
+ - `arrow_arrow_forward`, `arrow_arrow_redo`, `arrow_arrow_reply`, `arrow_arrow_undo`
60
+ - `arrow_diagonals`, `arrow_diagonals_bltr`, `arrow_diagonals_tlbr`, `arrow_hv`
61
+ - `arrow_redo`, `arrow_undo`, `arrow_refresh_ccw`, `arrow_refresh_ccw_alert`, `arrow_rotate_ccw`, `arrow_rotate_cw`
62
+
63
+ #### Basic (`basic_*`)
64
+ Common UI actions and user-related icons.
65
+ - `basic_account`, `basic_person`, `basic_person_add`, `basic_person_block`, `basic_person_check`, `basic_person_group`, `basic_person_minus`, `basic_person_tag`
66
+ - `basic_home`, `basic_setting`, `basic_power`, `basic_options`, `basic_filter`, `basic_sorting`, `basic_sort_a_z`
67
+ - `basic_copy`, `basic_delete`, `basic_duplicate`, `basic_flag`
68
+ - `basic_chart`, `basic_chart_down`, `basic_chart_up`
69
+ - `basic_ticket`, `basic_ticket_full`, `basic_ticket_star`, `basic_ticket_star_full`
70
+ - `basic_name_tag`, `basic_Moon`, `basic_sun`, `basic_screen_rotation`, `basic_screen_rotation_lock`
71
+ - `basic_pubic`, `basic_pubic_explore`, `basic_pubic_off`, `basic_suport_24`, `basic_support_24h`
72
+
73
+ #### Chat (`chat_*`)
74
+ Messaging and conversation icons.
75
+ - `chat_comment`, `chat_comment_alert`, `chat_comment_checked`, `chat_comment_delete`, `chat_comment_empty`, `chat_comment_minus`, `chat_comment_plus`
76
+ - `chat_q_and_a`, `chat_sent`, `chat_sticker`, `chat_bot`, `chat_back_space`
77
+
78
+ #### Connection (`connection_*`)
79
+ Connectivity and sharing icons.
80
+ - `connection_wifi`, `connection_wifi_no`, `connection_bluetooth`, `connection_bluetooth_no`
81
+ - `connection_link`, `connection_link_disable`, `connection_share`, `connection_share_2`
82
+ - `connection_airplay`, `connection_broadcast`, `connection_broadcasting`, `connection_cast`, `connection_mail`
83
+
84
+ #### File (`file_*`)
85
+ Document and file management icons.
86
+ - `file`, `file_text`, `file_code`, `file_draft`, `file_scan`, `file_search`
87
+ - `file_edit`, `file_edit_in_box`, `file_file_create`, `file_delete`, `file_download`, `file_upload`
88
+ - `file_checked`, `file_minus`, `file_plus`, `file_pin`, `file_unpin`
89
+ - `file_folder`, `file_folder_checked`, `file_folder_cloud`, `file_folder_create`, `file_folder_delete`, `file_folder_forward`, `file_folder_minus`, `file_folder_music`, `file_folder_opened`, `file_folder_photo`, `file_folder_plus`, `file_folder_zip`
90
+ - `file_clipboard`, `file_clipboard_checked`, `file_clipboard_delete`, `file_clipboard_minus`, `file_clipboard_note`, `file_clipboard_plus`
91
+ - `file_cloud`, `file_cloud_checked`, `file_cloud_connect`, `file_cloud_download`, `file_cloud_no`, `file_cloud_upload`
92
+ - `file_briefcase`, `file_database`, `file_mail`, `file_paperclip`, `file_paperclip_no`, `file_shredder`
93
+
94
+ #### Finance (`finance_*`)
95
+ Payment and financial icons.
96
+ - `finance_wallet`, `finance_safe`, `finance_atm`, `finance_credit_card`
97
+ - `finance_card_1`, `finance_card_2`, `finance_card_jcb`, `finance_card_master`, `finance_card_visa`
98
+ - `finance_jcb`, `finance_master`, `finance_visa`, `finance_paypass`
99
+ - `finance_saving`, `finance_cash`
100
+
101
+ #### Gadgets (`gadgets_*`)
102
+ Device and hardware icons.
103
+ - `gadgets_devices`, `gadgets_mobile`, `gadgets_iphone`, `gadgets_ipad`, `gadgets_laptop`, `gadgets_monitor`
104
+ - `gadgets_keyboard`, `gadgets_mouse`, `gadgets_print`, `gadgets_server`
105
+ - `gadgets_memory_card`, `gadgets_soft_disk`, `gadgets_usb`
106
+
107
+ #### Logistics (`logicstics_*`)
108
+ Delivery and shipping icons.
109
+ - `logicstics_delivery`, `logicstics_delivery_fast`, `logicstics_delivey_bike`
110
+ - `logicstics_package`, `logicstics_package_cancel`, `logicstics_package_done`, `logicstics_package_list`, `logicstics_package_preparing`
111
+ - `logicstics_trolley_package`
112
+
113
+ #### Maps (`maps_*`)
114
+ Location and navigation icons.
115
+ - `maps_location`, `maps_location_no`, `maps_pin`, `maps_pin_add`, `maps_pin_edit`, `maps_pin_no`, `maps_pin_question`, `maps_pin_round`, `maps_pin_start`
116
+ - `maps_map`, `maps_map_pin_location`, `maps_globe`, `maps_compass`, `maps_radar`, `maps_route`
117
+ - `maps_direction`, `maps_direction_45`, `maps_360`, `maps_panorama`
118
+ - `maps_zoom_in`, `maps_zoom_out`
119
+
120
+ #### Media (`media_*`)
121
+ Camera, audio, video, and player controls.
122
+ - `media`, `media_add`, `media_search`, `media_collection`
123
+ - `media_camera`, `media_camera_add`, `media_camera_linked`, `media_camera_switch`
124
+ - `media_video`, `media_record`, `media_slideshow`, `media_timelapse`
125
+ - `media_flash_auto`, `media_flash_off`, `media_flash_on`, `media_flashlight_on`, `media_flashlight_off`, `media_flashlight_disable`
126
+ - `media_player_pause_circle`, `media_player_play_circle`, `media_player_stop_circle`
127
+ - `media_volume`, `media_volume_high`, `media_volume_low`, `media_volume_no`, `media_volume_off`
128
+ - `media_repeat`, `media_shuffle`, `media_rotate_left`, `media_rotate_right`
129
+ - `media_timer`, `media_timer_3s`, `media_timer_10s`, `media_timer_off`, `media_shutter_speed`
130
+ - `media_cd`, `media_color_picker`, `media_control_point`, `media_focus`, `media_leak_add`
131
+ - `media_color`, `media_flip`, `media_crop`, `media_nope`
132
+
133
+ #### Navigation (`navigation_*`)
134
+ App navigation and control icons.
135
+ - `navigation_close`, `navigation_close_circle`, `navigation_close_circle_full`, `navigation_close_circle_full_02`, `navigation_close_circle_full_2`
136
+ - `navigation_plus`, `navigation_plus_circle`, `navigation_plus_circle_full`
137
+ - `navigation_minus`, `navigation_minus_circle`, `navigation_minus_circle_full`
138
+ - `navigation_menu`, `navigation_more_horiz`, `navigation_more_vert`
139
+ - `navigation_search`, `navigation_search_add`, `navigation_search_minus`
140
+ - `navigation_app`, `navigation_cash_in`, `navigation_qrcode`, `navigation_scan`
141
+ - `navigation_full_screen`, `navigation_full_screen_exit`, `navigation_log_out`
142
+ - `navigation_unfold_less`, `navigation_unfold_more`
143
+ - `navigation_remove_from_home`, `navigation_add_to_home`
144
+
145
+ #### Notifications (`notifications_*`)
146
+ Alerts, status, and notification icons.
147
+ - `notifications_bell`, `notifications_bell_add`, `notifications_bell_alert`, `notifications_bell_checked`, `notifications_bell_full`, `notifications_bell_minus`, `notifications_bell_no`
148
+ - `notifications_check`, `notifications_check_circle`, `notifications_check_circle_full`, `notifications_check_double`
149
+ - `notifications_alert_octagon`, `notifications_alert_triangle`, `notifications_app_notification`
150
+ - `notifications_circle_alert`, `notifications_circle_question`, `notifications_info`
151
+ - `notifications_minus_octagon`, `notifications_x_octagon`
152
+ - `notifications_guide`
153
+
154
+ #### Phone Call (`phone_call_*`)
155
+ Calling and telephony icons.
156
+ - `phone_call`, `phone_call_add`, `phone_call_decline`, `phone_call_end`
157
+ - `phone_call_incoming`, `phone_call_outcoming`, `phone_call_missed`, `phone_call_forwarded`, `phone_call_recieved`
158
+ - `phone_call_hold`, `phone_call_muted`, `phone_call_no`, `phone_call_phone_calling`
159
+ - `phone_call_mic_off`, `phone_call_mic_on`, `phone_call_voicemail`
160
+ - `phone_call_hash`, `phone_call_numbers`
161
+
162
+ #### Reaction (`reaction_*`)
163
+ Emoji, likes, and rating icons.
164
+ - `reaction_emoji_happy`, `reaction_emoji_sad`, `reaction_emoji_satisfy`
165
+ - `reaction_heart`, `reaction_heart_full`, `reaction_heart_disable`
166
+ - `reaction_like`, `reaction_like_dislike`
167
+ - `reaction_star_full`, `reaction_star_half`, `reaction_star_non`
168
+
169
+ #### Security (`security_*`)
170
+ Authentication and security icons.
171
+ - `security_lock`, `security_lock_no`, `security_unlock`
172
+ - `security_eye_open`, `security_eye_off`, `security_fingerprint`, `security_verifiedface_id`
173
+ - `security_key`, `security_key_no`, `security_password`
174
+ - `security_shield`, `security_shield_admin`, `security_shield_check`, `security_shield_disable`
175
+
176
+ #### Shopping (`shopping_*`)
177
+ E-commerce and retail icons.
178
+ - `shopping_bag`, `shopping_bag_shopping`, `shopping_cart`, `shopping_store`
179
+ - `shopping_coupon`, `shopping_coupon_star`, `shopping_tag`, `shopping_tag_love`
180
+ - `shopping_gift_card`, `shopping_fast_food`, `shopping_restaurant`
181
+
182
+ #### Time (`time_*`)
183
+ Clock, calendar, and scheduling icons.
184
+ - `time_clock`, `time_clock_reset`, `time_watch`, `time_stop_watch`, `time_stop_watch_disable`
185
+ - `time_alarm`, `time_alarm_add`, `time_alarm_check`, `time_alarm_remove`
186
+ - `time_calendar`, `time_calendar_add`, `time_calendar_checked`, `time_calendar_remove`, `time_calendar_x`
187
+ - `time_note`
188
+
189
+ #### Travel (`travel_*`)
190
+ Transportation, accommodation, and people icons.
191
+ - **Transport**: `travel_plane`, `travel_plane_landing`, `travel_plane_take_off`, `travel_car`, `travel_bus`, `travel_taxi`, `travel_subway`, `travel_train_1`, `travel_train_2`, `travel_tram`, `travel_van`, `travel_bike`
192
+ - **Accommodation**: `travel_hotel`, `travel_villa`, `travel_apartment`, `travel_bed`, `travel_bed-single`, `travel_bathtub`, `travel_hottub`
193
+ - **Amenities**: `travel_kitchen`, `travel_fridge`, `travel_microwave`, `travel_coffee_maker`, `travel_iron`, `travel_laundry`, `travel_dry_clean`, `travel_cleaning_services`, `travel_parking`, `travel_gas_station`, `travel_wc`
194
+ - **People**: `travel_people_man`, `travel_people_woman`, `travel_people_women_pregnant`, `travel_people_kid`, `travel_people_baby`, `travel_people_old`, `travel_people_family`, `travel_people_college`, `travel_people_run`, `travel_people_walk`, `travel_people_wheelchair`
195
+ - **Seating**: `travel_seat_comfort`, `travel_seat_economy`, `travel_seat_extra_seat`
196
+ - **Other**: `travel_Cold`, `travel_Karaoke`, `travel_suport_service`, `travel_airconditional`
197
+
198
+ ### Special Icons
199
+
200
+ #### MoMo Main (`momomain_*`)
201
+ MoMo app tab bar and core feature icons.
202
+ - `momomain_account`, `momomain_chat`, `momomain_gift`, `momomain_history`, `momomain_momo`
203
+ - `momomain_barcode`, `momomain_barcode_s`, `momomain_scan_code`, `momomain_scan_code_s`
204
+ - `momomain_money_in`, `momomain_money_in_s`, `momomain_withdraw`, `momomain_withdraw_2`
205
+
206
+ #### Tab Bar Icons
207
+ Bottom tab active/inactive states for various features.
208
+ - `home_momo_active`, `home_momo_inactive`, `home_wallet_inactive`
209
+ - `home_friends_active`, `home_friends_inactive`
210
+ - `home_history_active`, `home_history_inactive`
211
+ - `home_promotions_active`, `home_promotions_inactive`
212
+ - `cinema_theaters_picking_active`, `cinema_theaters_picking_disable`
213
+ - `cinema_ticket_active`, `cinema_ticket_disable`, `cinema_ticket_my_active`, `cinema_ticket_my_inactive`
214
+ - `shop_online_home_active`, `shop_online_home_inactive`
215
+ - `shop_online_favorite_active`, `shop_online_favorite_inactive`
216
+ - `shop_online_order_active`, `shop_online_order_inactive`
217
+ - `shop_online_address_book_active`, `shop_online_address_book_inactive`
218
+
219
+ #### Graphics (`graphic_*`)
220
+ Illustration-style empty states and placeholders.
221
+ - `graphic_wifi_disconnect`, `graphic_time_out`, `graphic_not_found`, `graphic_no_data`, `graphic_no_location`
222
+ - `graphic_notification`, `graphic_missing`, `graphic_maintance`, `graphic_merchant`
223
+ - `graphic_ticket`, `graphic_photo`, `graphic_comment`, `graphic_avatar`
224
+ - `graphic_logo`, `graphic_file_default`, `graphic_directory`
225
+
226
+ #### Common UI Icons (`ic_*`)
227
+ Frequently used standalone icons.
228
+ - `ic_back`, `ic_back_android`, `ic_back_ios`, `ic_back_arrow`
229
+ - `ic_close_24`, `ic_close_x_24`, `ic_close_circle_full`
230
+ - `ic_check_24`, `ic_check_mini`, `ic_checked`, `ic_checkbox_checked_24`, `ic_checkbox_unchecked_24`
231
+ - `ic_warning`, `ic_warning_24`, `ic_error`, `ic_info_gray`
232
+ - `ic_plus`, `ic_minus`, `ic_arrow_next`, `ic_arrow_drop_down_24`
233
+ - `ic_eye_24`, `ic_calendar`, `ic_location_24`, `ic_navigation`
234
+ - `ic_star`, `ic_star_selected`, `ic_momo`, `ic_momo_small_bottom_left`, `ic_round_momo_tiny`
235
+ - `ic_money`, `ic_money_bag`, `ic_discount_voucher`, `ic_tag_voucher`
236
+ - `ic_camera_circle`, `ic_backspace_24`, `ic_line`
237
+ - `ic_notification_info`, `ic_cinema_poster`, `ic_momo_gift`
238
+ - `ic_transaction_history_status_fail`, `ic_transaction_history_status_success`, `ic_transaction_history_status_processing`
239
+ - `ic_success_process_white`, `ic_film_pin`, `ic_film_ticket`
240
+ - `ic_step_active`, `ic_step_coming`, `ic_support`
241
+
242
+ #### Miscellaneous
243
+ - `Phonebook`, `phonebook_outline`, `home_banner`, `request_money`
244
+ - `share`, `addFavorite`, `addShortcut`, `header_background`, `media_fail`
245
+ - `help_center`, `arrow-back`, `pin_star`, `pin_star_checked`, `navigation_more_icon`
246
+ - `file_pinned`, `basic_flaged`, `basic_user`
247
+
248
+ ### Sized Variants
249
+
250
+ Many icons have size-specific variants with prefixes: `16_`, `24_`, `32_`, `48_`.
251
+
252
+ Examples:
253
+ - `16_arrow_chevron_right` (16px), `24_arrow_chevron_right` (24px)
254
+ - `16_basic_account`, `24_basic_account`
255
+ - `16_notifications_bell`, `24_notifications_bell`, `32_notifications_bell`, `48_notifications_bell`
256
+
257
+ Available size prefixes per category:
258
+ - **16 + 24**: arrow, basic, chatting, connection, file, finance, gadgets, maps, media, navigation, phone_call, reaction, security, shopping, time, travel
259
+ - **32 + 48**: notifications, security (select icons)
260
+ - **24 only**: toggle (`24_toggle_check_box_checked`, `24_toggle_radio_selected`, `24_toggle_turn_on`, etc.)
261
+
262
+ ## IconBankSources (168 icons)
263
+
264
+ Bank and payment provider logos. Each bank has two variants:
265
+ - `{bank}_full` — Full logo with bank name
266
+ - `{bank}_icon` — Compact square icon
267
+
268
+ ```tsx
269
+ import { IconSources, IconBankSources } from '@momo-kits/foundation';
270
+
271
+ // Common usage: dot notation + .uri to get the URL string
272
+ const momoIcon = IconSources.momomain_momo.uri; // "https://img.mservice.com.vn/..."
273
+ const bankIcon = IconBankSources.bidv_icon.uri; // "https://static.momocdn.net/..."
274
+ const bankFull = IconBankSources.bidv_full.uri; // "https://static.momocdn.net/..."
275
+
276
+ // For <Icon> component, just pass the string key name directly
277
+ <Icon source="momomain_momo" size={24} />
278
+ ```
279
+
280
+ ### Available Banks
281
+
282
+ | Key prefix | Bank name |
283
+ |-----------|-----------|
284
+ | `abbank` | ABBank |
285
+ | `acb` | ACB |
286
+ | `argibank` | Agribank |
287
+ | `bac_a_bank` | Bac A Bank |
288
+ | `baoviet_bank` | BaoViet Bank |
289
+ | `bidv` | BIDV |
290
+ | `cake_by vpbank` | Cake by VPBank |
291
+ | `cimb` | CIMB |
292
+ | `donga_bank` | DongA Bank |
293
+ | `eximbank` | Eximbank |
294
+ | `hdbank` | HDBank |
295
+ | `hsbc` | HSBC |
296
+ | `ivb` | IVB |
297
+ | `kb` | KB |
298
+ | `kienlong_bank` | KienLong Bank |
299
+ | `lienviet_postbank` | LienViet PostBank |
300
+ | `mb_bank` | MB Bank |
301
+ | `msb` | MSB |
302
+ | `nam_a_bank` | Nam A Bank |
303
+ | `ncb` | NCB |
304
+ | `ocb` | OCB |
305
+ | `ocean_bank` | Ocean Bank |
306
+ | `pg_bank` | PG Bank |
307
+ | `pvcom_bank` | PVCom Bank |
308
+ | `scb` | SCB |
309
+ | `sea_bank` | SeABank |
310
+ | `shb` | SHB |
311
+ | `shinhan_bank` | Shinhan Bank |
312
+ | `techcombank` | Techcombank |
313
+ | `timo` | Timo |
314
+ | `tpbank` | TPBank |
315
+ | `vib` | VIB |
316
+ | `viet_a bank` | VietABank |
317
+ | `viet_capital bank` | Viet Capital Bank |
318
+ | `vietcombank` | Vietcombank |
319
+ | `vietinbank` | VietinBank |
320
+ | `vpbank` | VPBank |
321
+ | `gpbank` | GPBank |
322
+ | `dsb` | DSB |
323
+ | `cb` | CB |
324
+ | `bidc` | BIDC |
325
+
326
+ ### E-wallets & Payment Providers
327
+
328
+ | Key prefix | Provider |
329
+ |-----------|----------|
330
+ | `momo` | MoMo |
331
+ | `grabpay_by_moca` | GrabPay by Moca |
332
+ | `moca` | Moca |
333
+ | `shopeepay` | ShopeePay |
334
+ | `zalopay` | ZaloPay |
335
+ | `vnpay` | VNPay |
336
+ | `vnpay_money` | VNPay Money |
337
+ | `viettel_money` | Viettel Money |
338
+ | `viettel_pay` | Viettel Pay |
339
+ | `truemoney` | TrueMoney |
340
+ | `vinid` | VinID |
341
+ | `payme` | PayMe |
342
+
343
+ ### Other Financial Services
344
+
345
+ | Key prefix | Provider |
346
+ |-----------|----------|
347
+ | `napas` | NAPAS |
348
+ | `baokim` | BaoKim |
349
+ | `ecpay` | ECPay |
350
+ | `ngan_luong` | Ngan Luong |
351
+ | `nextpay` | NextPay |
352
+ | `payoo` | Payoo |
353
+ | `vtcpay` | VTCPay |
354
+ | `vimo` | ViMo |
355
+ | `apota` | Apota |
356
+
357
+ ### International Banks
358
+
359
+ | Key prefix | Bank |
360
+ |-----------|------|
361
+ | `anz` | ANZ |
362
+ | `bangkok_bank` | Bangkok Bank |
363
+ | `bank_of china` | Bank of China |
364
+ | `cathay_bank` | Cathay Bank |
365
+ | `chase_bank` | Chase Bank |
366
+ | `citibank` | Citibank |
367
+ | `commonwealth_bank` | Commonwealth Bank |
368
+ | `deutsche_bank` | Deutsche Bank |
369
+ | `hong_leong bank` | Hong Leong Bank |
370
+ | `industrial_bank of korea` | Industrial Bank of Korea |
371
+ | `keb_hana bank` | KEB Hana Bank |
372
+ | `maybank` | Maybank |
373
+ | `mega_international commercial bank` | Mega International Commercial Bank |
374
+ | `mizuho` | Mizuho |
375
+ | `public_bank` | Public Bank |
376
+ | `scotiabank` | Scotiabank |
377
+ | `smfg` | SMFG |
378
+ | `standard_chartered` | Standard Chartered |
379
+ | `tyme` | Tyme |
380
+ | `tymebank` | TymeBank |
381
+ | `ubsp` | UBSP |
382
+ | `woori_bank` | Woori Bank |
@@ -0,0 +1,62 @@
1
+ # Image
2
+
3
+ ## React Native
4
+
5
+ ```tsx
6
+ import { Image } from '@momo-kits/foundation';
7
+
8
+ <Image
9
+ source={{ uri: 'https://...' }}
10
+ style={{ width: 100, height: 100 }}
11
+ loading // show loading indicator
12
+ accessibilityLabel="profile"
13
+ />
14
+
15
+ // With children overlay (e.g., badge, gradient)
16
+ <Image source={{ uri: 'https://...' }} style={{ width: 100, height: 100 }}>
17
+ <Badge label="New" />
18
+ </Image>
19
+ ```
20
+
21
+ ## Compose
22
+
23
+ ```kotlin
24
+ import vn.momo.kits.components.Image
25
+ import vn.momo.kits.components.Options
26
+ import androidx.compose.ui.graphics.ContentScale
27
+ import androidx.compose.ui.Alignment
28
+
29
+ Image(
30
+ source = "https://...", // Any: URL string, drawable, Painter
31
+ modifier = Modifier.fillMaxWidth().aspectRatio(16f/9f),
32
+ loading = true, // show skeleton while loading; default: true
33
+ options = Options( // optional
34
+ alignment = Alignment.Center,
35
+ contentScale = ContentScale.Crop,
36
+ colorFilter = null,
37
+ alpha = 1f,
38
+ ),
39
+ )
40
+
41
+ // Painter overload (no loading/error state)
42
+ Image(source = painterResource("drawable/ic_avatar"))
43
+ ```
44
+
45
+ ### Options
46
+
47
+ | Param | Type | Default |
48
+ |-------|------|---------|
49
+ | `alignment` | `Alignment` | `Alignment.TopStart` |
50
+ | `contentScale` | `ContentScale` | `ContentScale.Crop` |
51
+ | `colorFilter` | `ColorFilter?` | `null` |
52
+ | `alpha` | `Float` | `1f` |
53
+
54
+ ## Key Differences
55
+
56
+ | Feature | React Native | Compose |
57
+ |---------|-------------|---------|
58
+ | Source | `{{ uri: 'url' }}` (object) | `Any` (string, drawable, Painter) |
59
+ | Sizing | `style={{ width, height }}` | `Modifier.width().height()` |
60
+ | Loading | `loading` prop | `loading` param |
61
+ | Children overlay | RN: yes (JSX children) | Compose: use `Box` + `Image` separately |
62
+ | Auto resize | — | Auto-appends `?size=XXS…XXL` for supported CDN domains |
@@ -0,0 +1,61 @@
1
+ # Information
2
+
3
+ ## React Native
4
+
5
+ ```tsx
6
+ import { Information } from '@momo-kits/information';
7
+
8
+ <Information
9
+ title="Note" // optional title text
10
+ description="Important info" // required description text
11
+ type="info" // 'default'|'warning'|'error'|'success' (default: 'default')
12
+ image="https://..." // optional image URL (replaces the icon)
13
+ CTA="Retry" // optional CTA button text
14
+ onPressCTA={() => {}} // CTA button pressed callback
15
+ showIcon={true} // show/hide leading icon (default: true)
16
+ showIconClose={true} // show/hide close icon (default: true)
17
+ onPressClose={() => {}} // close icon pressed callback
18
+ style={{}} // optional custom styles
19
+ accessibilityLabel="note_block" // optional accessibility label
20
+ />
21
+ ```
22
+
23
+ Package: `@momo-kits/information` (separate lib).
24
+
25
+ ## Compose
26
+
27
+ ```kotlin
28
+ import vn.momo.kits.components.Information
29
+ import vn.momo.kits.components.InformationState
30
+
31
+ Information(
32
+ modifier = Modifier, // optional modifier
33
+ title = "Note", // optional title text
34
+ description = "Important info", // description text (default: "Description")
35
+ state = InformationState.DEFAULT, // DEFAULT | WARNING | ERROR (default: DEFAULT)
36
+ image = "https://...", // optional image URL (replaces the icon)
37
+ onPressAction = {}, // CTA button pressed callback
38
+ showIcon = true, // show/hide leading icon (default: true)
39
+ action = "Retry", // optional CTA button text
40
+ showIconClose = true, // show/hide close icon (default: true)
41
+ onPressClose = {}, // close icon pressed callback
42
+ )
43
+ ```
44
+
45
+ ### TrustBanner (Compose only)
46
+
47
+ ```kotlin
48
+ import vn.momo.kits.components.TrustBanner
49
+
50
+ TrustBanner(data = trustBannerData)
51
+ ```
52
+
53
+ ## Key Differences
54
+
55
+ | Feature | React Native | Compose |
56
+ |---------|-------------|---------|
57
+ | Package | `@momo-kits/information` | `vn.momo.kits.components` |
58
+ | State type | String (`type`) | Enum (`InformationState`) |
59
+ | CTA prop | `CTA` + `onPressCTA` | `action` + `onPressAction` |
60
+ | Style/Modifier | `style` prop | `modifier` param |
61
+ | Accessibility | `accessibilityLabel` prop | Not available |
@@ -0,0 +1,92 @@
1
+ # InputDropDown Reference
2
+
3
+ Non-editable dropdown trigger input. Displays a value and opens a selection UI on press.
4
+
5
+ ## React Native
6
+
7
+ ```tsx
8
+ import { InputDropDown } from '@momo-kits/foundation';
9
+
10
+ <InputDropDown
11
+ floatingValue="Select Province"
12
+ floatingIcon="info_small"
13
+ floatingIconColor={theme.colors.text.hint}
14
+ onPressFloatingIcon={() => {}}
15
+ value={selectedProvince}
16
+ placeholder="Choose..."
17
+ size="large"
18
+ onPress={() => openProvinceSelector()}
19
+ leadingIcon="24_location"
20
+ leadingIconColor={theme.colors.text.hint}
21
+ onPressLeadingIcon={() => {}}
22
+ errorMessage=""
23
+ hintText=""
24
+ required={true}
25
+ disabled={false}
26
+ loading={false}
27
+ multiline={false}
28
+ params={{ field: 'province' }}
29
+ style={{}}
30
+ accessibilityLabel="province_selector"
31
+ />
32
+ ```
33
+
34
+ ### Props
35
+
36
+ Extends `TouchableOpacityProps` — triggers `onPress` when tapped.
37
+
38
+ | Prop | Type | Default | Description |
39
+ |------|------|---------|-------------|
40
+ | `size` | `'small' \| 'large'` | `'large'` | Input size variant |
41
+ | `value` | `string` | — | Display value |
42
+ | `placeholder` | `string` | — | Placeholder when empty |
43
+ | `multiline` | `boolean` | `false` | Allow multi-line display |
44
+ | `floatingValue` | `string` | — | Floating label text |
45
+ | `floatingIcon` | `string` | — | Icon shown beside floating label |
46
+ | `floatingIconColor` | `string` | — | Color of floating icon |
47
+ | `onPressFloatingIcon` | `() => void` | — | Press handler for floating icon |
48
+ | `leadingIcon` | `string` | — | Leading icon name |
49
+ | `leadingIconColor` | `string` | — | Leading icon color |
50
+ | `onPressLeadingIcon` | `() => void` | — | Leading icon press handler |
51
+ | `errorMessage` | `string` | — | Error message below input |
52
+ | `errorSpacing` | `boolean` | `false` | Reserve space for error |
53
+ | `hintText` | `string` | — | Hint text below input |
54
+ | `required` | `boolean` | `false` | Show required indicator |
55
+ | `disabled` | `boolean` | `false` | Disable input |
56
+ | `loading` | `boolean` | `false` | Show loading indicator |
57
+ | `params` | `any` | — | Auto tracking params |
58
+ | `style` | `ViewStyle` | — | Custom wrapper style |
59
+ | `accessibilityLabel` | `string` | — | Accessibility label |
60
+
61
+ ## Compose
62
+
63
+ ```kotlin
64
+ import vn.momo.kits.components.InputDropDown
65
+ import vn.momo.kits.components.InputSize
66
+
67
+ val selectedValue = remember { mutableStateOf("") }
68
+
69
+ InputDropDown(
70
+ value = selectedValue,
71
+ floatingValue = "Select Option",
72
+ floatingValueColor = AppTheme.current.colors.text.hint,
73
+ floatingIcon = "",
74
+ floatingIconColor = AppTheme.current.colors.text.default,
75
+ placeholder = "Choose...",
76
+ size = InputSize.SMALL,
77
+ onPress = { openSelector() },
78
+ hintText = "",
79
+ error = "",
80
+ errorSpacing = false,
81
+ disabled = false,
82
+ loading = false,
83
+ required = false,
84
+ icon = "arrow_chevron_down_small",
85
+ iconColor = AppTheme.current.colors.text.default,
86
+ onRightIconPressed = { },
87
+ leadingIcon = "",
88
+ leadingIconColor = AppTheme.current.colors.text.hint,
89
+ )
90
+ ```
91
+
92
+ > **Note:** Compose uses `MutableState<String>` for `value` and `error` (String, not `errorMessage`). The default trailing icon is `"arrow_chevron_down_small"`.