@momo-kits/native-kits 0.162.2-beta.26 → 0.162.2-beta.27-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 (315) hide show
  1. package/CLAUDE.md +1 -1
  2. package/build.gradle.kts +11 -0
  3. package/compose/build.gradle.kts +190 -0
  4. package/compose/build.gradle.kts.backup +190 -0
  5. package/compose/compose.podspec +47 -0
  6. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +6 -0
  7. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +123 -0
  8. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  9. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  10. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  11. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  12. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  20. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +52 -0
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +101 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +183 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +207 -0
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +39 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +294 -0
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +826 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Localize.kt +269 -0
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +107 -0
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +378 -0
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +82 -0
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +338 -0
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +175 -0
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +356 -0
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +113 -0
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +89 -0
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +128 -0
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +209 -0
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +140 -0
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +231 -0
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +112 -0
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +477 -0
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +114 -0
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +214 -0
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +240 -0
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +216 -0
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +259 -0
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +182 -0
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +343 -0
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +84 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +328 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +97 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +310 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +59 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +90 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +323 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +217 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +473 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +122 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +199 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +91 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +470 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +88 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +131 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +203 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +498 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +175 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +182 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +193 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +234 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +188 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +16 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +188 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +270 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +52 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +66 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +104 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +48 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +253 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +129 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +100 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +154 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +360 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +8 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +581 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +156 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +225 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +169 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +320 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +81 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +309 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +34 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +360 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +128 -0
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +70 -0
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +58 -0
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +55 -0
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +105 -0
  128. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +32 -0
  129. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +184 -0
  130. package/gradle/libs.versions.toml +69 -0
  131. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  132. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  133. package/gradle.properties +26 -0
  134. package/gradlew +252 -0
  135. package/gradlew.bat +94 -0
  136. package/ios/Application/ApplicationEnvironment.swift +0 -11
  137. package/ios/Application/Components.swift +44 -34
  138. package/ios/Application/FloatingButton.swift +9 -10
  139. package/ios/Application/HeaderRight.swift +45 -79
  140. package/ios/Application/Screen.swift +1 -2
  141. package/ios/Badge/Badge.swift +14 -11
  142. package/ios/Badge/BadgeRibbon.swift +21 -12
  143. package/ios/Button/Button.swift +22 -61
  144. package/ios/Checkbox/Checkbox.swift +13 -14
  145. package/ios/Chip/Chip.swift +9 -23
  146. package/ios/Colors+Radius+Spacing/Colors.swift +12 -12
  147. package/ios/Extensions/Color++.swift +0 -32
  148. package/ios/Icon/Icon.swift +1 -6
  149. package/ios/Input/Input.swift +25 -41
  150. package/ios/Input/InputPhoneNumber.swift +19 -20
  151. package/ios/Input/InputSearch.swift +47 -100
  152. package/ios/Input/InputTextArea.swift +40 -66
  153. package/ios/Popup/PopupDisplay.swift +16 -8
  154. package/ios/Popup/PopupInput.swift +8 -2
  155. package/ios/Swipeable/SwipeCell.swift +0 -185
  156. package/ios/Swipeable/SwipeCellModel.swift +0 -21
  157. package/ios/Typography/Text.swift +5 -79
  158. package/ios/Typography/Typography.swift +0 -3
  159. package/ios/native-kits.podspec +8 -61
  160. package/package.json +1 -1
  161. package/publish.sh +0 -50
  162. package/settings.gradle.kts +64 -0
  163. package/.claude/settings.local.json +0 -39
  164. package/ios/Application/Navigation/BottomTab/BottomTab.swift +0 -103
  165. package/ios/Application/Navigation/BottomTab/BottomTabBar.swift +0 -215
  166. package/ios/Application/Navigation/BottomTab/CurvedContainer.swift +0 -65
  167. package/ios/Application/Navigation/HeaderBackProps.swift +0 -66
  168. package/ios/Application/Navigation/HeaderTitle.swift +0 -57
  169. package/ios/Application/Navigation/HeaderUser.swift +0 -209
  170. package/ios/Application/Navigation/NavigationContainer.swift +0 -176
  171. package/ios/Application/Navigation/NavigationOptions.swift +0 -109
  172. package/ios/Application/Navigation/Navigator.swift +0 -364
  173. package/ios/Application/Navigation/Overplay/BottomSheet.swift +0 -188
  174. package/ios/Application/Navigation/Overplay/ModalScreen.swift +0 -68
  175. package/ios/Application/Navigation/Overplay/SnackBar.swift +0 -144
  176. package/ios/Application/Navigation/component/Header.swift +0 -178
  177. package/ios/Application/Navigation/component/HeaderBackground.swift +0 -83
  178. package/ios/Application/Navigation/component/HeaderColor.swift +0 -65
  179. package/ios/Application/StackScreen.swift +0 -453
  180. package/ios/Avatar/Avatar.swift +0 -193
  181. package/ios/BaselineView/BaselineView.swift +0 -163
  182. package/ios/Carousel/Carousel.swift +0 -181
  183. package/ios/Collapse/Collapse.swift +0 -182
  184. package/ios/Colors+Radius+Spacing/Theme.swift +0 -295
  185. package/ios/DateTimePicker/DateTimePicker.swift +0 -210
  186. package/ios/DateTimePicker/DateTimePickerTypes.swift +0 -55
  187. package/ios/DateTimePicker/DateTimePickerUtils.swift +0 -167
  188. package/ios/DateTimePicker/WheelPicker.swift +0 -161
  189. package/ios/Divider/Divider.swift +0 -16
  190. package/ios/IconButton/IconButton.swift +0 -112
  191. package/ios/InputDropDown/InputDropDown.swift +0 -198
  192. package/ios/InputMoney/InputMoney.swift +0 -335
  193. package/ios/InputOTP/InputOTP.swift +0 -210
  194. package/ios/Loader/Loader.swift +0 -113
  195. package/ios/MoMoUIKits.podspec +0 -5
  196. package/ios/Pagination/PaginationDot.swift +0 -61
  197. package/ios/Pagination/PaginationNumber.swift +0 -35
  198. package/ios/Pagination/PaginationScroll.swift +0 -101
  199. package/ios/Pagination/PaginationWhiteDot.swift +0 -37
  200. package/ios/Popup/PopupNotify.swift +0 -219
  201. package/ios/ProgressInfo/ProgressInfo.swift +0 -294
  202. package/ios/Radio/Radio.swift +0 -70
  203. package/ios/Rating/Rating.swift +0 -82
  204. package/ios/Resources/MoMoUIKitsColors.xcassets/AccentColor.colorset/Contents.json +0 -11
  205. package/ios/Resources/MoMoUIKitsColors.xcassets/Background.colorset/Contents.json +0 -38
  206. package/ios/Resources/MoMoUIKitsColors.xcassets/Border.colorset/Contents.json +0 -38
  207. package/ios/Resources/MoMoUIKitsColors.xcassets/Card.colorset/Contents.json +0 -38
  208. package/ios/Resources/MoMoUIKitsColors.xcassets/Contents.json +0 -6
  209. package/ios/Resources/MoMoUIKitsColors.xcassets/Error.colorset/Contents.json +0 -38
  210. package/ios/Resources/MoMoUIKitsColors.xcassets/Primary.colorset/Contents.json +0 -38
  211. package/ios/Resources/MoMoUIKitsColors.xcassets/PrimaryDark.colorset/Contents.json +0 -38
  212. package/ios/Resources/MoMoUIKitsColors.xcassets/PrimaryLight.colorset/Contents.json +0 -38
  213. package/ios/Resources/MoMoUIKitsColors.xcassets/Secondary.colorset/Contents.json +0 -38
  214. package/ios/Resources/MoMoUIKitsColors.xcassets/Success.colorset/Contents.json +0 -38
  215. package/ios/Resources/MoMoUIKitsColors.xcassets/Text.colorset/Contents.json +0 -38
  216. package/ios/Resources/MoMoUIKitsColors.xcassets/TextSecondary.colorset/Contents.json +0 -38
  217. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/Contents.json +0 -9
  218. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-default.colorset/Contents.json +0 -38
  219. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-disable.colorset/Contents.json +0 -38
  220. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-pressed.colorset/Contents.json +0 -38
  221. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-selected.colorset/Contents.json +0 -38
  222. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-surface.colorset/Contents.json +0 -38
  223. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-tonal.colorset/Contents.json +0 -38
  224. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-default.colorset/Contents.json +0 -38
  225. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-disable.colorset/Contents.json +0 -38
  226. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/gradient.colorset/Contents.json +0 -38
  227. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/primary.colorset/Contents.json +0 -38
  228. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/secondary.colorset/Contents.json +0 -38
  229. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-container.colorset/Contents.json +0 -38
  230. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-primary.colorset/Contents.json +0 -38
  231. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-secondary.colorset/Contents.json +0 -38
  232. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-default.colorset/Contents.json +0 -38
  233. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-disable.colorset/Contents.json +0 -38
  234. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-hint.colorset/Contents.json +0 -38
  235. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-secondary.colorset/Contents.json +0 -38
  236. package/ios/Resources/MoMoUIKitsColors.xcassets/Warning.colorset/Contents.json +0 -38
  237. package/ios/Skeleton/Skeleton.swift +0 -99
  238. package/ios/Slider/Slider.swift +0 -237
  239. package/ios/Stepper/Stepper.swift +0 -220
  240. package/ios/Steps/Steps.swift +0 -451
  241. package/ios/SuggestAction/SuggestAction.swift +0 -97
  242. package/ios/TabView/TabView.swift +0 -530
  243. package/ios/Tag/Tag.swift +0 -98
  244. package/ios/Title/Title.swift +0 -269
  245. package/ios/Tooltip/Tooltip.swift +0 -482
  246. package/ios/Typography/FontScaleStore.swift +0 -19
  247. package/ios/Uploader/Uploader.swift +0 -183
  248. package/ios-demo/MoMoUIKitsDemo.podspec +0 -20
  249. package/ios-demo/Resources/dot_loading.json +0 -558
  250. package/ios-demo/Resources/icon.json +0 -4052
  251. package/ios-demo/Resources/lottie_circle_loader.json +0 -1
  252. package/ios-demo/Sources/MoMoUIKitsDemo/DemoScaffold.swift +0 -48
  253. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsBadgeDemoView.swift +0 -25
  254. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsButtonDemoView.swift +0 -26
  255. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsCheckboxDemoView.swift +0 -19
  256. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsChipDemoView.swift +0 -33
  257. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsInputDemoView.swift +0 -48
  258. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsPopupDemoView.swift +0 -21
  259. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsRadioDemoView.swift +0 -17
  260. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsTypographyDemoView.swift +0 -28
  261. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoContext.swift +0 -31
  262. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoFactory.swift +0 -24
  263. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AnimatedHeaderDemo.swift +0 -110
  264. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AvatarDemo.swift +0 -93
  265. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BadgeDemo.swift +0 -269
  266. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BaselineView.swift +0 -117
  267. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BottomTabDemo.swift +0 -89
  268. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ButtonDemo.swift +0 -100
  269. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CarouselDemo.swift +0 -126
  270. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CheckboxDemo.swift +0 -63
  271. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ChipDemo.swift +0 -20
  272. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CollapseDemo.swift +0 -93
  273. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ContentView.swift +0 -107
  274. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DateTimePickerDemo.swift +0 -124
  275. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DividerDemo.swift +0 -14
  276. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/HeaderUserDemo.swift +0 -49
  277. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/Home.swift +0 -278
  278. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/IconButtonDemo.swift +0 -58
  279. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ImageDemo.swift +0 -78
  280. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InformationDemo.swift +0 -138
  281. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDemo.swift +0 -111
  282. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDropDownDemo.swift +0 -136
  283. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputMoneyDemo.swift +0 -107
  284. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputOTPDemo.swift +0 -73
  285. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputPhoneNumberDemo.swift +0 -100
  286. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputSearchDemo.swift +0 -32
  287. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputTextAreaDemo.swift +0 -57
  288. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/LoaderDemo.swift +0 -70
  289. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/NavigationDemo.swift +0 -227
  290. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PaginationDemo.swift +0 -72
  291. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupDisplayDemo.swift +0 -175
  292. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupNotifyDemo.swift +0 -121
  293. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupPromotionDemo.swift +0 -76
  294. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ProgressInfoDemo.swift +0 -89
  295. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RadioDemo.swift +0 -32
  296. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RatingDemo.swift +0 -56
  297. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SkeletonDemo.swift +0 -32
  298. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SliderDemo.swift +0 -150
  299. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SnackBarDemo.swift +0 -138
  300. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepperDemo.swift +0 -103
  301. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepsDemo.swift +0 -94
  302. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SuggestActionDemo.swift +0 -79
  303. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwipeDemo.swift +0 -152
  304. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwitchDemo.swift +0 -33
  305. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TabViewDemo.swift +0 -190
  306. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TagDemo.swift +0 -34
  307. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ThemeDemo.swift +0 -182
  308. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TitleDemo.swift +0 -109
  309. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TooltipDemo.swift +0 -187
  310. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TypographyDemo.swift +0 -87
  311. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/UploaderDemo.swift +0 -131
  312. package/ios-demo/Sources/MoMoUIKitsDemo/SwiftUIDemoBrowserView.swift +0 -51
  313. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoModels.swift +0 -15
  314. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoRegistry.swift +0 -73
  315. package/scripts/gen-ios-color.mjs +0 -136
