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
@@ -14,66 +14,63 @@ const ROUND_CORNER_STYLE = {
14
14
  overflow: 'hidden'
15
15
  };
16
16
  const ButtonImpl = (props, forwardedRef) => {
17
- const group = useContext(ButtonGroupContext);
17
+ const grp = useContext(ButtonGroupContext);
18
18
  const {
19
19
  text,
20
20
  children,
21
21
  icon,
22
- iconPosition: iconPositionProp,
23
- type: typeProp,
24
- size: sizeProp,
22
+ iconPosition: iconPosP,
23
+ type: typeP,
24
+ size: sizeP,
25
25
  color,
26
- textColor: textColorProp,
27
- plain: plainProp,
28
- block: blockProp,
29
- round: roundProp,
30
- square: squareProp,
31
- hairline: hairlineProp,
32
- shadow: shadowProp,
33
- loading: loadingProp,
26
+ textColor: txtClrP,
27
+ plain: plainP,
28
+ block: blockP,
29
+ round: roundP,
30
+ square: sqP,
31
+ hairline: hlP,
32
+ shadow: shP,
33
+ loading: loadP,
34
34
  loadingText,
35
35
  loadingIndicator,
36
- loadingSize: loadingSizeProp,
37
- disabled: disabledProp,
38
- allowFontScaling: allowFontScalingProp,
36
+ loadingSize: loadSzP,
37
+ disabled: disP,
38
+ allowFontScaling: fontScaleP,
39
39
  maxFontSizeMultiplier,
40
- rippleColor: rippleColorProp,
40
+ rippleColor: rippleP,
41
41
  contentStyle,
42
42
  textStyle,
43
43
  tokensOverride,
44
44
  style,
45
- ...pressableProps
45
+ ...pressProps
46
46
  } = props;
47
47
  const tokens = useButtonTokens(tokensOverride);
48
- const type = typeProp ?? group?.type ?? tokens.defaults.type;
49
- const size = sizeProp ?? group?.size ?? tokens.defaults.size;
50
- const plain = plainProp ?? group?.plain ?? tokens.defaults.plain;
51
- const block = blockProp ?? group?.block ?? tokens.defaults.block;
52
- const round = roundProp ?? group?.round ?? tokens.defaults.round;
53
- const square = squareProp ?? group?.square ?? tokens.defaults.square;
54
- const hairline = hairlineProp ?? group?.hairline ?? tokens.defaults.hairline;
55
- const iconPosition = iconPositionProp ?? group?.iconPosition ?? tokens.defaults.iconPosition;
56
- const disabled = disabledProp ?? group?.disabled ?? tokens.defaults.disabled;
57
- const loading = loadingProp ?? tokens.defaults.loading;
58
- const loadingSize = loadingSizeProp ?? tokens.defaults.loadingSize;
59
- const allowFontScaling = allowFontScalingProp ?? tokens.defaults.allowFontScaling;
60
- const shadowValue = shadowProp ?? group?.shadow;
61
- const isDisabled = disabled || loading;
48
+ const type = typeP ?? grp?.type ?? tokens.defaults.type;
49
+ const size = sizeP ?? grp?.size ?? tokens.defaults.size;
50
+ const plain = plainP ?? grp?.plain ?? tokens.defaults.plain;
51
+ const block = blockP ?? grp?.block ?? tokens.defaults.block;
52
+ const round = roundP ?? grp?.round ?? tokens.defaults.round;
53
+ const square = sqP ?? grp?.square ?? tokens.defaults.square;
54
+ const hairline = hlP ?? grp?.hairline ?? tokens.defaults.hairline;
55
+ const iconPos = iconPosP ?? grp?.iconPosition ?? tokens.defaults.iconPosition;
56
+ const disabled = disP ?? grp?.disabled ?? tokens.defaults.disabled;
57
+ const loading = loadP ?? tokens.defaults.loading;
58
+ const loadSz = loadSzP ?? tokens.defaults.loadingSize;
59
+ const allowFontScaling = fontScaleP ?? tokens.defaults.allowFontScaling;
60
+ const shVal = shP ?? grp?.shadow;
61
+ const isDis = disabled || loading;
62
62
  const tone = tokens.colors.tones[type] ?? tokens.colors.tones.default;
63
- const sizeTokens = tokens.sizing.sizes[size];
64
- const [backgroundColor, borderColor, textColor] = useMemo(() => {
65
- if (plain) return [tokens.colors.backgroundPlain, color ?? tone.border, textColorProp ?? (type === 'default' && !color ? tone.text : color ?? tone.border)];
66
- return [color ?? tone.background, color ?? tone.border, textColorProp ?? (color ? '#ffffff' : tone.text)];
67
- }, [color, textColorProp, plain, type, tone, tokens.colors.backgroundPlain]);
63
+ const szTok = tokens.sizing.sizes[size];
64
+ const [bgClr, borderClr, txtClr] = useMemo(() => plain ? [tokens.colors.backgroundPlain, color ?? tone.border, txtClrP ?? (type === 'default' && !color ? tone.text : color ?? tone.border)] : [color ?? tone.background, color ?? tone.border, txtClrP ?? (color ? '#ffffff' : tone.text)], [color, txtClrP, plain, type, tone, tokens.colors.backgroundPlain]);
68
65
  const hasBorder = plain || type === 'default';
69
- const useHairlineOverlay = hasBorder && hairline;
70
- const borderWidth = hasBorder && !hairline ? tokens.borders.width : 0;
71
- const borderRadius = square ? 0 : round ? sizeTokens.height / 2 : sizeTokens.radius;
72
- const shadowStyle = useMemo(() => {
66
+ const useHl = hasBorder && hairline;
67
+ const borderW = hasBorder && !hairline ? tokens.borders.width : 0;
68
+ const radius = square ? 0 : round ? szTok.height / 2 : szTok.radius;
69
+ const shStyle = useMemo(() => {
73
70
  if (plain) return undefined;
74
- const level = isFiniteNumber(shadowValue) ? clampShadowLevel(shadowValue) : shadowValue === true ? 2 : undefined;
75
- return level ? createPlatformShadow(tokens.shadows[level]) : undefined;
76
- }, [shadowValue, plain, tokens.shadows]);
71
+ const lvl = isFiniteNumber(shVal) ? clampShadowLevel(shVal) : shVal === true ? 2 : undefined;
72
+ return lvl ? createPlatformShadow(tokens.shadows[lvl]) : undefined;
73
+ }, [shVal, plain, tokens.shadows]);
77
74
  const {
78
75
  onPress,
79
76
  onPressIn,
@@ -82,105 +79,103 @@ const ButtonImpl = (props, forwardedRef) => {
82
79
  accessibilityHint,
83
80
  accessibilityRole,
84
81
  accessibilityState,
85
- android_ripple: androidRippleProp,
82
+ android_ripple: andRippleP,
86
83
  ...viewProps
87
- } = pressableProps;
84
+ } = pressProps;
88
85
  const {
89
86
  interactionProps,
90
87
  states
91
88
  } = useAriaPress({
92
- disabled: isDisabled,
89
+ disabled: isDis,
93
90
  onPress: onPress || undefined,
94
91
  onPressStart: onPressIn || undefined,
95
92
  onPressEnd: onPressOut || undefined
96
93
  });
97
94
  const opacity = disabled ? tokens.states.disabledOpacity : loading ? tokens.states.loadingOpacity : states.pressed ? tokens.states.pressedOpacity : 1;
98
- const computedTextStyle = useMemo(() => ({
95
+ const txtStyle = useMemo(() => ({
99
96
  fontFamily: tokens.typography.fontFamily,
100
97
  fontWeight: tokens.typography.fontWeight,
101
- fontSize: sizeTokens.fontSize,
102
- lineHeight: sizeTokens.fontSize * tokens.typography.lineHeightMultiplier,
103
- color: textColor
104
- }), [tokens.typography, sizeTokens.fontSize, textColor]);
98
+ fontSize: szTok.fontSize,
99
+ lineHeight: szTok.fontSize * tokens.typography.lineHeightMultiplier,
100
+ color: txtClr
101
+ }), [tokens.typography, szTok.fontSize, txtClr]);
105
102
  const iconGap = tokens.spacing.iconGap;
106
- const renderIcon = () => {
103
+ const rIcon = () => {
107
104
  if (!icon) return null;
108
105
  try {
109
- const element = isFunction(icon) ? icon(textColor, sizeTokens.iconSize) : icon;
110
- const margin = iconPosition === 'left' ? {
106
+ const el = isFunction(icon) ? icon(txtClr, szTok.iconSize) : icon;
107
+ const margin = iconPos === 'left' ? {
111
108
  marginRight: iconGap
112
109
  } : {
113
110
  marginLeft: iconGap
114
111
  };
115
112
  return /*#__PURE__*/React.createElement(View, {
116
113
  style: [tokens.layout.iconWrapper, margin]
117
- }, element);
114
+ }, el);
118
115
  } catch (err) {
119
116
  if (__DEV__) console.warn('[Button] Failed to render icon:', err);
120
117
  return null;
121
118
  }
122
119
  };
123
- const renderLoading = () => /*#__PURE__*/React.createElement(View, {
120
+ const rLoad = () => /*#__PURE__*/React.createElement(View, {
124
121
  style: [tokens.layout.iconWrapper, {
125
122
  marginRight: iconGap
126
123
  }]
127
124
  }, loadingIndicator ?? /*#__PURE__*/React.createElement(ActivityIndicator, {
128
- size: loadingSize,
129
- color: textColor
125
+ size: loadSz,
126
+ color: txtClr
130
127
  }));
131
128
  const label = loading && loadingText !== undefined ? loadingText : text !== undefined ? text : children;
132
- const renderLabel = () => {
129
+ const rLabel = () => {
133
130
  if (label == null) return null;
134
- if (typeof label === 'string' || typeof label === 'number') {
135
- return /*#__PURE__*/React.createElement(Text, {
136
- style: [tokens.layout.text, computedTextStyle, textStyle],
137
- numberOfLines: 1,
138
- allowFontScaling: allowFontScaling,
139
- maxFontSizeMultiplier: maxFontSizeMultiplier
140
- }, isString(label) ? ensureSpace(label, true) : String(label));
141
- }
131
+ if (typeof label === 'string' || typeof label === 'number') return /*#__PURE__*/React.createElement(Text, {
132
+ style: [tokens.layout.text, txtStyle, textStyle],
133
+ numberOfLines: 1,
134
+ allowFontScaling: allowFontScaling,
135
+ maxFontSizeMultiplier: maxFontSizeMultiplier
136
+ }, isString(label) ? ensureSpace(label, true) : String(label));
142
137
  return label;
143
138
  };
144
- const resolvedAccessibilityLabel = accessibilityLabel ?? (typeof label === 'string' || typeof label === 'number' ? String(label) : undefined);
145
- const mergedAccessibilityState = useMemo(() => ({
139
+ const accLabel = accessibilityLabel ?? (typeof label === 'string' || typeof label === 'number' ? String(label) : undefined);
140
+ const accState = useMemo(() => ({
146
141
  ...accessibilityState,
147
- disabled: isDisabled,
142
+ disabled: isDis,
148
143
  busy: loading
149
- }), [accessibilityState, isDisabled, loading]);
150
- const resolvedAndroidRipple = useMemo(() => {
151
- if (Platform.OS !== 'android') return androidRippleProp;
152
- if (androidRippleProp) return androidRippleProp;
153
- const rippleColor = rippleColorProp ?? (plain ? textColor : type === 'default' && !color ? withAlpha(textColor, 0.15) : tokens.colors.ripple);
144
+ }), [accessibilityState, isDis, loading]);
145
+ const andRipple = useMemo(() => {
146
+ if (Platform.OS !== 'android') return andRippleP;
147
+ if (andRippleP) return andRippleP;
148
+ const rc = rippleP ?? (plain ? txtClr : type === 'default' && !color ? withAlpha(txtClr, 0.15) : tokens.colors.ripple);
154
149
  return {
155
- color: rippleColor,
150
+ color: rc,
156
151
  borderless: false
157
152
  };
158
- }, [androidRippleProp, rippleColorProp, plain, textColor, type, color, tokens.colors.ripple]);
153
+ }, [andRippleP, rippleP, plain, txtClr, type, color, tokens.colors.ripple]);
159
154
  return /*#__PURE__*/React.createElement(Pressable, _extends({
160
155
  ref: forwardedRef,
161
- disabled: isDisabled,
156
+ disabled: isDis,
162
157
  style: [tokens.layout.base, {
163
- minHeight: sizeTokens.height,
164
- paddingHorizontal: sizeTokens.paddingHorizontal,
165
- borderRadius: borderRadius,
166
- backgroundColor: backgroundColor,
167
- borderColor: useHairlineOverlay ? 'transparent' : borderColor,
168
- borderWidth: borderWidth,
169
- opacity: opacity
170
- }, Platform.OS === 'android' && borderRadius > 0 && !shadowStyle ? ROUND_CORNER_STYLE : null, block ? tokens.layout.block : null, shadowStyle, style],
171
- android_ripple: resolvedAndroidRipple
158
+ minHeight: szTok.height,
159
+ paddingHorizontal: szTok.paddingHorizontal,
160
+ borderRadius: radius,
161
+ backgroundColor: bgClr,
162
+ borderColor: useHl ? 'transparent' : borderClr,
163
+ borderWidth: borderW,
164
+ opacity
165
+ }, Platform.OS === 'android' && radius > 0 && !shStyle ? ROUND_CORNER_STYLE : null, block ? tokens.layout.block : null, shStyle, style],
166
+ android_ripple: andRipple
172
167
  }, interactionProps, {
173
- accessibilityState: mergedAccessibilityState,
168
+ accessibilityState: accState,
174
169
  accessibilityRole: accessibilityRole ?? 'button',
175
- accessibilityLabel: resolvedAccessibilityLabel,
170
+ accessibilityLabel: accLabel,
176
171
  accessibilityHint: accessibilityHint
177
172
  }, viewProps), /*#__PURE__*/React.createElement(View, {
178
173
  style: [tokens.layout.content, contentStyle]
179
- }, loading ? /*#__PURE__*/React.createElement(React.Fragment, null, renderLoading(), renderLabel()) : /*#__PURE__*/React.createElement(React.Fragment, null, icon && iconPosition === 'left' && renderIcon(), renderLabel(), icon && iconPosition === 'right' && renderIcon())), useHairlineOverlay && /*#__PURE__*/React.createElement(View, {
174
+ }, loading ? /*#__PURE__*/React.createElement(React.Fragment, null, rLoad(), rLabel()) : /*#__PURE__*/React.createElement(React.Fragment, null, icon && iconPos === 'left' && rIcon(), rLabel(), icon && iconPos === 'right' && rIcon())), useHl && /*#__PURE__*/React.createElement(View, {
180
175
  style: createHairlineView({
181
176
  position: 'all',
182
- color: borderColor,
183
- borderRadius
177
+ color: borderClr,
178
+ borderRadius: radius
184
179
  })
185
180
  }));
186
181
  };
@@ -20,7 +20,7 @@ export const ButtonGroup = /*#__PURE__*/React.memo(({
20
20
  }) => {
21
21
  const tokens = useButtonTokens();
22
22
  const gap = spacing ?? tokens.spacing.groupGap;
23
- const groupValue = useMemo(() => ({
23
+ const grpVal = useMemo(() => ({
24
24
  type,
25
25
  size,
26
26
  plain,
@@ -32,15 +32,15 @@ export const ButtonGroup = /*#__PURE__*/React.memo(({
32
32
  iconPosition,
33
33
  hairline
34
34
  }), [block, disabled, hairline, iconPosition, plain, round, shadow, size, square, type]);
35
- const containerStyle = useMemo(() => [{
35
+ const ctrStyle = useMemo(() => [{
36
36
  flexDirection: direction === 'horizontal' ? 'row' : 'column',
37
37
  alignItems: 'center',
38
38
  gap,
39
39
  width: block ? '100%' : undefined
40
40
  }, style], [block, direction, gap, style]);
41
41
  return /*#__PURE__*/React.createElement(ButtonGroupContext.Provider, {
42
- value: groupValue
42
+ value: grpVal
43
43
  }, /*#__PURE__*/React.createElement(View, {
44
- style: containerStyle
44
+ style: ctrStyle
45
45
  }, children));
46
46
  });
@@ -57,12 +57,12 @@ const CalendarImpl = props => {
57
57
  ...rest
58
58
  } = props;
59
59
  const locale = useLocale();
60
- const calendarLocale = locale?.vanCalendar;
60
+ const calLoc = locale?.vanCalendar;
61
61
  const tokens = useCalendarTokens(tokensOverride);
62
- const resolvedTitle = title ?? calendarLocale?.title ?? tokens.defaults.title;
62
+ const resolvedTitle = title ?? calLoc?.title ?? tokens.defaults.title;
63
63
  const resolvedShowSubtitle = showSubtitle ?? tokens.defaults.showSubtitle;
64
64
  const resolvedShowHeader = showHeader ?? tokens.defaults.showHeader;
65
- const resolvedConfirmText = confirmText ?? calendarLocale?.confirm ?? tokens.defaults.confirmText;
65
+ const resolvedConfirmText = confirmText ?? calLoc?.confirm ?? tokens.defaults.confirmText;
66
66
  const resolvedWeekStartsOn = weekStartsOn ?? tokens.defaults.weekStartsOn;
67
67
  const resolvedAllowSameDay = allowSameDay ?? tokens.defaults.allowSameDay;
68
68
  const resolvedPoppable = poppable ?? tokens.defaults.poppable;
@@ -87,7 +87,7 @@ const CalendarImpl = props => {
87
87
  overlay: popupOverlay,
88
88
  ...popupRestProps
89
89
  } = popupProps ?? {};
90
- const callbacksRef = useRef({
90
+ const cbRef = useRef({
91
91
  onConfirm,
92
92
  onOverRange,
93
93
  popupOnOpen,
@@ -99,36 +99,36 @@ const CalendarImpl = props => {
99
99
  popupOnClosed,
100
100
  onClosed
101
101
  });
102
- callbacksRef.current.onConfirm = onConfirm;
103
- callbacksRef.current.onOverRange = onOverRange;
104
- callbacksRef.current.popupOnOpen = popupOnOpen;
105
- callbacksRef.current.onOpen = onOpen;
106
- callbacksRef.current.popupOnOpened = popupOnOpened;
107
- callbacksRef.current.onOpened = onOpened;
108
- callbacksRef.current.popupOnClose = popupOnClose;
109
- callbacksRef.current.onClose = onClose;
110
- callbacksRef.current.popupOnClosed = popupOnClosed;
111
- callbacksRef.current.onClosed = onClosed;
102
+ cbRef.current.onConfirm = onConfirm;
103
+ cbRef.current.onOverRange = onOverRange;
104
+ cbRef.current.popupOnOpen = popupOnOpen;
105
+ cbRef.current.onOpen = onOpen;
106
+ cbRef.current.popupOnOpened = popupOnOpened;
107
+ cbRef.current.onOpened = onOpened;
108
+ cbRef.current.popupOnClose = popupOnClose;
109
+ cbRef.current.onClose = onClose;
110
+ cbRef.current.popupOnClosed = popupOnClosed;
111
+ cbRef.current.onClosed = onClosed;
112
112
  const closePopup = useCallback(() => {
113
113
  if (!resolvedPoppable) return;
114
114
  setPopupVisible(false);
115
115
  }, [resolvedPoppable, setPopupVisible]);
116
116
  const handlePopupOpen = useCallback(() => {
117
- callbacksRef.current.popupOnOpen?.();
118
- callbacksRef.current.onOpen?.();
117
+ cbRef.current.popupOnOpen?.();
118
+ cbRef.current.onOpen?.();
119
119
  }, []);
120
120
  const handlePopupOpened = useCallback(() => {
121
- callbacksRef.current.popupOnOpened?.();
122
- callbacksRef.current.onOpened?.();
121
+ cbRef.current.popupOnOpened?.();
122
+ cbRef.current.onOpened?.();
123
123
  }, []);
124
124
  const handlePopupClose = useCallback(() => {
125
125
  closePopup();
126
- callbacksRef.current.popupOnClose?.();
127
- callbacksRef.current.onClose?.();
126
+ cbRef.current.popupOnClose?.();
127
+ cbRef.current.onClose?.();
128
128
  }, [closePopup]);
129
129
  const handlePopupClosed = useCallback(() => {
130
- callbacksRef.current.popupOnClosed?.();
131
- callbacksRef.current.onClosed?.();
130
+ cbRef.current.popupOnClosed?.();
131
+ cbRef.current.onClosed?.();
132
132
  }, []);
133
133
  const overlayCloseOnPressResolved = overlayCloseOnPress ?? resolvedCloseOnClickOverlay;
134
134
  const overlayResolved = popupOverlay ?? true;
@@ -157,9 +157,9 @@ const CalendarImpl = props => {
157
157
  } : null), [monthDays]);
158
158
  const minDayTime = startOfDay(minDate).getTime();
159
159
  const maxDayTime = startOfDay(maxDate).getTime();
160
- const resolvedWeekdays = weekdays ?? calendarLocale?.weekdays ?? tokens.defaults.weekdays;
160
+ const resolvedWeekdays = weekdays ?? calLoc?.weekdays ?? tokens.defaults.weekdays;
161
161
  const weekLabels = useMemo(() => reorderWeekdays(resolvedWeekdays, resolvedWeekStartsOn, tokens.defaults.weekdays), [resolvedWeekdays, tokens.defaults.weekdays, resolvedWeekStartsOn]);
162
- const monthLabel = useMemo(() => formatMonthTitle ? formatMonthTitle(currentMonth) : calendarLocale?.monthTitle ? calendarLocale.monthTitle(currentMonth.getFullYear(), currentMonth.getMonth() + 1) : formatMonth(currentMonth), [currentMonth, formatMonthTitle, calendarLocale]);
162
+ const monthLabel = useMemo(() => formatMonthTitle ? formatMonthTitle(currentMonth) : calLoc?.monthTitle ? calLoc.monthTitle(currentMonth.getFullYear(), currentMonth.getMonth() + 1) : formatMonth(currentMonth), [currentMonth, formatMonthTitle, calLoc]);
163
163
  const minMonthStart = startOfMonth(minDate);
164
164
  const maxMonthStart = startOfMonth(maxDate);
165
165
  const canGoPrev = currentMonth.getTime() > minMonthStart.getTime();
@@ -174,12 +174,12 @@ const CalendarImpl = props => {
174
174
  if (resolvedType === 'range' && next.length < 2) return;
175
175
  if (resolvedType === 'multiple' && next.length === 0) return;
176
176
  if (!next.length) return;
177
- callbacksRef.current.onConfirm?.(mapValue(next, resolvedType));
177
+ cbRef.current.onConfirm?.(mapValue(next, resolvedType));
178
178
  if (resolvedPoppable && resolvedCloseOnConfirm) closePopup();
179
179
  }, [resolvedShowConfirm, resolvedType, resolvedPoppable, resolvedCloseOnConfirm, closePopup]);
180
180
  const handleConfirm = useCallback(() => {
181
181
  if (resolvedShowConfirm && confirmDisabled) return;
182
- callbacksRef.current.onConfirm?.(mapValue(value, resolvedType));
182
+ cbRef.current.onConfirm?.(mapValue(value, resolvedType));
183
183
  if (resolvedPoppable && resolvedCloseOnConfirm) closePopup();
184
184
  }, [resolvedShowConfirm, confirmDisabled, value, resolvedType, resolvedPoppable, resolvedCloseOnConfirm, closePopup]);
185
185
  const isSelectionAllowed = useCallback(next => {
@@ -187,12 +187,12 @@ const CalendarImpl = props => {
187
187
  const [start, end] = next;
188
188
  if (!resolvedAllowSameDay && isSameDay(start, end)) return false;
189
189
  if (maxRange && daysBetween(start, end) + 1 > maxRange) {
190
- callbacksRef.current.onOverRange?.(maxRange);
190
+ cbRef.current.onOverRange?.(maxRange);
191
191
  return false;
192
192
  }
193
193
  }
194
194
  if (resolvedType === 'multiple' && maxRange && next.length > maxRange) {
195
- callbacksRef.current.onOverRange?.(maxRange);
195
+ cbRef.current.onOverRange?.(maxRange);
196
196
  return false;
197
197
  }
198
198
  ;