@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.
- package/.claude/skills/momo-native-kits-skills/README.md +52 -0
- package/.claude/skills/momo-native-kits-skills/SKILL.md +32 -0
- package/.claude/skills/momo-native-kits-skills/data-display/SKILL.md +42 -0
- package/.claude/skills/momo-native-kits-skills/feedback/SKILL.md +43 -0
- package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/popup.md +3 -10
- package/.claude/skills/momo-native-kits-skills/form-controls/SKILL.md +42 -0
- package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/button.md +2 -3
- package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/input.md +3 -7
- package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/radio.md +9 -9
- package/.claude/skills/momo-native-kits-skills/layout/SKILL.md +39 -0
- package/.claude/skills/momo-native-kits-skills/navigation/SKILL.md +38 -0
- package/.claude/skills/momo-native-kits-skills/output/test-report.json +12 -0
- package/.claude/skills/momo-native-kits-skills/output/validation-result.json +108 -0
- package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills}/references/constants.md +81 -6
- package/.claude/skills/momo-native-kits-skills/references/design-guidelines.md +130 -0
- package/.claude/skills/momo-native-kits-skills/references/developer/android-compose.md +29 -0
- package/.claude/skills/momo-native-kits-skills/references/developer/code-convention.md +118 -0
- package/.claude/skills/momo-native-kits-skills/references/developer/compose-multiplatform.md +29 -0
- package/.claude/skills/momo-native-kits-skills/scripts/logger.js +63 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/badge.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/bottomtab.js +19 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/button.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/card.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/checkbox.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/chip.js +59 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/divider.js +19 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/global.js +61 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/index.js +54 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/input.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/navigation.js +48 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/popup.js +45 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/radio.js +105 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/skeleton.js +20 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/snackbar.js +32 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/state.js +21 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/switch.js +45 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/text.js +19 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/tooltip.js +45 -0
- package/.claude/skills/momo-native-kits-skills/scripts/rules/trustbanner.js +22 -0
- package/.claude/skills/momo-native-kits-skills/scripts/test-on-device.sh +117 -0
- package/.claude/skills/momo-native-kits-skills/scripts/test-runner.js +167 -0
- package/.claude/skills/momo-native-kits-skills/scripts/validate-kits.js +131 -0
- package/.momo-agent.json +13 -0
- package/build.gradle.kts +11 -0
- package/compose/build.gradle.kts +180 -0
- package/compose/build.gradle.kts.backup +180 -0
- package/compose/compose.podspec +54 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +110 -0
- package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
- package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +185 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +161 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +149 -0
- package/gradle/libs.versions.toml +57 -0
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +8 -0
- package/gradle.properties +26 -0
- package/gradlew +252 -0
- package/gradlew.bat +94 -0
- package/package.json +1 -1
- package/settings.gradle.kts +52 -0
- package/.claude/momo-native-kits-skill/SKILL.md +0 -51
- package/.claude/momo-native-kits-skill/evals/evals.json +0 -95
- package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.json +0 -20
- package/.claude/momo-native-kits-skill/workspace/iteration-1/benchmark.md +0 -13
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/with_skill/outputs/ButtonExample.kt +0 -55
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-0-button/without_skill/outputs/ButtonExample.kt +0 -45
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/with_skill/outputs/InputPhoneExample.kt +0 -40
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-1-input/without_skill/outputs/InputPhoneExample.kt +0 -42
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/with_skill/outputs/BottomTabExample.kt +0 -236
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-2-bottomtab/without_skill/outputs/BottomTabExample.kt +0 -152
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/with_skill/outputs/CheckBoxExample.kt +0 -49
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-3-checkbox/without_skill/outputs/CheckBoxExample.kt +0 -123
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/with_skill/outputs/DateTimePickerExample.kt +0 -318
- package/.claude/momo-native-kits-skill/workspace/iteration-1/eval-4-datetimepicker/without_skill/outputs/DateTimePickerExample.kt +0 -330
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/with_skill/outputs/CardExample.kt +0 -124
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-card/without_skill/outputs/CardExample.kt +0 -71
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/with_skill/outputs/LoginFormExample.kt +0 -134
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-loginform/without_skill/outputs/LoginFormExample.kt +0 -199
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +0 -224
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-navcontainer/without_skill/outputs/NavigationContainerExample.kt +0 -225
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/with_skill/outputs/PopupExample.kt +0 -79
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-popup/without_skill/outputs/PopupExample.kt +0 -169
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/eval_metadata.json +0 -6
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +0 -255
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +0 -212
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/with_skill/outputs/SkeletonExample.kt +0 -199
- package/.claude/momo-native-kits-skill/workspace/iteration-2/eval-skeleton/without_skill/outputs/SkeletonExample.kt +0 -229
- package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.json +0 -20
- package/.claude/momo-native-kits-skill/workspace/iteration-3/benchmark.md +0 -13
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/eval_metadata.json +0 -22
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/outputs/PrimaryButtonExample.kt +0 -38
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/with_skill/timing.json +0 -5
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/outputs/PrimaryButtonExample.kt +0 -83
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-button/without_skill/timing.json +0 -5
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/eval_metadata.json +0 -22
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/outputs/NavigationContainerExample.kt +0 -547
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/with_skill/timing.json +0 -5
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/outputs/MoMoNavigationContainer.kt +0 -519
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-navcontainer/without_skill/timing.json +0 -5
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/eval_metadata.json +0 -27
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/outputs/SetOptionsExample.kt +0 -429
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/with_skill/timing.json +0 -5
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/outputs/SetOptionsExample.kt +0 -353
- package/.claude/momo-native-kits-skill/workspace/iteration-3/eval-setoptions/without_skill/timing.json +0 -5
- package/.claude/settings.local.json +0 -41
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/badge.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/chip.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/skeleton.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/data-display}/references/text.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/snackbar.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/tooltip.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/feedback}/references/trustbanner.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/checkbox.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/form-controls}/references/switch.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/layout}/references/card.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/layout}/references/divider.md +0 -0
- /package/.claude/{momo-native-kits-skill → skills/momo-native-kits-skills/navigation}/references/navigation.md +0 -0
package/gradlew.bat
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
@rem
|
|
2
|
+
@rem Copyright 2015 the original author or authors.
|
|
3
|
+
@rem
|
|
4
|
+
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
@rem you may not use this file except in compliance with the License.
|
|
6
|
+
@rem You may obtain a copy of the License at
|
|
7
|
+
@rem
|
|
8
|
+
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
@rem
|
|
10
|
+
@rem Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
@rem See the License for the specific language governing permissions and
|
|
14
|
+
@rem limitations under the License.
|
|
15
|
+
@rem
|
|
16
|
+
@rem SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
@rem
|
|
18
|
+
|
|
19
|
+
@if "%DEBUG%"=="" @echo off
|
|
20
|
+
@rem ##########################################################################
|
|
21
|
+
@rem
|
|
22
|
+
@rem Gradle startup script for Windows
|
|
23
|
+
@rem
|
|
24
|
+
@rem ##########################################################################
|
|
25
|
+
|
|
26
|
+
@rem Set local scope for the variables with windows NT shell
|
|
27
|
+
if "%OS%"=="Windows_NT" setlocal
|
|
28
|
+
|
|
29
|
+
set DIRNAME=%~dp0
|
|
30
|
+
if "%DIRNAME%"=="" set DIRNAME=.
|
|
31
|
+
@rem This is normally unused
|
|
32
|
+
set APP_BASE_NAME=%~n0
|
|
33
|
+
set APP_HOME=%DIRNAME%
|
|
34
|
+
|
|
35
|
+
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
36
|
+
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
37
|
+
|
|
38
|
+
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
39
|
+
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
40
|
+
|
|
41
|
+
@rem Find java.exe
|
|
42
|
+
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
43
|
+
|
|
44
|
+
set JAVA_EXE=java.exe
|
|
45
|
+
%JAVA_EXE% -version >NUL 2>&1
|
|
46
|
+
if %ERRORLEVEL% equ 0 goto execute
|
|
47
|
+
|
|
48
|
+
echo. 1>&2
|
|
49
|
+
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
50
|
+
echo. 1>&2
|
|
51
|
+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
52
|
+
echo location of your Java installation. 1>&2
|
|
53
|
+
|
|
54
|
+
goto fail
|
|
55
|
+
|
|
56
|
+
:findJavaFromJavaHome
|
|
57
|
+
set JAVA_HOME=%JAVA_HOME:"=%
|
|
58
|
+
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
59
|
+
|
|
60
|
+
if exist "%JAVA_EXE%" goto execute
|
|
61
|
+
|
|
62
|
+
echo. 1>&2
|
|
63
|
+
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
64
|
+
echo. 1>&2
|
|
65
|
+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
66
|
+
echo location of your Java installation. 1>&2
|
|
67
|
+
|
|
68
|
+
goto fail
|
|
69
|
+
|
|
70
|
+
:execute
|
|
71
|
+
@rem Setup the command line
|
|
72
|
+
|
|
73
|
+
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@rem Execute Gradle
|
|
77
|
+
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
78
|
+
|
|
79
|
+
:end
|
|
80
|
+
@rem End local scope for the variables with windows NT shell
|
|
81
|
+
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
82
|
+
|
|
83
|
+
:fail
|
|
84
|
+
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
85
|
+
rem the _cmd.exe /c_ return code!
|
|
86
|
+
set EXIT_CODE=%ERRORLEVEL%
|
|
87
|
+
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
88
|
+
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
89
|
+
exit /b %EXIT_CODE%
|
|
90
|
+
|
|
91
|
+
:mainEnd
|
|
92
|
+
if "%OS%"=="Windows_NT" endlocal
|
|
93
|
+
|
|
94
|
+
:omega
|
package/package.json
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import org.gradle.kotlin.dsl.maven
|
|
2
|
+
|
|
3
|
+
rootProject.name = "momo-native-kits"
|
|
4
|
+
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
|
5
|
+
|
|
6
|
+
pluginManagement {
|
|
7
|
+
repositories {
|
|
8
|
+
google {
|
|
9
|
+
mavenContent {
|
|
10
|
+
includeGroupAndSubgroups("androidx")
|
|
11
|
+
includeGroupAndSubgroups("com.android")
|
|
12
|
+
includeGroupAndSubgroups("com.google")
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
mavenCentral()
|
|
16
|
+
gradlePluginPortal()
|
|
17
|
+
maven {
|
|
18
|
+
url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
|
|
19
|
+
credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
|
|
20
|
+
}
|
|
21
|
+
maven {
|
|
22
|
+
url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
|
|
23
|
+
isAllowInsecureProtocol = true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
dependencyResolutionManagement {
|
|
29
|
+
repositories {
|
|
30
|
+
google {
|
|
31
|
+
mavenContent {
|
|
32
|
+
includeGroupAndSubgroups("androidx")
|
|
33
|
+
includeGroupAndSubgroups("com.android")
|
|
34
|
+
includeGroupAndSubgroups("com.google")
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
mavenCentral()
|
|
38
|
+
maven {
|
|
39
|
+
url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
|
|
40
|
+
credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
|
|
41
|
+
}
|
|
42
|
+
maven {
|
|
43
|
+
url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
|
|
44
|
+
isAllowInsecureProtocol = true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
include(":compose")
|
|
50
|
+
|
|
51
|
+
include(":sample:androidApp")
|
|
52
|
+
include(":sample:shared")
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: momo-native-kits-skills
|
|
3
|
-
description: |
|
|
4
|
-
MoMo Native Kits UI Component Rendering - Generate correct, production-ready Kotlin/Compose code for MoMo UI Kit components.
|
|
5
|
-
|
|
6
|
-
Use when:
|
|
7
|
-
- User says "tạo button", "tạo nút bấm", "button component", "primary button"
|
|
8
|
-
- User says "tạo input", "tạo ô nhập liệu", "text field", "form input", "nhập số điện thoại"
|
|
9
|
-
- User says "tạo search", "ô tìm kiếm", "input search", "tìm kiếm"
|
|
10
|
-
- User says "tạo checkbox", "ô tick", "checkbox"
|
|
11
|
-
- User says "tạo radio", "nút chọn", "radio button"
|
|
12
|
-
- User says "tạo switch", "nút gạt", "toggle", "bật/tắt"
|
|
13
|
-
- User says "tạo chip", "chip", "label"
|
|
14
|
-
- User says "tạo card", "thẻ", "khung"
|
|
15
|
-
- User says "tạo divider", "đường kẻ", "phân cách", "line"
|
|
16
|
-
- User says "tạo skeleton", "loading view"
|
|
17
|
-
- User says "tạo badge", "thông báo", "nhãn", "nhãn hiệu"
|
|
18
|
-
- User says "tạo popup", "thông báo", "alert", "xác nhận"
|
|
19
|
-
- User says "tạo snackbar", "toast", "thông báo ngắn", "message"
|
|
20
|
-
- User says "tạo tooltip", "gợi ý", "help", "hướng dẫn"
|
|
21
|
-
- User says "tạo trustbanner", "bảo mật", "trust"
|
|
22
|
-
- User says "tạo navigation", "điều hướng", "Bottom Tab", "BottomNavigation", "tab bar"
|
|
23
|
-
- User says "NavigationContainer", "setOptions", "navigator.push", "pop", "present"
|
|
24
|
-
- User says "Header", "tiêu đề", "app bar", "header type"
|
|
25
|
-
- User says "Text", "Title", "typography", "font", "chữ"
|
|
26
|
-
- User says "màu sắc", "colors", "Spacing", "Radius", "theme"
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
# MoMo Native Kits UI Components
|
|
30
|
-
|
|
31
|
-
## Reference Files
|
|
32
|
-
|
|
33
|
-
| File | Description |
|
|
34
|
-
|------|-------------|
|
|
35
|
-
| [button.md](references/button.md) | Button - nút bấm |
|
|
36
|
-
| [input.md](references/input.md) | Input - các loại input |
|
|
37
|
-
| [text.md](references/text.md) | Text, Title, Typography |
|
|
38
|
-
| [checkbox.md](references/checkbox.md) | CheckBox - ô tick |
|
|
39
|
-
| [radio.md](references/radio.md) | Radio - nút chọn |
|
|
40
|
-
| [switch.md](references/switch.md) | Switch - nút gạt |
|
|
41
|
-
| [chip.md](references/chip.md) | Chip - tag, label |
|
|
42
|
-
| [card.md](references/card.md) | Card - thẻ, khung |
|
|
43
|
-
| [divider.md](references/divider.md) | Divider - đường kẻ |
|
|
44
|
-
| [skeleton.md](references/skeleton.md) | Skeleton - loading |
|
|
45
|
-
| [badge.md](references/badge.md) | Badge, BadgeDot |
|
|
46
|
-
| [trustbanner.md](references/trustbanner.md) | TrustBanner, Information |
|
|
47
|
-
| [popup.md](references/popup.md) | PopupNotify, PopupPromotion |
|
|
48
|
-
| [snackbar.md](references/snackbar.md) | SnackBar |
|
|
49
|
-
| [tooltip.md](references/tooltip.md) | Tooltip |
|
|
50
|
-
| [navigation.md](references/navigation.md) | Navigation, BottomTab, Header |
|
|
51
|
-
| [constants.md](references/constants.md) | Colors, Radius, Spacing, Typography |
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skill_name": "momo-native-kits-skills",
|
|
3
|
-
"evals": [
|
|
4
|
-
{
|
|
5
|
-
"id": 1,
|
|
6
|
-
"prompt": "Show me how to create a primary button with text 'Đăng nhập' in MoMo Native Kits",
|
|
7
|
-
"expected_output": "Kotlin code for Button component with ButtonType.PRIMARY, title='Đăng nhập', proper imports from vn.momo.kits.components",
|
|
8
|
-
"files": []
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"id": 2,
|
|
12
|
-
"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'",
|
|
13
|
-
"expected_output": "Kotlin code for Input component with label, placeholder, and keyboard type for phone",
|
|
14
|
-
"files": []
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"id": 3,
|
|
18
|
-
"prompt": "How do I implement a bottom tab navigation with 4 tabs: Home, Wallet, History, Profile in MoMo app?",
|
|
19
|
-
"expected_output": "Kotlin code for BottomTab with BottomTabItem list, proper navigation setup",
|
|
20
|
-
"files": []
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"id": 4,
|
|
24
|
-
"prompt": "Create a checkbox component for terms and conditions agreement",
|
|
25
|
-
"expected_output": "Kotlin code for CheckBox with label 'Tôi đồng ý với điều khoản'",
|
|
26
|
-
"files": []
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"id": 5,
|
|
30
|
-
"prompt": "Show me how to use the DateTimePicker component for date selection",
|
|
31
|
-
"expected_output": "Kotlin code for DateTimePicker with selectedDate, onDateSelected parameters",
|
|
32
|
-
"files": []
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"id": 6,
|
|
36
|
-
"prompt": "I need a search input field like the one in MoMo app",
|
|
37
|
-
"expected_output": "Kotlin code for InputSearch component with placeholder 'Tìm kiếm...'",
|
|
38
|
-
"files": []
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"id": 7,
|
|
42
|
-
"prompt": "How to create a modal screen in MoMo Native Kits?",
|
|
43
|
-
"expected_output": "Kotlin code for ModalScreen with onDismiss handler",
|
|
44
|
-
"files": []
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"id": 8,
|
|
48
|
-
"prompt": "Create a switch component for toggling dark mode",
|
|
49
|
-
"expected_output": "Kotlin code for Switch component with checked state and onCheckedChange callback",
|
|
50
|
-
"files": []
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"id": 9,
|
|
54
|
-
"prompt": "How to use setOptions in MoMo navigation? Show me how to change header title dynamically",
|
|
55
|
-
"expected_output": "Kotlin code showing setOptions in LaunchedEffect(Unit) with LocalNavigation.current",
|
|
56
|
-
"files": []
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"id": 10,
|
|
60
|
-
"prompt": "Create a login form with phone input and password input in MoMo Native Kits",
|
|
61
|
-
"expected_output": "Kotlin code with InputPhoneNumber, Input (password), and Button components",
|
|
62
|
-
"files": []
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": 11,
|
|
66
|
-
"prompt": "How to implement NavigationContainer in MoMo app? Show me the correct pattern",
|
|
67
|
-
"expected_output": "Kotlin code with single NavigationContainer, initialScreen, and NavigationOptions",
|
|
68
|
-
"files": []
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"id": 12,
|
|
72
|
-
"prompt": "Create a card component to display a list item with image and title",
|
|
73
|
-
"expected_output": "Kotlin code for Card with Image and Title inside",
|
|
74
|
-
"files": []
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"id": 13,
|
|
78
|
-
"prompt": "Show me how to use Navigator to push and pop screens in MoMo",
|
|
79
|
-
"expected_output": "Kotlin code showing navigator.push(), navigator.pop(), navigator.present()",
|
|
80
|
-
"files": []
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"id": 14,
|
|
84
|
-
"prompt": "Create a loading skeleton for a card component",
|
|
85
|
-
"expected_output": "Kotlin code with Skeleton components showing loading state",
|
|
86
|
-
"files": []
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"id": 15,
|
|
90
|
-
"prompt": "How to show a popup notification for success message in MoMo?",
|
|
91
|
-
"expected_output": "Kotlin code with PopupNotify and PopupNotifyProps",
|
|
92
|
-
"files": []
|
|
93
|
-
}
|
|
94
|
-
]
|
|
95
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
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 |
|
|
@@ -1,55 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
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
|
-
}
|