@momo-kits/native-kits 0.157.1-skill.3 → 0.157.1-skill.6-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 (222) hide show
  1. package/.claude/skills/momo-native-kits-skills/README.md +52 -0
  2. package/.claude/skills/momo-native-kits-skills/SKILL.md +32 -0
  3. package/.claude/skills/momo-native-kits-skills/data-display/SKILL.md +42 -0
  4. package/.claude/skills/momo-native-kits-skills/feedback/SKILL.md +43 -0
  5. package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/popup.md +3 -10
  6. package/.claude/skills/momo-native-kits-skills/form-controls/SKILL.md +42 -0
  7. package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/button.md +2 -3
  8. package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/input.md +3 -7
  9. package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/radio.md +9 -9
  10. package/.claude/skills/momo-native-kits-skills/layout/SKILL.md +39 -0
  11. package/.claude/skills/momo-native-kits-skills/navigation/SKILL.md +38 -0
  12. package/.claude/skills/momo-native-kits-skills/output/test-report.json +12 -0
  13. package/.claude/skills/momo-native-kits-skills/output/validation-result.json +108 -0
  14. package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills}/references/constants.md +81 -6
  15. package/.claude/skills/momo-native-kits-skills/references/design-guidelines.md +130 -0
  16. package/.claude/skills/momo-native-kits-skills/references/developer/android-compose.md +29 -0
  17. package/.claude/skills/momo-native-kits-skills/references/developer/code-convention.md +118 -0
  18. package/.claude/skills/momo-native-kits-skills/references/developer/compose-multiplatform.md +29 -0
  19. package/.claude/skills/momo-native-kits-skills/scripts/logger.js +63 -0
  20. package/.claude/skills/momo-native-kits-skills/scripts/rules/badge.js +32 -0
  21. package/.claude/skills/momo-native-kits-skills/scripts/rules/bottomtab.js +19 -0
  22. package/.claude/skills/momo-native-kits-skills/scripts/rules/button.js +32 -0
  23. package/.claude/skills/momo-native-kits-skills/scripts/rules/card.js +32 -0
  24. package/.claude/skills/momo-native-kits-skills/scripts/rules/checkbox.js +32 -0
  25. package/.claude/skills/momo-native-kits-skills/scripts/rules/chip.js +59 -0
  26. package/.claude/skills/momo-native-kits-skills/scripts/rules/divider.js +19 -0
  27. package/.claude/skills/momo-native-kits-skills/scripts/rules/global.js +61 -0
  28. package/.claude/skills/momo-native-kits-skills/scripts/rules/index.js +54 -0
  29. package/.claude/skills/momo-native-kits-skills/scripts/rules/input.js +32 -0
  30. package/.claude/skills/momo-native-kits-skills/scripts/rules/navigation.js +48 -0
  31. package/.claude/skills/momo-native-kits-skills/scripts/rules/popup.js +45 -0
  32. package/.claude/skills/momo-native-kits-skills/scripts/rules/radio.js +105 -0
  33. package/.claude/skills/momo-native-kits-skills/scripts/rules/skeleton.js +20 -0
  34. package/.claude/skills/momo-native-kits-skills/scripts/rules/snackbar.js +32 -0
  35. package/.claude/skills/momo-native-kits-skills/scripts/rules/state.js +21 -0
  36. package/.claude/skills/momo-native-kits-skills/scripts/rules/switch.js +45 -0
  37. package/.claude/skills/momo-native-kits-skills/scripts/rules/text.js +19 -0
  38. package/.claude/skills/momo-native-kits-skills/scripts/rules/tooltip.js +45 -0
  39. package/.claude/skills/momo-native-kits-skills/scripts/rules/trustbanner.js +22 -0
  40. package/.claude/skills/momo-native-kits-skills/scripts/test-on-device.sh +117 -0
  41. package/.claude/skills/momo-native-kits-skills/scripts/test-runner.js +167 -0
  42. package/.claude/skills/momo-native-kits-skills/scripts/validate-kits.js +131 -0
  43. package/.momo-agent.json +13 -0
  44. package/build.gradle.kts +11 -0
  45. package/compose/build.gradle.kts +180 -0
  46. package/compose/build.gradle.kts.backup +180 -0
  47. package/compose/compose.podspec +54 -0
  48. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +110 -0
  49. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  50. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  51. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  52. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  53. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  54. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  55. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  56. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  57. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  58. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  59. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  60. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  61. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  62. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +185 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  130. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  131. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
  132. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
  133. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
  134. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +161 -0
  135. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
  136. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
  137. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  138. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
  139. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  140. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  141. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
  142. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  143. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  144. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
  145. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  146. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  147. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
  148. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  149. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  150. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  151. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  152. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +149 -0
  153. package/gradle/libs.versions.toml +57 -0
  154. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  155. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  156. package/gradle.properties +26 -0
  157. package/gradlew +252 -0
  158. package/gradlew.bat +94 -0
  159. package/package.json +1 -1
  160. package/settings.gradle.kts +52 -0
  161. package/.claude/momo-native-kits-skill/SKILL.md +0 -51
  162. package/.claude/momo-native-kits-skill/evals/evals.json +0 -95
  163. package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.json +0 -20
  164. package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.md +0 -13
  165. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/eval_metadata.json +0 -6
  166. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/with_skill/outputs/ButtonExample.kt +0 -55
  167. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/without_skill/outputs/ButtonExample.kt +0 -45
  168. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/eval_metadata.json +0 -6
  169. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/with_skill/outputs/InputPhoneExample.kt +0 -40
  170. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/without_skill/outputs/InputPhoneExample.kt +0 -42
  171. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/eval_metadata.json +0 -6
  172. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/with_skill/outputs/BottomTabExample.kt +0 -236
  173. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/without_skill/outputs/BottomTabExample.kt +0 -152
  174. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/eval_metadata.json +0 -6
  175. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/with_skill/outputs/CheckBoxExample.kt +0 -49
  176. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/without_skill/outputs/CheckBoxExample.kt +0 -123
  177. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/eval_metadata.json +0 -6
  178. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/with_skill/outputs/DateTimePickerExample.kt +0 -318
  179. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/without_skill/outputs/DateTimePickerExample.kt +0 -330
  180. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/with_skill/outputs/CardExample.kt +0 -124
  181. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/without_skill/outputs/CardExample.kt +0 -71
  182. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/with_skill/outputs/LoginFormExample.kt +0 -134
  183. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/without_skill/outputs/LoginFormExample.kt +0 -199
  184. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +0 -224
  185. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/without_skill/outputs/NavigationContainerExample.kt +0 -225
  186. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/with_skill/outputs/PopupExample.kt +0 -79
  187. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/without_skill/outputs/PopupExample.kt +0 -169
  188. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/eval_metadata.json +0 -6
  189. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +0 -255
  190. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +0 -212
  191. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/with_skill/outputs/SkeletonExample.kt +0 -199
  192. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/without_skill/outputs/SkeletonExample.kt +0 -229
  193. package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.json +0 -20
  194. package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.md +0 -13
  195. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/eval_metadata.json +0 -22
  196. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/outputs/PrimaryButtonExample.kt +0 -38
  197. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/timing.json +0 -5
  198. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/outputs/PrimaryButtonExample.kt +0 -83
  199. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/timing.json +0 -5
  200. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/eval_metadata.json +0 -22
  201. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +0 -547
  202. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/timing.json +0 -5
  203. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/outputs/MoMoNavigationContainer.kt +0 -519
  204. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/timing.json +0 -5
  205. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/eval_metadata.json +0 -27
  206. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +0 -429
  207. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/timing.json +0 -5
  208. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +0 -353
  209. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/timing.json +0 -5
  210. package/.claude/settings.local.json +0 -41
  211. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/badge.md +0 -0
  212. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/chip.md +0 -0
  213. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/skeleton.md +0 -0
  214. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/text.md +0 -0
  215. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/snackbar.md +0 -0
  216. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/tooltip.md +0 -0
  217. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/trustbanner.md +0 -0
  218. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/checkbox.md +0 -0
  219. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/switch.md +0 -0
  220. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/layout}/references/card.md +0 -0
  221. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/layout}/references/divider.md +0 -0
  222. /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/navigation}/references/navigation.md +0 -0
