@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,209 +0,0 @@
1
- //
2
- // HeaderUser.swift
3
- // MoMoUIKits
4
- //
5
- // SwiftUI mirror of Compose's `HeaderUser` (navigation/component/HeaderUser.kt).
6
- // Renders a `HeaderTitle.User`: an avatar group (1..n avatars with overflow),
7
- // a title with optional inline icons, and an optional subtitle. Shows a
8
- // skeleton shimmer placeholder while `isLoading`.
9
- //
10
-
11
- import SwiftUI
12
-
13
- @available(iOS 16.0, *)
14
- public struct HeaderUserView: View {
15
- private let data: HeaderUserData
16
-
17
- public init(_ data: HeaderUserData) {
18
- self.data = data
19
- }
20
-
21
- private let avatarSize: CGFloat = Spacing.XXL // 32
22
-
23
- private var maxWidth: CGFloat {
24
- UIScreen.main.bounds.width - 172
25
- }
26
-
27
- public var body: some View {
28
- if data.isLoading {
29
- shimmer
30
- } else {
31
- content
32
- }
33
- }
34
-
35
- private var content: some View {
36
- HStack(spacing: 0) {
37
- HStack(spacing: 0) {
38
- ZStack(alignment: .bottomTrailing) {
39
- AvatarGroup(urls: data.image ?? [], title: data.title, size: avatarSize)
40
- if let dotColor = data.dotColor {
41
- Circle()
42
- .fill(dotColor)
43
- .frame(width: 10, height: 10)
44
- }
45
- }
46
- .frame(width: avatarSize, height: avatarSize)
47
-
48
- Spacer().frame(width: 6)
49
-
50
- VStack(alignment: .leading, spacing: 0) {
51
- HStack(spacing: 0) {
52
- MomoText(data.title, typography: .actionXsBold, color: data.tintColor ?? Colors.black17, maxLines: 1)
53
- .truncationMode(.tail)
54
-
55
- if !data.icons.isEmpty {
56
- Spacer().frame(width: 6)
57
- HStack(spacing: 0) {
58
- ForEach(Array(data.icons.enumerated()), id: \.offset) { _, icon in
59
- ImageView(icon)
60
- .frame(width: 16, height: 16)
61
- .clipShape(RoundedRectangle(cornerRadius: 4))
62
- }
63
- }
64
- }
65
- }
66
-
67
- if let subTitle = data.subTitle, !subTitle.isEmpty {
68
- Spacer().frame(height: 2)
69
- MomoText(subTitle, typography: .descriptionXsRegular, color: data.tintColor ?? Colors.black17, maxLines: 1)
70
- .truncationMode(.tail)
71
- }
72
- }
73
- }
74
- .frame(maxWidth: maxWidth, alignment: .leading)
75
-
76
- Spacer(minLength: 0)
77
- }
78
- .frame(maxWidth: .infinity, alignment: .leading)
79
- .padding(.vertical, Spacing.XS)
80
- .contentShape(Rectangle())
81
- .onTapGesture { data.onPress?() }
82
- .allowsHitTesting(data.onPress != nil)
83
- }
84
-
85
- private var shimmer: some View {
86
- HStack(spacing: Spacing.M / 2) {
87
- Circle()
88
- .fill(Colors.black05)
89
- .frame(width: avatarSize, height: avatarSize)
90
- VStack(alignment: .leading, spacing: Spacing.XXS) {
91
- RoundedRectangle(cornerRadius: 8)
92
- .fill(Colors.black05)
93
- .frame(width: 120, height: 18)
94
- RoundedRectangle(cornerRadius: 8)
95
- .fill(Colors.black05)
96
- .frame(width: 120, height: 12)
97
- }
98
- }
99
- .frame(maxWidth: .infinity, alignment: .leading)
100
- .padding(.vertical, Spacing.XS)
101
- }
102
- }
103
-
104
- // MARK: - Avatar group
105
-
106
- /// Mirrors Compose's `AvatarGroup`: lays out 1..4 avatars in a fixed collage,
107
- /// falls back to initials when empty, and shows a "+n" overflow tile beyond 4.
108
- @available(iOS 16.0, *)
109
- private struct AvatarGroup: View {
110
- let urls: [String]
111
- let title: String
112
- let size: CGFloat
113
-
114
- private var child: CGFloat {
115
- switch urls.count {
116
- case 0, 1, 2: return 24
117
- default: return 16
118
- }
119
- }
120
-
121
- var body: some View {
122
- switch urls.count {
123
- case 0:
124
- InitialsAvatar(name: title, size: size)
125
- case 1:
126
- avatar(urls[0]).frame(width: size, height: size)
127
- case 2:
128
- ZStack {
129
- avatar(urls[0]).frame(width: child, height: child)
130
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topTrailing)
131
- avatar(urls[1]).frame(width: child, height: child)
132
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)
133
- }
134
- .frame(width: size, height: size)
135
- case 3:
136
- ZStack {
137
- avatar(urls[0]).frame(width: child, height: child)
138
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomTrailing)
139
- avatar(urls[1]).frame(width: child, height: child)
140
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
141
- avatar(urls[2]).frame(width: child, height: child)
142
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)
143
- }
144
- .frame(width: size, height: size)
145
- .padding(2)
146
- case 4:
147
- ZStack {
148
- avatar(urls[0]).frame(width: child, height: child)
149
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)
150
- avatar(urls[1]).frame(width: child, height: child)
151
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomTrailing)
152
- avatar(urls[2]).frame(width: child, height: child)
153
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topTrailing)
154
- avatar(urls[3]).frame(width: child, height: child)
155
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
156
- }
157
- .frame(width: size, height: size)
158
- .padding(1)
159
- default:
160
- ZStack {
161
- avatar(urls[0]).frame(width: child, height: child)
162
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)
163
- avatar(urls[1]).frame(width: child, height: child)
164
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topTrailing)
165
- avatar(urls[2]).frame(width: child, height: child)
166
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
167
- overflowTile(more: urls.count - 3)
168
- .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomTrailing)
169
- }
170
- .frame(width: size, height: size)
171
- .padding(1)
172
- }
173
- }
174
-
175
- private func avatar(_ url: String) -> some View {
176
- ImageView(url)
177
- .aspectRatio(contentMode: .fill)
178
- .clipShape(Circle())
179
- .overlay(Circle().stroke(Colors.black05, lineWidth: 0.5))
180
- }
181
-
182
- private func overflowTile(more: Int) -> some View {
183
- MomoText("+\(more)", typography: .descriptionXsRegular, color: Colors.pink03, textAlign: .center, maxLines: 1)
184
- .frame(width: child, height: child)
185
- .background(Colors.pink09)
186
- .clipShape(Circle())
187
- }
188
- }
189
-
190
- @available(iOS 16.0, *)
191
- private struct InitialsAvatar: View {
192
- let name: String
193
- let size: CGFloat
194
-
195
- private var initials: String {
196
- let words = name.trimmingCharacters(in: .whitespaces)
197
- .split(whereSeparator: { $0.isWhitespace })
198
- .suffix(2)
199
- return words.compactMap { $0.first.map { String($0).uppercased() } }.joined()
200
- }
201
-
202
- var body: some View {
203
- MomoText(initials, typography: .descriptionXsRegular, color: Colors.pink03, textAlign: .center, maxLines: 1)
204
- .frame(width: size, height: size)
205
- .background(Colors.pink09)
206
- .clipShape(Circle())
207
- .overlay(Circle().stroke(Colors.black05, lineWidth: 0.5))
208
- }
209
- }
@@ -1,176 +0,0 @@
1
- //
2
- // NavigationContainer.swift
3
- // MoMoUIKits
4
- //
5
- // SwiftUI mirror of Compose's NavigationContainer.
6
- // Wraps NavigationStack, injects Navigator into the environment, and renders
7
- // every registered screen inside `Screen(options)` chrome — same auto-wrap
8
- // behavior as Compose's StackScreen.
9
- //
10
-
11
- import SwiftUI
12
-
13
- @available(iOS 16.0, *)
14
- public struct NavigationContainer<Initial: View>: View {
15
- @StateObject private var navigator: Navigator
16
- @StateObject private var applicationEnvironment: ApplicationEnvironment
17
-
18
- private let setNavigator: ((Navigator) -> Void)?
19
- private let composeApi: KitComposeApi?
20
-
21
- public init(
22
- initialScreenName: String = "",
23
- @ViewBuilder initialScreen: @escaping () -> Initial,
24
- options: NavigationOptions? = nil,
25
- applicationContext: MiniAppContext? = nil,
26
- composeApi: KitComposeApi? = nil,
27
- config: KitConfig? = nil,
28
- setNavigator: ((Navigator) -> Void)? = nil
29
- ) {
30
- let nav = Navigator(
31
- initialScreenName: initialScreenName.isEmpty ? (options?.screenName ?? "") : initialScreenName,
32
- initialContent: { AnyView(initialScreen()) },
33
- options: options,
34
- composeApi: composeApi
35
- )
36
- _navigator = StateObject(wrappedValue: nav)
37
- _applicationEnvironment = StateObject(
38
- wrappedValue: ApplicationEnvironment(
39
- applicationContext: applicationContext,
40
- composeApi: composeApi,
41
- config: config
42
- )
43
- )
44
- self.composeApi = composeApi
45
- self.setNavigator = setNavigator
46
- }
47
-
48
- public var body: some View {
49
- NavigationStack(path: $navigator.path) {
50
- screenView(for: navigator.rootRoute)
51
- .navigationDestination(for: DynamicScreenRoute.self) { route in
52
- screenView(for: route)
53
- }
54
- }
55
- .environmentObject(navigator)
56
- .environmentObject(applicationEnvironment)
57
- .environment(\.applicationEnvironment, applicationEnvironment)
58
- .fullScreenCover(item: $navigator.presented) { route in
59
- screenView(forDialog: route)
60
- .environmentObject(navigator)
61
- .environmentObject(applicationEnvironment)
62
- .environment(\.applicationEnvironment, applicationEnvironment)
63
- }
64
- .overlay {
65
- if let item = navigator.overplay {
66
- OverplayHost(item: item)
67
- .environmentObject(navigator)
68
- .environmentObject(applicationEnvironment)
69
- .environment(\.applicationEnvironment, applicationEnvironment)
70
- }
71
- }
72
- .onAppear {
73
- if navigator.composeApi == nil {
74
- navigator.composeApi = composeApi
75
- }
76
- setNavigator?(navigator)
77
- }
78
- }
79
-
80
- @ViewBuilder
81
- private func screenView(for route: DynamicScreenRoute) -> some View {
82
- if let screen = DynamicScreenRegistry.shared.getScreen(id: route.id) {
83
- ScreenHost(screen: screen, navigator: navigator)
84
- .navigationBarBackButtonHidden(true)
85
- } else {
86
- EmptyView()
87
- }
88
- }
89
-
90
- @ViewBuilder
91
- private func screenView(forDialog route: DynamicDialogRoute) -> some View {
92
- if let screen = DynamicScreenRegistry.shared.getScreen(id: route.id) {
93
- ScreenHost(screen: screen, navigator: navigator)
94
- } else {
95
- EmptyView()
96
- }
97
- }
98
- }
99
-
100
- // MARK: - ScreenHost
101
-
102
- @available(iOS 16.0, *)
103
- private struct ScreenHost: View {
104
- let screen: DynamicScreen
105
- let navigator: Navigator
106
-
107
- var body: some View {
108
- let options = screen.options ?? NavigationOptions()
109
- StackScreen(
110
- backgroundColor: options.backgroundColor,
111
- headerTransparent: options.headerTransparent,
112
- fullScreenContent: options.fullScreenContent,
113
- tintColor: options.tintColor ?? Colors.black17,
114
- isBack: !options.hiddenBack,
115
- headerType: options.headerType,
116
- useAnimated: options.useAnimated,
117
- title: options.title,
118
- headerTitle: options.headerTitle,
119
- titlePosition: options.titlePosition,
120
- goBack: options.hiddenBack ? nil : { navigator.onBackSafe() },
121
- scrollable: options.scrollable,
122
- scrollToTopCallback: options.scrollToTopCallback,
123
- useAvoidKeyboard: options.useAvoidKeyboard,
124
- keyboardShouldPersistTaps: options.keyboardShouldPersistTaps,
125
- footer: options.footer,
126
- headerRight: options.resolvedHeaderRight,
127
- animatedHeader: options.animatedHeader,
128
- layoutOffset: options.layoutOffset,
129
- inputSearchProps: options.inputSearchProps,
130
- fabProps: options.fabProps,
131
- content: { screen.content() }
132
- )
133
- }
134
- }
135
-
136
- // MARK: - Overplay host
137
-
138
- @available(iOS 16.0, *)
139
- private struct OverplayHost: View {
140
- let item: OverplayItem
141
- @EnvironmentObject var navigator: Navigator
142
-
143
- var body: some View {
144
- // Each component self-animates on appear and drives its own exit through
145
- // the Navigator before the item is removed (mirrors Compose's overplay).
146
- switch item.type {
147
- case .modal:
148
- ModalScreen(barrierDismissible: item.barrierDismissible) {
149
- item.content()
150
- }
151
- .id(item.id)
152
- case .bottomSheet:
153
- BottomSheetView(
154
- header: item.header ?? .title(),
155
- isSurface: item.isSurface,
156
- barrierDismissible: item.barrierDismissible
157
- ) {
158
- item.content()
159
- }
160
- .id(item.id)
161
- case .snackBar:
162
- if let snackBar = item.snackBar {
163
- SnackBarView(snackBar: snackBar, bottomInset: safeAreaBottomInset() + Spacing.S)
164
- .id(item.id)
165
- }
166
- }
167
- }
168
- }
169
-
170
- /// Bottom safe-area inset (home indicator), used to lift the snack bar.
171
- @available(iOS 16.0, *)
172
- private func safeAreaBottomInset() -> CGFloat {
173
- UIApplication.shared.connectedScenes
174
- .compactMap { ($0 as? UIWindowScene)?.keyWindow?.safeAreaInsets.bottom }
175
- .first ?? 0
176
- }
@@ -1,109 +0,0 @@
1
- //
2
- // NavigationOptions.swift
3
- // MoMoUIKits
4
- //
5
- // SwiftUI mirror of Compose's NavigationOptions.
6
- // Each option lines up with a parameter on the existing `Screen` view,
7
- // so NavigationContainer can auto-wrap a registered screen body in `Screen(options)`.
8
- //
9
-
10
- import SwiftUI
11
-
12
- public struct NavigationOptions {
13
- public var screenName: String?
14
- public var title: String
15
- /// Rich header title (mirrors Compose's `headerTitle`). When set to `.user`
16
- /// the header renders an avatar group instead of `title`; `.default` keeps
17
- /// the plain `title` text.
18
- public var headerTitle: HeaderTitle?
19
- public var titlePosition: TitlePosition
20
- public var headerType: HeaderType
21
- /// Mirrors Compose's `HeaderType.Extended/Default(useAnimated = ...)`: when true
22
- /// and `inputSearchProps` is set, the search bar animates into the header on scroll.
23
- public var useAnimated: Bool
24
- public var headerTransparent: Bool
25
- public var fullScreenContent: Bool
26
- public var hiddenBack: Bool
27
- public var backgroundColor: Color?
28
- public var tintColor: Color?
29
- public var scrollable: Bool
30
- /// Mirrors Compose's `ScrollData.scrollToTopCallback`: invoked when the
31
- /// screen is asked to scroll to top (e.g. on a status-bar tap).
32
- public var scrollToTopCallback: (() -> Void)?
33
- public var useAvoidKeyboard: Bool
34
- /// Mirrors Compose's `KeyboardOptions.keyboardShouldPersistTaps`: when true,
35
- /// tapping anywhere on the screen dismisses the keyboard.
36
- public var keyboardShouldPersistTaps: Bool
37
- /// Mirrors Compose's `HeaderBackProps`: drives the prevent-back confirm popup.
38
- public var headerBackProps: HeaderBackProps?
39
- /// Typed toolkit data for the default header right control (mirrors
40
- /// Compose's `HeaderRight.Toolkit`). Use `headerRight` for `.custom` and nil
41
- /// for `.none`.
42
- public var headerRightData: HeaderRightData?
43
- public var headerRight: (() -> any View)?
44
- public var footer: (() -> AnyView)?
45
- public var animatedHeader: AnimatedHeader?
46
- public var layoutOffset: CGFloat
47
- public var inputSearchProps: InputSearchProps?
48
- public var fabProps: FabProps?
49
- public var onBackHandler: (() -> Void)?
50
-
51
- public init(
52
- screenName: String? = nil,
53
- title: String = "Stack",
54
- headerTitle: HeaderTitle? = nil,
55
- titlePosition: TitlePosition = .left,
56
- headerType: HeaderType = .default,
57
- useAnimated: Bool = false,
58
- headerTransparent: Bool = false,
59
- fullScreenContent: Bool = false,
60
- hiddenBack: Bool = false,
61
- backgroundColor: Color? = nil,
62
- tintColor: Color? = Colors.black17,
63
- scrollable: Bool = true,
64
- scrollToTopCallback: (() -> Void)? = nil,
65
- useAvoidKeyboard: Bool = true,
66
- keyboardShouldPersistTaps: Bool = false,
67
- headerBackProps: HeaderBackProps? = nil,
68
- headerRightData: HeaderRightData? = nil,
69
- headerRight: (() -> any View)? = { HeaderRight() },
70
- footer: (() -> AnyView)? = nil,
71
- animatedHeader: AnimatedHeader? = nil,
72
- layoutOffset: CGFloat = 56,
73
- inputSearchProps: InputSearchProps? = nil,
74
- fabProps: FabProps? = nil,
75
- onBackHandler: (() -> Void)? = nil
76
- ) {
77
- self.screenName = screenName
78
- self.title = title
79
- self.headerTitle = headerTitle
80
- self.titlePosition = titlePosition
81
- self.headerType = headerType
82
- self.useAnimated = useAnimated
83
- self.headerTransparent = headerTransparent
84
- self.fullScreenContent = fullScreenContent
85
- self.hiddenBack = hiddenBack
86
- self.backgroundColor = backgroundColor
87
- self.tintColor = tintColor
88
- self.scrollable = scrollable
89
- self.scrollToTopCallback = scrollToTopCallback
90
- self.useAvoidKeyboard = useAvoidKeyboard
91
- self.keyboardShouldPersistTaps = keyboardShouldPersistTaps
92
- self.headerBackProps = headerBackProps
93
- self.headerRightData = headerRightData
94
- self.headerRight = headerRight
95
- self.footer = footer
96
- self.animatedHeader = animatedHeader
97
- self.layoutOffset = layoutOffset
98
- self.inputSearchProps = inputSearchProps
99
- self.fabProps = fabProps
100
- self.onBackHandler = onBackHandler
101
- }
102
- }
103
-
104
- extension NavigationOptions {
105
- var resolvedHeaderRight: (() -> any View)? {
106
- guard let headerRightData else { return headerRight }
107
- return { HeaderRight(headerRight: headerRightData, tintColor: tintColor) }
108
- }
109
- }