@momo-kits/native-kits 0.158.1-beta.1-debug → 0.158.1-beta.2-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 (139) hide show
  1. package/compose/build.gradle.kts +1 -1
  2. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +15 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +15 -1
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +1 -0
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +4 -1
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +11 -9
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +56 -1
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +167 -0
  9. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +32 -0
  10. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  11. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  12. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +16 -0
  13. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +6 -0
  14. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +5 -0
  15. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +58 -0
  16. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Pods-Example.xcscheme +58 -0
  17. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImage.xcscheme +58 -0
  18. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +58 -0
  19. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SkeletonUI.xcscheme +58 -0
  20. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +58 -0
  21. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +58 -0
  22. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +60 -0
  23. package/gradle.properties +1 -1
  24. package/local.properties +2 -2
  25. package/package.json +1 -1
  26. package/.claude/settings.local.json +0 -11
  27. package/.claude/skills/design-system/SKILL.md +0 -88
  28. package/.claude/skills/design-system/references/components/avatar.md +0 -134
  29. package/.claude/skills/design-system/references/components/badge.md +0 -127
  30. package/.claude/skills/design-system/references/components/bottom-tab.md +0 -177
  31. package/.claude/skills/design-system/references/components/bottomsheet.md +0 -170
  32. package/.claude/skills/design-system/references/components/button.md +0 -206
  33. package/.claude/skills/design-system/references/components/carousel.md +0 -117
  34. package/.claude/skills/design-system/references/components/checkbox.md +0 -98
  35. package/.claude/skills/design-system/references/components/chip.md +0 -146
  36. package/.claude/skills/design-system/references/components/collapse.md +0 -120
  37. package/.claude/skills/design-system/references/components/date-picker.md +0 -119
  38. package/.claude/skills/design-system/references/components/divider.md +0 -84
  39. package/.claude/skills/design-system/references/components/icon.md +0 -130
  40. package/.claude/skills/design-system/references/components/image.md +0 -81
  41. package/.claude/skills/design-system/references/components/information.md +0 -107
  42. package/.claude/skills/design-system/references/components/input-dropdown.md +0 -138
  43. package/.claude/skills/design-system/references/components/input-money.md +0 -157
  44. package/.claude/skills/design-system/references/components/input-otp.md +0 -132
  45. package/.claude/skills/design-system/references/components/input-phone-number.md +0 -140
  46. package/.claude/skills/design-system/references/components/input-search.md +0 -124
  47. package/.claude/skills/design-system/references/components/input-text-area.md +0 -133
  48. package/.claude/skills/design-system/references/components/input.md +0 -152
  49. package/.claude/skills/design-system/references/components/loader.md +0 -87
  50. package/.claude/skills/design-system/references/components/pagination.md +0 -105
  51. package/.claude/skills/design-system/references/components/popup-notify.md +0 -128
  52. package/.claude/skills/design-system/references/components/progress-info.md +0 -114
  53. package/.claude/skills/design-system/references/components/radio.md +0 -86
  54. package/.claude/skills/design-system/references/components/rating.md +0 -126
  55. package/.claude/skills/design-system/references/components/skeleton.md +0 -120
  56. package/.claude/skills/design-system/references/components/slider.md +0 -141
  57. package/.claude/skills/design-system/references/components/snackbar.md +0 -97
  58. package/.claude/skills/design-system/references/components/stepper.md +0 -100
  59. package/.claude/skills/design-system/references/components/steps.md +0 -91
  60. package/.claude/skills/design-system/references/components/suggest-action.md +0 -95
  61. package/.claude/skills/design-system/references/components/swipe.md +0 -121
  62. package/.claude/skills/design-system/references/components/switch.md +0 -98
  63. package/.claude/skills/design-system/references/components/tab-view.md +0 -120
  64. package/.claude/skills/design-system/references/components/tag.md +0 -118
  65. package/.claude/skills/design-system/references/components/text.md +0 -151
  66. package/.claude/skills/design-system/references/components/toast.md +0 -99
  67. package/.claude/skills/design-system/references/components/tooltip.md +0 -138
  68. package/.claude/skills/design-system/references/components/top-nav-miniapp.md +0 -94
  69. package/.claude/skills/design-system/references/components/top-nav.md +0 -226
  70. package/.claude/skills/design-system/references/components/uploader.md +0 -115
  71. package/.claude/skills/design-system/references/navigation/bottom-tab.md +0 -131
  72. package/.claude/skills/design-system/references/navigation/bottomsheet.md +0 -161
  73. package/.claude/skills/design-system/references/navigation/modal.md +0 -133
  74. package/.claude/skills/design-system/references/navigation/navigation-options.md +0 -225
  75. package/.claude/skills/design-system/references/navigation/navigator.md +0 -111
  76. package/.claude/skills/design-system/references/navigation/setup.md +0 -134
  77. package/.claude/skills/design-system/references/navigation/stack.md +0 -128
  78. package/.claude/skills/design-system/references/spec-convention.md +0 -80
  79. package/.claude/skills/design-system/references/tokens/colors.md +0 -131
  80. package/.claude/skills/design-system/references/tokens/spacing-radius.md +0 -144
  81. package/.claude/skills/design-system/references/tokens/theme.md +0 -125
  82. package/.claude/skills/design-system/references/tokens/typography.md +0 -135
  83. package/.claude/skills/design-system-kits/SKILL.md +0 -102
  84. package/.claude/skills/design-system-kits/references/code-convention.md +0 -118
  85. package/.claude/skills/design-system-kits/references/components/avatar.md +0 -45
  86. package/.claude/skills/design-system-kits/references/components/badge.md +0 -27
  87. package/.claude/skills/design-system-kits/references/components/button.md +0 -65
  88. package/.claude/skills/design-system-kits/references/components/carousel.md +0 -51
  89. package/.claude/skills/design-system-kits/references/components/checkbox.md +0 -39
  90. package/.claude/skills/design-system-kits/references/components/chip.md +0 -54
  91. package/.claude/skills/design-system-kits/references/components/collapse.md +0 -63
  92. package/.claude/skills/design-system-kits/references/components/date-picker.md +0 -36
  93. package/.claude/skills/design-system-kits/references/components/divider.md +0 -21
  94. package/.claude/skills/design-system-kits/references/components/icon.md +0 -382
  95. package/.claude/skills/design-system-kits/references/components/image.md +0 -62
  96. package/.claude/skills/design-system-kits/references/components/information.md +0 -61
  97. package/.claude/skills/design-system-kits/references/components/input-dropdown.md +0 -92
  98. package/.claude/skills/design-system-kits/references/components/input-money.md +0 -128
  99. package/.claude/skills/design-system-kits/references/components/input-otp.md +0 -85
  100. package/.claude/skills/design-system-kits/references/components/input-phone-number.md +0 -96
  101. package/.claude/skills/design-system-kits/references/components/input-search.md +0 -127
  102. package/.claude/skills/design-system-kits/references/components/input-text-area.md +0 -100
  103. package/.claude/skills/design-system-kits/references/components/input.md +0 -126
  104. package/.claude/skills/design-system-kits/references/components/loader.md +0 -41
  105. package/.claude/skills/design-system-kits/references/components/pagination.md +0 -47
  106. package/.claude/skills/design-system-kits/references/components/popup-notify.md +0 -69
  107. package/.claude/skills/design-system-kits/references/components/popup-promotion.md +0 -35
  108. package/.claude/skills/design-system-kits/references/components/progress-info.md +0 -55
  109. package/.claude/skills/design-system-kits/references/components/radio.md +0 -42
  110. package/.claude/skills/design-system-kits/references/components/rating.md +0 -36
  111. package/.claude/skills/design-system-kits/references/components/skeleton.md +0 -25
  112. package/.claude/skills/design-system-kits/references/components/slider.md +0 -53
  113. package/.claude/skills/design-system-kits/references/components/snackbar.md +0 -52
  114. package/.claude/skills/design-system-kits/references/components/stepper.md +0 -46
  115. package/.claude/skills/design-system-kits/references/components/steps.md +0 -57
  116. package/.claude/skills/design-system-kits/references/components/suggest-action.md +0 -44
  117. package/.claude/skills/design-system-kits/references/components/swipe.md +0 -44
  118. package/.claude/skills/design-system-kits/references/components/switch.md +0 -43
  119. package/.claude/skills/design-system-kits/references/components/tab-view.md +0 -56
  120. package/.claude/skills/design-system-kits/references/components/tag.md +0 -50
  121. package/.claude/skills/design-system-kits/references/components/text.md +0 -56
  122. package/.claude/skills/design-system-kits/references/components/toast.md +0 -51
  123. package/.claude/skills/design-system-kits/references/components/tooltip.md +0 -95
  124. package/.claude/skills/design-system-kits/references/components/uploader.md +0 -48
  125. package/.claude/skills/design-system-kits/references/design-spec-structure.md +0 -356
  126. package/.claude/skills/design-system-kits/references/design-spec-to-code.md +0 -596
  127. package/.claude/skills/design-system-kits/references/navigation/bottom-tab.md +0 -155
  128. package/.claude/skills/design-system-kits/references/navigation/bottomsheet.md +0 -94
  129. package/.claude/skills/design-system-kits/references/navigation/modal.md +0 -125
  130. package/.claude/skills/design-system-kits/references/navigation/navigation-options.md +0 -430
  131. package/.claude/skills/design-system-kits/references/navigation/navigator.md +0 -177
  132. package/.claude/skills/design-system-kits/references/navigation/setup.md +0 -94
  133. package/.claude/skills/design-system-kits/references/navigation/stack.md +0 -152
  134. package/.claude/skills/design-system-kits/references/screen-layout-rule.md +0 -125
  135. package/.claude/skills/design-system-kits/references/tokens/colors.md +0 -183
  136. package/.claude/skills/design-system-kits/references/tokens/spacing-radius.md +0 -45
  137. package/.claude/skills/design-system-kits/references/tokens/theme.md +0 -97
  138. package/.claude/skills/design-system-kits/references/tokens/typography.md +0 -105
  139. package/.claude/skills/vibe-design/SKILL.md +0 -306
@@ -1,382 +0,0 @@
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 |
@@ -1,62 +0,0 @@
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 |
@@ -1,61 +0,0 @@
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 |
@@ -1,92 +0,0 @@
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"`.