@@ -0,0 +1,52 @@
1
+ # MoMo Native Kits Skills
2
+
3
+ Generate production-ready Kotlin/Compose code using vn.momo.kits components. NEVER use Material Design.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Validate generated code
9
+ node scripts/validate-kits.js <file.kt>
10
+
11
+ # Run tests
12
+ node scripts/test-runner.js
13
+ ```
14
+
15
+ ## Skills
16
+
17
+ | Skill | Components |
18
+ |-------|------------|
19
+ | [form-controls](form-controls/) | Button, Input, CheckBox, Radio, Switch |
20
+ | [data-display](data-display/) | Text, Chip, Badge, Skeleton |
21
+ | [layout](layout/) | Card, Divider |
22
+ | [feedback](feedback/) | Popup, SnackBar, Tooltip, TrustBanner |
23
+ | [navigation](navigation/) | BottomTab, Header, NavigationContainer |
24
+
25
+ ## Usage
26
+
27
+ 1. Identify component needed
28
+ 2. Read component reference
29
+ 3. Generate code per API
30
+ 4. Add AI block markers
31
+ 5. Validate
32
+
33
+ ## Scripts
34
+
35
+ | Script | Purpose |
36
+ |--------|---------|
37
+ | `validate-kits.js` | Validate generated code |
38
+ | `test-runner.js` | Run skill tests |
39
+ | `test-on-device.sh` | Build & test on device |
40
+
41
+ ## Rules
42
+
43
+ - Use `vn.momo.kits.components` and `vn.momo.kits.const`
44
+ - NO: `androidx.compose.material`, `Material3`, `Material2`
45
+ - Follow [code-convention.md](references/developer/code-convention.md)
46
+
47
+ ## Test Results
48
+
49
+ ```
50
+ Validation Rules: 17/17 ✅
51
+ References: 21/21 ✅
52
+ ```
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: momo-native-kits-skills
3
+ description: |
4
+ Generate Kotlin/Compose code using vn.momo.kits components. NEVER use Material Design.
5
+
6
+ Use when user mention:
7
+ - Button, Input, CheckBox, Radio, Switch, Text, Chip, Badge, Skeleton, Card, Divider, Popup, SnackBar, Tooltip, TrustBanner, BottomTab, Header, NavigationContainer
8
+ - nút bấm, ô nhập, ô tick, nút chọn, nút gạt, chữ, nhãn, thẻ, khung, đường kẻ, xác nhận, thông báo, gợi ý, bảo mật, thanh điều hướng, tiêu đề
9
+
10
+ IMPORTANT: Use ONLY MoMo Native Kits components from `vn.momo.kits.*`. NEVER use Material3, Material2.
11
+ ---
12
+
13
+ # MoMo Native Kits
14
+
15
+ ## Prereqs
16
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
17
+ - NO: `androidx.compose.material`, `Material3`, `Material2`
18
+ - Read [code-convention.md](references/developer/code-convention.md) before generating code
19
+
20
+ ## Skills
21
+
22
+ | Skill | Components | Triggers |
23
+ |-------|------------|----------|
24
+ | [form-controls](form-controls/SKILL.md) | Button, Input, CheckBox, Radio, Switch | button/input/checkbox/radio/switch, nút bấm/ô nhập/ô tick |
25
+ | [data-display](data-display/SKILL.md) | Text, Chip, Badge, Skeleton | text/chip/badge/skeleton, chữ/nhãn/thông báo/loading |
26
+ | [layout](layout/SKILL.md) | Card, Divider | card/divider, thẻ/khung/đường kẻ |
27
+ | [feedback](feedback/SKILL.md) | Popup, SnackBar, Tooltip, TrustBanner | popup/snackbar/tooltip, xác nhận/thông báo/gợi ý |
28
+ | [navigation](navigation/SKILL.md) | BottomTab, Header, NavigationContainer | bottomtab/header, thanh điều hướng/tiêu đề |
29
+
30
+ ## Quick Ref
31
+ - **Validate**: `node scripts/validate-kits.js <file.kt>`
32
+ - **Code Convention**: [references/developer/code-convention.md](references/developer/code-convention.md)
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: data-display
3
+ description: |
4
+ Text, Title, Chip, Badge, Skeleton. Use vn.momo.kits. NEVER Material.
5
+ Triggers: text/title/chip/badge/skeleton | chữ/tiêu đề/nhãn/thông báo số/loading/hiển thị
6
+ ---
7
+
8
+ # Data Display
9
+
10
+ ## Prereqs
11
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
12
+ - NO: `Material3`, `Material2`
13
+ - Read [code-convention.md](../references/developer/code-convention.md)
14
+
15
+ ## Components
16
+ | Component | Ref |
17
+ |-----------|-----|
18
+ | Text | [text.md](references/text.md) |
19
+ | Title | [text.md](references/text.md) |
20
+ | Chip | [chip.md](references/chip.md) |
21
+ | Badge | [badge.md](references/badge.md) |
22
+ | Skeleton | [skeleton.md](references/skeleton.md) |
23
+ | Constants | [constants.md](../references/constants.md) |
24
+ | Design | [design-guidelines.md](../references/design-guidelines.md) |
25
+
26
+ ## Workflow (with logging)
27
+ 1. **📥 Read** component ref + [constants.md](../references/constants.md) + [code-convention.md](../references/developer/code-convention.md)
28
+ 2. **✏️ Generate** code per API
29
+ 3. **🏷️ Apply AI Convention**: Add file header + AI-GENERATED START/END markers (per code-convention.md)
30
+ 4. **✅ Validate**: `node ../../scripts/validate-kits.js <file.kt>`
31
+ 5. **🔧 Fix** errors if any
32
+
33
+ ## Example Log Output
34
+ ```
35
+ 🤖 data-display: Starting
36
+ 📥 → references/text.md
37
+ 📥 → ../references/constants.md
38
+ 📥 → ../references/developer/code-convention.md
39
+ ✏️ → Generating Text component
40
+ 🏷️ → Applying AI Convention (header + markers)
41
+ ✅ → Validating (5 passed)
42
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: feedback
3
+ description: |
4
+ PopupNotify, PopupPromotion, SnackBar, Tooltip, TrustBanner, Information. Use vn.momo.kits. NEVER Material.
5
+ Triggers: popup/snackbar/tooltip/trustbanner/information/promotion | xác nhận/thông báo/gợi ý/bảo mật/khuyến mãi/cảnh báo
6
+ ---
7
+
8
+ # Feedback
9
+
10
+ ## Prereqs
11
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
12
+ - NO: `Material3`, `Material2`
13
+ - Read [code-convention.md](../references/developer/code-convention.md)
14
+
15
+ ## Components
16
+ | Component | Ref |
17
+ |-----------|-----|
18
+ | PopupNotify | [popup.md](references/popup.md) |
19
+ | PopupPromotion | [popup.md](references/popup.md) |
20
+ | SnackBar | [snackbar.md](references/snackbar.md) |
21
+ | Tooltip | [tooltip.md](references/tooltip.md) |
22
+ | TrustBanner | [trustbanner.md](references/trustbanner.md) |
23
+ | Information | [trustbanner.md](references/trustbanner.md) |
24
+ | Constants | [constants.md](../references/constants.md) |
25
+ | Design | [design-guidelines.md](../references/design-guidelines.md) |
26
+
27
+ ## Workflow (with logging)
28
+ 1. **📥 Read** component ref + [constants.md](../references/constants.md) + [code-convention.md](../references/developer/code-convention.md)
29
+ 2. **✏️ Generate** code per API
30
+ 3. **🏷️ Apply AI Convention**: Add file header + AI-GENERATED START/END markers (per code-convention.md)
31
+ 4. **✅ Validate**: `node ../../scripts/validate-kits.js <file.kt>`
32
+ 5. **🔧 Fix** errors if any
33
+
34
+ ## Example Log Output
35
+ ```
36
+ 🤖 feedback: Starting
37
+ 📥 → references/popup.md
38
+ 📥 → ../references/constants.md
39
+ 📥 → ../references/developer/code-convention.md
40
+ ✏️ → Generating Popup component
41
+ 🏷️ → Applying AI Convention (header + markers)
42
+ ✅ → Validating (6 passed)
43
+ ```
@@ -12,8 +12,7 @@ fun PopupNotify(
12
12
 
13
13
  data class PopupNotifyProps(
14
14
  val title: String,
15
- val message: String? = null,
16
- val type: PopupNotifyType = PopupNotifyType.INFO,
15
+ val description: String? = null,
17
16
  val primary: PopupAction? = null,
18
17
  val secondary: PopupAction? = null,
19
18
  val onIconClose: (() -> Unit)? = null,
@@ -24,10 +23,6 @@ data class PopupAction(
24
23
  val title: String,
25
24
  val onPress: () -> Unit
26
25
  )
27
-
28
- enum class PopupNotifyType {
29
- SUCCESS, ERROR, WARNING, INFO
30
- }
31
26
  ```
32
27
 
33
28
  ## Basic
@@ -36,8 +31,7 @@ enum class PopupNotifyType {
36
31
  PopupNotify(
37
32
  props = PopupNotifyProps(
38
33
  title = "Thành công",
39
- message = "Giao dịch đã được xử lý",
40
- type = PopupNotifyType.SUCCESS,
34
+ description = "Giao dịch đã được xử lý",
41
35
  onIconClose = { showPopup = false }
42
36
  )
43
37
  )
@@ -49,8 +43,7 @@ PopupNotify(
49
43
  PopupNotify(
50
44
  props = PopupNotifyProps(
51
45
  title = "Xác nhận",
52
- message = "Bạn có chắc muốn xóa?",
53
- type = PopupNotifyType.WARNING,
46
+ description = "Bạn có chắc muốn xóa?",
54
47
  primary = PopupAction(title = "Xóa", onPress = { /* delete */ }),
55
48
  secondary = PopupAction(title = "Hủy", onPress = { /* cancel */ }),
56
49
  onIconClose = { showPopup = false }
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: form-controls
3
+ description: |
4
+ Button, Input, CheckBox, Radio, Switch, InputSearch, InputOTP, InputMoney, InputDropDown, InputPhoneNumber. Use vn.momo.kits. NEVER Material.
5
+ Triggers: button/input/checkbox/radio/switch/search/otp/money/dropdown/phone | nút bấm/ô nhập/ô tick/nút chọn/nút gạt/tìm kiếm/mã xác thực/tiền/chọn danh sách/số điện thoại
6
+ ---
7
+
8
+ # Form Controls
9
+
10
+ ## Prereqs
11
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
12
+ - NO: `Material3`, `Material2`
13
+ - Read [code-convention.md](../references/developer/code-convention.md)
14
+
15
+ ## Components
16
+ | Component | Ref |
17
+ |-----------|-----|
18
+ | Button | [button.md](references/button.md) |
19
+ | Input | [input.md](references/input.md) |
20
+ | CheckBox | [checkbox.md](references/checkbox.md) |
21
+ | Radio | [radio.md](references/radio.md) |
22
+ | Switch | [switch.md](references/switch.md) |
23
+ | Constants | [constants.md](../references/constants.md) |
24
+ | Design | [design-guidelines.md](../references/design-guidelines.md) |
25
+
26
+ ## Workflow (with logging)
27
+ 1. **📥 Read** component ref + [constants.md](../references/constants.md) + [code-convention.md](../references/developer/code-convention.md)
28
+ 2. **✏️ Generate** code per API
29
+ 3. **🏷️ Apply AI Convention**: Add file header + AI-GENERATED START/END markers (per code-convention.md)
30
+ 4. **✅ Validate**: `node ../../scripts/validate-kits.js <file.kt>`
31
+ 5. **🔧 Fix** errors if any
32
+
33
+ ## Example Log Output
34
+ ```
35
+ 🤖 form-controls: Starting
36
+ 📥 → references/switch.md
37
+ 📥 → ../references/constants.md
38
+ 📥 → ../references/developer/code-convention.md
39
+ ✏️ → Generating Switch component
40
+ 🏷️ → Applying AI Convention (header + markers)
41
+ ✅ → Validating (9 passed)
42
+ ```
@@ -121,8 +121,7 @@ Button(
121
121
  Button(
122
122
  onClick = { /* Will not trigger */ },
123
123
  title = "Không thể click",
124
- type = ButtonType.DISABLED,
125
- enabled = false
124
+ type = ButtonType.DISABLED
126
125
  )
127
126
  ```
128
127
 
@@ -154,7 +153,7 @@ fun LoginScreen() {
154
153
  modifier = Modifier.fillMaxWidth()
155
154
  )
156
155
 
157
- TextButton(
156
+ Button(
158
157
  onClick = { /* Navigate to forgot password */ },
159
158
  title = "Quên mật khẩu?",
160
159
  type = ButtonType.TEXT
@@ -326,11 +326,9 @@ fun InputPhoneNumber(
326
326
  text: MutableState<String>,
327
327
  onChangeText: (String) -> Unit,
328
328
  modifier: Modifier = Modifier,
329
- floatingValue: String = "",
330
329
  placeholder: String = "",
331
330
  error: String = "",
332
- enabled: Boolean = true,
333
- countryCode: String = "+84" // Default country code
331
+ enabled: Boolean = true
334
332
  )
335
333
  ```
336
334
 
@@ -342,9 +340,7 @@ val phone = remember { mutableStateOf("") }
342
340
  InputPhoneNumber(
343
341
  text = phone,
344
342
  onChangeText = { phone.value = it },
345
- floatingValue = "Số điện thoại",
346
- placeholder = "Nhập số điện thoại",
347
- countryCode = "+84"
343
+ placeholder = "Nhập số điện thoại"
348
344
  )
349
345
  ```
350
346
 
@@ -364,7 +360,7 @@ fun LoginForm() {
364
360
  InputPhoneNumber(
365
361
  text = phone,
366
362
  onChangeText = { phone.value = it },
367
- floatingValue = "Số điện thoại"
363
+ placeholder = "Số điện thoại"
368
364
  )
369
365
 
370
366
  Input(
@@ -7,12 +7,12 @@
7
7
  ```kotlin
8
8
  @Composable
9
9
  fun Radio(
10
- value: T, // Required: This radio's value
11
- onChange: (T) -> Unit, // Required: Selection callback
12
- groupValue: T, // Required: Currently selected value
13
- modifier: Modifier = Modifier,
14
- label: String = "", // Label text
15
- enabled: Boolean = true
10
+ value: Any, // Required: This radio's value
11
+ groupValue: Any, // Required: Currently selected value
12
+ disabled: Boolean = false, // Disabled state
13
+ onChange: () -> Unit = {}, // Selection callback (no param)
14
+ label: String = "", // Label text
15
+ modifier: Modifier = Modifier
16
16
  )
17
17
  ```
18
18
 
@@ -24,14 +24,14 @@ var selectedOption by remember { mutableStateOf("option1") }
24
24
  Column {
25
25
  Radio(
26
26
  value = "option1",
27
- onChange = { selectedOption = it },
27
+ onChange = { selectedOption = "option1" },
28
28
  groupValue = selectedOption,
29
29
  label = "Option 1"
30
30
  )
31
31
 
32
32
  Radio(
33
33
  value = "option2",
34
- onChange = { selectedOption = it },
34
+ onChange = { selectedOption = "option2" },
35
35
  groupValue = selectedOption,
36
36
  label = "Option 2"
37
37
  )
@@ -48,7 +48,7 @@ var gender by remember { mutableStateOf(Gender.MALE) }
48
48
  Gender.entries.forEach { g ->
49
49
  Radio(
50
50
  value = g,
51
- onChange = { gender = it },
51
+ onChange = { gender = g },
52
52
  groupValue = gender,
53
53
  label = when (g) {
54
54
  Gender.MALE -> "Nam"
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: layout
3
+ description: |
4
+ Card, Divider. Use vn.momo.kits. NEVER Material.
5
+ Triggers: card/divider | thẻ/khung/đường kẻ/bố cục
6
+ ---
7
+
8
+ # Layout
9
+
10
+ ## Prereqs
11
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
12
+ - NO: `Material3`, `Material2`
13
+ - Read [code-convention.md](../references/developer/code-convention.md)
14
+
15
+ ## Components
16
+ | Component | Ref |
17
+ |-----------|-----|
18
+ | Card | [card.md](references/card.md) |
19
+ | Divider | [divider.md](references/divider.md) |
20
+ | Constants | [constants.md](../references/constants.md) |
21
+ | Design | [design-guidelines.md](../references/design-guidelines.md) |
22
+
23
+ ## Workflow (with logging)
24
+ 1. **📥 Read** component ref + [constants.md](../references/constants.md) + [code-convention.md](../references/developer/code-convention.md)
25
+ 2. **✏️ Generate** code per API
26
+ 3. **🏷️ Apply AI Convention**: Add file header + AI-GENERATED START/END markers (per code-convention.md)
27
+ 4. **✅ Validate**: `node ../../scripts/validate-kits.js <file.kt>`
28
+ 5. **🔧 Fix** errors if any
29
+
30
+ ## Example Log Output
31
+ ```
32
+ 🤖 layout: Starting
33
+ 📥 → references/divider.md
34
+ 📥 → ../references/constants.md
35
+ 📥 → ../references/developer/code-convention.md
36
+ ✏️ → Generating Divider component
37
+ 🏷️ → Applying AI Convention (header + markers)
38
+ ✅ → Validating (5 passed)
39
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: navigation
3
+ description: |
4
+ BottomTab, Header, NavigationContainer, setOptions. Use vn.momo.kits. NEVER Material.
5
+ Triggers: bottomtab/header/navigation/navigator/setOptions | thanh điều hướng/tiêu đề/điều hướng/chuyển màn hình
6
+ ---
7
+
8
+ # Navigation
9
+
10
+ ## Prereqs
11
+ - Import: `vn.momo.kits.components`, `vn.momo.kits.const`
12
+ - NO: `Material3`, `Material2`
13
+ - Read [code-convention.md](../references/developer/code-convention.md)
14
+
15
+ ## Components
16
+ | Component | Ref |
17
+ |-----------|-----|
18
+ | Navigation | [navigation.md](references/navigation.md) |
19
+ | Constants | [constants.md](../references/constants.md) |
20
+ | Design | [design-guidelines.md](../references/design-guidelines.md) |
21
+
22
+ ## Workflow (with logging)
23
+ 1. **📥 Read** component ref + [constants.md](../references/constants.md) + [code-convention.md](../references/developer/code-convention.md)
24
+ 2. **✏️ Generate** code per API
25
+ 3. **🏷️ Apply AI Convention**: Add file header + AI-GENERATED START/END markers (per code-convention.md)
26
+ 4. **✅ Validate**: `node ../../scripts/validate-kits.js <file.kt>`
27
+ 5. **🔧 Fix** errors if any
28
+
29
+ ## Example Log Output
30
+ ```
31
+ 🤖 navigation: Starting
32
+ 📥 → references/navigation.md
33
+ 📥 → ../references/constants.md
34
+ 📥 → ../references/developer/code-convention.md
35
+ ✏️ → Generating BottomTab component
36
+ 🏷️ → Applying AI Convention (header + markers)
37
+ ✅ → Validating (4 passed)
38
+ ```
@@ -0,0 +1,12 @@
1
+ {
2
+ "timestamp": "2026-03-17T03:06:54.981Z",
3
+ "rules": {
4
+ "passed": 19,
5
+ "total": 19
6
+ },
7
+ "references": {
8
+ "passed": 16,
9
+ "total": 16
10
+ },
11
+ "testCases": 16
12
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "file": "sample/shared/src/commonMain/kotlin/screens/TestComponents.kt",
3
+ "validatedAt": "2026-03-17T03:10:45.378Z",
4
+ "summary": {
5
+ "total": 12,
6
+ "passed": 12,
7
+ "errors": 0,
8
+ "warnings": 0
9
+ },
10
+ "results": [
11
+ {
12
+ "id": "no-material-import",
13
+ "category": "Global",
14
+ "name": "No Material Design imports",
15
+ "severity": "error",
16
+ "passed": true,
17
+ "evidence": "No Material imports found"
18
+ },
19
+ {
20
+ "id": "no-material-components",
21
+ "category": "Global",
22
+ "name": "No Material components used",
23
+ "severity": "error",
24
+ "passed": true,
25
+ "evidence": "No Material components used"
26
+ },
27
+ {
28
+ "id": "momo-kits-import",
29
+ "category": "Global",
30
+ "name": "Uses vn.momo.kits imports",
31
+ "severity": "warning",
32
+ "passed": true,
33
+ "evidence": "Found vn.momo.kits imports"
34
+ },
35
+ {
36
+ "id": "button-no-text",
37
+ "category": "Button",
38
+ "name": "Button uses \"title\" (not \"text\")",
39
+ "severity": "error",
40
+ "passed": true,
41
+ "evidence": "Button uses correct param name"
42
+ },
43
+ {
44
+ "id": "button-no-enabled",
45
+ "category": "Button",
46
+ "name": "Button has no \"enabled\" param",
47
+ "severity": "error",
48
+ "passed": true,
49
+ "evidence": "No invalid \"enabled\" param on Button"
50
+ },
51
+ {
52
+ "id": "checkbox-no-enabled",
53
+ "category": "CheckBox",
54
+ "name": "CheckBox uses \"disabled\" (not \"enabled\")",
55
+ "severity": "error",
56
+ "passed": true,
57
+ "evidence": "CheckBox uses correct \"disabled\" param"
58
+ },
59
+ {
60
+ "id": "checkbox-no-modifier",
61
+ "category": "CheckBox",
62
+ "name": "CheckBox has no modifier param",
63
+ "severity": "warning",
64
+ "passed": true,
65
+ "evidence": "No invalid modifier on CheckBox"
66
+ },
67
+ {
68
+ "id": "phone-no-floatingValue",
69
+ "category": "InputPhoneNumber",
70
+ "name": "InputPhoneNumber has no floatingValue",
71
+ "severity": "error",
72
+ "passed": true,
73
+ "evidence": "No invalid floatingValue usage"
74
+ },
75
+ {
76
+ "id": "phone-no-countryCode",
77
+ "category": "InputPhoneNumber",
78
+ "name": "InputPhoneNumber has no countryCode",
79
+ "severity": "error",
80
+ "passed": true,
81
+ "evidence": "No invalid countryCode usage"
82
+ },
83
+ {
84
+ "id": "text-no-fontSize",
85
+ "category": "Text",
86
+ "name": "Text uses \"style\" (not \"fontSize\")",
87
+ "severity": "warning",
88
+ "passed": true,
89
+ "evidence": "Text typography usage looks correct"
90
+ },
91
+ {
92
+ "id": "state-remember",
93
+ "category": "State",
94
+ "name": "MutableState uses remember",
95
+ "severity": "warning",
96
+ "passed": true,
97
+ "evidence": "State properly wrapped in remember"
98
+ },
99
+ {
100
+ "id": "nav-no-scaffold",
101
+ "category": "Navigation",
102
+ "name": "No Scaffold (use NavigationContainer)",
103
+ "severity": "error",
104
+ "passed": true,
105
+ "evidence": "No Scaffold usage"
106
+ }
107
+ ]
108
+ }