@@ -1 +0,0 @@
1
- {"v":"5.10.2","fr":30,"ip":0,"op":20,"w":100,"h":100,"nm":"Spinner3.1_Refine","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":12,"ty":4,"nm":"loading 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0],"e":[360]},{"t":20}],"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[44.124,44.124,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90,90],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.996078431373,0.956862745098,0.980392156863,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[44.124,44.124],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[20],"e":[0]},{"t":20}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[35],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[50],"e":[35]},{"t":20}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":20,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"loading 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0],"e":[360]},{"t":20}],"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[44.124,44.124,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90,90],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.98431372549,0.835294117647,0.917647058824,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[44.124,44.124],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[20],"e":[0]},{"t":20}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[35],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[50],"e":[35]},{"t":20}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":20,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"base pink 2","sr":1,"ks":{"o":{"a":0,"k":40,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[44.124,44.124,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90,90],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.996078431373,0.972549019608,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[44.124,44.124],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":0,"ct":1,"bm":0}],"markers":[]}
@@ -1,48 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct DemoScaffold<Content: View>: View {
5
- let title: String
6
- let content: Content
7
-
8
- init(title: String, @ViewBuilder content: () -> Content) {
9
- self.title = title
10
- self.content = content()
11
- }
12
-
13
- var body: some View {
14
- ScrollView {
15
- VStack(alignment: .leading, spacing: 16) {
16
- MomoText(title, typography: .headlineDefaultBold)
17
- content
18
- }
19
- .frame(maxWidth: .infinity, alignment: .leading)
20
- .padding(16)
21
- }
22
- .background(defaultTheme.colors.background.default.ignoresSafeArea())
23
- .navigationTitle(title)
24
- .navigationBarTitleDisplayMode(.inline)
25
- }
26
- }
27
-
28
- struct DemoSection<Content: View>: View {
29
- let title: String
30
- let content: Content
31
-
32
- init(_ title: String, @ViewBuilder content: () -> Content) {
33
- self.title = title
34
- self.content = content()
35
- }
36
-
37
- var body: some View {
38
- VStack(alignment: .leading, spacing: 12) {
39
- MomoText(title, typography: .headerDefaultBold)
40
- content
41
- }
42
- .frame(maxWidth: .infinity, alignment: .leading)
43
- .padding(16)
44
- .background(defaultTheme.colors.background.surface)
45
- .clipShape(RoundedRectangle(cornerRadius: Radius.S, style: .continuous))
46
- }
47
- }
48
-
@@ -1,25 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsBadgeDemoView: View {
5
- var body: some View {
6
- DemoScaffold(title: "Badge") {
7
- DemoSection("Numeric") {
8
- HStack(spacing: 12) {
9
- Badge(label: "1")
10
- Badge(label: "12")
11
- Badge(label: "100")
12
- }
13
- }
14
-
15
- DemoSection("Labels") {
16
- HStack(spacing: 12) {
17
- Badge(label: "New")
18
- Badge(label: "Hot", backgroundColor: Colors.pink03)
19
- Badge(label: "Sale", backgroundColor: Colors.orange03)
20
- }
21
- }
22
- }
23
- }
24
- }
25
-
@@ -1,26 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsButtonDemoView: View {
5
- var body: some View {
6
- DemoScaffold(title: "Button") {
7
- DemoSection("Types") {
8
- MoMoUIKits.Button(title: "Primary Button", action: {})
9
- MoMoUIKits.Button(title: "Secondary Button", action: {}, type: .secondary)
10
- MoMoUIKits.Button(title: "Tonal Button", action: {}, type: .tonal)
11
- MoMoUIKits.Button(title: "Outline Button", action: {}, type: .outline)
12
- MoMoUIKits.Button(title: "Danger Button", action: {}, type: .danger)
13
- MoMoUIKits.Button(title: "Text Button", action: {}, type: .text)
14
- MoMoUIKits.Button(title: "Disabled Button", action: {}, type: .disabled)
15
- }
16
-
17
- DemoSection("Sizes and Loading") {
18
- MoMoUIKits.Button(title: "Large", action: {}, size: .large)
19
- MoMoUIKits.Button(title: "Medium", action: {}, size: .medium)
20
- MoMoUIKits.Button(title: "Small", action: {}, size: .small)
21
- MoMoUIKits.Button(title: "Loading", action: {}, loading: true)
22
- }
23
- }
24
- }
25
- }
26
-
@@ -1,19 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsCheckboxDemoView: View {
5
- @State private var checked = true
6
- @State private var unchecked = false
7
-
8
- var body: some View {
9
- DemoScaffold(title: "Checkbox") {
10
- DemoSection("States") {
11
- Checkbox($checked, title: "Checked")
12
- Checkbox($unchecked, title: "Unchecked")
13
- Checkbox(.constant(true), disabled: true, title: "Disabled checked")
14
- Checkbox(.constant(true), indeterminate: true, title: "Indeterminate")
15
- }
16
- }
17
- }
18
- }
19
-
@@ -1,33 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsChipDemoView: View {
5
- @State private var selected = "All"
6
-
7
- var body: some View {
8
- DemoScaffold(title: "Chip") {
9
- DemoSection("Selectable") {
10
- HStack(spacing: 8) {
11
- chip("All")
12
- chip("Active")
13
- chip("Done")
14
- }
15
- }
16
-
17
- DemoSection("Sizes") {
18
- HStack(spacing: 8) {
19
- Chip(label: "Large", size: .large)
20
- Chip(label: "Small", size: .small)
21
- Chip(label: "Selected", selected: true, size: .large)
22
- }
23
- }
24
- }
25
- }
26
-
27
- private func chip(_ label: String) -> some View {
28
- Chip(label: label, selected: selected == label) {
29
- selected = label
30
- }
31
- }
32
- }
33
-
@@ -1,48 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsInputDemoView: View {
5
- @State private var text = ""
6
- @State private var phone = "0987654321"
7
- @State private var password = "momokits"
8
-
9
- var body: some View {
10
- DemoScaffold(title: "Input") {
11
- DemoSection("Text Input") {
12
- Input(
13
- text: $text,
14
- placeholder: "Enter text",
15
- hintText: "Hint text",
16
- onChangeText: { text = $0 }
17
- )
18
- Input(
19
- text: $phone,
20
- placeholder: "Phone number",
21
- floatingValue: "Phone",
22
- keyboardType: .phonePad,
23
- onChangeText: { phone = $0 }
24
- )
25
- }
26
-
27
- DemoSection("States") {
28
- Input(
29
- text: $password,
30
- placeholder: "Password",
31
- secureTextEntry: true,
32
- onChangeText: { password = $0 }
33
- )
34
- Input(
35
- text: .constant("Invalid value"),
36
- placeholder: "Error",
37
- error: "This field has an error"
38
- )
39
- Input(
40
- text: .constant("Disabled value"),
41
- placeholder: "Disabled",
42
- disabled: true
43
- )
44
- }
45
- }
46
- }
47
- }
48
-
@@ -1,21 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsPopupDemoView: View {
5
- var body: some View {
6
- DemoScaffold(title: "Popup Notify") {
7
- DemoSection("Default") {
8
- PopupNotify(
9
- props: PopupNotifyProps(
10
- title: "Payment successful",
11
- description: "This popup demonstrates the native SwiftUI notification component.",
12
- primary: PopupAction(title: "Done", onPress: {}),
13
- secondary: PopupAction(title: "Later", onPress: {}),
14
- onIconClose: {}
15
- )
16
- )
17
- }
18
- }
19
- }
20
- }
21
-
@@ -1,17 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsRadioDemoView: View {
5
- @State private var selected: AnyHashable = "compose"
6
-
7
- var body: some View {
8
- DemoScaffold(title: "Radio") {
9
- DemoSection("Options") {
10
- Radio(value: "compose", groupValue: $selected, label: "Compose")
11
- Radio(value: "swiftui", groupValue: $selected, label: "SwiftUI")
12
- Radio(value: "disabled", groupValue: $selected, disabled: true, label: "Disabled")
13
- }
14
- }
15
- }
16
- }
17
-
@@ -1,28 +0,0 @@
1
- import SwiftUI
2
- import MoMoUIKits
3
-
4
- struct UIKitsTypographyDemoView: View {
5
- var body: some View {
6
- DemoScaffold(title: "Typography") {
7
- DemoSection("Headings") {
8
- MomoText("Headline default bold", typography: .headlineDefaultBold)
9
- MomoText("Header medium bold", typography: .headerMBold)
10
- MomoText("Header default bold", typography: .headerDefaultBold)
11
- }
12
-
13
- DemoSection("Body") {
14
- MomoText("Body default regular", typography: .bodyDefaultRegular)
15
- MomoText("Description default regular", typography: .descriptionDefaultRegular)
16
- MomoText("Label default medium", typography: .labelDefaultMedium)
17
- }
18
-
19
- DemoSection("Colors") {
20
- MomoText("Primary text", typography: .bodyDefaultRegular, color: defaultTheme.colors.primary)
21
- MomoText("Success text", typography: .bodyDefaultRegular, color: defaultTheme.colors.success.primary)
22
- MomoText("Warning text", typography: .bodyDefaultRegular, color: defaultTheme.colors.warning.primary)
23
- MomoText("Error text", typography: .bodyDefaultRegular, color: defaultTheme.colors.error.primary)
24
- }
25
- }
26
- }
27
- }
28
-
@@ -1,31 +0,0 @@
1
- import Foundation
2
- import MoMoUIKits
3
-
4
- public struct MoMoUIKitsDemoContext {
5
- public let appId: String
6
- public let appCode: String
7
- public let appName: String?
8
- public let appIcon: String
9
-
10
- public init(
11
- appId: String = "",
12
- appCode: String = "",
13
- appName: String? = nil,
14
- appIcon: String = ""
15
- ) {
16
- self.appId = appId
17
- self.appCode = appCode
18
- self.appName = appName
19
- self.appIcon = appIcon
20
- }
21
-
22
- var miniAppContext: MiniAppContext {
23
- MiniAppContext(
24
- appId: appId,
25
- appCode: appCode,
26
- appName: appName,
27
- appIcon: appIcon
28
- )
29
- }
30
- }
31
-
@@ -1,24 +0,0 @@
1
- import SwiftUI
2
- import UIKit
3
- import MoMoUIKits
4
-
5
- public enum MoMoUIKitsDemoViewControllerFactory {
6
- public static func make(
7
- context: MoMoUIKitsDemoContext = MoMoUIKitsDemoContext(),
8
- composeViewController: (() -> UIViewController)? = nil
9
- ) -> UIViewController {
10
- composeViewController?() ?? makeSwiftUI(context: context)
11
- }
12
-
13
- public static func makeSwiftUI(
14
- context: MoMoUIKitsDemoContext = MoMoUIKitsDemoContext(),
15
- onOpenCompose: @escaping () -> Void = {}
16
- ) -> UIViewController {
17
- UIHostingController(
18
- rootView: SwiftUIDemoBrowserView(
19
- context: context,
20
- onOpenCompose: onOpenCompose
21
- )
22
- )
23
- }
24
- }
@@ -1,110 +0,0 @@
1
- //
2
- // AnimatedHeaderDemo.swift
3
- // Example
4
- //
5
- // Usage demo for the animated (image) header. Mirrors Compose's
6
- // `AnimatedHeaderUsage`: an image header configured with an aspect ratio +
7
- // surface flag, over tall scrollable content that collapses the header.
8
- //
9
- // On iOS the header is supplied through the pushed screen's NavigationOptions
10
- // (`animatedHeader:`) — options are fixed at push time (no live setOptions like
11
- // Compose) — so the ratio/surface are chosen here and applied on "Show".
12
- //
13
-
14
- import MoMoUIKits
15
- import SwiftUI
16
-
17
- struct AnimatedHeaderDemo: View {
18
- var body: some View {
19
- if #available(iOS 16.0, *) {
20
- AnimatedHeaderDemoContent()
21
- } else {
22
- Text("Animated header demo requires iOS 16+").padding()
23
- }
24
- }
25
- }
26
-
27
- @available(iOS 16.0, *)
28
- struct AnimatedHeaderDemoContent: View {
29
- @EnvironmentObject private var navigator: Navigator
30
-
31
- @State private var ratio: AnimatedHeaderRatio = .ratio16_9
32
- @State private var isSurface = true
33
-
34
- private let imageUrl = "https://static.momocdn.net/app/img/booking/holiday/mid_atumn_dldl.jpeg"
35
-
36
- var body: some View {
37
- VStack(alignment: .leading, spacing: 20) {
38
- MomoText("Aspect ratio", typography: .headerDefaultBold)
39
- Picker("Ratio", selection: $ratio) {
40
- Text("16:9").tag(AnimatedHeaderRatio.ratio16_9)
41
- Text("1:1").tag(AnimatedHeaderRatio.ratio1_1)
42
- Text("3:2").tag(AnimatedHeaderRatio.ratio3_2)
43
- }
44
- .pickerStyle(.segmented)
45
-
46
- Toggle(isOn: $isSurface) {
47
- MomoText("Surface")
48
- }
49
-
50
- MoMoUIKits.Button(
51
- title: "Show Animated Header",
52
- action: show,
53
- type: .primary,
54
- size: .large
55
- )
56
-
57
- Spacer()
58
- }
59
- .frame(maxWidth: .infinity, alignment: .leading)
60
- .padding(16)
61
- }
62
-
63
- private func show() {
64
- let ratio = ratio
65
- let isSurface = isSurface
66
- let url = imageUrl
67
- navigator.push(
68
- { AnimatedHeaderTargetScreen(ratio: ratio) },
69
- options: NavigationOptions(
70
- title: "Animated Header",
71
- animatedHeader: AnimatedHeader(
72
- aspectRatio: ratio,
73
- isSurface: isSurface,
74
- composable: { _ in
75
- AnyView(
76
- ImageView(url)
77
- .frame(maxWidth: .infinity, maxHeight: .infinity)
78
- .clipped()
79
- )
80
- }
81
- )
82
- )
83
- )
84
- }
85
- }
86
-
87
- // MARK: - Target screen (tall content under the image header)
88
-
89
- @available(iOS 16.0, *)
90
- private struct AnimatedHeaderTargetScreen: View {
91
- @EnvironmentObject private var navigator: Navigator
92
- let ratio: AnimatedHeaderRatio
93
-
94
- var body: some View {
95
- // A white rounded card that overlaps the hero image's lower part; the top
96
- // inset under the image header is handled by StackScreen.
97
- VStack(alignment: .leading, spacing: 16) {
98
- MomoText("Scroll up to collapse the header", typography: .headerDefaultBold)
99
- ForEach(0..<24, id: \.self) { i in
100
- MomoText("Content row \(i + 1)")
101
- .frame(maxWidth: .infinity, alignment: .leading)
102
- }
103
- MoMoUIKits.Button(title: "Go back", action: { navigator.pop() }, type: .secondary, size: .large)
104
- }
105
- .frame(maxWidth: .infinity, minHeight: UIScreen.main.bounds.height, alignment: .topLeading)
106
- .padding(16)
107
- .background(Colors.black01)
108
- .clipShape(UnevenRoundedRectangle(topLeadingRadius: 16, topTrailingRadius: 16))
109
- }
110
- }
@@ -1,93 +0,0 @@
1
- //
2
- // AvatarDemo.swift
3
- // Example
4
- //
5
-
6
- import SwiftUI
7
- import MoMoUIKits
8
-
9
- struct AvatarDemo: View {
10
- var body: some View {
11
- ScrollView {
12
- VStack(alignment: .leading, spacing: 24) {
13
- section("Size") {
14
- HStack(alignment: .center, spacing: 8) {
15
- Avatar(size: .size24)
16
- Avatar(size: .size32)
17
- Avatar(size: .size40)
18
- Avatar(size: .size48)
19
- Avatar(size: .size56)
20
- Avatar(size: .size72)
21
- }
22
- }
23
-
24
- section("Rounded vs Square") {
25
- HStack(spacing: 8) {
26
- Avatar(size: .size40, rounded: true)
27
- Avatar(size: .size40, rounded: false)
28
- }
29
- }
30
-
31
- section("Name (initials)") {
32
- HStack(spacing: 8) {
33
- Avatar(size: .size40, name: "Nguyen Van A")
34
- Avatar(size: .size40, name: "John Doe")
35
- Avatar(size: .size40, name: "MoMo")
36
- }
37
- }
38
-
39
- section("Image") {
40
- HStack(spacing: 8) {
41
- Avatar(size: .size40, image: "https://i.pravatar.cc/150?img=1")
42
- Avatar(size: .size56, image: "https://i.pravatar.cc/150?img=2")
43
- Avatar(size: .size72, image: "https://i.pravatar.cc/150?img=3")
44
- }
45
- }
46
-
47
- section("showIconMomo") {
48
- HStack(spacing: 8) {
49
- Avatar(size: .size40, showIconMomo: true)
50
- Avatar(size: .size48, name: "MN", showIconMomo: true)
51
- Avatar(size: .size56, image: "https://i.pravatar.cc/150?img=4", showIconMomo: true)
52
- }
53
- }
54
-
55
- section("showIconSupport") {
56
- HStack(spacing: 8) {
57
- Avatar(size: .size40, showIconSupport: true)
58
- Avatar(size: .size48, name: "CS", showIconSupport: true)
59
- Avatar(size: .size56, image: "https://i.pravatar.cc/150?img=5", showIconSupport: true)
60
- }
61
- }
62
-
63
- section("showIconMomo + showIconSupport") {
64
- HStack(spacing: 8) {
65
- Avatar(size: .size56, showIconMomo: true, showIconSupport: true)
66
- Avatar(size: .size72, name: "NV", showIconMomo: true, showIconSupport: true)
67
- }
68
- }
69
- }
70
- .padding()
71
- }
72
- }
73
-
74
- @ViewBuilder
75
- private func section<Content: View>(
76
- _ title: String,
77
- @ViewBuilder content: () -> Content
78
- ) -> some View {
79
- VStack(alignment: .leading, spacing: 8) {
80
- Text(title)
81
- .font(.headline)
82
- content()
83
- }
84
- }
85
- }
86
-
87
- #if DEBUG
88
- struct AvatarDemo_Previews: PreviewProvider {
89
- static var previews: some View {
90
- AvatarDemo()
91
- }
92
- }
93
- #endif