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
@@ -163,33 +163,33 @@ const ActionSheetImpl = props => {
163
163
  description,
164
164
  cancelText,
165
165
  actions = [],
166
- closeOnClickAction: closeOnClickActionProp,
166
+ closeOnClickAction: closeOnActP,
167
167
  closeOnSelect,
168
- closeable: closeableProp,
168
+ closeable: closeableP,
169
169
  closeIcon = defaultCloseIcon,
170
170
  beforeClose,
171
171
  onSelect,
172
172
  onCancel,
173
173
  onClose,
174
174
  children,
175
- round: roundProp,
176
- safeAreaInsetBottom: safeAreaInsetBottomProp,
177
- overlay: overlayProp,
178
- lockScroll: lockScrollProp,
179
- style: popupStyle,
180
- ...popupProps
175
+ round: roundP,
176
+ safeAreaInsetBottom: safeP,
177
+ overlay: ovP,
178
+ lockScroll: lockP,
179
+ style: popStyle,
180
+ ...popProps
181
181
  } = props;
182
182
  const tokens = (0, _tokens.useActionSheetTokens)(tokensOverride);
183
- const closeable = closeableProp ?? tokens.defaults.closeable;
184
- const round = roundProp ?? tokens.defaults.round;
185
- const safeAreaInsetBottom = safeAreaInsetBottomProp ?? tokens.defaults.safeAreaInsetBottom;
186
- const overlay = overlayProp ?? tokens.defaults.overlay;
187
- const lockScroll = lockScrollProp ?? tokens.defaults.lockScroll;
188
- const shouldCloseOnClickAction = closeOnClickActionProp ?? closeOnSelect ?? tokens.defaults.closeOnClickAction;
189
- const hasTitle = (0, _utils.isRenderable)(title);
190
- const hasDescription = (0, _utils.isRenderable)(description);
191
- const hasCancelText = (0, _utils.isRenderable)(cancelText);
192
- const lastPopupCloseReasonRef = (0, _react().useRef)('close');
183
+ const closeable = closeableP ?? tokens.defaults.closeable;
184
+ const round = roundP ?? tokens.defaults.round;
185
+ const safeBottom = safeP ?? tokens.defaults.safeAreaInsetBottom;
186
+ const overlay = ovP ?? tokens.defaults.overlay;
187
+ const lockScroll = lockP ?? tokens.defaults.lockScroll;
188
+ const closeOnAct = closeOnActP ?? closeOnSelect ?? tokens.defaults.closeOnClickAction;
189
+ const hasT = (0, _utils.isRenderable)(title);
190
+ const hasD = (0, _utils.isRenderable)(description);
191
+ const hasC = (0, _utils.isRenderable)(cancelText);
192
+ const lastReasonRef = (0, _react().useRef)('close');
193
193
  const closingRef = (0, _react().useRef)(false);
194
194
  const beforeCloseRef = (0, _react().useRef)(beforeClose);
195
195
  beforeCloseRef.current = beforeClose;
