@momo-kits/native-kits 0.157.1-skill.1 → 0.157.1-skill.3-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 (220) hide show
  1. package/.claude/momo-native-kits-skill/SKILL.md +51 -0
  2. package/.claude/momo-native-kits-skill/evals/evals.json +95 -0
  3. package/.claude/momo-native-kits-skill/references/badge.md +52 -0
  4. package/.claude/momo-native-kits-skill/references/button.md +182 -0
  5. package/.claude/momo-native-kits-skill/references/card.md +48 -0
  6. package/.claude/momo-native-kits-skill/references/checkbox.md +51 -0
  7. package/.claude/momo-native-kits-skill/references/chip.md +48 -0
  8. package/.claude/momo-native-kits-skill/references/constants.md +260 -0
  9. package/.claude/momo-native-kits-skill/references/divider.md +26 -0
  10. package/.claude/momo-native-kits-skill/references/input.md +408 -0
  11. package/.claude/momo-native-kits-skill/references/navigation.md +475 -0
  12. package/.claude/momo-native-kits-skill/references/popup.md +97 -0
  13. package/.claude/momo-native-kits-skill/references/radio.md +60 -0
  14. package/.claude/momo-native-kits-skill/references/skeleton.md +40 -0
  15. package/.claude/momo-native-kits-skill/references/snackbar.md +54 -0
  16. package/.claude/momo-native-kits-skill/references/switch.md +62 -0
  17. package/.claude/momo-native-kits-skill/references/text.md +195 -0
  18. package/.claude/momo-native-kits-skill/references/tooltip.md +34 -0
  19. package/.claude/momo-native-kits-skill/references/trustbanner.md +61 -0
  20. package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.json +20 -0
  21. package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.md +13 -0
  22. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/eval_metadata.json +6 -0
  23. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/with_skill/outputs/ButtonExample.kt +55 -0
  24. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/without_skill/outputs/ButtonExample.kt +45 -0
  25. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/eval_metadata.json +6 -0
  26. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/with_skill/outputs/InputPhoneExample.kt +40 -0
  27. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/without_skill/outputs/InputPhoneExample.kt +42 -0
  28. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/eval_metadata.json +6 -0
  29. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/with_skill/outputs/BottomTabExample.kt +236 -0
  30. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/without_skill/outputs/BottomTabExample.kt +152 -0
  31. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/eval_metadata.json +6 -0
  32. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/with_skill/outputs/CheckBoxExample.kt +49 -0
  33. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/without_skill/outputs/CheckBoxExample.kt +123 -0
  34. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/eval_metadata.json +6 -0
  35. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/with_skill/outputs/DateTimePickerExample.kt +318 -0
  36. package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/without_skill/outputs/DateTimePickerExample.kt +330 -0
  37. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/with_skill/outputs/CardExample.kt +124 -0
  38. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/without_skill/outputs/CardExample.kt +71 -0
  39. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/with_skill/outputs/LoginFormExample.kt +134 -0
  40. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/without_skill/outputs/LoginFormExample.kt +199 -0
  41. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +224 -0
  42. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/without_skill/outputs/NavigationContainerExample.kt +225 -0
  43. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/with_skill/outputs/PopupExample.kt +79 -0
  44. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/without_skill/outputs/PopupExample.kt +169 -0
  45. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/eval_metadata.json +6 -0
  46. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +255 -0
  47. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +212 -0
  48. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/with_skill/outputs/SkeletonExample.kt +199 -0
  49. package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/without_skill/outputs/SkeletonExample.kt +229 -0
  50. package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.json +20 -0
  51. package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.md +13 -0
  52. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/eval_metadata.json +22 -0
  53. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/outputs/PrimaryButtonExample.kt +38 -0
  54. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/timing.json +5 -0
  55. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/outputs/PrimaryButtonExample.kt +83 -0
  56. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/timing.json +5 -0
  57. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/eval_metadata.json +22 -0
  58. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +547 -0
  59. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/timing.json +5 -0
  60. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/outputs/MoMoNavigationContainer.kt +519 -0
  61. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/timing.json +5 -0
  62. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/eval_metadata.json +27 -0
  63. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +429 -0
  64. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/timing.json +5 -0
  65. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +353 -0
  66. package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/timing.json +5 -0
  67. package/.claude/settings.local.json +35 -7
  68. package/build.gradle.kts +11 -0
  69. package/compose/build.gradle.kts +180 -0
  70. package/compose/build.gradle.kts.backup +180 -0
  71. package/compose/compose.podspec +54 -0
  72. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +110 -0
  73. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  74. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  75. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  76. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  77. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  78. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  79. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  80. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  81. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  82. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  83. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  84. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  85. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  86. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  130. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  131. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  132. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  133. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  134. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  135. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
  136. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  137. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  138. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  139. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  140. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  141. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  142. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  143. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
  144. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +185 -0
  145. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  146. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  147. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  148. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  149. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
  150. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  151. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  152. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  153. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  154. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  155. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
  156. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
  157. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
  158. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +161 -0
  159. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
  160. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
  161. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  162. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
  163. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  164. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  165. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
  166. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  167. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  168. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
  169. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  170. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  171. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
  172. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  173. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  174. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  175. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  176. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +149 -0
  177. package/gradle/libs.versions.toml +57 -0
  178. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  179. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  180. package/gradle.properties +26 -0
  181. package/gradlew +252 -0
  182. package/gradlew.bat +94 -0
  183. package/ios/Input/Input.swift +112 -50
  184. package/local.properties +8 -0
  185. package/package.json +1 -1
  186. package/settings.gradle.kts +52 -0
  187. package/.claude/momo-native-kits/SKILL.md +0 -87
  188. package/.claude/momo-native-kits/references/Badge.md +0 -39
  189. package/.claude/momo-native-kits/references/BadgeDot.md +0 -37
  190. package/.claude/momo-native-kits/references/BottomSheet.md +0 -51
  191. package/.claude/momo-native-kits/references/BottomTab.md +0 -65
  192. package/.claude/momo-native-kits/references/Button.md +0 -197
  193. package/.claude/momo-native-kits/references/CheckBox.md +0 -51
  194. package/.claude/momo-native-kits/references/Chip.md +0 -47
  195. package/.claude/momo-native-kits/references/Divider.md +0 -29
  196. package/.claude/momo-native-kits/references/HeaderTitle.md +0 -45
  197. package/.claude/momo-native-kits/references/HeaderType.md +0 -47
  198. package/.claude/momo-native-kits/references/Icon.md +0 -32
  199. package/.claude/momo-native-kits/references/Image.md +0 -38
  200. package/.claude/momo-native-kits/references/Information.md +0 -36
  201. package/.claude/momo-native-kits/references/Input.md +0 -334
  202. package/.claude/momo-native-kits/references/InputDropDown.md +0 -47
  203. package/.claude/momo-native-kits/references/InputMoney.md +0 -241
  204. package/.claude/momo-native-kits/references/InputOTP.md +0 -52
  205. package/.claude/momo-native-kits/references/InputPhoneNumber.md +0 -175
  206. package/.claude/momo-native-kits/references/InputSearch.md +0 -57
  207. package/.claude/momo-native-kits/references/InputTextArea.md +0 -46
  208. package/.claude/momo-native-kits/references/NavigationContainer.md +0 -51
  209. package/.claude/momo-native-kits/references/Navigator.md +0 -287
  210. package/.claude/momo-native-kits/references/PaginationDot.md +0 -28
  211. package/.claude/momo-native-kits/references/PaginationNumber.md +0 -28
  212. package/.claude/momo-native-kits/references/PopupNotify.md +0 -47
  213. package/.claude/momo-native-kits/references/Radio.md +0 -44
  214. package/.claude/momo-native-kits/references/Skeleton.md +0 -32
  215. package/.claude/momo-native-kits/references/Switch.md +0 -36
  216. package/.claude/momo-native-kits/references/Tag.md +0 -40
  217. package/.claude/momo-native-kits/references/Text.md +0 -37
  218. package/.claude/momo-native-kits/references/Title.md +0 -43
  219. package/.claude/momo-native-kits/references/Tooltip.md +0 -30
  220. package/building-skill-for-claude.md +0 -1190
