react-native-system-ui 1.0.0 → 1.0.1

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 (205) hide show
  1. package/dist/cjs/components/action-sheet/ActionSheet.js +45 -51
  2. package/dist/cjs/components/area/Area.js +22 -22
  3. package/dist/cjs/components/avatar/Avatar.js +23 -23
  4. package/dist/cjs/components/badge/Badge.js +56 -61
  5. package/dist/cjs/components/button/Button.js +87 -92
  6. package/dist/cjs/components/button/ButtonGroup.js +4 -4
  7. package/dist/cjs/components/calendar/Calendar.js +28 -28
  8. package/dist/cjs/components/cascader/Cascader.js +205 -212
  9. package/dist/cjs/components/cell/Cell.js +54 -51
  10. package/dist/cjs/components/cell/CellGroup.js +26 -25
  11. package/dist/cjs/components/checkbox/Checkbox.js +1 -0
  12. package/dist/cjs/components/checkbox/CheckboxGroup.js +20 -19
  13. package/dist/cjs/components/circle/Circle.js +66 -54
  14. package/dist/cjs/components/collapse/Collapse.js +18 -18
  15. package/dist/cjs/components/config-provider/ConfigProvider.js +5 -5
  16. package/dist/cjs/components/count-down/CountDown.js +17 -17
  17. package/dist/cjs/components/datetime-picker/DatetimePicker.js +34 -35
  18. package/dist/cjs/components/dialog/Dialog.js +16 -10
  19. package/dist/cjs/components/dialog/imperative.js +8 -14
  20. package/dist/cjs/components/dialog/tokens.js +1 -0
  21. package/dist/cjs/components/divider/Divider.js +48 -51
  22. package/dist/cjs/components/empty/Empty.js +30 -25
  23. package/dist/cjs/components/error-boundary/ErrorBoundary.js +3 -2
  24. package/dist/cjs/components/flex/Flex.js +27 -27
  25. package/dist/cjs/components/flex/FlexItem.js +1 -0
  26. package/dist/cjs/components/form/Form.js +93 -92
  27. package/dist/cjs/components/form/FormItem.js +60 -54
  28. package/dist/cjs/components/form/FormList.js +35 -35
  29. package/dist/cjs/components/grid/Grid.js +48 -48
  30. package/dist/cjs/components/grid/GridItem.js +9 -2
  31. package/dist/cjs/components/image/Image.js +25 -24
  32. package/dist/cjs/components/image/tokens.js +3 -1
  33. package/dist/cjs/components/image-preview/ImagePreview.js +19 -19
  34. package/dist/cjs/components/image-preview/tokens.js +3 -1
  35. package/dist/cjs/components/input/Input.js +16 -19
  36. package/dist/cjs/components/loading/Loading.js +27 -27
  37. package/dist/cjs/components/nav-bar/NavBar.js +21 -18
  38. package/dist/cjs/components/nav-bar/tokens.js +3 -1
  39. package/dist/cjs/components/notice-bar/NoticeBar.js +7 -3
  40. package/dist/cjs/components/notice-bar/tokens.js +3 -1
  41. package/dist/cjs/components/notify/Notify.js +2 -1
  42. package/dist/cjs/components/notify/imperative.js +17 -17
  43. package/dist/cjs/components/notify/tokens.js +1 -0
  44. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +217 -201
  45. package/dist/cjs/components/number-keyboard/tokens.js +7 -1
  46. package/dist/cjs/components/overlay/Overlay.js +15 -15
  47. package/dist/cjs/components/password-input/PasswordInput.js +49 -49
  48. package/dist/cjs/components/picker/Picker.js +50 -58
  49. package/dist/cjs/components/popup/Popup.js +10 -10
  50. package/dist/cjs/components/popup/tokens.js +1 -0
  51. package/dist/cjs/components/portal/Portal.js +3 -4
  52. package/dist/cjs/components/progress/Progress.js +94 -95
  53. package/dist/cjs/components/progress/tokens.js +1 -0
  54. package/dist/cjs/components/radio/Radio.js +67 -63
  55. package/dist/cjs/components/radio/RadioGroup.js +6 -6
  56. package/dist/cjs/components/safe-area-view/SafeAreaView.js +7 -7
  57. package/dist/cjs/components/search/Search.js +28 -28
  58. package/dist/cjs/components/selector/Selector.js +19 -26
  59. package/dist/cjs/components/share-sheet/ShareSheet.js +6 -1
  60. package/dist/cjs/components/share-sheet/tokens.js +3 -1
  61. package/dist/cjs/components/sidebar/Sidebar.js +22 -16
  62. package/dist/cjs/components/sidebar/SidebarItem.js +9 -8
  63. package/dist/cjs/components/sidebar/tokens.js +3 -1
  64. package/dist/cjs/components/skeleton/Skeleton.js +43 -42
  65. package/dist/cjs/components/space/Space.js +45 -41
  66. package/dist/cjs/components/space/tokens.js +7 -1
  67. package/dist/cjs/components/stepper/Stepper.js +17 -15
  68. package/dist/cjs/components/stepper/tokens.js +1 -0
  69. package/dist/cjs/components/swiper/Swiper.js +10 -7
  70. package/dist/cjs/components/swiper/SwiperPagIndicator.js +3 -2
  71. package/dist/cjs/components/switch/Switch.js +23 -23
  72. package/dist/cjs/components/tabbar/Tabbar.js +26 -26
  73. package/dist/cjs/components/tabs/Tabs.js +143 -153
  74. package/dist/cjs/components/tabs/tokens.js +3 -1
  75. package/dist/cjs/components/tag/Tag.js +38 -38
  76. package/dist/cjs/components/toast/Toast.js +3 -2
  77. package/dist/cjs/components/toast/tokens.js +1 -0
  78. package/dist/cjs/components/typography/Typography.js +23 -21
  79. package/dist/cjs/components/water-mark/WaterMark.js +65 -65
  80. package/dist/cjs/design-system/Text.js +38 -0
  81. package/dist/cjs/design-system/createComponentTokensHook.js +2 -2
  82. package/dist/cjs/design-system/index.js +7 -0
  83. package/dist/cjs/design-system/mergeTokensOverride.js +1 -4
  84. package/dist/cjs/hooks/useControllableValue.js +11 -11
  85. package/dist/cjs/hooks/useCountDown.js +18 -18
  86. package/dist/cjs/platform/measure.js +4 -2
  87. package/dist/cjs/utils/color.js +2 -7
  88. package/dist/cjs/utils/compare.js +3 -3
  89. package/dist/cjs/utils/date.js +2 -2
  90. package/dist/cjs/utils/deepMerge.js +5 -5
  91. package/dist/cjs/utils/hairline.js +1 -0
  92. package/dist/cjs/utils/render.js +2 -8
  93. package/dist/cjs/utils/validate.js +2 -4
  94. package/dist/es/components/action-sheet/ActionSheet.js +45 -51
  95. package/dist/es/components/area/Area.js +22 -22
  96. package/dist/es/components/avatar/Avatar.js +23 -23
  97. package/dist/es/components/badge/Badge.js +56 -61
  98. package/dist/es/components/button/Button.js +87 -92
  99. package/dist/es/components/button/ButtonGroup.js +4 -4
  100. package/dist/es/components/calendar/Calendar.js +28 -28
  101. package/dist/es/components/cascader/Cascader.js +205 -212
  102. package/dist/es/components/cell/Cell.js +55 -52
  103. package/dist/es/components/cell/CellGroup.js +26 -25
  104. package/dist/es/components/checkbox/Checkbox.js +1 -0
  105. package/dist/es/components/checkbox/CheckboxGroup.js +20 -19
  106. package/dist/es/components/circle/Circle.js +66 -54
  107. package/dist/es/components/collapse/Collapse.js +18 -18
  108. package/dist/es/components/config-provider/ConfigProvider.js +5 -5
  109. package/dist/es/components/count-down/CountDown.js +17 -17
  110. package/dist/es/components/datetime-picker/DatetimePicker.js +34 -35
  111. package/dist/es/components/dialog/Dialog.js +16 -10
  112. package/dist/es/components/dialog/imperative.js +8 -14
  113. package/dist/es/components/dialog/tokens.js +1 -0
  114. package/dist/es/components/divider/Divider.js +48 -51
  115. package/dist/es/components/empty/Empty.js +30 -25
  116. package/dist/es/components/error-boundary/ErrorBoundary.js +3 -2
  117. package/dist/es/components/flex/Flex.js +27 -27
  118. package/dist/es/components/flex/FlexItem.js +1 -0
  119. package/dist/es/components/form/Form.js +93 -92
  120. package/dist/es/components/form/FormItem.js +60 -54
  121. package/dist/es/components/form/FormList.js +35 -35
  122. package/dist/es/components/grid/Grid.js +48 -48
  123. package/dist/es/components/grid/GridItem.js +10 -3
  124. package/dist/es/components/image/Image.js +25 -24
  125. package/dist/es/components/image/tokens.js +3 -1
  126. package/dist/es/components/image-preview/ImagePreview.js +19 -19
  127. package/dist/es/components/image-preview/tokens.js +3 -1
  128. package/dist/es/components/input/Input.js +16 -19
  129. package/dist/es/components/loading/Loading.js +27 -27
  130. package/dist/es/components/nav-bar/NavBar.js +21 -18
  131. package/dist/es/components/nav-bar/tokens.js +3 -1
  132. package/dist/es/components/notice-bar/NoticeBar.js +7 -3
  133. package/dist/es/components/notice-bar/tokens.js +3 -1
  134. package/dist/es/components/notify/Notify.js +2 -1
  135. package/dist/es/components/notify/imperative.js +17 -17
  136. package/dist/es/components/notify/tokens.js +1 -0
  137. package/dist/es/components/number-keyboard/NumberKeyboard.js +217 -201
  138. package/dist/es/components/number-keyboard/tokens.js +7 -1
  139. package/dist/es/components/overlay/Overlay.js +15 -15
  140. package/dist/es/components/password-input/PasswordInput.js +49 -49
  141. package/dist/es/components/picker/Picker.js +50 -58
  142. package/dist/es/components/popup/Popup.js +10 -10
  143. package/dist/es/components/popup/tokens.js +1 -0
  144. package/dist/es/components/portal/Portal.js +3 -4
  145. package/dist/es/components/progress/Progress.js +94 -95
  146. package/dist/es/components/progress/tokens.js +1 -0
  147. package/dist/es/components/radio/Radio.js +67 -63
  148. package/dist/es/components/radio/RadioGroup.js +6 -6
  149. package/dist/es/components/safe-area-view/SafeAreaView.js +7 -7
  150. package/dist/es/components/search/Search.js +28 -28
  151. package/dist/es/components/selector/Selector.js +19 -26
  152. package/dist/es/components/share-sheet/ShareSheet.js +6 -1
  153. package/dist/es/components/share-sheet/tokens.js +3 -1
  154. package/dist/es/components/sidebar/Sidebar.js +22 -16
  155. package/dist/es/components/sidebar/SidebarItem.js +9 -8
  156. package/dist/es/components/sidebar/tokens.js +3 -1
  157. package/dist/es/components/skeleton/Skeleton.js +43 -42
  158. package/dist/es/components/space/Space.js +45 -41
  159. package/dist/es/components/space/tokens.js +7 -1
  160. package/dist/es/components/stepper/Stepper.js +17 -15
  161. package/dist/es/components/stepper/tokens.js +1 -0
  162. package/dist/es/components/swiper/Swiper.js +11 -8
  163. package/dist/es/components/swiper/SwiperPagIndicator.js +3 -2
  164. package/dist/es/components/switch/Switch.js +23 -23
  165. package/dist/es/components/tabbar/Tabbar.js +26 -26
  166. package/dist/es/components/tabs/Tabs.js +144 -154
  167. package/dist/es/components/tabs/tokens.js +3 -1
  168. package/dist/es/components/tag/Tag.js +38 -38
  169. package/dist/es/components/toast/Toast.js +3 -2
  170. package/dist/es/components/toast/tokens.js +1 -0
  171. package/dist/es/components/typography/Typography.js +23 -21
  172. package/dist/es/components/water-mark/WaterMark.js +65 -65
  173. package/dist/es/design-system/Text.js +19 -0
  174. package/dist/es/design-system/createComponentTokensHook.js +2 -2
  175. package/dist/es/design-system/index.js +1 -0
  176. package/dist/es/design-system/mergeTokensOverride.js +1 -4
  177. package/dist/es/hooks/useControllableValue.js +11 -11
  178. package/dist/es/hooks/useCountDown.js +18 -18
  179. package/dist/es/platform/measure.js +4 -2
  180. package/dist/es/utils/color.js +1 -4
  181. package/dist/es/utils/compare.js +3 -3
  182. package/dist/es/utils/date.js +2 -2
  183. package/dist/es/utils/deepMerge.js +5 -5
  184. package/dist/es/utils/hairline.js +1 -0
  185. package/dist/es/utils/render.js +1 -1
  186. package/dist/es/utils/validate.js +1 -2
  187. package/dist/types/components/dialog/tokens.d.ts +1 -0
  188. package/dist/types/components/image-preview/tokens.d.ts +1 -0
  189. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  190. package/dist/types/components/notice-bar/tokens.d.ts +1 -0
  191. package/dist/types/components/number-keyboard/tokens.d.ts +5 -0
  192. package/dist/types/components/picker/Picker.d.ts +1 -1
  193. package/dist/types/components/popup/tokens.d.ts +1 -0
  194. package/dist/types/components/share-sheet/tokens.d.ts +1 -0
  195. package/dist/types/components/stepper/tokens.d.ts +1 -0
  196. package/dist/types/components/tabs/tokens.d.ts +1 -0
  197. package/dist/types/components/toast/tokens.d.ts +1 -0
  198. package/dist/types/design-system/Text.d.ts +3 -0
  199. package/dist/types/design-system/index.d.ts +1 -0
  200. package/dist/types/hooks/useCountDown.d.ts +1 -1
  201. package/dist/types/utils/color.d.ts +0 -2
  202. package/dist/types/utils/date.d.ts +1 -1
  203. package/dist/types/utils/render.d.ts +1 -1
  204. package/dist/types/utils/validate.d.ts +0 -1
  205. package/package.json +17 -3
