@momo-kits/native-kits 0.157.1-skill.1-debug → 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 (106) 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/compose/build.gradle.kts +1 -1
  69. package/gradle.properties +1 -1
  70. package/ios/Input/Input.swift +112 -50
  71. package/local.properties +1 -1
  72. package/package.json +1 -1
  73. package/.claude/momo-native-kits/SKILL.md +0 -87
  74. package/.claude/momo-native-kits/references/Badge.md +0 -39
  75. package/.claude/momo-native-kits/references/BadgeDot.md +0 -37
  76. package/.claude/momo-native-kits/references/BottomSheet.md +0 -51
  77. package/.claude/momo-native-kits/references/BottomTab.md +0 -65
  78. package/.claude/momo-native-kits/references/Button.md +0 -197
  79. package/.claude/momo-native-kits/references/CheckBox.md +0 -51
  80. package/.claude/momo-native-kits/references/Chip.md +0 -47
  81. package/.claude/momo-native-kits/references/Divider.md +0 -29
  82. package/.claude/momo-native-kits/references/HeaderTitle.md +0 -45
  83. package/.claude/momo-native-kits/references/HeaderType.md +0 -47
  84. package/.claude/momo-native-kits/references/Icon.md +0 -32
  85. package/.claude/momo-native-kits/references/Image.md +0 -38
  86. package/.claude/momo-native-kits/references/Information.md +0 -36
  87. package/.claude/momo-native-kits/references/Input.md +0 -334
  88. package/.claude/momo-native-kits/references/InputDropDown.md +0 -47
  89. package/.claude/momo-native-kits/references/InputMoney.md +0 -241
  90. package/.claude/momo-native-kits/references/InputOTP.md +0 -52
  91. package/.claude/momo-native-kits/references/InputPhoneNumber.md +0 -175
  92. package/.claude/momo-native-kits/references/InputSearch.md +0 -57
  93. package/.claude/momo-native-kits/references/InputTextArea.md +0 -46
  94. package/.claude/momo-native-kits/references/NavigationContainer.md +0 -51
  95. package/.claude/momo-native-kits/references/Navigator.md +0 -287
  96. package/.claude/momo-native-kits/references/PaginationDot.md +0 -28
  97. package/.claude/momo-native-kits/references/PaginationNumber.md +0 -28
  98. package/.claude/momo-native-kits/references/PopupNotify.md +0 -47
  99. package/.claude/momo-native-kits/references/Radio.md +0 -44
  100. package/.claude/momo-native-kits/references/Skeleton.md +0 -32
  101. package/.claude/momo-native-kits/references/Switch.md +0 -36
  102. package/.claude/momo-native-kits/references/Tag.md +0 -40
  103. package/.claude/momo-native-kits/references/Text.md +0 -37
  104. package/.claude/momo-native-kits/references/Title.md +0 -43
  105. package/.claude/momo-native-kits/references/Tooltip.md +0 -30
  106. package/building-skill-for-claude.md +0 -1190