@@ -1,175 +0,0 @@
1
- ---
2
- name: input-phone-number
3
- description: Phone number input with automatic +84 prefix. Use when collecting Vietnamese phone numbers.
4
- ---
5
-
6
- # InputPhoneNumber
7
-
8
- Phone number input field with automatic +84 country code prefix and Vietnam flag icon.
9
-
10
- ## API
11
-
12
- ```kotlin
13
- @Composable
14
- fun InputPhoneNumber(
15
- text: MutableState<String> = remember { mutableStateOf("") },
16
- placeholder: String = "0123456789",
17
- size: InputPhoneNumberSize = InputPhoneNumberSize.SMALL,
18
- onChangeText: (String) -> Unit = {},
19
- hintText: String = "",
20
- error: String = "",
21
- errorSpacing: Boolean = false,
22
- icon: String = "",
23
- iconColor: Color = AppTheme.current.colors.text.default,
24
- onRightIconPressed: () -> Unit = {},
25
- onFocus: () -> Unit = {},
26
- onBlur: () -> Unit = {},
27
- loading: Boolean = false,
28
- modifier: Modifier = Modifier,
29
- inputModifier: Modifier = Modifier,
30
- )
31
- ```
32
-
33
- ## Props
34
-
35
- | Prop | Type | Default | Description |
36
- |------|------|---------|-------------|
37
- | `text` | `MutableState<String>` | `""` | Current text value (required) |
38
- | `placeholder` | `String` | `"0123456789"` | Placeholder text |
39
- | `size` | `InputPhoneNumberSize` | `SMALL` | Input height |
40
- | `onChangeText` | `(String) -> Unit` | `{}` | Text change callback |
41
- | `hintText` | `String` | `""` | Hint text below input |
42
- | `error` | `String` | `""` | Error message |
43
- | `errorSpacing` | `Boolean` | `false` | Show spacing for error |
44
- | `icon` | `String` | `""` | Right icon name |
45
- | `iconColor` | `Color` | default color | Right icon color |
46
- | `onRightIconPressed` | `() -> Unit` | `{}` | Right icon click |
47
- | `onFocus` | `() -> Unit` | `{}` | Focus callback |
48
- | `onBlur` | `() -> Unit` | `{}` | Blur callback |
49
- | `loading` | `Boolean` | `false` | Loading spinner |
50
- | `modifier` | `Modifier` | `Modifier` | Outer modifier |
51
- | `inputModifier` | `Modifier` | `Modifier` | Input field modifier |
52
-
53
- ## InputPhoneNumberSize
54
-
55
- | Size | Height | Text Style | Divider Height |
56
- |------|--------|------------|----------------|
57
- | `SMALL` | 48dp | headerSSemibold | 24dp |
58
- | `LARGE` | 56dp | headerMBold | 32dp |
59
-
60
- ## Features
61
-
62
- - **Auto +84 prefix**: Automatically adds "+84" country code prefix
63
- - **Vietnam flag**: Shows Vietnam flag icon next to country code
64
- - **Number-only keyboard**: Automatically uses numeric keyboard
65
- - **Auto-clear**: Shows clear button when focused with text
66
-
67
- ## Examples
68
-
69
- ### Basic Usage
70
-
71
- ```kotlin
72
- val phone = remember { mutableStateOf("") }
73
-
74
- InputPhoneNumber(
75
- text = phone,
76
- onChangeText = { phone.value = it }
77
- )
78
- ```
79
-
80
- ### With Placeholder
81
-
82
- ```kotlin
83
- val phone = remember { mutableStateOf("") }
84
-
85
- InputPhoneNumber(
86
- text = phone,
87
- placeholder = "Enter phone number",
88
- onChangeText = { phone.value = it }
89
- )
90
- ```
91
-
92
- ### With Error
93
-
94
- ```kotlin
95
- val phone = remember { mutableStateOf("") }
96
-
97
- InputPhoneNumber(
98
- text = phone,
99
- error = "Invalid phone number",
100
- errorSpacing = true,
101
- onChangeText = { phone.value = it }
102
- )
103
- ```
104
-
105
- ### Sizes
106
-
107
- ```kotlin
108
- // Small (default - 48dp)
109
- InputPhoneNumber(
110
- text = phone,
111
- size = InputPhoneNumberSize.SMALL,
112
- onChangeText = { phone.value = it }
113
- )
114
-
115
- // Large (56dp)
116
- InputPhoneNumber(
117
- text = phone,
118
- size = InputPhoneNumberSize.LARGE,
119
- onChangeText = { phone.value = it }
120
- )
121
- ```
122
-
123
- ### With Right Icon
124
-
125
- ```kotlin
126
- InputPhoneNumber(
127
- text = phone,
128
- icon = "close",
129
- onRightIconPressed = { phone.value = "" },
130
- onChangeText = { phone.value = it }
131
- )
132
- ```
133
-
134
- ### Focus Callbacks
135
-
136
- ```kotlin
137
- InputPhoneNumber(
138
- text = phone,
139
- onFocus = { /* show keyboard */ },
140
- onBlur = { /* validate phone */ },
141
- onChangeText = { phone.value = it }
142
- )
143
- ```
144
-
145
- ### Loading State
146
-
147
- ```kotlin
148
- InputPhoneNumber(
149
- text = phone,
150
- loading = true,
151
- onChangeText = { phone.value = it }
152
- )
153
- ```
154
-
155
- ### Hint Text
156
-
157
- ```kotlin
158
- InputPhoneNumber(
159
- text = phone,
160
- hintText = "Enter 10-digit phone number",
161
- onChangeText = { phone.value = it }
162
- )
163
- ```
164
-
165
- ## How It Works
166
-
167
- 1. User types 9 digits (e.g., "912345678")
168
- 2. Component automatically prepends "+84" (e.g., "+84912345678")
169
- 3. Display shows: "+84 912 345 678" (formatted)
170
-
171
- ## Auto-Clear Behavior
172
-
173
- When focused with text:
174
- - Clear icon appears on the right
175
- - Clicking clears the text and triggers `onChangeText("")`
@@ -1,57 +0,0 @@
1
- ---
2
- name: input-search
3
- description: Search input with built-in search icon and clear button. Use when implementing search functionality.
4
- ---
5
-
6
- # InputSearch
7
-
8
- Search input with built-in search icon and clear button.
9
-
10
- ## Keywords
11
-
12
- search, tìm kiếm, ô tìm kiếm
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun InputSearch(
19
- inputSearchProps: InputSearchProps = InputSearchProps(
20
- text = remember { mutableStateOf("") }
21
- ),
22
- )
23
-
24
- data class InputSearchProps(
25
- val text: MutableState<String>,
26
- val placeholder: String = "",
27
- val onChangeText: (String) -> Unit = {},
28
- val onClearPress: () -> Unit = {},
29
- val loading: Boolean = false,
30
- val disabled: Boolean = false,
31
- val buttonText: String = "",
32
- val showButtonText: Boolean = false,
33
- // ... more options
34
- )
35
- ```
36
-
37
- ## Features
38
-
39
- - Built-in search icon
40
- - Auto clear button when focused with text
41
- - Loading state support
42
- - Custom right icon support
43
-
44
- ## Examples
45
-
46
- ```kotlin
47
- val searchText = remember { mutableStateOf("") }
48
-
49
- InputSearch(
50
- inputSearchProps = InputSearchProps(
51
- text = searchText,
52
- placeholder = "Search...",
53
- onChangeText = { searchText.value = it },
54
- onClearPress = { searchText.value = "" }
55
- )
56
- )
57
- ```
@@ -1,46 +0,0 @@
1
- ---
2
- name: input-text-area
3
- description: Multi-line text area input. Use when user needs to enter longer text descriptions.
4
- ---
5
-
6
- # InputTextArea
7
-
8
- Multi-line text area input.
9
-
10
- ## Keywords
11
-
12
- textarea, text area, mô tả, description, nhập mô tả
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun InputTextArea(
19
- text: MutableState<String>,
20
- floatingValue: String = "",
21
- placeholder: String = "",
22
- maxLength: Int = 300,
23
- onChangeText: (String) -> Unit = {},
24
- error: String = "",
25
- )
26
- ```
27
-
28
- ## Features
29
-
30
- - Multi-line input
31
- - Character count display (e.g., "50/300")
32
- - Max length enforcement
33
-
34
- ## Examples
35
-
36
- ```kotlin
37
- val description = remember { mutableStateOf("") }
38
-
39
- InputTextArea(
40
- text = description,
41
- floatingValue = "Description",
42
- placeholder = "Enter description...",
43
- maxLength = 300,
44
- onChangeText = { description.value = it }
45
- )
46
- ```
@@ -1,51 +0,0 @@
1
- ---
2
- name: navigation-container
3
- description: Entry point for Compose screens. Use when setting up the main container for a Compose-based screen.
4
- ---
5
-
6
- # NavigationContainer
7
-
8
- Entry point for Compose screens.
9
-
10
- ## Keywords
11
-
12
- navigation, container, screen, màn hình
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun NavigationContainer(
19
- initialScreen: @Composable () -> Unit,
20
- options: NavigationOptions? = null,
21
- initialTheme: Theme = defaultTheme,
22
- applicationContext: MiniAppContext? = null,
23
- maxApi: IMaxApi? = null,
24
- setNavigator: ((Navigator) -> Unit)? = null,
25
- statusBarHeight: Dp? = null,
26
- config: KitConfig? = null,
27
- language: String? = null
28
- )
29
- ```
30
-
31
- ## Parameters
32
-
33
- | Parameter | Type | Description |
34
- |-----------|------|-------------|
35
- | `initialScreen` | `@Composable () -> Unit` | Initial screen |
36
- | `options` | `NavigationOptions?` | Navigation options |
37
- | `maxApi` | `IMaxApi?` | Required for native features |
38
- | `config` | `KitConfig?` | UI configuration |
39
- | `language` | `String?` | Current language |
40
-
41
- ## Examples
42
-
43
- ```kotlin
44
- NavigationContainer(
45
- initialScreen = { HomeScreen() },
46
- maxApi = maxApi,
47
- config = config,
48
- language = language,
49
- setNavigator = { navigator = it }
50
- )
51
- ```
@@ -1,287 +0,0 @@
1
- ---
2
- name: navigator
3
- description: Class for managing navigation between screens. Use when navigating between screens, showing modals, bottom sheets, or snackbars.
4
- ---
5
-
6
- # Navigator
7
-
8
- Class for managing navigation between screens, modals, bottom sheets, and snackbars.
9
-
10
- ## API
11
-
12
- ```kotlin
13
- class Navigator(
14
- private val navController: NavController,
15
- private val maxApi: IMaxApi?
16
- )
17
- ```
18
-
19
- ## Methods
20
-
21
- ### Screen Navigation
22
-
23
- | Method | Parameters | Description |
24
- |--------|------------|-------------|
25
- | `push` | `content: @Composable () -> Unit, options: NavigationOptions? = null` | Push new screen to stack |
26
- | `replace` | `content: @Composable () -> Unit, options: NavigationOptions? = null` | Replace current screen |
27
- | `pop` | `count: Int = 1, callBack: (() -> Unit)? = null` | Pop N screens from stack |
28
- | `present` | `content: @Composable () -> Unit, options: NavigationOptions? = null` | Present as dialog |
29
- | `reset` | `content: @Composable () -> Unit, options: NavigationOptions? = null` | Reset to new screen (clear stack) |
30
- | `onBackSafe` | `callBack: (() -> Unit)? = null` | Handle back with optional callback |
31
-
32
- ### Overlay Components
33
-
34
- | Method | Parameters | Description |
35
- |--------|------------|-------------|
36
- | `showModal` | `content, barrierDismissible = true, onDismiss = null` | Show modal overlay |
37
- | `showBottomSheet` | `content, isSurface, barrierDismissible, onDismiss, bottomSheetHeader` | Show bottom sheet |
38
- | `showSnackBar` | `snackBar: SnackBar, onDismiss = null` | Show snackbar notification |
39
- | `hideSnackBar` | - | Hide current snackbar |
40
-
41
- ## NavigationOptions
42
-
43
- ```kotlin
44
- data class NavigationOptions(
45
- val headerBackProps: HeaderBackProps? = null,
46
- val onBackHandler: (() -> Unit)? = null,
47
- // ... other options
48
- )
49
- ```
50
-
51
- ## Usage
52
-
53
- ### Get Navigator Instance
54
-
55
- ```kotlin
56
- // From NavigationContainer
57
- NavigationContainer(
58
- initialScreen = { MyScreen() },
59
- setNavigator = { navigator = it }
60
- )
61
-
62
- // Or use composition local
63
- val navigator = Navigator.current
64
- ```
65
-
66
- ### Push Screen
67
-
68
- ```kotlin
69
- // Simple push
70
- navigator.push { MyScreen() }
71
-
72
- // With options
73
- navigator.push(
74
- content = { DetailScreen(productId) },
75
- options = NavigationOptions(
76
- headerBackProps = HeaderBackProps(
77
- title = "Product Details",
78
- preventBack = PreventBackConfirm(
79
- primary = PopupAction(title = "Leave", onPress = { })
80
- )
81
- )
82
- )
83
- )
84
- ```
85
-
86
- ### Replace Screen
87
-
88
- ```kotlin
89
- // Replace current screen (pops then pushes)
90
- navigator.replace { NewScreen() }
91
- ```
92
-
93
- ### Pop Screen
94
-
95
- ```kotlin
96
- // Pop 1 screen
97
- navigator.pop()
98
-
99
- // Pop 2 screens
100
- navigator.pop(2)
101
-
102
- // Pop with callback
103
- navigator.pop(1) {
104
- // Called after pop completes
105
- }
106
- ```
107
-
108
- ### Present Dialog
109
-
110
- ```kotlin
111
- navigator.present {
112
- DialogContent()
113
- }
114
- ```
115
-
116
- ### Reset Stack
117
-
118
- ```kotlin
119
- // Clear all screens and navigate to new screen
120
- navigator.reset { HomeScreen() }
121
- ```
122
-
123
- ### Safe Back Handler
124
-
125
- ```kotlin
126
- // Handle back with confirmation if needed
127
- navigator.onBackSafe {
128
- // Callback after back completes
129
- }
130
- ```
131
-
132
- ## BottomSheet
133
-
134
- ```kotlin
135
- // Simple bottom sheet
136
- navigator.showBottomSheet(
137
- content = { MyContent() }
138
- )
139
-
140
- // With header
141
- navigator.showBottomSheet(
142
- content = { MyContent() },
143
- bottomSheetHeader = BottomHeader.Title("Select Option")
144
- )
145
-
146
- // Surface style (different background)
147
- navigator.showBottomSheet(
148
- content = { MyContent() },
149
- isSurface = true
150
- )
151
-
152
- // Not dismissible
153
- navigator.showBottomSheet(
154
- content = { MyContent() },
155
- barrierDismissible = false,
156
- onDismiss = { /* handle dismiss */ }
157
- )
158
- ```
159
-
160
- ## BottomHeader
161
-
162
- ```kotlin
163
- // Title header
164
- BottomHeader.Title("Title")
165
-
166
- // Custom header
167
- BottomHeader.Custom {
168
- MyHeaderContent()
169
- }
170
- ```
171
-
172
- ## Modal
173
-
174
- ```kotlin
175
- // Simple modal
176
- navigator.showModal(
177
- content = { MyModalContent() }
178
- )
179
-
180
- // Not dismissible
181
- navigator.showModal(
182
- content = { MyModalContent() },
183
- barrierDismissible = false,
184
- onDismiss = { /* handle dismiss */ }
185
- )
186
- ```
187
-
188
- ## SnackBar
189
-
190
- ```kotlin
191
- // Success snackbar
192
- navigator.showSnackBar(
193
- snackBar = SnackBar(
194
- message = "Saved successfully",
195
- type = SnackBar.Type.SUCCESS
196
- )
197
- )
198
-
199
- // Error snackbar
200
- navigator.showSnackBar(
201
- snackBar = SnackBar(
202
- message = "Something went wrong",
203
- type = SnackBar.Type.ERROR
204
- )
205
- )
206
-
207
- // Info snackbar
208
- navigator.showSnackBar(
209
- snackBar = SnackBar(
210
- message = "Processing...",
211
- type = SnackBar.Type.INFO
212
- )
213
- )
214
-
215
- // With action button
216
- navigator.showSnackBar(
217
- snackBar = SnackBar(
218
- message = "Item deleted",
219
- action = SnackBar.Action(
220
- title = "UNDO",
221
- onPress = { /* undo */ }
222
- )
223
- )
224
- )
225
-
226
- // Hide snackbar
227
- navigator.hideSnackBar()
228
- ```
229
-
230
- ## SnackBar Type
231
-
232
- | Type | Description |
233
- |------|-------------|
234
- | `SUCCESS` | Green color, success messages |
235
- | `ERROR` | Red color, error messages |
236
- | `INFO` | Default color, informational |
237
- | `WARNING` | Warning messages |
238
-
239
- ## Common Patterns
240
-
241
- ### Navigate with Result
242
-
243
- ```kotlin
244
- // Push screen and handle result
245
- navigator.push {
246
- SelectScreen(
247
- onResult = { selected ->
248
- // Handle result
249
- navigator.pop()
250
- }
251
- )
252
- }
253
- ```
254
-
255
- ### Confirm Before Back
256
-
257
- ```kotlin
258
- navigator.push(
259
- content = { EditScreen() },
260
- options = NavigationOptions(
261
- onBackHandler = {
262
- showUnsavedChangesDialog()
263
- },
264
- headerBackProps = HeaderBackProps(
265
- preventBack = PreventBackConfirm(
266
- primary = PopupAction(
267
- title = "Discard",
268
- onPress = { navigator.pop() }
269
- )
270
- )
271
- )
272
- )
273
- )
274
- ```
275
-
276
- ### Nested Navigation
277
-
278
- ```kotlin
279
- // Present login as modal
280
- navigator.present {
281
- LoginScreen(
282
- onSuccess = {
283
- navigator.pop()
284
- }
285
- )
286
- }
287
- ```
@@ -1,28 +0,0 @@
1
- ---
2
- name: pagination-dot
3
- description: Pagination component showing dots. Use when implementing carousel-style pagination.
4
- ---
5
-
6
- # PaginationDot
7
-
8
- Pagination component showing dots.
9
-
10
- ## Keywords
11
-
12
- pagination dots, dot pagination
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun PaginationDot(
19
- activeIndex: Int = 0,
20
- dataLength: Int = 3
21
- )
22
- ```
23
-
24
- ## Examples
25
-
26
- ```kotlin
27
- PaginationDot(activeIndex = currentPage, dataLength = totalPages)
28
- ```
@@ -1,28 +0,0 @@
1
- ---
2
- name: pagination-number
3
- description: Pagination component showing page numbers. Use when displaying current page position (e.g., "1/5").
4
- ---
5
-
6
- # PaginationNumber
7
-
8
- Pagination component showing page numbers.
9
-
10
- ## Keywords
11
-
12
- pagination, page, trang
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun PaginationNumber(
19
- activeIndex: Int = 0,
20
- dataLength: Int = 2
21
- )
22
- ```
23
-
24
- ## Examples
25
-
26
- ```kotlin
27
- PaginationNumber(activeIndex = 0, dataLength = 5) // Shows "1/5"
28
- ```
@@ -1,47 +0,0 @@
1
- ---
2
- name: popup-notify
3
- description: Confirm popup component. Use when showing confirmation dialogs, warnings, or alert popups.
4
- ---
5
-
6
- # PopupNotify
7
-
8
- Confirm popup component.
9
-
10
- ## Keywords
11
-
12
- popup, confirm, xác nhận, thông báo
13
-
14
- ## API
15
-
16
- ```kotlin
17
- @Composable
18
- fun PopupNotify(
19
- title: String = "",
20
- content: String = "",
21
- primary: PopupAction? = null,
22
- secondary: PopupAction? = null,
23
- type: PopupNotifyType = PopupNotifyType.DEFAULT
24
- )
25
-
26
- data class PopupAction(
27
- val title: String,
28
- val onPress: (() -> Unit)? = null,
29
- val type: PopupActionType = PopupActionType.PRIMARY
30
- )
31
-
32
- enum class PopupNotifyType { DEFAULT, WARNING, ERROR }
33
- enum class PopupActionType { PRIMARY, SECONDARY }
34
- ```
35
-
36
- ## Examples
37
-
38
- ```kotlin
39
- navigator.showModal {
40
- PopupNotify(
41
- title = "Confirm",
42
- content = "Are you sure?",
43
- primary = PopupAction(title = "Confirm", onClick = { }),
44
- secondary = PopupAction(title = "Cancel", type = PopupActionType.SECONDARY)
45
- )
46
- }
47
- ```