@@ -199,7 +199,7 @@ const ActionSheetImpl = props => {
199
199
  onCancelRef.current = onCancel;
200
200
  const onSelectRef = (0, _react().useRef)(onSelect);
201
201
  onSelectRef.current = onSelect;
202
- const runBeforeClose = (0, _react().useCallback)(async action => {
202
+ const runBefore = (0, _react().useCallback)(async action => {
203
203
  if (!beforeCloseRef.current) return true;
204
204
  try {
205
205
  return (await beforeCloseRef.current(action)) !== false;
@@ -216,61 +216,55 @@ const ActionSheetImpl = props => {
216
216
  ;
217
217
  onCancelRef.current?.();
218
218
  }, []);
219
- const requestClose = (0, _react().useCallback)(async action => {
219
+ const reqClose = (0, _react().useCallback)(async action => {
220
220
  if (closingRef.current) return;
221
221
  closingRef.current = true;
222
222
  try {
223
- const allowed = await runBeforeClose(action);
224
- if (!allowed) return;
223
+ const ok = await runBefore(action);
224
+ if (!ok) return;
225
225
  emitClose(action);
226
226
  } finally {
227
227
  closingRef.current = false;
228
228
  }
229
- }, [emitClose, runBeforeClose]);
230
- const handlePopupBeforeClose = (0, _react().useCallback)(reason => {
231
- lastPopupCloseReasonRef.current = reason;
232
- return runBeforeClose(reason);
233
- }, [runBeforeClose]);
234
- const handlePopupClose = (0, _react().useCallback)(() => {
235
- emitClose(lastPopupCloseReasonRef.current);
229
+ }, [emitClose, runBefore]);
230
+ const onPopupBefore = (0, _react().useCallback)(reason => {
231
+ lastReasonRef.current = reason;
232
+ return runBefore(reason);
233
+ }, [runBefore]);
234
+ const onPopupClose = (0, _react().useCallback)(() => {
235
+ emitClose(lastReasonRef.current);
236
236
  }, [emitClose]);
237
- const handleCancel = (0, _react().useCallback)(() => {
238
- void requestClose('cancel');
239
- }, [requestClose]);
240
- const handleCloseIcon = (0, _react().useCallback)(() => {
241
- void requestClose('close-icon');
242
- }, [requestClose]);
243
- const handleActionPress = (0, _react().useCallback)((action, index) => {
237
+ const onActPress = (0, _react().useCallback)((action, index) => {
244
238
  if (action.disabled || action.loading) return;
245
239
  action.onPress?.(action);
246
240
  action.callback?.(action);
247
241
  onSelectRef.current?.(action, index);
248
- if (shouldCloseOnClickAction) void requestClose('action');
249
- }, [requestClose, shouldCloseOnClickAction]);
250
- const popupStyleMemo = (0, _react().useMemo)(() => [tokens.layout.popup, popupStyle], [tokens.layout.popup, popupStyle]);
242
+ if (closeOnAct) void reqClose('action');
243
+ }, [reqClose, closeOnAct]);
244
+ const popStyleMemo = (0, _react().useMemo)(() => [tokens.layout.popup, popStyle], [tokens.layout.popup, popStyle]);
251
245
  return /*#__PURE__*/_react().default.createElement(_popup.default, _extends({
252
246
  visible: visible,
253
247
  placement: "bottom",
254
248
  round: round,
255
- safeAreaInsetTop: hasTitle && closeable,
256
- safeAreaInsetBottom: safeAreaInsetBottom,
249
+ safeAreaInsetTop: hasT && closeable,
250
+ safeAreaInsetBottom: safeBottom,
257
251
  overlay: overlay,
258
252
  lockScroll: lockScroll,
259
- beforeClose: handlePopupBeforeClose,
260
- onClose: handlePopupClose,
261
- style: popupStyleMemo
262
- }, popupProps), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
253
+ beforeClose: onPopupBefore,
254
+ onClose: onPopupClose,
255
+ style: popStyleMemo
256
+ }, popProps), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
263
257
  accessibilityRole: "menu",
264
258
  style: [tokens.layout.panel, {
265
259
  backgroundColor: tokens.colors.background
266
260
  }]
267
- }, hasTitle && /*#__PURE__*/_react().default.createElement(ActionSheetHeader, {
261
+ }, hasT && /*#__PURE__*/_react().default.createElement(ActionSheetHeader, {
268
262
  title: title,
269
263
  closeable: closeable,
270
264
  closeIcon: closeIcon,
271
265
  tokens: tokens,
272
- onClose: handleCloseIcon
273
- }), hasDescription && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
266
+ onClose: () => void reqClose('close-icon')
267
+ }), hasD && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
274
268
  style: tokens.layout.descriptionContainer
275
269
  }, (0, _utils.isText)(description) ? (0, _utils.renderTextOrNode)(description, [tokens.layout.description, {
276
270
  color: tokens.colors.description,
@@ -291,11 +285,11 @@ const ActionSheetImpl = props => {
291
285
  action: action,
292
286
  index: index,
293
287
  tokens: tokens,
294
- onActionPress: handleActionPress
295
- }))), children, hasCancelText && /*#__PURE__*/_react().default.createElement(ActionSheetCancel, {
288
+ onActionPress: onActPress
289
+ }))), children, hasC && /*#__PURE__*/_react().default.createElement(ActionSheetCancel, {
296
290
  cancelText: cancelText,
297
291
  tokens: tokens,
298
- onPress: handleCancel
292
+ onPress: () => void reqClose('cancel')
299
293
  })));
