@momo-kits/native-kits 0.158.1-beta.1 → 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 (260) hide show
  1. package/build.gradle.kts +11 -0
  2. package/compose/build.gradle.kts +180 -0
  3. package/compose/build.gradle.kts.backup +180 -0
  4. package/compose/compose.podspec +54 -0
  5. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +117 -0
  6. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  7. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  8. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  9. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  10. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  11. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  12. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +338 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +348 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +531 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +16 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +188 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +50 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +253 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +133 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +99 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +164 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +333 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +552 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +167 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +46 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  123. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +161 -0
  124. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +32 -0
  125. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  126. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  127. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +16 -0
  128. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +6 -0
  129. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +5 -0
  130. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +58 -0
  131. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Pods-Example.xcscheme +58 -0
  132. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImage.xcscheme +58 -0
  133. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +58 -0
  134. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SkeletonUI.xcscheme +58 -0
  135. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +58 -0
  136. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +58 -0
  137. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +60 -0
  138. package/gradle/libs.versions.toml +57 -0
  139. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  140. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  141. package/gradle.properties +26 -0
  142. package/gradlew +252 -0
  143. package/gradlew.bat +94 -0
  144. package/local.properties +8 -0
  145. package/package.json +1 -1
  146. package/settings.gradle.kts +52 -0
  147. package/.claude/settings.local.json +0 -11
  148. package/.claude/skills/design-system/SKILL.md +0 -88
  149. package/.claude/skills/design-system/references/components/avatar.md +0 -134
  150. package/.claude/skills/design-system/references/components/badge.md +0 -127
  151. package/.claude/skills/design-system/references/components/bottom-tab.md +0 -177
  152. package/.claude/skills/design-system/references/components/bottomsheet.md +0 -170
  153. package/.claude/skills/design-system/references/components/button.md +0 -206
  154. package/.claude/skills/design-system/references/components/carousel.md +0 -117
  155. package/.claude/skills/design-system/references/components/checkbox.md +0 -98
  156. package/.claude/skills/design-system/references/components/chip.md +0 -146
  157. package/.claude/skills/design-system/references/components/collapse.md +0 -120
  158. package/.claude/skills/design-system/references/components/date-picker.md +0 -119
  159. package/.claude/skills/design-system/references/components/divider.md +0 -84
  160. package/.claude/skills/design-system/references/components/icon.md +0 -130
  161. package/.claude/skills/design-system/references/components/image.md +0 -81
  162. package/.claude/skills/design-system/references/components/information.md +0 -107
  163. package/.claude/skills/design-system/references/components/input-dropdown.md +0 -138
  164. package/.claude/skills/design-system/references/components/input-money.md +0 -157
  165. package/.claude/skills/design-system/references/components/input-otp.md +0 -132
  166. package/.claude/skills/design-system/references/components/input-phone-number.md +0 -140
  167. package/.claude/skills/design-system/references/components/input-search.md +0 -124
  168. package/.claude/skills/design-system/references/components/input-text-area.md +0 -133
  169. package/.claude/skills/design-system/references/components/input.md +0 -152
  170. package/.claude/skills/design-system/references/components/loader.md +0 -87
  171. package/.claude/skills/design-system/references/components/pagination.md +0 -105
  172. package/.claude/skills/design-system/references/components/popup-notify.md +0 -128
  173. package/.claude/skills/design-system/references/components/progress-info.md +0 -114
  174. package/.claude/skills/design-system/references/components/radio.md +0 -86
  175. package/.claude/skills/design-system/references/components/rating.md +0 -126
  176. package/.claude/skills/design-system/references/components/skeleton.md +0 -120
  177. package/.claude/skills/design-system/references/components/slider.md +0 -141
  178. package/.claude/skills/design-system/references/components/snackbar.md +0 -97
  179. package/.claude/skills/design-system/references/components/stepper.md +0 -100
  180. package/.claude/skills/design-system/references/components/steps.md +0 -91
  181. package/.claude/skills/design-system/references/components/suggest-action.md +0 -95
  182. package/.claude/skills/design-system/references/components/swipe.md +0 -121
  183. package/.claude/skills/design-system/references/components/switch.md +0 -98
  184. package/.claude/skills/design-system/references/components/tab-view.md +0 -120
  185. package/.claude/skills/design-system/references/components/tag.md +0 -118
  186. package/.claude/skills/design-system/references/components/text.md +0 -151
  187. package/.claude/skills/design-system/references/components/toast.md +0 -99
  188. package/.claude/skills/design-system/references/components/tooltip.md +0 -138
  189. package/.claude/skills/design-system/references/components/top-nav-miniapp.md +0 -94
  190. package/.claude/skills/design-system/references/components/top-nav.md +0 -226
  191. package/.claude/skills/design-system/references/components/uploader.md +0 -115
  192. package/.claude/skills/design-system/references/navigation/bottom-tab.md +0 -131
  193. package/.claude/skills/design-system/references/navigation/bottomsheet.md +0 -161
  194. package/.claude/skills/design-system/references/navigation/modal.md +0 -133
  195. package/.claude/skills/design-system/references/navigation/navigation-options.md +0 -225
  196. package/.claude/skills/design-system/references/navigation/navigator.md +0 -111
  197. package/.claude/skills/design-system/references/navigation/setup.md +0 -134
  198. package/.claude/skills/design-system/references/navigation/stack.md +0 -128
  199. package/.claude/skills/design-system/references/spec-convention.md +0 -80
  200. package/.claude/skills/design-system/references/tokens/colors.md +0 -131
  201. package/.claude/skills/design-system/references/tokens/spacing-radius.md +0 -144
  202. package/.claude/skills/design-system/references/tokens/theme.md +0 -125
  203. package/.claude/skills/design-system/references/tokens/typography.md +0 -135
  204. package/.claude/skills/design-system-kits/SKILL.md +0 -102
  205. package/.claude/skills/design-system-kits/references/code-convention.md +0 -118
  206. package/.claude/skills/design-system-kits/references/components/avatar.md +0 -45
  207. package/.claude/skills/design-system-kits/references/components/badge.md +0 -27
  208. package/.claude/skills/design-system-kits/references/components/button.md +0 -65
  209. package/.claude/skills/design-system-kits/references/components/carousel.md +0 -51
  210. package/.claude/skills/design-system-kits/references/components/checkbox.md +0 -39
  211. package/.claude/skills/design-system-kits/references/components/chip.md +0 -54
  212. package/.claude/skills/design-system-kits/references/components/collapse.md +0 -63
  213. package/.claude/skills/design-system-kits/references/components/date-picker.md +0 -36
  214. package/.claude/skills/design-system-kits/references/components/divider.md +0 -21
  215. package/.claude/skills/design-system-kits/references/components/icon.md +0 -382
  216. package/.claude/skills/design-system-kits/references/components/image.md +0 -62
  217. package/.claude/skills/design-system-kits/references/components/information.md +0 -61
  218. package/.claude/skills/design-system-kits/references/components/input-dropdown.md +0 -92
  219. package/.claude/skills/design-system-kits/references/components/input-money.md +0 -128
  220. package/.claude/skills/design-system-kits/references/components/input-otp.md +0 -85
  221. package/.claude/skills/design-system-kits/references/components/input-phone-number.md +0 -96
  222. package/.claude/skills/design-system-kits/references/components/input-search.md +0 -127
  223. package/.claude/skills/design-system-kits/references/components/input-text-area.md +0 -100
  224. package/.claude/skills/design-system-kits/references/components/input.md +0 -126
  225. package/.claude/skills/design-system-kits/references/components/loader.md +0 -41
  226. package/.claude/skills/design-system-kits/references/components/pagination.md +0 -47
  227. package/.claude/skills/design-system-kits/references/components/popup-notify.md +0 -69
  228. package/.claude/skills/design-system-kits/references/components/popup-promotion.md +0 -35
  229. package/.claude/skills/design-system-kits/references/components/progress-info.md +0 -55
  230. package/.claude/skills/design-system-kits/references/components/radio.md +0 -42
  231. package/.claude/skills/design-system-kits/references/components/rating.md +0 -36
  232. package/.claude/skills/design-system-kits/references/components/skeleton.md +0 -25
  233. package/.claude/skills/design-system-kits/references/components/slider.md +0 -53
  234. package/.claude/skills/design-system-kits/references/components/snackbar.md +0 -52
  235. package/.claude/skills/design-system-kits/references/components/stepper.md +0 -46
  236. package/.claude/skills/design-system-kits/references/components/steps.md +0 -57
  237. package/.claude/skills/design-system-kits/references/components/suggest-action.md +0 -44
  238. package/.claude/skills/design-system-kits/references/components/swipe.md +0 -44
  239. package/.claude/skills/design-system-kits/references/components/switch.md +0 -43
  240. package/.claude/skills/design-system-kits/references/components/tab-view.md +0 -56
  241. package/.claude/skills/design-system-kits/references/components/tag.md +0 -50
  242. package/.claude/skills/design-system-kits/references/components/text.md +0 -56
  243. package/.claude/skills/design-system-kits/references/components/toast.md +0 -51
  244. package/.claude/skills/design-system-kits/references/components/tooltip.md +0 -95
  245. package/.claude/skills/design-system-kits/references/components/uploader.md +0 -48
  246. package/.claude/skills/design-system-kits/references/design-spec-structure.md +0 -356
  247. package/.claude/skills/design-system-kits/references/design-spec-to-code.md +0 -596
  248. package/.claude/skills/design-system-kits/references/navigation/bottom-tab.md +0 -155
  249. package/.claude/skills/design-system-kits/references/navigation/bottomsheet.md +0 -94
  250. package/.claude/skills/design-system-kits/references/navigation/modal.md +0 -125
  251. package/.claude/skills/design-system-kits/references/navigation/navigation-options.md +0 -430
  252. package/.claude/skills/design-system-kits/references/navigation/navigator.md +0 -177
  253. package/.claude/skills/design-system-kits/references/navigation/setup.md +0 -94
  254. package/.claude/skills/design-system-kits/references/navigation/stack.md +0 -152
  255. package/.claude/skills/design-system-kits/references/screen-layout-rule.md +0 -125
  256. package/.claude/skills/design-system-kits/references/tokens/colors.md +0 -183
  257. package/.claude/skills/design-system-kits/references/tokens/spacing-radius.md +0 -45
  258. package/.claude/skills/design-system-kits/references/tokens/theme.md +0 -97
  259. package/.claude/skills/design-system-kits/references/tokens/typography.md +0 -105
  260. package/.claude/skills/vibe-design/SKILL.md +0 -306