@@ -0,0 +1,54 @@
1
+ # SnackBar
2
+
3
+ **File:** `vn.momo.kits/navigation/component/SnackBar.kt`
4
+
5
+ ## Parameters
6
+
7
+ ```kotlin
8
+ @Composable
9
+ fun SnackBar(
10
+ message: String,
11
+ modifier: Modifier = Modifier,
12
+ actionLabel: String? = null,
13
+ onActionClick: (() -> Unit)? = null,
14
+ duration: SnackBarDuration = SnackBarDuration.SHORT,
15
+ isError: Boolean = false
16
+ )
17
+
18
+ enum class SnackBarDuration {
19
+ SHORT, // 2 seconds
20
+ LONG, // 5 seconds
21
+ INDEFINITE // Until dismissed
22
+ }
23
+ ```
24
+
25
+ ## Basic
26
+
27
+ ```kotlin
28
+ SnackBar(
29
+ message = "Item deleted",
30
+ duration = SnackBarDuration.SHORT
31
+ )
32
+ ```
33
+
34
+ ## With Action
35
+
36
+ ```kotlin
37
+ SnackBar(
38
+ message = "Message deleted",
39
+ actionLabel = "Undo",
40
+ onActionClick = { /* undo */ },
41
+ duration = SnackBarDuration.SHORT
42
+ )
43
+ ```
44
+
45
+ ## Error
46
+
47
+ ```kotlin
48
+ SnackBar(
49
+ message = "Something went wrong",
50
+ isError = true,
51
+ actionLabel = "OK",
52
+ onActionClick = { /* dismiss */ }
53
+ )
54
+ ```
@@ -0,0 +1,62 @@
1
+ # Switch
2
+
3
+ **File:** `vn.momo/kits/components/Switch.kt`
4
+
5
+ ## Parameters
6
+
7
+ ```kotlin
8
+ @Composable
9
+ fun Switch(
10
+ checked: Boolean, // Required: Checked state
11
+ onCheckedChange: (Boolean) -> Unit,// Required: State change callback
12
+ modifier: Modifier = Modifier,
13
+ enabled: Boolean = true
14
+ )
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```kotlin
20
+ var isEnabled by remember { mutableStateOf(false) }
21
+
22
+ Row(
23
+ modifier = Modifier.fillMaxWidth(),
24
+ horizontalArrangement = Arrangement.SpaceBetween,
25
+ verticalAlignment = Alignment.CenterVertically
26
+ ) {
27
+ Text(text = "Dark Mode")
28
+ Switch(
29
+ checked = isEnabled,
30
+ onCheckedChange = { isEnabled = it }
31
+ )
32
+ }
33
+ ```
34
+
35
+ ## Settings Toggle
36
+
37
+ ```kotlin
38
+ @Composable
39
+ fun NotificationSettings() {
40
+ var pushEnabled by remember { mutableStateOf(true) }
41
+ var emailEnabled by remember { mutableStateOf(false) }
42
+
43
+ Column {
44
+ SettingRow("Push Notifications", pushEnabled) { pushEnabled = it }
45
+ Divider()
46
+ SettingRow("Email Notifications", emailEnabled) { emailEnabled = it }
47
+ }
48
+ }
49
+
50
+ @Composable
51
+ fun SettingRow(title: String, checked: Boolean, onCheckedChange: (Boolean) -> Unit) {
52
+ Row(
53
+ modifier = Modifier
54
+ .fillMaxWidth()
55
+ .padding(16.dp),
56
+ horizontalArrangement = Arrangement.SpaceBetween
57
+ ) {
58
+ Text(text = title)
59
+ Switch(checked = checked, onCheckedChange = onCheckedChange)
60
+ }
61
+ }
62
+ ```
@@ -0,0 +1,195 @@
1
+ # Display Components - Text & Typography
2
+
3
+ ## Overview
4
+
5
+ MoMo Native Kits provides text and typography components for consistent text styling across the app.
6
+
7
+ **Package:** `vn.momo.kits.components`
8
+
9
+ ---
10
+
11
+ ## Text Component
12
+
13
+ **File:** `vn/momo/kits/components/Text.kt`
14
+
15
+ ### Parameters
16
+
17
+ ```kotlin
18
+ @Composable
19
+ fun Text(
20
+ text: String, // Required: Text content
21
+ modifier: Modifier = Modifier,
22
+ color: Color = AppTheme.current.colors.text.default,
23
+ style: TextStyle = Typography.bodyDefault,
24
+ maxLines: Int = Int.MAX_VALUE,
25
+ overflow: TextOverflow = TextOverflow.Clip
26
+ )
27
+ ```
28
+
29
+ ### Usage Examples
30
+
31
+ ```kotlin
32
+ import vn.momo.kits.components.Text
33
+ import vn.momo.kits.const.Typography
34
+ import vn.momo.kits.const.Colors
35
+
36
+ // Basic text
37
+ Text(text = "Hello World")
38
+
39
+ // With custom style
40
+ Text(
41
+ text = "Styled text",
42
+ style = Typography.bodyBold
43
+ )
44
+
45
+ // With custom color
46
+ Text(
47
+ text = "Colored text",
48
+ color = Colors.pink_01
49
+ )
50
+
51
+ // With max lines
52
+ Text(
53
+ text = "Long text that might overflow",
54
+ maxLines = 2,
55
+ overflow = TextOverflow.Ellipsis
56
+ )
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Title Component
62
+
63
+ **File:** `vn/momo/kits/components/Title.kt`
64
+
65
+ ### Parameters
66
+
67
+ ```kotlin
68
+ @Composable
69
+ fun Title(
70
+ text: String, // Required: Title text
71
+ modifier: Modifier = Modifier,
72
+ type: TitleType = TitleType.TITLE_1, // Title type/size
73
+ color: Color = AppTheme.current.colors.text.default
74
+ )
75
+ ```
76
+
77
+ ### Title Types
78
+
79
+ | Type | Use Case |
80
+ |------|----------|
81
+ | `TITLE_1` | Main page titles |
82
+ | `TITLE_2` | Section headers |
83
+ | `TITLE_3` | Subsection headers |
84
+ | `TITLE_4` | Card titles |
85
+ | `TITLE_5` | Small titles |
86
+ | `TITLE_6` | Tiny titles |
87
+
88
+ ### Usage Examples
89
+
90
+ ```kotlin
91
+ import vn.momo.kits.components.Title
92
+ import vn.momo.kits.components.TitleType
93
+
94
+ // Main title
95
+ Title(
96
+ text = "Trang chủ",
97
+ type = TitleType.TITLE_1
98
+ )
99
+
100
+ // Section header
101
+ Title(
102
+ text = "Danh sách khuyến mãi",
103
+ type = TitleType.TITLE_2
104
+ )
105
+
106
+ // Card title
107
+ Title(
108
+ text = "Ưu đãi đặc biệt",
109
+ type = TitleType.TITLE_4
110
+ )
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Typography System
116
+
117
+ **File:** `vn.momo/kits/const/Typography.kt`
118
+
119
+ The typography system provides consistent text styles across the app.
120
+
121
+ ### Available Styles
122
+
123
+ | Style | Use Case |
124
+ |-------|----------|
125
+ | `headlineDefault` | Large headlines |
126
+ | `headlineDefaultBold` | Bold headlines |
127
+ | `titleDefault` | Default titles |
128
+ | `titleDefaultBold` | Bold titles |
129
+ | `bodyDefault` | Body text |
130
+ | `bodyBold` | Bold body text |
131
+ | `bodySmall` | Small body text |
132
+ | `actionDefault` | Action text |
133
+ | `actionDefaultBold` | Bold action text |
134
+ | `captionDefault` | Captions |
135
+ | `captionBold` | Bold captions |
136
+
137
+ ### Usage
138
+
139
+ ```kotlin
140
+ import vn.momo.kits.const.Typography
141
+
142
+ Text(
143
+ text = "Body text",
144
+ style = Typography.bodyDefault
145
+ )
146
+
147
+ Text(
148
+ text = "Caption",
149
+ style = Typography.captionDefault
150
+ )
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Real World Example
156
+
157
+ ```kotlin
158
+ @Composable
159
+ fun ArticleCard() {
160
+ Column(modifier = Modifier.padding(16.dp)) {
161
+ Title(
162
+ text = "Khuyến mãi mùa hè",
163
+ type = TitleType.TITLE_2
164
+ )
165
+
166
+ Spacer(modifier = Modifier.height(8.dp))
167
+
168
+ Text(
169
+ text = "Giảm giá lên đến 50% cho tất cả sản phẩm mùa hè. Áp dụng từ ngày 15/06 đến 30/08.",
170
+ style = Typography.bodyDefault,
171
+ color = AppTheme.current.colors.text.secondary,
172
+ maxLines = 3,
173
+ overflow = TextOverflow.Ellipsis
174
+ )
175
+
176
+ Spacer(modifier = Modifier.height(8.dp))
177
+
178
+ Text(
179
+ text = "Còn 2 ngày",
180
+ style = Typography.captionDefault,
181
+ color = Colors.pink_01
182
+ )
183
+ }
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Best Practices
190
+
191
+ 1. **Use Title for headings** - Semantic hierarchy
192
+ 2. **Use Typography constants** - Consistent styling
193
+ 3. **Use AppTheme colors** - Theme-aware text colors
194
+ 4. **Limit maxLines with overflow** - Prevent layout issues
195
+ 5. **Use appropriate title type** - Match visual hierarchy
@@ -0,0 +1,34 @@
1
+ # Tooltip
2
+
3
+ **File:** `vn.momo.kits/components/Tooltip.kt`
4
+
5
+ ## Parameters
6
+
7
+ ```kotlin
8
+ @Composable
9
+ fun Tooltip(
10
+ text: String,
11
+ modifier: Modifier = Modifier,
12
+ position: TooltipPosition = TooltipPosition.BOTTOM
13
+ )
14
+
15
+ enum class TooltipPosition {
16
+ TOP, BOTTOM, LEFT, RIGHT
17
+ }
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```kotlin
23
+ Row {
24
+ IconButton(
25
+ icon = "ic_help",
26
+ onClick = { /* Show help */ }
27
+ )
28
+
29
+ Tooltip(
30
+ text = "Click to get help",
31
+ position = TooltipPosition.RIGHT
32
+ )
33
+ }
34
+ ```
@@ -0,0 +1,61 @@
1
+ # TrustBanner
2
+
3
+ **File:** `vn.momo.kits/components/TrustBanner.kt`
4
+
5
+ ## Parameters
6
+
7
+ ```kotlin
8
+ @Composable
9
+ fun TrustBanner(
10
+ modifier: Modifier = Modifier,
11
+ title: String = "",
12
+ description: String = "",
13
+ icon: String? = null
14
+ )
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```kotlin
20
+ TrustBanner(
21
+ title = "Bảo mật thanh toán",
22
+ description = "Thông tin được mã hóa SSL",
23
+ icon = "ic_shield"
24
+ )
25
+ ```
26
+
27
+ ---
28
+
29
+ # Information
30
+
31
+ **File:** `vn.momo/kits/components/Information.kt`
32
+
33
+ ## Parameters
34
+
35
+ ```kotlin
36
+ @Composable
37
+ fun Information(
38
+ title: String,
39
+ modifier: Modifier = Modifier,
40
+ description: String? = null,
41
+ icon: String? = null,
42
+ type: InfoType = InfoType.INFO
43
+ )
44
+
45
+ enum class InfoType {
46
+ SUCCESS,
47
+ WARNING,
48
+ ERROR,
49
+ INFO
50
+ }
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ```kotlin
56
+ Information(
57
+ title = "Thành công",
58
+ description = "Giao dịch đã được xử lý",
59
+ type = InfoType.SUCCESS
60
+ )
61
+ ```
@@ -0,0 +1,20 @@
1
+ {
2
+ "metadata": {
3
+ "skill_name": "momo-native-kits-skills",
4
+ "skill_path": "<path/to/skill>",
5
+ "executor_model": "<model-name>",
6
+ "analyzer_model": "<model-name>",
7
+ "timestamp": "2026-03-16T07:03:41Z",
8
+ "evals_run": [],
9
+ "runs_per_configuration": 3
10
+ },
11
+ "runs": [],
12
+ "run_summary": {
13
+ "delta": {
14
+ "pass_rate": "+0.00",
15
+ "time_seconds": "+0.0",
16
+ "tokens": "+0"
17
+ }
18
+ },
19
+ "notes": []
20
+ }
@@ -0,0 +1,13 @@
1
+ # Skill Benchmark: momo-native-kits-skills
2
+
3
+ **Model**: <model-name>
4
+ **Date**: 2026-03-16T07:03:41Z
5
+ **Evals**: (3 runs each per configuration)
6
+
7
+ ## Summary
8
+
9
+ | Metric | Config A | Config B | Delta |
10
+ |--------|------------|---------------|-------|
11
+ | Pass Rate | 0% ± 0% | 0% ± 0% | +0.00 |
12
+ | Time | 0.0s ± 0.0s | 0.0s ± 0.0s | +0.0s |
13
+ | Tokens | 0 ± 0 | 0 ± 0 | +0 |
@@ -0,0 +1,6 @@
1
+ {
2
+ "eval_id": 0,
3
+ "eval_name": "button-primary",
4
+ "prompt": "Show me how to create a primary button with text 'Đăng nhập' in MoMo Native Kits",
5
+ "assertions": []
6
+ }
@@ -0,0 +1,55 @@
1
+ package com.example
2
+
3
+ import androidx.compose.foundation.layout.fillMaxWidth
4
+ import androidx.compose.foundation.layout.padding
5
+ import androidx.compose.runtime.Composable
6
+ import androidx.compose.ui.Modifier
7
+ import androidx.compose.ui.unit.dp
8
+ import vn.momo.kits.components.Button
9
+ import vn.momo.kits.components.ButtonType
10
+ import vn.momo.kits.components.Size
11
+
12
+ /**
13
+ * Example: Primary Button with text 'Đăng nhập'
14
+ *
15
+ * This demonstrates how to create a primary button in MoMo Native Kits
16
+ * with the Vietnamese text "Đăng nhập" (Login).
17
+ */
18
+ @Composable
19
+ fun LoginButtonExample() {
20
+ Button(
21
+ onClick = {
22
+ // Handle login action
23
+ },
24
+ title = "Đăng nhập",
25
+ type = ButtonType.PRIMARY,
26
+ size = Size.LARGE,
27
+ isFull = true,
28
+ modifier = Modifier
29
+ .fillMaxWidth()
30
+ .padding(horizontal = 16.dp)
31
+ )
32
+ }
33
+
34
+ /**
35
+ * Alternative example: Primary button with additional customization
36
+ */
37
+ @Composable
38
+ fun LoginButtonWithIconsExample() {
39
+ Button(
40
+ onClick = {
41
+ // Handle login action
42
+ },
43
+ title = "Đăng nhập",
44
+ type = ButtonType.PRIMARY,
45
+ size = Size.LARGE,
46
+ iconLeft = "user", // Optional: Add icon on the left
47
+ iconRight = "arrow_right", // Optional: Add icon on the right
48
+ loading = false, // Set to true when processing login
49
+ isFull = true,
50
+ useTintColor = true,
51
+ modifier = Modifier
52
+ .fillMaxWidth()
53
+ .padding(horizontal = 16.dp)
54
+ )
55
+ }
@@ -0,0 +1,45 @@
1
+ package com.momo.example
2
+
3
+ import androidx.compose.foundation.layout.fillWidth
4
+ import androidx.compose.foundation.layout.height
5
+ import androidx.compose.foundation.shape.RoundedCornerShape
6
+ import androidx.compose.material3.Button
7
+ import androidx.compose.material3.ButtonDefaults
8
+ import androidx.compose.material3.Text
9
+ import androidx.compose.runtime.Composable
10
+ import androidx.compose.ui.Modifier
11
+ import androidx.compose.ui.graphics.Color
12
+ import androidx.compose.ui.text.font.FontWeight
13
+ import androidx.compose.ui.unit.dp
14
+ import androidx.compose.ui.unit.sp
15
+
16
+ /**
17
+ * Primary button with Vietnamese text "Đăng nhập" (Login)
18
+ */
19
+ @Composable
20
+ fun PrimaryLoginButton(
21
+ onClick: () -> Unit,
22
+ modifier: Modifier = Modifier
23
+ ) {
24
+ Button(
25
+ onClick = onClick,
26
+ modifier = modifier
27
+ .fillWidth()
28
+ .height(48.dp),
29
+ shape = RoundedCornerShape(8.dp),
30
+ colors = ButtonDefaults.buttonColors(
31
+ containerColor = Color(0xFFAD0000), // MoMo's primary red color
32
+ contentColor = Color.White
33
+ ),
34
+ elevation = ButtonDefaults.buttonElevation(
35
+ defaultElevation = 2.dp,
36
+ pressedElevation = 4.dp
37
+ )
38
+ ) {
39
+ Text(
40
+ text = "Đăng nhập",
41
+ fontSize = 16.sp,
42
+ fontWeight = FontWeight.SemiBold
43
+ )
44
+ }
45
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "eval_id": 1,
3
+ "eval_name": "input-phone",
4
+ "prompt": "I need an input field for phone number with label 'Số điện thoại' and placeholder 'Nhập số điện thoại'",
5
+ "assertions": []
6
+ }
@@ -0,0 +1,40 @@
1
+ package com.example
2
+
3
+ import androidx.compose.foundation.layout.Column
4
+ import androidx.compose.foundation.layout.fillMaxWidth
5
+ import androidx.compose.foundation.layout.padding
6
+ import androidx.compose.foundation.text.KeyboardOptions
7
+ import androidx.compose.runtime.Composable
8
+ import androidx.compose.runtime.getValue
9
+ import androidx.compose.runtime.mutableStateOf
10
+ import androidx.compose.runtime.remember
11
+ import androidx.compose.runtime.setValue
12
+ import androidx.compose.ui.Modifier
13
+ import androidx.compose.ui.text.input.KeyboardType
14
+ import androidx.compose.ui.unit.dp
15
+ import vn.momo.kits.components.Input
16
+
17
+ @Composable
18
+ fun InputPhoneExample() {
19
+ var phoneNumber by remember { mutableStateOf("") }
20
+
21
+ Column(
22
+ modifier = Modifier
23
+ .fillMaxWidth()
24
+ .padding(16.dp)
25
+ ) {
26
+ Input(
27
+ value = phoneNumber,
28
+ onValueChange = { newValue ->
29
+ // Filter to only allow digits
30
+ phoneNumber = newValue.filter { it.isDigit() }
31
+ },
32
+ modifier = Modifier.fillMaxWidth(),
33
+ inputSize = vn.momo.kits.components.InputSize.LARGE,
34
+ label = "Số điện thoại",
35
+ placeholder = "Nhập số điện thoại",
36
+ keyboardType = KeyboardType.Phone,
37
+ maxLength = 10
38
+ )
39
+ }
40
+ }
@@ -0,0 +1,42 @@
1
+ package com.example.input
2
+
3
+ import androidx.compose.foundation.layout.Column
4
+ import androidx.compose.foundation.layout.fillMaxWidth
5
+ import androidx.compose.foundation.layout.padding
6
+ import androidx.compose.foundation.text.KeyboardOptions
7
+ import androidx.compose.material.OutlinedTextField
8
+ import androidx.compose.material.Text
9
+ import androidx.compose.runtime.Composable
10
+ import androidx.compose.runtime.getValue
11
+ import androidx.compose.runtime.mutableStateOf
12
+ import androidx.compose.runtime.remember
13
+ import androidx.compose.runtime.setValue
14
+ import androidx.compose.ui.Modifier
15
+ import androidx.compose.ui.text.input.KeyboardType
16
+ import androidx.compose.ui.unit.dp
17
+
18
+ @Composable
19
+ fun InputPhoneExample() {
20
+ var phoneNumber by remember { mutableStateOf("") }
21
+
22
+ Column(
23
+ modifier = Modifier
24
+ .fillMaxWidth()
25
+ .padding(16.dp)
26
+ ) {
27
+ OutlinedTextField(
28
+ value = phoneNumber,
29
+ onValueChange = { newValue ->
30
+ // Filter to only allow numeric characters
31
+ phoneNumber = newValue.filter { it.isDigit() }
32
+ },
33
+ label = { Text("Số điện thoại") },
34
+ placeholder = { Text("Nhập số điện thoại") },
35
+ keyboardOptions = KeyboardOptions(
36
+ keyboardType = KeyboardType.Phone
37
+ ),
38
+ singleLine = true,
39
+ modifier = Modifier.fillMaxWidth()
40
+ )
41
+ }
42
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "eval_id": 2,
3
+ "eval_name": "bottom-tab",
4
+ "prompt": "How do I implement a bottom tab navigation with 4 tabs: Home, Wallet, History, Profile in MoMo app?",
5
+ "assertions": []
6
+ }