300
294
  };
301
295
  const ActionSheet = /*#__PURE__*/_react().default.memo(ActionSheetImpl);
@@ -20,19 +20,19 @@ const sortEntries = record => record ? Object.entries(record).sort(([a], [b]) =>
20
20
  const getProvinceCode = code => code.slice(0, 2);
21
21
  const getCityCode = code => code.slice(0, 4);
22
22
  const groupBy = (list, getKey) => {
23
- const map = new Map();
23
+ const m = new Map();
24
24
  sortEntries(list).forEach(([code, name]) => {
25
- const key = getKey(code);
26
- const array = map.get(key);
27
- if (array) array.push({
25
+ const k = getKey(code);
26
+ const arr = m.get(k);
27
+ if (arr) arr.push({
28
28
  label: name,
29
29
  value: code
30
- });else map.set(key, [{
30
+ });else m.set(k, [{
31
31
  label: name,
32
32
  value: code
33
33
  }]);
34
34
  });
35
- return map;
35
+ return m;
36
36
  };
37
37
  const buildAreaColumns = (areaList, columnsNum = 3) => {
38
38
  const provinces = sortEntries(areaList.province_list);
@@ -81,15 +81,15 @@ const AreaImpl = props => {
81
81
  const tokens = (0, _tokens.useAreaTokens)();
82
82
  const {
83
83
  areaList,
84
- columnsNum: columnsNumProp = tokens.defaults.columnsNum,
84
+ columnsNum: colP = tokens.defaults.columnsNum,
85
85
  value,
86
86
  defaultValue,
87
87
  onChange,
88
88
  onConfirm,
89
- interactionMode: interactionModeProp = tokens.defaults.interactionMode,
89
+ interactionMode: modeP = tokens.defaults.interactionMode,
90
90
  ...rest
91
91
  } = props;
92
- const resolvedColumnsNum = (0, _react().useMemo)(() => columnsNumProp >= 1 && columnsNumProp <= 3 ? columnsNumProp : tokens.defaults.columnsNum, [columnsNumProp]);
92
+ const cols = (0, _react().useMemo)(() => colP >= 1 && colP <= 3 ? colP : tokens.defaults.columnsNum, [colP]);
93
93
  const {
94
94
  province_list,
95
95
  city_list,
@@ -99,27 +99,27 @@ const AreaImpl = props => {
99
99
  province_list,
100
100
  city_list,
101
101
  county_list
102
- }, resolvedColumnsNum), [city_list, county_list, province_list, resolvedColumnsNum]);
103
- const normalize = (0, _react().useCallback)(val => val === undefined ? undefined : normalizeCascadeValue(columns, val, resolvedColumnsNum), [columns, resolvedColumnsNum]);
104
- const normalizedValue = (0, _react().useMemo)(() => normalize(value), [normalize, value]);
105
- const normalizedDefaultValue = (0, _react().useMemo)(() => normalize(defaultValue), [normalize, defaultValue]);
102
+ }, cols), [city_list, county_list, province_list, cols]);
103
+ const norm = (0, _react().useCallback)(val => val === undefined ? undefined : normalizeCascadeValue(columns, val, cols), [columns, cols]);
104
+ const normVal = (0, _react().useMemo)(() => norm(value), [norm, value]);
105
+ const normDef = (0, _react().useMemo)(() => norm(defaultValue), [norm, defaultValue]);
106
106
  const onChangeRef = (0, _react().useRef)(onChange);
107
107
  onChangeRef.current = onChange;
108
108
  const onConfirmRef = (0, _react().useRef)(onConfirm);
109
109
  onConfirmRef.current = onConfirm;
110
- const wrappedOnChange = (0, _react().useCallback)((values, options) => {
111
- onChangeRef.current?.(values.map(String), options);
110
+ const onCh = (0, _react().useCallback)((values, opts) => {
111
+ onChangeRef.current?.(values.map(String), opts);
112
112
  }, []);
113
- const wrappedOnConfirm = (0, _react().useCallback)((values, options) => {
114
- onConfirmRef.current?.(values.map(String), options);
113
+ const onConf = (0, _react().useCallback)((values, opts) => {
114
+ onConfirmRef.current?.(values.map(String), opts);
115
115
  }, []);
116
116
  return /*#__PURE__*/_react().default.createElement(_picker.default, _extends({}, rest, {
117
117
  columns: columns,
118
- interactionMode: interactionModeProp,
119
- value: normalizedValue,
120
- defaultValue: normalizedDefaultValue,
121
- onChange: onChange ? wrappedOnChange : undefined,
122
- onConfirm: onConfirm ? wrappedOnConfirm : undefined
118
+ interactionMode: modeP,
119
+ value: normVal,
120
+ defaultValue: normDef,
121
+ onChange: onChange ? onCh : undefined,
122
+ onConfirm: onConfirm ? onConf : undefined
123
123
  }));
124
124
  };
125
125
  const Area = /*#__PURE__*/_react().default.memo(AreaImpl);
@@ -61,11 +61,11 @@ const AvatarImpl = (props, ref) => {
61
61
  source,
62
62
  icon,
63
63
  text,
64
- size: sizeProp,
65
- width: widthProp,
66
- height: heightProp,
67
- shape: shapeProp,
68
- fit: fitProp,
64
+ size: szP,
65
+ width: wP,
66
+ height: hP,
67
+ shape: shapeP,
68
+ fit: fitP,
69
69
  color,
70
70
  backgroundColor,
71
71
  style,
@@ -76,45 +76,45 @@ const AvatarImpl = (props, ref) => {
76
76
  ...rest
77
77
  } = props;
78
78
  const tokens = (0, _tokens.useAvatarTokens)(tokensOverride);
79
- const resolvedSize = sizeProp ?? tokens.defaults.size;
80
- const resolvedShape = shapeProp ?? tokens.defaults.shape;
81
- const baseSize = (0, _utils.isNumber)(resolvedSize) ? resolvedSize : tokens.sizing.sizes[resolvedSize];
82
- const avatarWidth = widthProp ?? baseSize;
83
- const avatarHeight = heightProp ?? baseSize;
84
- const borderRadius = resolvedShape === 'circle' ? Math.min(avatarWidth, avatarHeight) / 2 : Math.max(tokens.radii.squareMin, Math.min(avatarWidth, avatarHeight) / tokens.radii.squareDivisor);
85
- const transparentContainerStyle = {
79
+ const rSz = szP ?? tokens.defaults.size;
80
+ const rShape = shapeP ?? tokens.defaults.shape;
81
+ const base = (0, _utils.isNumber)(rSz) ? rSz : tokens.sizing.sizes[rSz];
82
+ const w = wP ?? base;
83
+ const h = hP ?? base;
84
+ const radius = rShape === 'circle' ? Math.min(w, h) / 2 : Math.max(tokens.radii.squareMin, Math.min(w, h) / tokens.radii.squareDivisor);
85
+ const transStyle = {
86
86
  backgroundColor: tokens.colors.transparent
87
87
  };
88
- const fallbackContent = icon ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
88
+ const fallback = icon ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
89
89
  style: [tokens.layout.iconWrapper, {
90
- width: Math.min(avatarWidth, tokens.sizing.iconMaxSize),
91
- height: Math.min(avatarHeight, tokens.sizing.iconMaxSize)
90
+ width: Math.min(w, tokens.sizing.iconMaxSize),
91
+ height: Math.min(h, tokens.sizing.iconMaxSize)
92
92
  }, contentStyle]
93
93
  }, icon) : text && /*#__PURE__*/_react().default.createElement(AvatarFallbackText, {
94
94
  color: color,
95
95
  style: [{
96
- fontSize: Math.min(avatarWidth, avatarHeight) * tokens.typography.fallbackTextScale
96
+ fontSize: Math.min(w, h) * tokens.typography.fallbackTextScale
97
97
  }, textStyle]
98
98
  }, text.trim().slice(0, 2).toUpperCase());
99
99
  const content = children ?? (src || source ? /*#__PURE__*/_react().default.createElement(AvatarImage, {
100
100
  src: src,
101
101
  source: source,
102
- containerStyle: transparentContainerStyle,
102
+ containerStyle: transStyle,
103
103
  style: tokens.layout.image,
104
- fit: fitProp ?? 'cover',
104
+ fit: fitP ?? 'cover',
105
105
  loadingText: null,
106
106
  loadingSize: tokens.sizing.loadingSize,
107
107
  showError: true,
108
- fallback: fallbackContent
109
- }) : fallbackContent);
108
+ fallback: fallback
109
+ }) : fallback);
110
110
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({
111
111
  ref: ref,
112
112
  accessibilityRole: "image",
113
113
  accessibilityLabel: text ?? (src ? 'avatar' : undefined),
114
114
  style: [tokens.layout.container, {
115
- width: avatarWidth,
116
- height: avatarHeight,
117
- borderRadius,
115
+ width: w,
116
+ height: h,
117
+ borderRadius: radius,
118
118
  backgroundColor: backgroundColor ?? tokens.colors.background
119
119
  }, style]
120
120
  }, rest), content);
@@ -28,10 +28,10 @@ const BadgeImpl = (props, ref) => {
28
28
  content,
29
29
  color,
30
30
  textColor,
31
- dot: dotProp,
31
+ dot: dotP,
32
32
  max,
33
33
  offset,
34
- showZero: showZeroProp,
34
+ showZero: showZeroP,
35
35
  badgeStyle,
36
36
  textStyle,
37
37
  onPress,
@@ -40,65 +40,66 @@ const BadgeImpl = (props, ref) => {
40
40
  ...rest
41
41
  } = props;
42
42
  const tokens = (0, _tokens.useBadgeTokens)(tokensOverride);
43
- const dot = dotProp ?? tokens.defaults.dot;
44
- const showZero = showZeroProp ?? tokens.defaults.showZero;
45
- const hasChildren = _react().default.Children.count(children) > 0;
43
+ const dot = dotP ?? tokens.defaults.dot;
44
+ const showZero = showZeroP ?? tokens.defaults.showZero;
45
+ const hasCh = _react().default.Children.count(children) > 0;
46
46
  const {
47
47
  visible,
48
48
  formattedContent
49
49
  } = (0, _react().useMemo)(() => {
50
- const numericContent = (0, _utils.isNumericLike)(content) ? Number(content) : null;
51
- const shouldHide = numericContent === 0 && !showZero;
52
- const isVisible = dot || (0, _utils.isRenderable)(content) && !shouldHide;
53
- if (!isVisible || dot) return {
54
- visible: isVisible,
50
+ const num = (0, _utils.isNumericLike)(content) ? Number(content) : null;
51
+ const hide = num === 0 && !showZero;
52
+ const vis = dot || (0, _utils.isRenderable)(content) && !hide;
53
+ if (!vis || dot) return {
54
+ visible: vis,
55
55
  formattedContent: null
56
56
  };
57
- const numericMax = (0, _utils.isNumericLike)(max) ? Number(max) : null;
58
- const formatted = numericContent !== null && numericMax !== null && numericContent > numericMax ? `${numericMax}+` : content;
57
+ const numMax = (0, _utils.isNumericLike)(max) ? Number(max) : null;
58
+ const fmt = num !== null && numMax !== null && num > numMax ? `${numMax}+` : content;
59
59
  return {
60
60
  visible: true,
61
- formattedContent: formatted
61
+ formattedContent: fmt
62
62
  };
63
63
  }, [content, dot, max, showZero]);
64
- const [size, setSize] = (0, _react().useState)({
64
+ const [sz, setSz] = (0, _react().useState)({
65
65
  width: 0,
66
66
  height: 0
67
67
  });
68
- const handleLayout = (0, _react().useCallback)(event => {
68
+ const onLay = (0, _react().useCallback)(e => {
69
69
  const {
70
70
  width,
71
71
  height
72
- } = event.nativeEvent.layout;
73
- setSize(prev => prev.width === width && prev.height === height ? prev : {
72
+ } = e.nativeEvent.layout;
73
+ setSz(prev => prev.width === width && prev.height === height ? prev : {
74
74
  width,
75
75
  height
76
76
  });
77
77
  }, []);
78
- const transformStyle = (0, _react().useMemo)(() => {
79
- if (!hasChildren) return undefined;
78
+ const transStyle = (0, _react().useMemo)(() => {
79
+ if (!hasCh) return undefined;
80
80
  if (dot) {
81
- const halfSize = tokens.sizing.dotSize / 2;
81
+ const h = tokens.sizing.dotSize / 2;
82
82
  return {
83
83
  transform: [{
84
- translateX: halfSize
84
+ translateX: h
85
85
  }, {
86
- translateY: -halfSize
86
+ translateY: -h
87
87
  }]
88
88
  };
89
89
  }
90
- if (size.width === 0) return {
90
+ ;
91
+ if (sz.width === 0) return {
91
92
  opacity: 0
92
93
  };
93
94
  return {
94
95
  transform: [{
95
- translateX: size.width / 2
96
+ translateX: sz.width / 2
96
97
  }, {
97
- translateY: -size.height / 2
98
+ translateY: -sz.height / 2
98
99
  }]
99
100
  };
100
- }, [dot, hasChildren, size.height, size.width, tokens.sizing.dotSize]);
101
- const badgeBoxStyle = (0, _react().useMemo)(() => dot ? {
101
+ }, [dot, hasCh, sz.height, sz.width, tokens.sizing.dotSize]);
102
+ const boxStyle = (0, _react().useMemo)(() => dot ? {
102
103
  width: tokens.sizing.dotSize,
103
104
  height: tokens.sizing.dotSize,
104
105
  borderRadius: tokens.radii.dot,
@@ -113,45 +114,39 @@ const BadgeImpl = (props, ref) => {
113
114
  borderColor: tokens.colors.border,
114
115
  backgroundColor: color ?? tokens.colors.background
115
116
  }, [color, dot, tokens.borders.width, tokens.colors.background, tokens.colors.border, tokens.colors.dot, tokens.radii.badge, tokens.radii.dot, tokens.sizing.dotSize, tokens.sizing.height, tokens.sizing.minWidth, tokens.sizing.paddingHorizontal, tokens.sizing.paddingVertical]);
116
- const mergedTextStyle = [tokens.layout.text, {
117
+ const txtStyle = [tokens.layout.text, {
117
118
  color: textColor ?? tokens.colors.text,
118
119
  fontSize: tokens.typography.fontSize,
119
120
  lineHeight: tokens.typography.lineHeight,
120
121
  fontFamily: tokens.typography.fontFamily,
121
122
  fontWeight: tokens.typography.fontWeight
122
123
  }, textStyle];
123
- const offsetStyle = (0, _react().useMemo)(() => {
124
- if (!offset) return undefined;
125
- const [x, y] = offset;
126
- return hasChildren ? {
127
- right: x,
128
- top: y
129
- } : {
130
- marginLeft: x,
131
- marginTop: y
132
- };
133
- }, [hasChildren, offset]);
134
- const badgeElement = !visible ? null : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
135
- pointerEvents: hasChildren ? 'none' : 'auto',
136
- onLayout: hasChildren && !dot ? handleLayout : undefined,
137
- style: [hasChildren ? tokens.layout.badgeAbsolute : tokens.layout.badgeStandalone, badgeBoxStyle, transformStyle, offsetStyle, badgeStyle, !hasChildren ? style : undefined]
138
- }, !dot && (0, _utils.renderTextOrNode)(formattedContent, mergedTextStyle));
139
- const accessibilityLabel = visible ? dot ? 'has new content' : `${formattedContent}` : undefined;
140
- if (hasChildren) {
141
- return onPress ? /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({
142
- ref: ref,
143
- onPress: onPress,
144
- accessibilityLabel: accessibilityLabel,
145
- style: ({
146
- pressed
147
- }) => [tokens.layout.wrapper, style, pressed && {
148
- opacity: tokens.defaults.pressedOpacity
149
- }]
150
- }, rest), children, badgeElement) : /*#__PURE__*/_react().default.createElement(_reactNative().View, _extends({
151
- ref: ref,
152
- style: [tokens.layout.wrapper, style]
153
- }, rest), children, badgeElement);
154
- }
124
+ const offStyle = (0, _react().useMemo)(() => !offset ? undefined : hasCh ? {
125
+ right: offset[0],
126
+ top: offset[1]
127
+ } : {
128
+ marginLeft: offset[0],
129
+ marginTop: offset[1]
130
+ }, [hasCh, offset]);
131
+ const badgeEl = !visible ? null : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
132
+ pointerEvents: hasCh ? 'none' : 'auto',
133
+ onLayout: hasCh && !dot ? onLay : undefined,
134
+ style: [hasCh ? tokens.layout.badgeAbsolute : tokens.layout.badgeStandalone, boxStyle, transStyle, offStyle, badgeStyle, !hasCh ? style : undefined]
135
+ }, !dot && (0, _utils.renderTextOrNode)(formattedContent, txtStyle));
136
+ const accLabel = visible ? dot ? 'has new content' : `${formattedContent}` : undefined;
137
+ if (hasCh) return onPress ? /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({
138
+ ref: ref,
139
+ onPress: onPress,
140
+ accessibilityLabel: accLabel,
141
+ style: ({
142
+ pressed
143
+ }) => [tokens.layout.wrapper, style, pressed && {
144
+ opacity: tokens.defaults.pressedOpacity
145
+ }]
146
+ }, rest), children, badgeEl) : /*#__PURE__*/_react().default.createElement(_reactNative().View, _extends({
147
+ ref: ref,
148
+ style: [tokens.layout.wrapper, style]
149
+ }, rest), children, badgeEl);
155
150
  if (!visible) return null;
156
151
  return onPress ? /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({
157
152
  ref: ref,
@@ -161,7 +156,7 @@ const BadgeImpl = (props, ref) => {
161
156
  }) => [tokens.layout.pressableStandalone, pressed && {
162
157
  opacity: tokens.defaults.pressedOpacity
163
158
  }]
164
- }, rest), badgeElement) : /*#__PURE__*/_react().default.cloneElement(badgeElement, {
159
+ }, rest), badgeEl) : /*#__PURE__*/_react().default.cloneElement(badgeEl, {
165
160
  ref,
166
161
  ...rest
167
162
  });