@@ -0,0 +1,130 @@
1
+ package vn.momo.kits.components
2
+
3
+ import androidx.compose.foundation.border
4
+ import androidx.compose.runtime.Composable
5
+ import androidx.compose.runtime.remember
6
+ import androidx.compose.ui.Modifier
7
+ import androidx.compose.ui.graphics.Color
8
+ import androidx.compose.ui.text.AnnotatedString
9
+ import androidx.compose.ui.text.TextLayoutResult
10
+ import androidx.compose.ui.text.TextStyle
11
+ import androidx.compose.ui.text.style.TextAlign
12
+ import androidx.compose.ui.text.style.TextDecoration
13
+ import androidx.compose.ui.text.style.TextOverflow
14
+ import androidx.compose.ui.unit.TextUnit
15
+ import androidx.compose.ui.unit.dp
16
+ import vn.momo.kits.application.IsShowBaseLineDebug
17
+ import vn.momo.kits.const.AppTheme
18
+ import vn.momo.kits.const.Colors
19
+ import vn.momo.kits.const.Typography
20
+ import vn.momo.kits.const.getFontFamily
21
+ import vn.momo.kits.const.scaleSize
22
+ import vn.momo.kits.modifier.conditional
23
+ import vn.momo.kits.modifier.setAutomationId
24
+
25
+ @Composable
26
+ fun Text(
27
+ text: String,
28
+ color: Color? = null,
29
+ style: TextStyle = Typography.bodyDefaultRegular,
30
+ textAlign: TextAlign? = TextAlign.Start,
31
+ modifier: Modifier = Modifier,
32
+ maxLines: Int = Int.MAX_VALUE,
33
+ overflow: TextOverflow = TextOverflow.Clip,
34
+ textDecoration: TextDecoration? = null,
35
+ onTextLayout: ((TextLayoutResult) -> Unit)? = null,
36
+ fontFamily: String? = null,
37
+ minLines: Int = 1,
38
+ letterSpacing: TextUnit = TextUnit.Unspecified,
39
+ softWrap: Boolean = true,
40
+ accessibilityId: String? = null
41
+ ) {
42
+ Text(
43
+ text = AnnotatedString(text),
44
+ color = color,
45
+ style = style,
46
+ textAlign = textAlign,
47
+ modifier = modifier,
48
+ maxLines = maxLines,
49
+ overflow = overflow,
50
+ textDecoration = textDecoration,
51
+ onTextLayout = onTextLayout,
52
+ fontFamily = fontFamily,
53
+ minLines = minLines,
54
+ letterSpacing = letterSpacing,
55
+ softWrap = softWrap,
56
+ accessibilityId = accessibilityId
57
+ )
58
+ }
59
+
60
+
61
+ @Composable
62
+ fun Text(
63
+ text: AnnotatedString,
64
+ color: Color? = null,
65
+ style: TextStyle = Typography.bodyDefaultRegular,
66
+ textAlign: TextAlign? = TextAlign.Start,
67
+ modifier: Modifier = Modifier,
68
+ maxLines: Int = Int.MAX_VALUE,
69
+ overflow: TextOverflow = TextOverflow.Clip,
70
+ textDecoration: TextDecoration? = null,
71
+ onTextLayout: ((TextLayoutResult) -> Unit)? = null,
72
+ fontFamily: String? = null,
73
+ minLines: Int = 1,
74
+ letterSpacing: TextUnit = TextUnit.Unspecified,
75
+ softWrap: Boolean = true,
76
+ accessibilityId: String? = null
77
+ ) {
78
+ // Cache theme access to avoid repeated lookups
79
+ val theme = AppTheme.current
80
+
81
+ // Call @Composable functions directly in composable context
82
+ val scaledFontSize = scaleSize(style.fontSize)
83
+ val scaledLineHeight = scaleSize(style.lineHeight)
84
+ val fontFamilyResult = getFontFamily(fontFamily ?: theme.font, style.fontWeight)
85
+
86
+ // Now memoize the results
87
+ val fontSize = remember(scaledFontSize) { scaledFontSize }
88
+ val lineHeight = remember(scaledLineHeight) { scaledLineHeight }
89
+ val font = remember(fontFamilyResult) { fontFamilyResult }
90
+
91
+ // Memoize color calculation
92
+ val textColor = remember(color, theme) {
93
+ color ?: theme.colors.text.default
94
+ }
95
+
96
+ // Memoize style copy operation
97
+ val optimizedStyle = remember(style) {
98
+ style.copy(
99
+ fontWeight = null,
100
+ lineHeight = if (lineHeight.value.isFinite() && lineHeight.value > 0) lineHeight else style.lineHeight
101
+ )
102
+ }
103
+
104
+ // Memoize automation ID
105
+ val automationId = remember(accessibilityId, text) {
106
+ accessibilityId ?: text
107
+ }
108
+
109
+ // on/off baseline config value, default will be false
110
+
111
+ androidx.compose.material3.Text(
112
+ modifier = modifier.conditional(IsShowBaseLineDebug){
113
+ border(1.dp, Colors.blue_03)
114
+ }.setAutomationId(automationId.toString()),
115
+ text = text,
116
+ color = textColor,
117
+ style = optimizedStyle,
118
+ textAlign = textAlign,
119
+ fontSize = fontSize,
120
+ fontFamily = font,
121
+ maxLines = maxLines,
122
+ softWrap = softWrap,
123
+ letterSpacing = letterSpacing,
124
+ minLines = minLines,
125
+ textDecoration = textDecoration,
126
+ onTextLayout = onTextLayout ?: {},
127
+ overflow = overflow
128
+ )
129
+ }
130
+
@@ -0,0 +1,214 @@
1
+ package vn.momo.kits.components
2
+
3
+ import androidx.compose.foundation.background
4
+ import androidx.compose.foundation.border
5
+ import androidx.compose.foundation.clickable
6
+ import androidx.compose.foundation.layout.Arrangement
7
+ import androidx.compose.foundation.layout.Box
8
+ import androidx.compose.foundation.layout.Column
9
+ import androidx.compose.foundation.layout.IntrinsicSize
10
+ import androidx.compose.foundation.layout.Row
11
+ import androidx.compose.foundation.layout.Spacer
12
+ import androidx.compose.foundation.layout.fillMaxHeight
13
+ import androidx.compose.foundation.layout.fillMaxWidth
14
+ import androidx.compose.foundation.layout.height
15
+ import androidx.compose.foundation.layout.padding
16
+ import androidx.compose.foundation.layout.size
17
+ import androidx.compose.foundation.layout.width
18
+ import androidx.compose.foundation.shape.RoundedCornerShape
19
+ import androidx.compose.runtime.Composable
20
+ import androidx.compose.ui.Alignment
21
+ import androidx.compose.ui.Modifier
22
+ import androidx.compose.ui.graphics.Color
23
+ import androidx.compose.ui.text.TextStyle
24
+ import androidx.compose.ui.text.font.FontWeight
25
+ import androidx.compose.ui.unit.dp
26
+ import androidx.compose.ui.unit.sp
27
+ import vn.momo.kits.application.IsShowBaseLineDebug
28
+ import vn.momo.kits.const.AppTheme
29
+ import vn.momo.kits.const.Colors
30
+ import vn.momo.kits.const.Spacing
31
+ import vn.momo.kits.const.Typography
32
+ import vn.momo.kits.modifier.conditional
33
+
34
+ enum class TitleType { Card, Section }
35
+ enum class TitleSize { Small, Medium, Large }
36
+ enum class IconAlign { Top, Center, Bottom }
37
+ enum class ButtonSize { Small, Large }
38
+
39
+ @Composable
40
+ fun Title(
41
+ title: String,
42
+ type: TitleType = TitleType.Section,
43
+ size: TitleSize = TitleSize.Medium,
44
+ icon: String? = null,
45
+ iconColor: Color? = null,
46
+ iconAlign: IconAlign = IconAlign.Top,
47
+ showRightAction: Boolean = false,
48
+ showTrailingAction: Boolean = false,
49
+ badgeLabel: String? = null,
50
+ buttonTitle: String? = null,
51
+ buttonSize: ButtonSize = ButtonSize.Small,
52
+ onPressRightAction: () -> Unit = {},
53
+ onPressTrailingAction: () -> Unit = {},
54
+ textOnly: Boolean = false,
55
+ description: String? = null,
56
+ modifier: Modifier = Modifier
57
+ ) {
58
+ val theme = AppTheme.current
59
+ val textStyle: TextStyle = when (type) {
60
+ TitleType.Card -> when (size) {
61
+ TitleSize.Small -> TextStyle(fontSize = 14.sp, lineHeight = 20.sp)
62
+ TitleSize.Medium -> TextStyle(fontSize = 16.sp, lineHeight = 22.sp)
63
+ TitleSize.Large -> TextStyle(fontSize = 18.sp, lineHeight = 26.sp)
64
+ }
65
+
66
+ TitleType.Section -> when (size) {
67
+ TitleSize.Small -> TextStyle(
68
+ fontSize = 16.sp,
69
+ lineHeight = 24.sp,
70
+ fontWeight = FontWeight.Bold
71
+ )
72
+
73
+ TitleSize.Medium -> TextStyle(
74
+ fontSize = 18.sp,
75
+ lineHeight = 26.sp,
76
+ fontWeight = FontWeight.Bold
77
+ )
78
+
79
+ TitleSize.Large -> TextStyle(
80
+ fontSize = 20.sp,
81
+ lineHeight = 28.sp,
82
+ fontWeight = FontWeight.Bold
83
+ )
84
+ }
85
+ }
86
+
87
+ if (textOnly) {
88
+ Text(
89
+ text = title,
90
+ style = textStyle,
91
+ modifier = modifier
92
+ )
93
+ return
94
+ }
95
+
96
+ Row(
97
+ modifier = modifier
98
+ .fillMaxWidth()
99
+ .height(IntrinsicSize.Min)
100
+ .conditional(IsShowBaseLineDebug) {
101
+ border(1.dp, Colors.blue_03)
102
+ }
103
+ .padding(8.dp),
104
+ verticalAlignment = Alignment.CenterVertically
105
+ ) {
106
+ icon?.let {
107
+ Column(
108
+ modifier = Modifier.fillMaxHeight().padding(end = Spacing.S),
109
+ verticalArrangement = when (iconAlign) {
110
+ IconAlign.Top -> Arrangement.Top
111
+ IconAlign.Center -> Arrangement.Center
112
+ IconAlign.Bottom -> Arrangement.Bottom
113
+ },
114
+ ) {
115
+ // Icon
116
+ Icon(
117
+ source = it,
118
+ color = iconColor ?: theme.colors.text.default,
119
+ modifier = Modifier.size(24.dp)
120
+ )
121
+ }
122
+ }
123
+
124
+ Column(
125
+ modifier = Modifier.weight(1f)
126
+ ) {
127
+ Row(
128
+ verticalAlignment = Alignment.CenterVertically
129
+ ) {
130
+ Row(
131
+ verticalAlignment = Alignment.CenterVertically,
132
+ modifier = if (showTrailingAction) Modifier else Modifier.weight(1f),
133
+ ) {
134
+ Text(
135
+ text = title,
136
+ style = textStyle,
137
+ maxLines = if (showTrailingAction || badgeLabel != null) 1 else 2,
138
+ )
139
+
140
+ // Badge
141
+ badgeLabel?.let {
142
+ Spacer(modifier = Modifier.width(4.dp))
143
+ Badge(
144
+ label = it
145
+ )
146
+ }
147
+
148
+ }
149
+
150
+ // Trailing action (icon)
151
+ if (showTrailingAction && !showRightAction) {
152
+ Spacer(modifier = Modifier.width(8.dp))
153
+ Box(
154
+ modifier = Modifier
155
+ .size(24.dp)
156
+ .background(
157
+ color = if (type == TitleType.Section) Colors.black_06.copy(0.6f) else Colors.black_06.copy(
158
+ 0.3f
159
+ ),
160
+ shape = RoundedCornerShape(12.dp)
161
+ )
162
+ .clickable { onPressTrailingAction() },
163
+ contentAlignment = Alignment.Center
164
+ ) {
165
+ Icon(
166
+ source = "arrow_chevron_right_small",
167
+ size = 18.dp
168
+ )
169
+ }
170
+ }
171
+ }
172
+
173
+ // Description
174
+ description?.let {
175
+ Spacer(modifier = Modifier.height(4.dp))
176
+ Text(
177
+ text = it,
178
+ style = Typography.descriptionDefaultRegular,
179
+ color = theme.colors.text.secondary
180
+ )
181
+ }
182
+ }
183
+
184
+ // Right action (button or icon)
185
+ if (showRightAction && !showTrailingAction) {
186
+ Spacer(modifier = Modifier.width(8.dp))
187
+ if (buttonTitle != null) {
188
+ Text(
189
+ text = buttonTitle,
190
+ style = if (buttonSize === ButtonSize.Small) Typography.actionXsBold else Typography.actionSBold,
191
+ color = theme.colors.primary,
192
+ modifier = Modifier.clickable { onPressRightAction() }
193
+ )
194
+ } else {
195
+ Box(
196
+ modifier = Modifier
197
+ .size(24.dp)
198
+ .background(
199
+ color = Colors.pink_03.copy(alpha = 0.1f),
200
+ shape = RoundedCornerShape(12.dp)
201
+ )
202
+ .clickable { onPressRightAction() },
203
+ contentAlignment = Alignment.Center
204
+ ) {
205
+ Icon(
206
+ source = "arrow_chevron_right_small",
207
+ modifier = Modifier.size(22.dp),
208
+ color = theme.colors.primary
209
+ )
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }