@momo-kits/native-kits 0.162.2-beta.26 → 0.162.2-beta.27

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 (180) hide show
  1. package/CLAUDE.md +1 -1
  2. package/ios/Application/ApplicationEnvironment.swift +0 -11
  3. package/ios/Application/Components.swift +44 -34
  4. package/ios/Application/FloatingButton.swift +9 -10
  5. package/ios/Application/HeaderRight.swift +45 -79
  6. package/ios/Application/Screen.swift +1 -2
  7. package/ios/Badge/Badge.swift +14 -11
  8. package/ios/Badge/BadgeRibbon.swift +21 -12
  9. package/ios/Button/Button.swift +22 -61
  10. package/ios/Checkbox/Checkbox.swift +13 -14
  11. package/ios/Chip/Chip.swift +9 -23
  12. package/ios/Colors+Radius+Spacing/Colors.swift +12 -12
  13. package/ios/Extensions/Color++.swift +0 -32
  14. package/ios/Icon/Icon.swift +1 -6
  15. package/ios/Input/Input.swift +25 -41
  16. package/ios/Input/InputPhoneNumber.swift +19 -20
  17. package/ios/Input/InputSearch.swift +47 -100
  18. package/ios/Input/InputTextArea.swift +40 -66
  19. package/ios/Popup/PopupDisplay.swift +16 -8
  20. package/ios/Popup/PopupInput.swift +8 -2
  21. package/ios/Swipeable/SwipeCell.swift +0 -185
  22. package/ios/Swipeable/SwipeCellModel.swift +0 -21
  23. package/ios/Typography/Text.swift +5 -79
  24. package/ios/Typography/Typography.swift +0 -3
  25. package/ios/native-kits.podspec +8 -61
  26. package/package.json +1 -1
  27. package/publish.sh +0 -50
  28. package/.claude/settings.local.json +0 -39
  29. package/ios/Application/Navigation/BottomTab/BottomTab.swift +0 -103
  30. package/ios/Application/Navigation/BottomTab/BottomTabBar.swift +0 -215
  31. package/ios/Application/Navigation/BottomTab/CurvedContainer.swift +0 -65
  32. package/ios/Application/Navigation/HeaderBackProps.swift +0 -66
  33. package/ios/Application/Navigation/HeaderTitle.swift +0 -57
  34. package/ios/Application/Navigation/HeaderUser.swift +0 -209
  35. package/ios/Application/Navigation/NavigationContainer.swift +0 -176
  36. package/ios/Application/Navigation/NavigationOptions.swift +0 -109
  37. package/ios/Application/Navigation/Navigator.swift +0 -364
  38. package/ios/Application/Navigation/Overplay/BottomSheet.swift +0 -188
  39. package/ios/Application/Navigation/Overplay/ModalScreen.swift +0 -68
  40. package/ios/Application/Navigation/Overplay/SnackBar.swift +0 -144
  41. package/ios/Application/Navigation/component/Header.swift +0 -178
  42. package/ios/Application/Navigation/component/HeaderBackground.swift +0 -83
  43. package/ios/Application/Navigation/component/HeaderColor.swift +0 -65
  44. package/ios/Application/StackScreen.swift +0 -453
  45. package/ios/Avatar/Avatar.swift +0 -193
  46. package/ios/BaselineView/BaselineView.swift +0 -163
  47. package/ios/Carousel/Carousel.swift +0 -181
  48. package/ios/Collapse/Collapse.swift +0 -182
  49. package/ios/Colors+Radius+Spacing/Theme.swift +0 -295
  50. package/ios/DateTimePicker/DateTimePicker.swift +0 -210
  51. package/ios/DateTimePicker/DateTimePickerTypes.swift +0 -55
  52. package/ios/DateTimePicker/DateTimePickerUtils.swift +0 -167
  53. package/ios/DateTimePicker/WheelPicker.swift +0 -161
  54. package/ios/Divider/Divider.swift +0 -16
  55. package/ios/IconButton/IconButton.swift +0 -112
  56. package/ios/InputDropDown/InputDropDown.swift +0 -198
  57. package/ios/InputMoney/InputMoney.swift +0 -335
  58. package/ios/InputOTP/InputOTP.swift +0 -210
  59. package/ios/Loader/Loader.swift +0 -113
  60. package/ios/MoMoUIKits.podspec +0 -5
  61. package/ios/Pagination/PaginationDot.swift +0 -61
  62. package/ios/Pagination/PaginationNumber.swift +0 -35
  63. package/ios/Pagination/PaginationScroll.swift +0 -101
  64. package/ios/Pagination/PaginationWhiteDot.swift +0 -37
  65. package/ios/Popup/PopupNotify.swift +0 -219
  66. package/ios/ProgressInfo/ProgressInfo.swift +0 -294
  67. package/ios/Radio/Radio.swift +0 -70
  68. package/ios/Rating/Rating.swift +0 -82
  69. package/ios/Resources/MoMoUIKitsColors.xcassets/AccentColor.colorset/Contents.json +0 -11
  70. package/ios/Resources/MoMoUIKitsColors.xcassets/Background.colorset/Contents.json +0 -38
  71. package/ios/Resources/MoMoUIKitsColors.xcassets/Border.colorset/Contents.json +0 -38
  72. package/ios/Resources/MoMoUIKitsColors.xcassets/Card.colorset/Contents.json +0 -38
  73. package/ios/Resources/MoMoUIKitsColors.xcassets/Contents.json +0 -6
  74. package/ios/Resources/MoMoUIKitsColors.xcassets/Error.colorset/Contents.json +0 -38
  75. package/ios/Resources/MoMoUIKitsColors.xcassets/Primary.colorset/Contents.json +0 -38
  76. package/ios/Resources/MoMoUIKitsColors.xcassets/PrimaryDark.colorset/Contents.json +0 -38
  77. package/ios/Resources/MoMoUIKitsColors.xcassets/PrimaryLight.colorset/Contents.json +0 -38
  78. package/ios/Resources/MoMoUIKitsColors.xcassets/Secondary.colorset/Contents.json +0 -38
  79. package/ios/Resources/MoMoUIKitsColors.xcassets/Success.colorset/Contents.json +0 -38
  80. package/ios/Resources/MoMoUIKitsColors.xcassets/Text.colorset/Contents.json +0 -38
  81. package/ios/Resources/MoMoUIKitsColors.xcassets/TextSecondary.colorset/Contents.json +0 -38
  82. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/Contents.json +0 -9
  83. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-default.colorset/Contents.json +0 -38
  84. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-disable.colorset/Contents.json +0 -38
  85. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-pressed.colorset/Contents.json +0 -38
  86. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-selected.colorset/Contents.json +0 -38
  87. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-surface.colorset/Contents.json +0 -38
  88. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-tonal.colorset/Contents.json +0 -38
  89. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-default.colorset/Contents.json +0 -38
  90. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-disable.colorset/Contents.json +0 -38
  91. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/gradient.colorset/Contents.json +0 -38
  92. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/primary.colorset/Contents.json +0 -38
  93. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/secondary.colorset/Contents.json +0 -38
  94. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-container.colorset/Contents.json +0 -38
  95. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-primary.colorset/Contents.json +0 -38
  96. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-secondary.colorset/Contents.json +0 -38
  97. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-default.colorset/Contents.json +0 -38
  98. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-disable.colorset/Contents.json +0 -38
  99. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-hint.colorset/Contents.json +0 -38
  100. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-secondary.colorset/Contents.json +0 -38
  101. package/ios/Resources/MoMoUIKitsColors.xcassets/Warning.colorset/Contents.json +0 -38
  102. package/ios/Skeleton/Skeleton.swift +0 -99
  103. package/ios/Slider/Slider.swift +0 -237
  104. package/ios/Stepper/Stepper.swift +0 -220
  105. package/ios/Steps/Steps.swift +0 -451
  106. package/ios/SuggestAction/SuggestAction.swift +0 -97
  107. package/ios/TabView/TabView.swift +0 -530
  108. package/ios/Tag/Tag.swift +0 -98
  109. package/ios/Title/Title.swift +0 -269
  110. package/ios/Tooltip/Tooltip.swift +0 -482
  111. package/ios/Typography/FontScaleStore.swift +0 -19
  112. package/ios/Uploader/Uploader.swift +0 -183
  113. package/ios-demo/MoMoUIKitsDemo.podspec +0 -20
  114. package/ios-demo/Resources/dot_loading.json +0 -558
  115. package/ios-demo/Resources/icon.json +0 -4052
  116. package/ios-demo/Resources/lottie_circle_loader.json +0 -1
  117. package/ios-demo/Sources/MoMoUIKitsDemo/DemoScaffold.swift +0 -48
  118. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsBadgeDemoView.swift +0 -25
  119. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsButtonDemoView.swift +0 -26
  120. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsCheckboxDemoView.swift +0 -19
  121. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsChipDemoView.swift +0 -33
  122. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsInputDemoView.swift +0 -48
  123. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsPopupDemoView.swift +0 -21
  124. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsRadioDemoView.swift +0 -17
  125. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsTypographyDemoView.swift +0 -28
  126. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoContext.swift +0 -31
  127. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoFactory.swift +0 -24
  128. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AnimatedHeaderDemo.swift +0 -110
  129. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AvatarDemo.swift +0 -93
  130. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BadgeDemo.swift +0 -269
  131. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BaselineView.swift +0 -117
  132. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BottomTabDemo.swift +0 -89
  133. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ButtonDemo.swift +0 -100
  134. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CarouselDemo.swift +0 -126
  135. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CheckboxDemo.swift +0 -63
  136. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ChipDemo.swift +0 -20
  137. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CollapseDemo.swift +0 -93
  138. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ContentView.swift +0 -107
  139. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DateTimePickerDemo.swift +0 -124
  140. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DividerDemo.swift +0 -14
  141. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/HeaderUserDemo.swift +0 -49
  142. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/Home.swift +0 -278
  143. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/IconButtonDemo.swift +0 -58
  144. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ImageDemo.swift +0 -78
  145. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InformationDemo.swift +0 -138
  146. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDemo.swift +0 -111
  147. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDropDownDemo.swift +0 -136
  148. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputMoneyDemo.swift +0 -107
  149. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputOTPDemo.swift +0 -73
  150. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputPhoneNumberDemo.swift +0 -100
  151. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputSearchDemo.swift +0 -32
  152. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputTextAreaDemo.swift +0 -57
  153. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/LoaderDemo.swift +0 -70
  154. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/NavigationDemo.swift +0 -227
  155. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PaginationDemo.swift +0 -72
  156. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupDisplayDemo.swift +0 -175
  157. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupNotifyDemo.swift +0 -121
  158. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupPromotionDemo.swift +0 -76
  159. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ProgressInfoDemo.swift +0 -89
  160. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RadioDemo.swift +0 -32
  161. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RatingDemo.swift +0 -56
  162. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SkeletonDemo.swift +0 -32
  163. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SliderDemo.swift +0 -150
  164. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SnackBarDemo.swift +0 -138
  165. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepperDemo.swift +0 -103
  166. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepsDemo.swift +0 -94
  167. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SuggestActionDemo.swift +0 -79
  168. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwipeDemo.swift +0 -152
  169. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwitchDemo.swift +0 -33
  170. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TabViewDemo.swift +0 -190
  171. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TagDemo.swift +0 -34
  172. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ThemeDemo.swift +0 -182
  173. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TitleDemo.swift +0 -109
  174. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TooltipDemo.swift +0 -187
  175. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TypographyDemo.swift +0 -87
  176. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/UploaderDemo.swift +0 -131
  177. package/ios-demo/Sources/MoMoUIKitsDemo/SwiftUIDemoBrowserView.swift +0 -51
  178. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoModels.swift +0 -15
  179. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoRegistry.swift +0 -73
  180. package/scripts/gen-ios-color.mjs +0 -136
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xE8",
8
- "green": "0xE8",
9
- "blue": "0xE8",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0x2A",
20
- "green": "0x2A",
21
- "blue": "0x2A",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xF9",
8
- "green": "0xF9",
9
- "blue": "0xF9",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0x24",
20
- "green": "0x24",
21
- "blue": "0x24",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xFD",
8
- "green": "0xCA",
9
- "blue": "0xDE",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xFD",
20
- "green": "0xCA",
21
- "blue": "0xDE",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xEB",
8
- "green": "0x2F",
9
- "blue": "0x96",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xED",
20
- "green": "0x43",
21
- "blue": "0xA0",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xF7",
8
- "green": "0xAC",
9
- "blue": "0xD5",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xFB",
20
- "green": "0xD5",
21
- "blue": "0xEA",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xD6",
8
- "green": "0xF4",
9
- "blue": "0xDE",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xD6",
20
- "green": "0xF4",
21
- "blue": "0xDE",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0x34",
8
- "green": "0xC7",
9
- "blue": "0x59",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0x34",
20
- "green": "0xC7",
21
- "blue": "0x59",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xAE",
8
- "green": "0xE9",
9
- "blue": "0xBD",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xAE",
20
- "green": "0xE9",
21
- "blue": "0xBD",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0x30",
8
- "green": "0x32",
9
- "blue": "0x33",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xFF",
20
- "green": "0xFF",
21
- "blue": "0xFF",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0xC6",
8
- "green": "0xC6",
9
- "blue": "0xC6",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0x50",
20
- "green": "0x50",
21
- "blue": "0x50",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0x72",
8
- "green": "0x72",
9
- "blue": "0x72",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0x72",
20
- "green": "0x72",
21
- "blue": "0x72",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors": [
3
- {
4
- "color": {
5
- "color-space": "srgb",
6
- "components": {
7
- "red": "0x48",
8
- "green": "0x48",
9
- "blue": "0x48",
10
- "alpha": "1.000"
11
- }
12
- },
13
- "idiom": "universal"
14
- },
15
- {
16
- "color": {
17
- "color-space": "srgb",
18
- "components": {
19
- "red": "0xB0",
20
- "green": "0xB0",
21
- "blue": "0xB0",
22
- "alpha": "1.000"
23
- }
24
- },
25
- "idiom": "universal",
26
- "appearances": [
27
- {
28
- "appearance": "luminosity",
29
- "value": "dark"
30
- }
31
- ]
32
- }
33
- ],
34
- "info": {
35
- "author": "xcode",
36
- "version": 1
37
- }
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "colors" : [
3
- {
4
- "color" : {
5
- "color-space" : "srgb",
6
- "components" : {
7
- "alpha" : "1.000",
8
- "blue" : "0.086",
9
- "green" : "0.549",
10
- "red" : "0.980"
11
- }
12
- },
13
- "idiom" : "universal"
14
- },
15
- {
16
- "appearances" : [
17
- {
18
- "appearance" : "luminosity",
19
- "value" : "dark"
20
- }
21
- ],
22
- "color" : {
23
- "color-space" : "srgb",
24
- "components" : {
25
- "alpha" : "1.000",
26
- "blue" : "0.086",
27
- "green" : "0.549",
28
- "red" : "0.980"
29
- }
30
- },
31
- "idiom" : "universal"
32
- }
33
- ],
34
- "info" : {
35
- "author" : "xcode",
36
- "version" : 1
37
- }
38
- }
@@ -1,99 +0,0 @@
1
- import Foundation
2
- import SwiftUI
3
-
4
- /// Native SwiftUI port of the Compose `Skeleton` component.
5
- ///
6
- /// Fills the available space with a base placeholder color and overlays a
7
- /// horizontal shimmer gradient that animates left-to-right on an infinite loop.
8
- ///
9
- /// Mirrors the Compose surface: `Skeleton()` takes no required arguments and
10
- /// fills its container. The shimmer animation parameters match the Compose
11
- /// defaults (`durationMillis = 1000`, shimmer band = 60% of container width).
12
- public struct Skeleton: View {
13
- // Matches Compose `DEFAULT_DURATION_MILLIS = 1000`.
14
- private let durationMillis: Int
15
- // Matches Compose `angleOfAxisY = 0f` (horizontal gradient).
16
- private let angleOfAxisY: CGFloat
17
-
18
- public init(
19
- durationMillis: Int = 1000,
20
- angleOfAxisY: CGFloat = 0
21
- ) {
22
- self.durationMillis = durationMillis
23
- self.angleOfAxisY = angleOfAxisY
24
- }
25
-
26
- public var body: some View {
27
- GeometryReader { proxy in
28
- ShimmerLoading(
29
- size: proxy.size,
30
- durationMillis: durationMillis,
31
- angleOfAxisY: angleOfAxisY
32
- )
33
- }
34
- // Compose base background (`Colors.black_05`).
35
- .background(Colors.black05)
36
- }
37
- }
38
-
39
- /// Internal shimmer overlay. Reproduces Compose's `Modifier.shimmerLoadingAnimation`:
40
- /// a linear gradient band (60% of the container width) translated across the
41
- /// surface on an infinite, restarting, linearly-eased loop.
42
- private struct ShimmerLoading: View {
43
- let size: CGSize
44
- let durationMillis: Int
45
- let angleOfAxisY: CGFloat
46
-
47
- @State private var phase: CGFloat = 0
48
-
49
- // Matches Compose `SHADOW_BRUSH_PERCENTAGE = 0.6f`.
50
- private static let shadowBrushPercentage: CGFloat = 0.6
51
-
52
- // Pre-computed shimmer colors (Colors.black_05, black_03, black_05).
53
- private static let shimmerColors: [Color] = [
54
- Colors.black05,
55
- Colors.black03,
56
- Colors.black05,
57
- ]
58
-
59
- private var widthOfShadowBrush: CGFloat {
60
- (size.width * Self.shadowBrushPercentage).rounded(.towardZero)
61
- }
62
-
63
- // Compose animates from 0 to (durationMillis + widthOfShadowBrush). Since the
64
- // band is anchored at the animated value, the meaningful travel range spans
65
- // from off-screen-left to off-screen-right: -widthOfShadowBrush ... maxWidth.
66
- private var animationTarget: CGFloat {
67
- size.width + widthOfShadowBrush
68
- }
69
-
70
- var body: some View {
71
- let startX = phase - widthOfShadowBrush
72
- let endX = phase
73
-
74
- Rectangle()
75
- .fill(
76
- LinearGradient(
77
- gradient: Gradient(colors: Self.shimmerColors),
78
- startPoint: .init(
79
- x: size.width > 0 ? startX / size.width : 0,
80
- y: 0
81
- ),
82
- endPoint: .init(
83
- x: size.width > 0 ? endX / size.width : 0,
84
- y: size.height > 0 ? angleOfAxisY / size.height : 0
85
- )
86
- )
87
- )
88
- .onAppear {
89
- guard size.width > 0 else { return }
90
- phase = 0
91
- withAnimation(
92
- .linear(duration: Double(durationMillis) / 1000.0)
93
- .repeatForever(autoreverses: false)
94
- ) {
95
- phase = animationTarget
96
- }
97
- }
98
- }
99
- }