@momo-kits/foundation 0.169.6-beta.1 → 0.169.6

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 (128) hide show
  1. package/Application/BottomSheet.hooks.ts +8 -8
  2. package/Application/BottomSheet.parts.tsx +44 -34
  3. package/Application/BottomSheet.tsx +35 -26
  4. package/Application/BottomTab/ActiveIndicator.tsx +15 -14
  5. package/Application/BottomTab/BottomTabBar.styles.ts +1 -18
  6. package/Application/BottomTab/BottomTabBar.tsx +58 -57
  7. package/Application/BottomTab/BottomTabInset.tsx +8 -4
  8. package/Application/BottomTab/CurvedContainer.tsx +16 -20
  9. package/Application/BottomTab/CustomBottomTabItem.tsx +14 -15
  10. package/Application/BottomTab/DuoBarCompression.tsx +13 -19
  11. package/Application/BottomTab/DuoRailTabBar.tsx +20 -20
  12. package/Application/BottomTab/DuoTabBar.tsx +11 -24
  13. package/Application/BottomTab/TabBarIcon.tsx +15 -29
  14. package/Application/BottomTab/TabScreen.tsx +1 -5
  15. package/Application/BottomTab/index.tsx +33 -30
  16. package/Application/BottomTab/metrics.ts +25 -48
  17. package/Application/BottomTab/tabItems.ts +1 -1
  18. package/Application/BottomTab/usePressLift.ts +2 -2
  19. package/Application/Components/BackgroundImageView.tsx +4 -0
  20. package/Application/Components/DuoGlassBackground.tsx +5 -4
  21. package/Application/Components/HeaderAnimated.tsx +4 -0
  22. package/Application/Components/HeaderBackground.tsx +4 -0
  23. package/Application/Components/HeaderExtendHeader.tsx +11 -10
  24. package/Application/Components/HeaderLeft.tsx +2 -1
  25. package/Application/Components/HeaderRight.tsx +2 -1
  26. package/Application/Components/HeaderTitle.shared.ts +11 -9
  27. package/Application/Components/HeaderTitle.tsx +4 -3
  28. package/Application/Components/HeaderToolkitAction.tsx +17 -20
  29. package/Application/Components/NavigationButton.tsx +2 -1
  30. package/Application/Components/SearchHeader.tsx +17 -10
  31. package/Application/Components/TitleJourney.tsx +2 -2
  32. package/Application/Components/TitleLocation.tsx +2 -2
  33. package/Application/Components/TitleUser.tsx +2 -2
  34. package/Application/Components/useToolkitActions.tsx +17 -32
  35. package/Application/Localize.ts +7 -0
  36. package/Application/ModalScreen.tsx +9 -3
  37. package/Application/Navigation.ts +14 -16
  38. package/Application/NavigationContainer.tsx +19 -16
  39. package/Application/Navigator.ts +20 -48
  40. package/Application/ScaleSizeProvider.tsx +13 -6
  41. package/Application/StackScreen.tracking.ts +11 -26
  42. package/Application/StackScreen.tsx +8 -35
  43. package/Application/TooltipPortal.tsx +12 -5
  44. package/Application/WidgetContainer.tsx +10 -4
  45. package/Application/modalLayout.ts +13 -14
  46. package/Application/navigationOptions.tsx +21 -17
  47. package/Application/types.tabs.ts +1 -0
  48. package/Badge/Badge.tsx +5 -0
  49. package/Badge/BadgeDot.tsx +1 -0
  50. package/Badge/BadgeDotAnimation.tsx +15 -7
  51. package/Badge/BadgeRibbon.tsx +46 -38
  52. package/Badge/Shape.tsx +2 -0
  53. package/Badge/types.ts +2 -2
  54. package/Button/index.tsx +5 -16
  55. package/Button/utils.ts +9 -15
  56. package/CheckBox/index.tsx +4 -0
  57. package/Consts/theme.ts +10 -10
  58. package/Context/index.ts +5 -1
  59. package/Divider/DashDivider.tsx +1 -0
  60. package/Divider/index.tsx +4 -0
  61. package/FoundationList/index.tsx +4 -0
  62. package/Icon/index.tsx +6 -6
  63. package/Icon/types.ts +1 -1
  64. package/IconButton/index.tsx +4 -12
  65. package/Image/index.tsx +9 -7
  66. package/Input/Input.tsx +8 -9
  67. package/Input/InputDropDown.tsx +10 -12
  68. package/Input/InputMoney.tsx +12 -8
  69. package/Input/InputMoneyView.tsx +14 -7
  70. package/Input/InputOTP.tsx +35 -33
  71. package/Input/InputPhoneNumber.tsx +8 -9
  72. package/Input/InputSearch.tsx +4 -6
  73. package/Input/InputTextArea.tsx +4 -0
  74. package/Input/SearchTextTyping.tsx +4 -0
  75. package/Input/SystemTextInput.tsx +7 -2
  76. package/Input/TextTyping.tsx +4 -0
  77. package/Input/common.tsx +26 -12
  78. package/Input/index.tsx +17 -20
  79. package/Input/moneyUtils.ts +10 -4
  80. package/Input/styles.ts +0 -5
  81. package/Input/utils.ts +14 -12
  82. package/Layout/Card.tsx +7 -4
  83. package/Layout/FloatingButton.tsx +4 -0
  84. package/Layout/Item.tsx +6 -2
  85. package/Layout/ItemList.tsx +9 -7
  86. package/Layout/ItemSectionList.tsx +2 -1
  87. package/Layout/ReservedRegions.tsx +25 -25
  88. package/Layout/Screen.tsx +56 -58
  89. package/Layout/Section.tsx +8 -5
  90. package/Layout/TrackingScope.tsx +1 -0
  91. package/Layout/screenContent.tsx +4 -2
  92. package/Layout/screenFooter.tsx +28 -18
  93. package/Layout/screenHeader.tsx +34 -31
  94. package/Layout/screenQuickReturn.tsx +17 -20
  95. package/Layout/screenScroll.ts +4 -7
  96. package/Layout/screenTypes.ts +3 -2
  97. package/Layout/types.ts +2 -4
  98. package/Layout/utils.ts +31 -37
  99. package/Loader/DotLoader.tsx +4 -0
  100. package/Loader/Loader.tsx +4 -0
  101. package/Loader/ProgressBar.tsx +1 -0
  102. package/Loader/Spinner.tsx +4 -0
  103. package/Loader/utils.ts +11 -7
  104. package/Pagination/Dot.tsx +4 -0
  105. package/Pagination/PaginationDot.tsx +1 -0
  106. package/Pagination/PaginationNumber.tsx +5 -3
  107. package/Pagination/PaginationScroll.tsx +5 -0
  108. package/Pagination/PaginationWhiteDot.tsx +1 -0
  109. package/Pagination/index.tsx +4 -0
  110. package/Pagination/types.ts +2 -2
  111. package/Popup/PopupNotify.tsx +44 -48
  112. package/Popup/PopupPromotion.tsx +4 -7
  113. package/Popup/types.ts +4 -4
  114. package/Popup/utils.ts +4 -0
  115. package/Radio/index.tsx +4 -0
  116. package/Skeleton/index.tsx +8 -0
  117. package/Switch/index.tsx +1 -0
  118. package/Tag/index.tsx +5 -1
  119. package/Tag/types.ts +3 -3
  120. package/Text/index.tsx +14 -3
  121. package/Text/styles.ts +1 -1
  122. package/Text/types.ts +1 -6
  123. package/Text/utils.ts +20 -4
  124. package/Title/index.tsx +41 -32
  125. package/ViewBoundary/index.tsx +4 -2
  126. package/index.ts +0 -6
  127. package/package.json +1 -1
  128. package/Application/__tests__/modalLayout.test.ts +0 -128
@@ -1,128 +0,0 @@
1
- // document/__mocks__ shadows react-native with react-native-web for the doc site
2
- jest.mock('react-native', () => jest.requireActual('react-native'));
3
-
4
- import { getModalLayout } from '../modalLayout';
5
-
6
- const NO_INSETS = { top: 0, right: 0, bottom: 0, left: 0 };
7
-
8
- describe('getModalLayout', () => {
9
- it('keeps the phone look', () => {
10
- const layout = getModalLayout({
11
- width: 390,
12
- height: 844,
13
- insets: { top: 47, right: 0, bottom: 34, left: 0 },
14
- isDuo: false,
15
- });
16
- expect(layout.isFoldable).toBe(false);
17
- expect(layout.popup.width).toBe(342);
18
- expect(layout.popup.maxHeight).toBeUndefined();
19
- expect(layout.popup.radius).toBe(16);
20
- expect(layout.sheet.width).toBeUndefined();
21
- expect(layout.sheet.maxHeight).toBeUndefined();
22
- expect(layout.sheet.radius).toBe(12);
23
- expect(layout.scrimOpacity).toBe(0.6);
24
- });
25
-
26
- it('keeps the phone look in landscape', () => {
27
- const layout = getModalLayout({
28
- width: 844,
29
- height: 390,
30
- insets: { top: 0, right: 47, bottom: 21, left: 47 },
31
- isDuo: false,
32
- });
33
- expect(layout.isFoldable).toBe(false);
34
- expect(layout.popup.width).toBe(844 - 48);
35
- expect(layout.popup.maxHeight).toBeUndefined();
36
- expect(layout.popup.radius).toBe(16);
37
- expect(layout.sheet.width).toBeUndefined();
38
- expect(layout.scrimOpacity).toBe(0.6);
39
- });
40
-
41
- it('caps popup and sheet on a wide foldable window', () => {
42
- const layout = getModalLayout({
43
- width: 884,
44
- height: 1104,
45
- insets: { top: 24, right: 0, bottom: 20, left: 0 },
46
- isDuo: false,
47
- });
48
- expect(layout.isFoldable).toBe(true);
49
- expect(layout.popup).toMatchObject({
50
- width: 450,
51
- minWidth: 280,
52
- maxWidth: 450,
53
- maxHeight: 600,
54
- margin: 24,
55
- radius: 24,
56
- });
57
- expect(layout.sheet).toMatchObject({
58
- width: 653,
59
- maxHeight: 1104 - 24 - 12,
60
- minHeight: 230,
61
- margin: 12,
62
- radius: 24,
63
- });
64
- expect(layout.scrimOpacity).toBe(0.2);
65
- });
66
-
67
- it('limits popup height to the safe area minus 48', () => {
68
- const layout = getModalLayout({
69
- width: 900,
70
- height: 600,
71
- insets: { top: 24, right: 0, bottom: 20, left: 0 },
72
- isDuo: false,
73
- });
74
- expect(layout.popup.maxHeight).toBe(600 - 24 - 20 - 48);
75
- });
76
-
77
- it('places modals left of the control column on the iPhone Duo outer display', () => {
78
- const layout = getModalLayout({
79
- width: 420,
80
- height: 760,
81
- insets: { top: 0, right: 64, bottom: 20, left: 0 },
82
- isDuo: true,
83
- });
84
- expect(layout.isFoldable).toBe(true);
85
- expect(layout.placement).toEqual({ x: 0, y: 0, width: 356, height: 740 });
86
- expect(layout.popup.margin).toBe(12);
87
- expect(layout.popup.width).toBe(356 - 24);
88
- expect(layout.sheet.width).toBe(356 - 24);
89
- });
90
-
91
- it('never grows past the margins when the space is under the min width', () => {
92
- const layout = getModalLayout({
93
- width: 300,
94
- height: 600,
95
- insets: NO_INSETS,
96
- isDuo: true,
97
- });
98
- expect(layout.popup.width).toBe(300 - 24);
99
- expect(layout.popup.minWidth).toBe(300 - 24);
100
- expect(layout.sheet.width).toBe(300 - 24);
101
- });
102
-
103
- it('moves to the right half when iPhone Duo is half folded', () => {
104
- const layout = getModalLayout({
105
- width: 1000,
106
- height: 800,
107
- insets: NO_INSETS,
108
- isDuo: true,
109
- hinge: { x: 495, y: 0, width: 10, height: 800 },
110
- });
111
- expect(layout.placement).toEqual({ x: 505, y: 0, width: 495, height: 800 });
112
- expect(layout.popup.margin).toBe(12);
113
- expect(layout.popup.width).toBe(450);
114
- expect(layout.sheet.width).toBe(495 - 24);
115
- });
116
-
117
- it('ignores a division off the iPhone Duo', () => {
118
- const layout = getModalLayout({
119
- width: 1000,
120
- height: 800,
121
- insets: NO_INSETS,
122
- isDuo: false,
123
- hinge: { x: 495, y: 0, width: 10, height: 800 },
124
- });
125
- expect(layout.placement.x).toBe(0);
126
- expect(layout.popup.margin).toBe(24);
127
- });
128
- });