@@ -34,13 +34,13 @@ export const Space = /*#__PURE__*/React.memo(props => {
34
34
  const {
35
35
  children,
36
36
  gap,
37
- size: sizeProp,
38
- direction: directionProp,
39
- align: alignProp,
40
- justify: justifyProp = 'start',
41
- wrap: wrapProp,
42
- block: blockProp,
43
- fill: fillProp,
37
+ size: sizeP,
38
+ direction: dirP,
39
+ align: alignP,
40
+ justify: justP = 'start',
41
+ wrap: wrapP,
42
+ block: blockP,
43
+ fill: fillP,
44
44
  divider,
45
45
  tokensOverride,
46
46
  style,
@@ -48,64 +48,68 @@ export const Space = /*#__PURE__*/React.memo(props => {
48
48
  ...rest
49
49
  } = props;
50
50
  const tokens = useSpaceTokens(tokensOverride);
51
- const isHorizontal = (directionProp ?? tokens.defaults.direction) === 'horizontal';
52
- const wrap = wrapProp ?? tokens.defaults.wrap;
53
- const gapInput = resolveGapInput(gap, sizeProp, tokens.defaults.gapPreset);
54
- const [resolvedHorizontalGap, resolvedVerticalGap] = parseGap(gapInput, tokens.sizing.presets);
55
- const horizontalGap = Math.max(0, resolvedHorizontalGap);
56
- const verticalGap = Math.max(0, resolvedVerticalGap);
57
- const shouldJustify = justifyProp === 'stretch';
58
- const justifyForStyle = shouldJustify ? 'start' : justifyProp;
59
- const shouldBlock = blockProp ?? !isHorizontal;
60
- const resolvedAlign = alignProp ?? (isHorizontal ? 'center' : 'stretch');
61
- const shouldFillOrMaxAlign = isHorizontal && ((fillProp ?? false) || shouldJustify);
62
- const containerBoxStyle = {
63
- flexDirection: isHorizontal ? 'row' : 'column',
64
- flexWrap: isHorizontal && wrap ? 'wrap' : 'nowrap',
65
- alignItems: alignMap[resolvedAlign],
66
- justifyContent: justifyMap[justifyForStyle],
67
- width: shouldBlock ? '100%' : undefined,
68
- columnGap: isHorizontal ? horizontalGap : undefined,
69
- rowGap: verticalGap
51
+ const hor = (dirP ?? tokens.defaults.direction) === 'horizontal';
52
+ const wrap = wrapP ?? tokens.defaults.wrap;
53
+ const gapIn = resolveGapInput(gap, sizeP, tokens.defaults.gapPreset);
54
+ const [hG, vG] = parseGap(gapIn, tokens.sizing.presets);
55
+ const hGap = Math.max(0, hG);
56
+ const vGap = Math.max(0, vG);
57
+ const justStretch = justP === 'stretch';
58
+ const justStyle = justStretch ? 'start' : justP;
59
+ const block = blockP ?? !hor;
60
+ const align = alignP ?? (hor ? 'center' : 'stretch');
61
+ const fillOrJust = hor && ((fillP ?? false) || justStretch);
62
+ const boxStyle = {
63
+ flexDirection: hor ? 'row' : 'column',
64
+ flexWrap: hor && wrap ? 'wrap' : 'nowrap',
65
+ alignItems: alignMap[align],
66
+ justifyContent: justifyMap[justStyle],
67
+ width: block ? '100%' : undefined,
68
+ columnGap: hor ? hGap : undefined,
69
+ rowGap: vGap
70
70
  };
71
- const childrenArray = React.Children.toArray(children).filter(isRenderable);
71
+ const txtStyle = {
72
+ fontFamily: tokens.typography.fontFamily,
73
+ fontSize: tokens.typography.fontSize
74
+ };
75
+ const arr = React.Children.toArray(children).filter(isRenderable);
72
76
  const content = [];
73
- for (let i = 0; i < childrenArray.length; i++) {
74
- const child = childrenArray[i];
77
+ for (let i = 0; i < arr.length; i++) {
78
+ const child = arr[i];
75
79
  const key = /*#__PURE__*/React.isValidElement(child) && child.key != null ? child.key : i;
76
- const flexStyle = shouldFillOrMaxAlign ? {
80
+ const flexS = fillOrJust ? {
77
81
  flexGrow: 1,
78
82
  flexBasis: 0,
79
83
  minWidth: 0
80
- } : !isHorizontal && (fillProp || shouldBlock) ? {
84
+ } : !hor && (fillP || block) ? {
81
85
  width: '100%'
82
86
  } : undefined;
83
87
  content.push(/*#__PURE__*/React.createElement(View, {
84
88
  key: key,
85
- style: flexStyle
86
- }, renderTextOrNode(child)));
87
- if (divider && i < childrenArray.length - 1) content.push(/*#__PURE__*/React.createElement(View, {
89
+ style: flexS
90
+ }, renderTextOrNode(child, txtStyle)));
91
+ if (divider && i < arr.length - 1) content.push(/*#__PURE__*/React.createElement(View, {
88
92
  key: `divider-${String(key)}`
89
- }, renderTextOrNode(divider)));
93
+ }, renderTextOrNode(divider, txtStyle)));
90
94
  }
91
- const isInteractive = isFunction(onClick);
95
+ const inter = isFunction(onClick);
92
96
  const {
93
97
  interactionProps,
94
98
  states
95
99
  } = useAriaPress({
96
- disabled: !isInteractive,
100
+ disabled: !inter,
97
101
  onPress: onClick,
98
- extraProps: isInteractive ? {
102
+ extraProps: inter ? {
99
103
  accessibilityRole: 'button'
100
104
  } : undefined
101
105
  });
102
- if (isInteractive) return /*#__PURE__*/React.createElement(Pressable, _extends({
103
- style: [tokens.layout.container, containerBoxStyle, style, states.pressed && {
106
+ if (inter) return /*#__PURE__*/React.createElement(Pressable, _extends({
107
+ style: [tokens.layout.container, boxStyle, style, states.pressed && {
104
108
  opacity: 0.85
105
109
  }]
106
110
  }, interactionProps, rest), content);
107
111
  return /*#__PURE__*/React.createElement(View, _extends({
108
- style: [tokens.layout.container, containerBoxStyle, style]
112
+ style: [tokens.layout.container, boxStyle, style]
109
113
  }, rest), content);
110
114
  });
111
115
  Space.displayName = 'Space';
@@ -1,7 +1,9 @@
1
1
  import { createComponentTokensHook } from '../../design-system';
2
2
  const createSpaceTokens = foundations => {
3
3
  const {
4
- spacing
4
+ spacing,
5
+ fontSize,
6
+ typography
5
7
  } = foundations;
6
8
  return {
7
9
  defaults: {
@@ -12,6 +14,10 @@ const createSpaceTokens = foundations => {
12
14
  layout: {
13
15
  container: {}
14
16
  },
17
+ typography: {
18
+ fontFamily: typography.fontFamily,
19
+ fontSize: fontSize.sm
20
+ },
15
21
  sizing: {
16
22
  presets: {
17
23
  mini: spacing.xxs ?? spacing.xs ?? 4,
@@ -70,14 +70,14 @@ const StepperImpl = (props, ref) => {
70
70
  const decimalLen = parseDecimalLength(decimalLengthProp);
71
71
  const stepRaw = Number(step ?? 1);
72
72
  const stepSize = isFiniteNumber(stepRaw) && stepRaw > 0 ? stepRaw : 1;
73
- const resolvedBtnSize = Math.max(0, parseNumber(buttonSize, tokens.defaults.buttonSize));
74
- const resolvedInputWidth = Math.max(0, parseNumber(inputWidth, tokens.defaults.inputWidth));
73
+ const rBtnSize = Math.max(0, parseNumber(buttonSize, tokens.defaults.buttonSize));
74
+ const rInputW = Math.max(0, parseNumber(inputWidth, tokens.defaults.inputWidth));
75
75
  const defaultVal = useMemo(() => {
76
76
  const raw = props.defaultValue;
77
77
  if (raw === null) return null;
78
78
  const base = isFiniteNumber(raw) ? raw : 0;
79
- const formatted = formatNumber(base, integer, decimalLen);
80
- return autoFixed ? clampValue(formatted, min, max) : formatted;
79
+ const fmt = formatNumber(base, integer, decimalLen);
80
+ return autoFixed ? clampValue(fmt, min, max) : fmt;
81
81
  }, [autoFixed, decimalLen, integer, max, min, props.defaultValue]);
82
82
  const [value, triggerChange] = useControllableValue({
83
83
  ...props,
@@ -256,20 +256,20 @@ const StepperImpl = (props, ref) => {
256
256
  const isPlusDisabled = isDisabledAll || disablePlus || maxNumber != null && currentForCompare >= maxNumber;
257
257
  const radius = tokens.radii.default;
258
258
  const btnSizeStyle = useMemo(() => ({
259
- width: resolvedBtnSize,
260
- height: resolvedBtnSize
261
- }), [resolvedBtnSize]);
259
+ width: rBtnSize,
260
+ height: rBtnSize
261
+ }), [rBtnSize]);
262
262
  const inputSizeStyle = useMemo(() => ({
263
- width: resolvedInputWidth,
264
- height: resolvedBtnSize,
263
+ width: rInputW,
264
+ height: rBtnSize,
265
265
  marginHorizontal: tokens.spacing.gap
266
- }), [resolvedBtnSize, resolvedInputWidth, tokens.spacing.gap]);
266
+ }), [rBtnSize, rInputW, tokens.spacing.gap]);
267
267
  const getButtonStyle = useCallback((type, state) => {
268
268
  const isPlus = type === 'plus';
269
269
  const isDisabled = isPlus ? isPlusDisabled : isMinusDisabled;
270
270
  if (theme === 'round') {
271
271
  const base = [S.btn, btnSizeStyle, {
272
- borderRadius: resolvedBtnSize / 2,
272
+ borderRadius: rBtnSize / 2,
273
273
  opacity: isDisabled ? tokens.opacity.roundDisabled : 1
274
274
  }];
275
275
  if (isPlus) {
@@ -301,7 +301,7 @@ const StepperImpl = (props, ref) => {
301
301
  return [S.btn, btnSizeStyle, cornerStyle, {
302
302
  backgroundColor: bgColor
303
303
  }, buttonStyle];
304
- }, [btnSizeStyle, buttonStyle, isMinusDisabled, isPlusDisabled, radius, resolvedBtnSize, theme, layoutDir, tokens.colors.active, tokens.colors.background, tokens.colors.buttonDisabledBackground, tokens.colors.roundTheme, tokens.colors.roundThemeBackground, tokens.opacity.pressed, tokens.opacity.roundDisabled]);
304
+ }, [btnSizeStyle, buttonStyle, isMinusDisabled, isPlusDisabled, radius, rBtnSize, theme, layoutDir, tokens.colors.active, tokens.colors.background, tokens.colors.buttonDisabledBackground, tokens.colors.roundTheme, tokens.colors.roundThemeBackground, tokens.opacity.pressed, tokens.opacity.roundDisabled]);
305
305
  const getButtonTextStyle = useCallback(type => {
306
306
  const isPlus = type === 'plus';
307
307
  const isDisabled = isPlus ? isPlusDisabled : isMinusDisabled;
@@ -309,6 +309,7 @@ const StepperImpl = (props, ref) => {
309
309
  const color = isPlus ? tokens.colors.roundThemeText : tokens.colors.roundTheme;
310
310
  return [S.btnTxt, {
311
311
  color,
312
+ fontFamily: tokens.typography.fontFamily,
312
313
  fontSize: tokens.typography.fontSize,
313
314
  fontWeight: tokens.typography.fontWeight
314
315
  }];
@@ -316,10 +317,11 @@ const StepperImpl = (props, ref) => {
316
317
  ;
317
318
  return [S.btnTxt, {
318
319
  color: isDisabled ? tokens.colors.buttonDisabledIcon : tokens.colors.buttonIcon,
320
+ fontFamily: tokens.typography.fontFamily,
319
321
  fontSize: tokens.typography.fontSize,
320
322
  fontWeight: tokens.typography.fontWeight
321
323
  }];
322
- }, [isMinusDisabled, isPlusDisabled, theme, tokens.colors.buttonDisabledIcon, tokens.colors.buttonIcon, tokens.colors.roundTheme, tokens.colors.roundThemeText, tokens.typography.fontSize, tokens.typography.fontWeight]);
324
+ }, [isMinusDisabled, isPlusDisabled, theme, tokens.colors.buttonDisabledIcon, tokens.colors.buttonIcon, tokens.colors.roundTheme, tokens.colors.roundThemeText, tokens.typography.fontFamily, tokens.typography.fontSize, tokens.typography.fontWeight]);
323
325
  const handleChangeText = useCallback(text => {
324
326
  if (disableInput || disabled || changingRef.current) return;
325
327
  updateInputText(text);
@@ -391,10 +393,10 @@ const StepperImpl = (props, ref) => {
391
393
  style: createHairlineView({
392
394
  position: 'all',
393
395
  color: tokens.colors.roundTheme,
394
- borderRadius: resolvedBtnSize / 2
396
+ borderRadius: rBtnSize / 2
395
397
  })
396
398
  }));
397
- }, [getButtonTextStyle, getMinusBtnStyle, handleMinusPress, handleMinusPressIn, handlePressOut, isMinusDisabled, showMinus, theme, tokens.colors.roundTheme, resolvedBtnSize]);
399
+ }, [getButtonTextStyle, getMinusBtnStyle, handleMinusPress, handleMinusPressIn, handlePressOut, isMinusDisabled, showMinus, theme, tokens.colors.roundTheme, rBtnSize]);
398
400
  const renderPlusBtn = useCallback(() => {
399
401
  if (!showPlus) return null;
400
402
  return /*#__PURE__*/React.createElement(Pressable, {
@@ -36,6 +36,7 @@ const createStepperTokens = foundations => {
36
36
  default: radii.md
37
37
  },
38
38
  typography: {
39
+ fontFamily: typography.fontFamily,
39
40
  fontSize: fontSize.md,
40
41
  fontWeight: typography.weight.semiBold
41
42
  },
@@ -1,6 +1,6 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import React, { useRef, useState, useCallback, useEffect, useImperativeHandle, forwardRef, memo, useMemo, Children, isValidElement } from 'react';
3
- import { FlatList, View, StyleSheet, useWindowDimensions, Platform } from 'react-native';
3
+ import { FlatList, View, StyleSheet, Platform } from 'react-native';
4
4
  import { clamp } from '../../utils/number';
5
5
  import SwiperPagIndicator from './SwiperPagIndicator';
6
6
  import { useSwiperTokens } from './tokens';
@@ -38,10 +38,6 @@ const SwiperImpl = (props, ref) => {
38
38
  const momRef = useRef(false);
39
39
  const dragRef = useRef(null);
40
40
  const isWeb = Platform.OS === 'web';
41
- const {
42
- width: wW,
43
- height: wH
44
- } = useWindowDimensions();
45
41
  const [layout, setLayout] = useState({
46
42
  width: 0,
47
43
  height: 0
@@ -71,8 +67,8 @@ const SwiperImpl = (props, ref) => {
71
67
  const curRef = useRef(initReal);
72
68
  const [curIdx, setCurIdx] = useState(initReal);
73
69
  const ready = layout.width > 0 && layout.height > 0;
74
- const mainSz = vertical ? layout.height || wH || 1 : layout.width || wW || 1;
75
- const crossSz = vertical ? layout.width || wW || 1 : layout.height || wH || 1;
70
+ const mainSz = vertical ? layout.height : layout.width;
71
+ const crossSz = vertical ? layout.width : layout.height;
76
72
  const itemSz = useMemo(() => ({
77
73
  width: vertical ? crossSz : mainSz,
78
74
  height: vertical ? mainSz : crossSz
@@ -268,6 +264,13 @@ const SwiperImpl = (props, ref) => {
268
264
  }
269
265
  }
270
266
  } : undefined;
267
+ if (!ready) {
268
+ return /*#__PURE__*/React.createElement(View, {
269
+ style: [S.ctr, style],
270
+ onLayout: onLayout,
271
+ testID: testID
272
+ });
273
+ }
271
274
  return /*#__PURE__*/React.createElement(View, _extends({
272
275
  accessibilityRole: "adjustable",
273
276
  accessibilityLabel: `swiper, ${curIdx + 1} of ${count}`,
@@ -286,7 +289,7 @@ const SwiperImpl = (props, ref) => {
286
289
  keyExtractor: keyEx,
287
290
  horizontal: !vertical,
288
291
  getItemLayout: getLayout,
289
- initialScrollIndex: ready ? initDisp : undefined,
292
+ initialScrollIndex: initDisp,
290
293
  scrollEnabled: touchable && count > 1,
291
294
  removeClippedSubviews: !shouldLoop || !loopAll,
292
295
  disableVirtualization: shouldLoop && loopAll,
@@ -36,8 +36,8 @@ const SwiperPagIndicator = /*#__PURE__*/memo(({
36
36
  }) => {
37
37
  const tokens = useSwiperPagIndicatorTokens(tokensOverride);
38
38
  const dots = [];
39
- const ac = activeColor || tokens.colors.active,
40
- ic = inactiveColor || tokens.colors.inactive;
39
+ const ac = activeColor || tokens.colors.active;
40
+ const ic = inactiveColor || tokens.colors.inactive;
41
41
  const posStyle = vertical ? [S.cv, {
42
42
  right: tokens.offset.verticalRight
43
43
  }] : [S.ch, {
@@ -58,6 +58,7 @@ const SwiperPagIndicator = /*#__PURE__*/memo(({
58
58
  }
59
59
  }));
60
60
  }
61
+ ;
61
62
  return /*#__PURE__*/React.createElement(View, _extends({
62
63
  style: [S.c, {
63
64
  zIndex: tokens.layer.zIndex,
@@ -5,33 +5,33 @@ import { parseNumber } from '../../utils';
5
5
  import { useSwitchTokens } from './tokens';
6
6
  const SwitchImpl = props => {
7
7
  const {
8
- disabled: disabledProp,
9
- size: sizeProp,
10
- activeColor: activeColorProp,
11
- inactiveColor: inactiveColorProp,
12
- activeValue: activeValueProp,
13
- inactiveValue: inactiveValueProp,
8
+ disabled: disP,
9
+ size: szP,
10
+ activeColor: actClrP,
11
+ inactiveColor: inactClrP,
12
+ activeValue: actValP,
13
+ inactiveValue: inactValP,
14
14
  tokensOverride,
15
15
  onClick,
16
16
  style
17
17
  } = props;
18
18
  const tokens = useSwitchTokens(tokensOverride);
19
- const disabled = disabledProp ?? tokens.defaults.disabled;
20
- const activeValue = activeValueProp ?? tokens.defaults.activeValue;
21
- const inactiveValue = inactiveValueProp ?? tokens.defaults.inactiveValue;
19
+ const disabled = disP ?? tokens.defaults.disabled;
20
+ const activeValue = actValP ?? tokens.defaults.activeValue;
21
+ const inactiveValue = inactValP ?? tokens.defaults.inactiveValue;
22
22
  const scale = useMemo(() => {
23
23
  if (!tokens.defaults.size) return 1;
24
- if (typeof sizeProp === 'string') {
25
- const value = sizeProp.toLowerCase();
26
- if (value === 'sm') return 0.75;
27
- if (value === 'md') return 1;
28
- if (value === 'lg') return 1.25;
29
- const num = parseNumber(sizeProp, tokens.defaults.size);
30
- return Math.max(0, num / tokens.defaults.size);
24
+ if (typeof szP === 'string') {
25
+ const v = szP.toLowerCase();
26
+ if (v === 'sm') return 0.75;
27
+ if (v === 'md') return 1;
28
+ if (v === 'lg') return 1.25;
29
+ return Math.max(0, parseNumber(szP, tokens.defaults.size) / tokens.defaults.size);
31
30
  }
32
- if (typeof sizeProp === 'number') return Math.max(0, sizeProp / tokens.defaults.size);
31
+ ;
32
+ if (typeof szP === 'number') return Math.max(0, szP / tokens.defaults.size);
33
33
  return 1;
34
- }, [sizeProp, tokens.defaults.size]);
34
+ }, [szP, tokens.defaults.size]);
35
35
  const [value, triggerChange] = useControllableValue(props, {
36
36
  valuePropName: 'checked',
37
37
  defaultValuePropName: 'defaultChecked',
@@ -39,8 +39,8 @@ const SwitchImpl = props => {
39
39
  trigger: 'onChange'
40
40
  });
41
41
  const isChecked = Object.is(value, activeValue);
42
- const resolvedActiveColor = activeColorProp ?? tokens.colors.activeTrack;
43
- const resolvedInactiveColor = inactiveColorProp ?? tokens.colors.inactiveTrack;
42
+ const actClr = actClrP ?? tokens.colors.activeTrack;
43
+ const inactClr = inactClrP ?? tokens.colors.inactiveTrack;
44
44
  const handleTouchEnd = useCallback(event => {
45
45
  if (disabled) return;
46
46
  onClick?.(event);
@@ -55,11 +55,11 @@ const SwitchImpl = props => {
55
55
  value: isChecked,
56
56
  disabled: disabled,
57
57
  trackColor: {
58
- false: resolvedInactiveColor,
59
- true: resolvedActiveColor
58
+ false: inactClr,
59
+ true: actClr
60
60
  },
61
61
  thumbColor: tokens.colors.handle,
62
- ios_backgroundColor: resolvedInactiveColor,
62
+ ios_backgroundColor: inactClr,
63
63
  style: [{
64
64
  transform: [{
65
65
  scaleX: scale
@@ -12,15 +12,15 @@ const TabbarBaseImpl = props => {
12
12
  children,
13
13
  value,
14
14
  defaultValue,
15
- fixed: fixedProp,
16
- border: borderProp,
15
+ fixed: fixedP,
16
+ border: borderP,
17
17
  zIndex = 1,
18
18
  activeColor,
19
19
  inactiveColor,
20
- background: backgroundProp,
21
- placeholder: placeholderProp,
20
+ background: bgP,
21
+ placeholder: placeP,
22
22
  safeAreaInsetBottom,
23
- iconSize: iconSizeProp,
23
+ iconSize: iconSzP,
24
24
  tokensOverride,
25
25
  style,
26
26
  contentStyle,
@@ -28,31 +28,31 @@ const TabbarBaseImpl = props => {
28
28
  ...rest
29
29
  } = props;
30
30
  const tokens = useTabbarTokens(tokensOverride);
31
- const fixed = fixedProp ?? tokens.defaults.fixed;
32
- const border = borderProp ?? tokens.defaults.border;
33
- const background = backgroundProp ?? tokens.colors.background;
34
- const placeholder = placeholderProp ?? tokens.defaults.placeholder;
35
- const iconSize = iconSizeProp ?? tokens.icon.size;
36
- const enableSafeAreaBottom = safeAreaInsetBottom ?? fixed;
31
+ const fixed = fixedP ?? tokens.defaults.fixed;
32
+ const border = borderP ?? tokens.defaults.border;
33
+ const background = bgP ?? tokens.colors.background;
34
+ const placeholder = placeP ?? tokens.defaults.placeholder;
35
+ const iconSize = iconSzP ?? tokens.icon.size;
36
+ const enableSafeBottom = safeAreaInsetBottom ?? fixed;
37
37
  const items = useMemo(() => React.Children.toArray(children).filter(React.isValidElement), [children]);
38
- const firstItemName = items.length ? items[0].props.name ?? 0 : undefined;
38
+ const firstName = items.length ? items[0].props.name ?? 0 : undefined;
39
39
  const [activeValue, setActiveValue] = useControllableValue(props, {
40
- defaultValue: firstItemName,
40
+ defaultValue: firstName,
41
41
  valuePropName: 'value',
42
42
  defaultValuePropName: 'defaultValue',
43
43
  trigger: 'onChange'
44
44
  });
45
45
  const itemNames = items.map((item, i) => item.props.name ?? i);
46
- const currentName = activeValue === undefined || activeValue === null ? firstItemName : itemNames.some(name => name === activeValue) ? activeValue : firstItemName;
46
+ const currentName = activeValue === undefined || activeValue === null ? firstName : itemNames.some(n => n === activeValue) ? activeValue : firstName;
47
47
  const [barHeight, setBarHeight] = useState(tokens.layout.height);
48
48
  const enablePlaceholder = fixed && placeholder;
49
49
  const handleLayout = useCallback(event => {
50
50
  if (!enablePlaceholder) return;
51
- const newHeight = event.nativeEvent.layout.height;
52
- setBarHeight(prev => Math.abs(prev - newHeight) < 0.5 ? prev : newHeight);
51
+ const h = event.nativeEvent.layout.height;
52
+ setBarHeight(prev => Math.abs(prev - h) < 0.5 ? prev : h);
53
53
  }, [enablePlaceholder]);
54
54
  const onSelect = useCallback((name, index) => setActiveValue(name, index), [setActiveValue]);
55
- const contextValue = useMemo(() => ({
55
+ const ctxVal = useMemo(() => ({
56
56
  activeValue: currentName,
57
57
  activeColor: activeColor ?? tokens.colors.active,
58
58
  inactiveColor: inactiveColor ?? tokens.colors.inactive,
@@ -60,7 +60,7 @@ const TabbarBaseImpl = props => {
60
60
  fontWeight: tokens.typography.fontWeight,
61
61
  onSelect
62
62
  }), [activeColor, currentName, inactiveColor, onSelect, tokens.colors.active, tokens.colors.inactive, tokens.typography.fontSize, tokens.typography.fontWeight]);
63
- const clonedChildren = useMemo(() => items.map((item, i) => {
63
+ const cloned = useMemo(() => items.map((item, i) => {
64
64
  const name = item.props.name ?? i;
65
65
  return /*#__PURE__*/React.cloneElement(item, {
66
66
  key: item.key ?? name,
@@ -71,11 +71,11 @@ const TabbarBaseImpl = props => {
71
71
  });
72
72
  }), [iconSize, items, tokensOverride]);
73
73
  if (items.length === 0) return null;
74
- const ContainerWrapper = enableSafeAreaBottom ? SafeAreaView : View;
75
- const placeholderStyle = {
74
+ const ContainerWrap = enableSafeBottom ? SafeAreaView : View;
75
+ const placeStyle = {
76
76
  height: barHeight
77
77
  };
78
- const containerStyle = [S.c, fixed && [S.f, {
78
+ const ctrStyle = [S.c, fixed && [S.f, {
79
79
  zIndex
80
80
  }], style];
81
81
  const barStyle = [S.b, {
@@ -88,18 +88,18 @@ const TabbarBaseImpl = props => {
88
88
  }];
89
89
  return /*#__PURE__*/React.createElement(React.Fragment, null, enablePlaceholder && /*#__PURE__*/React.createElement(View, {
90
90
  testID: "rv-tabbar-placeholder",
91
- style: placeholderStyle
91
+ style: placeStyle
92
92
  }), /*#__PURE__*/React.createElement(View, _extends({}, rest, {
93
- style: containerStyle,
93
+ style: ctrStyle,
94
94
  onLayout: handleLayout
95
- }), /*#__PURE__*/React.createElement(ContainerWrapper, {
95
+ }), /*#__PURE__*/React.createElement(ContainerWrap, {
96
96
  style: barStyle
97
97
  }, /*#__PURE__*/React.createElement(TabbarContext.Provider, {
98
- value: contextValue
98
+ value: ctxVal
99
99
  }, /*#__PURE__*/React.createElement(View, {
100
100
  style: rowStyle,
101
101
  accessibilityRole: "tablist"
102
- }, clonedChildren)), border && /*#__PURE__*/React.createElement(View, {
102
+ }, cloned)), border && /*#__PURE__*/React.createElement(View, {
103
103
  style: createHairlineView({
104
104
  position: 'top',
105
105
  color: tokens.colors.border,