react-native-system-ui 0.0.7 → 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 (411) hide show
  1. package/README.md +46 -31
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +128 -142
  3. package/dist/cjs/components/action-sheet/tokens.js +16 -27
  4. package/dist/cjs/components/area/Area.js +57 -70
  5. package/dist/cjs/components/area/tokens.js +6 -3
  6. package/dist/cjs/components/avatar/Avatar.js +38 -36
  7. package/dist/cjs/components/badge/Badge.js +68 -73
  8. package/dist/cjs/components/badge/tokens.js +6 -8
  9. package/dist/cjs/components/button/Button.js +135 -176
  10. package/dist/cjs/components/button/ButtonGroup.js +11 -45
  11. package/dist/cjs/components/button/tokens.js +1 -8
  12. package/dist/cjs/components/calendar/Calendar.js +212 -223
  13. package/dist/cjs/components/calendar/tokens.js +3 -3
  14. package/dist/cjs/components/cascader/Cascader.js +257 -267
  15. package/dist/cjs/components/cascader/tokens.js +2 -2
  16. package/dist/cjs/components/cascader/useCascaderExtend.js +25 -29
  17. package/dist/cjs/components/cell/Cell.js +94 -104
  18. package/dist/cjs/components/cell/CellGroup.js +37 -49
  19. package/dist/cjs/components/checkbox/Checkbox.js +140 -132
  20. package/dist/cjs/components/checkbox/CheckboxGroup.js +21 -51
  21. package/dist/cjs/components/checkbox/tokens.js +7 -10
  22. package/dist/cjs/components/circle/Circle.js +87 -74
  23. package/dist/cjs/components/collapse/Collapse.js +88 -104
  24. package/dist/cjs/components/config-provider/ConfigProvider.js +17 -4
  25. package/dist/cjs/components/config-provider/DirectionContext.js +15 -0
  26. package/dist/cjs/components/config-provider/index.js +7 -0
  27. package/dist/cjs/components/config-provider/locale/en-US.js +32 -0
  28. package/dist/cjs/components/config-provider/locale/zh-CN.js +32 -0
  29. package/dist/cjs/components/config-provider/useDirection.js +16 -0
  30. package/dist/cjs/components/count-down/CountDown.js +32 -27
  31. package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -104
  32. package/dist/cjs/components/datetime-picker/tokens.js +14 -3
  33. package/dist/cjs/components/dialog/Dialog.js +159 -121
  34. package/dist/cjs/components/dialog/imperative.js +24 -43
  35. package/dist/cjs/components/dialog/tokens.js +1 -0
  36. package/dist/cjs/components/divider/Divider.js +57 -62
  37. package/dist/cjs/components/empty/Empty.js +53 -52
  38. package/dist/cjs/components/error-boundary/ErrorBoundary.js +74 -0
  39. package/dist/cjs/components/error-boundary/index.js +19 -0
  40. package/dist/cjs/components/field/Field.js +109 -106
  41. package/dist/cjs/components/flex/Flex.js +32 -32
  42. package/dist/cjs/components/flex/FlexItem.js +27 -27
  43. package/dist/cjs/components/form/Form.js +178 -196
  44. package/dist/cjs/components/form/FormItem.js +87 -109
  45. package/dist/cjs/components/form/FormList.js +57 -45
  46. package/dist/cjs/components/form/tokens.js +6 -3
  47. package/dist/cjs/components/form/utils.js +15 -34
  48. package/dist/cjs/components/grid/Grid.js +44 -43
  49. package/dist/cjs/components/grid/GridItem.js +92 -86
  50. package/dist/cjs/components/image/Image.js +76 -79
  51. package/dist/cjs/components/image/tokens.js +5 -3
  52. package/dist/cjs/components/image-preview/ImagePreview.js +125 -113
  53. package/dist/cjs/components/image-preview/imperative.js +4 -13
  54. package/dist/cjs/components/image-preview/tokens.js +3 -1
  55. package/dist/cjs/components/index.js +13 -0
  56. package/dist/cjs/components/input/Input.js +40 -35
  57. package/dist/cjs/components/loading/Loading.js +32 -33
  58. package/dist/cjs/components/nav-bar/NavBar.js +88 -100
  59. package/dist/cjs/components/nav-bar/tokens.js +4 -10
  60. package/dist/cjs/components/notice-bar/NoticeBar.js +81 -80
  61. package/dist/cjs/components/notice-bar/tokens.js +3 -1
  62. package/dist/cjs/components/notify/Notify.js +89 -84
  63. package/dist/cjs/components/notify/imperative.js +32 -55
  64. package/dist/cjs/components/notify/tokens.js +2 -11
  65. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +277 -283
  66. package/dist/cjs/components/number-keyboard/tokens.js +7 -1
  67. package/dist/cjs/components/overlay/Overlay.js +37 -52
  68. package/dist/cjs/components/overlay/tokens.js +5 -3
  69. package/dist/cjs/components/password-input/PasswordInput.js +114 -95
  70. package/dist/cjs/components/picker/Picker.js +465 -454
  71. package/dist/cjs/components/picker/tokens.js +1 -1
  72. package/dist/cjs/components/popup/Popup.js +269 -299
  73. package/dist/cjs/components/popup/tokens.js +1 -0
  74. package/dist/cjs/components/portal/Portal.js +12 -30
  75. package/dist/cjs/components/portal/PortalHost.js +151 -234
  76. package/dist/cjs/components/progress/Progress.js +103 -101
  77. package/dist/cjs/components/progress/tokens.js +1 -0
  78. package/dist/cjs/components/radio/Radio.js +98 -91
  79. package/dist/cjs/components/radio/RadioGroup.js +13 -45
  80. package/dist/cjs/components/radio/tokens.js +7 -10
  81. package/dist/cjs/components/safe-area-view/SafeAreaView.js +22 -26
  82. package/dist/cjs/components/search/Search.js +65 -57
  83. package/dist/cjs/components/selector/Selector.js +21 -27
  84. package/dist/cjs/components/share-sheet/ShareSheet.js +165 -161
  85. package/dist/cjs/components/share-sheet/tokens.js +3 -1
  86. package/dist/cjs/components/sidebar/Sidebar.js +51 -51
  87. package/dist/cjs/components/sidebar/SidebarContext.js +1 -2
  88. package/dist/cjs/components/sidebar/SidebarItem.js +19 -21
  89. package/dist/cjs/components/sidebar/tokens.js +4 -4
  90. package/dist/cjs/components/skeleton/Skeleton.js +71 -77
  91. package/dist/cjs/components/skeleton/tokens.js +1 -2
  92. package/dist/cjs/components/slider/Slider.js +156 -135
  93. package/dist/cjs/components/space/Space.js +57 -76
  94. package/dist/cjs/components/space/tokens.js +7 -1
  95. package/dist/cjs/components/stepper/Stepper.js +182 -158
  96. package/dist/cjs/components/stepper/tokens.js +1 -0
  97. package/dist/cjs/components/swiper/Swiper.js +256 -255
  98. package/dist/cjs/components/swiper/SwiperPagIndicator.js +26 -27
  99. package/dist/cjs/components/swiper/tokens.js +10 -3
  100. package/dist/cjs/components/switch/Switch.js +23 -25
  101. package/dist/cjs/components/tabbar/Tabbar.js +48 -40
  102. package/dist/cjs/components/tabbar/TabbarContext.js +1 -2
  103. package/dist/cjs/components/tabbar/TabbarItem.js +65 -68
  104. package/dist/cjs/components/tabs/Tabs.js +402 -439
  105. package/dist/cjs/components/tabs/tokens.js +3 -1
  106. package/dist/cjs/components/tag/Tag.js +68 -59
  107. package/dist/cjs/components/toast/Toast.js +91 -90
  108. package/dist/cjs/components/toast/imperative.js +16 -41
  109. package/dist/cjs/components/toast/tokens.js +1 -0
  110. package/dist/cjs/components/typography/Typography.js +25 -25
  111. package/dist/cjs/components/water-mark/WaterMark.js +80 -78
  112. package/dist/cjs/design-system/Text.js +38 -0
  113. package/dist/cjs/design-system/ThemeProvider.js +5 -11
  114. package/dist/cjs/design-system/createComponentTokensHook.js +11 -13
  115. package/dist/cjs/design-system/index.js +7 -0
  116. package/dist/cjs/design-system/mergeTokensOverride.js +1 -4
  117. package/dist/cjs/design-system/presets.js +2 -3
  118. package/dist/cjs/design-system/tokens.js +2 -11
  119. package/dist/cjs/hooks/animation/index.js +25 -0
  120. package/dist/cjs/hooks/animation/useAnimatedTransition.js +72 -0
  121. package/dist/cjs/hooks/animation/useReducedMotion.js +75 -0
  122. package/dist/cjs/hooks/aria/useAriaListBox.js +8 -16
  123. package/dist/cjs/hooks/aria/useAriaOverlay.js +3 -3
  124. package/dist/cjs/hooks/aria/useAriaPress.js +8 -21
  125. package/dist/cjs/hooks/aria/useAriaToggle.js +3 -3
  126. package/dist/cjs/hooks/gesture/useGestureScroll.js +60 -61
  127. package/dist/cjs/hooks/index.js +12 -0
  128. package/dist/cjs/hooks/overlay/OverlayStackStore.js +49 -69
  129. package/dist/cjs/hooks/overlay/useOverlayStack.js +13 -19
  130. package/dist/cjs/hooks/useControllableValue.js +13 -24
  131. package/dist/cjs/hooks/useCountDown.js +30 -38
  132. package/dist/cjs/hooks/useHairline.js +17 -29
  133. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -4
  134. package/dist/cjs/index.js +67 -1
  135. package/dist/cjs/platform/animation.js +10 -2
  136. package/dist/cjs/platform/measure.js +21 -37
  137. package/dist/cjs/utils/color.js +20 -39
  138. package/dist/cjs/utils/compare.js +7 -12
  139. package/dist/cjs/utils/createPlatformShadow.js +28 -39
  140. package/dist/cjs/utils/date.js +20 -50
  141. package/dist/cjs/utils/deepMerge.js +16 -26
  142. package/dist/cjs/utils/hairline.js +75 -71
  143. package/dist/cjs/utils/index.js +22 -0
  144. package/dist/cjs/utils/number.js +21 -29
  145. package/dist/cjs/utils/render.js +21 -0
  146. package/dist/cjs/utils/rtl.js +25 -0
  147. package/dist/cjs/utils/string.js +8 -25
  148. package/dist/cjs/utils/validate.js +2 -4
  149. package/dist/es/components/action-sheet/ActionSheet.js +130 -144
  150. package/dist/es/components/action-sheet/tokens.js +16 -27
  151. package/dist/es/components/area/Area.js +58 -71
  152. package/dist/es/components/area/tokens.js +6 -3
  153. package/dist/es/components/avatar/Avatar.js +38 -36
  154. package/dist/es/components/avatar/index.js +1 -2
  155. package/dist/es/components/badge/Badge.js +70 -75
  156. package/dist/es/components/badge/tokens.js +6 -8
  157. package/dist/es/components/button/Button.js +136 -177
  158. package/dist/es/components/button/ButtonGroup.js +12 -46
  159. package/dist/es/components/button/tokens.js +2 -3
  160. package/dist/es/components/calendar/Calendar.js +214 -225
  161. package/dist/es/components/calendar/tokens.js +3 -3
  162. package/dist/es/components/cascader/Cascader.js +260 -270
  163. package/dist/es/components/cascader/tokens.js +2 -2
  164. package/dist/es/components/cascader/useCascaderExtend.js +25 -29
  165. package/dist/es/components/cell/Cell.js +95 -105
  166. package/dist/es/components/cell/CellGroup.js +37 -48
  167. package/dist/es/components/checkbox/Checkbox.js +141 -133
  168. package/dist/es/components/checkbox/CheckboxGroup.js +22 -52
  169. package/dist/es/components/checkbox/tokens.js +7 -10
  170. package/dist/es/components/circle/Circle.js +87 -73
  171. package/dist/es/components/collapse/Collapse.js +90 -105
  172. package/dist/es/components/config-provider/ConfigProvider.js +11 -4
  173. package/dist/es/components/config-provider/DirectionContext.js +2 -0
  174. package/dist/es/components/config-provider/index.js +1 -0
  175. package/dist/es/components/config-provider/locale/en-US.js +32 -0
  176. package/dist/es/components/config-provider/locale/zh-CN.js +32 -0
  177. package/dist/es/components/config-provider/useDirection.js +3 -0
  178. package/dist/es/components/count-down/CountDown.js +35 -30
  179. package/dist/es/components/datetime-picker/DatetimePicker.js +80 -104
  180. package/dist/es/components/datetime-picker/tokens.js +14 -3
  181. package/dist/es/components/dialog/Dialog.js +160 -121
  182. package/dist/es/components/dialog/imperative.js +24 -43
  183. package/dist/es/components/dialog/tokens.js +1 -0
  184. package/dist/es/components/divider/Divider.js +59 -63
  185. package/dist/es/components/empty/Empty.js +54 -52
  186. package/dist/es/components/error-boundary/ErrorBoundary.js +62 -0
  187. package/dist/es/components/error-boundary/index.js +1 -0
  188. package/dist/es/components/field/Field.js +109 -106
  189. package/dist/es/components/flex/Flex.js +32 -31
  190. package/dist/es/components/flex/FlexItem.js +28 -27
  191. package/dist/es/components/form/Form.js +179 -197
  192. package/dist/es/components/form/FormItem.js +86 -107
  193. package/dist/es/components/form/FormList.js +57 -45
  194. package/dist/es/components/form/tokens.js +6 -3
  195. package/dist/es/components/form/utils.js +15 -34
  196. package/dist/es/components/grid/Grid.js +44 -42
  197. package/dist/es/components/grid/GridItem.js +94 -87
  198. package/dist/es/components/image/Image.js +79 -82
  199. package/dist/es/components/image/tokens.js +5 -3
  200. package/dist/es/components/image-preview/ImagePreview.js +125 -113
  201. package/dist/es/components/image-preview/imperative.js +4 -13
  202. package/dist/es/components/image-preview/tokens.js +3 -1
  203. package/dist/es/components/index.js +3 -1
  204. package/dist/es/components/input/Input.js +41 -36
  205. package/dist/es/components/loading/Loading.js +34 -34
  206. package/dist/es/components/nav-bar/NavBar.js +88 -100
  207. package/dist/es/components/nav-bar/tokens.js +4 -4
  208. package/dist/es/components/notice-bar/NoticeBar.js +81 -79
  209. package/dist/es/components/notice-bar/tokens.js +3 -1
  210. package/dist/es/components/notify/Notify.js +93 -87
  211. package/dist/es/components/notify/imperative.js +33 -56
  212. package/dist/es/components/notify/tokens.js +2 -5
  213. package/dist/es/components/number-keyboard/NumberKeyboard.js +277 -283
  214. package/dist/es/components/number-keyboard/tokens.js +7 -1
  215. package/dist/es/components/overlay/Overlay.js +36 -51
  216. package/dist/es/components/overlay/tokens.js +5 -3
  217. package/dist/es/components/password-input/PasswordInput.js +114 -95
  218. package/dist/es/components/picker/Picker.js +465 -454
  219. package/dist/es/components/picker/tokens.js +1 -1
  220. package/dist/es/components/popup/Popup.js +269 -298
  221. package/dist/es/components/popup/tokens.js +1 -0
  222. package/dist/es/components/portal/Portal.js +13 -30
  223. package/dist/es/components/portal/PortalHost.js +152 -234
  224. package/dist/es/components/progress/Progress.js +103 -101
  225. package/dist/es/components/progress/tokens.js +1 -0
  226. package/dist/es/components/radio/Radio.js +100 -93
  227. package/dist/es/components/radio/RadioGroup.js +15 -46
  228. package/dist/es/components/radio/tokens.js +7 -10
  229. package/dist/es/components/safe-area-view/SafeAreaView.js +22 -25
  230. package/dist/es/components/search/Search.js +66 -58
  231. package/dist/es/components/selector/Selector.js +21 -27
  232. package/dist/es/components/share-sheet/ShareSheet.js +167 -163
  233. package/dist/es/components/share-sheet/tokens.js +3 -1
  234. package/dist/es/components/sidebar/Sidebar.js +53 -53
  235. package/dist/es/components/sidebar/SidebarContext.js +1 -2
  236. package/dist/es/components/sidebar/SidebarItem.js +19 -20
  237. package/dist/es/components/sidebar/tokens.js +4 -4
  238. package/dist/es/components/skeleton/Skeleton.js +71 -77
  239. package/dist/es/components/skeleton/tokens.js +1 -2
  240. package/dist/es/components/slider/Slider.js +156 -134
  241. package/dist/es/components/space/Space.js +59 -78
  242. package/dist/es/components/space/tokens.js +7 -1
  243. package/dist/es/components/stepper/Stepper.js +183 -159
  244. package/dist/es/components/stepper/tokens.js +1 -0
  245. package/dist/es/components/swiper/Swiper.js +258 -257
  246. package/dist/es/components/swiper/SwiperPagIndicator.js +26 -27
  247. package/dist/es/components/swiper/tokens.js +10 -3
  248. package/dist/es/components/switch/Switch.js +23 -25
  249. package/dist/es/components/tabbar/Tabbar.js +49 -41
  250. package/dist/es/components/tabbar/TabbarContext.js +1 -2
  251. package/dist/es/components/tabbar/TabbarItem.js +66 -69
  252. package/dist/es/components/tabs/Tabs.js +403 -440
  253. package/dist/es/components/tabs/tokens.js +3 -1
  254. package/dist/es/components/tag/Tag.js +71 -61
  255. package/dist/es/components/toast/Toast.js +94 -91
  256. package/dist/es/components/toast/imperative.js +16 -41
  257. package/dist/es/components/toast/tokens.js +1 -0
  258. package/dist/es/components/typography/Typography.js +25 -25
  259. package/dist/es/components/water-mark/WaterMark.js +81 -79
  260. package/dist/es/design-system/Text.js +19 -0
  261. package/dist/es/design-system/ThemeProvider.js +5 -11
  262. package/dist/es/design-system/createComponentTokensHook.js +11 -13
  263. package/dist/es/design-system/index.js +1 -0
  264. package/dist/es/design-system/mergeTokensOverride.js +1 -4
  265. package/dist/es/design-system/presets.js +2 -3
  266. package/dist/es/design-system/tokens.js +1 -9
  267. package/dist/es/hooks/animation/index.js +2 -0
  268. package/dist/es/hooks/animation/useAnimatedTransition.js +53 -0
  269. package/dist/es/hooks/animation/useReducedMotion.js +54 -0
  270. package/dist/es/hooks/aria/useAriaListBox.js +8 -16
  271. package/dist/es/hooks/aria/useAriaOverlay.js +3 -3
  272. package/dist/es/hooks/aria/useAriaPress.js +8 -21
  273. package/dist/es/hooks/aria/useAriaToggle.js +3 -3
  274. package/dist/es/hooks/gesture/useGestureScroll.js +60 -61
  275. package/dist/es/hooks/index.js +1 -0
  276. package/dist/es/hooks/overlay/OverlayStackStore.js +49 -69
  277. package/dist/es/hooks/overlay/useOverlayStack.js +13 -19
  278. package/dist/es/hooks/useControllableValue.js +13 -24
  279. package/dist/es/hooks/useCountDown.js +30 -38
  280. package/dist/es/hooks/useHairline.js +16 -28
  281. package/dist/es/hooks/useSafeAreaPadding.js +1 -4
  282. package/dist/es/index.js +8 -1
  283. package/dist/es/platform/animation.js +9 -1
  284. package/dist/es/platform/measure.js +21 -37
  285. package/dist/es/utils/color.js +18 -35
  286. package/dist/es/utils/compare.js +7 -12
  287. package/dist/es/utils/createPlatformShadow.js +28 -39
  288. package/dist/es/utils/date.js +20 -50
  289. package/dist/es/utils/deepMerge.js +16 -26
  290. package/dist/es/utils/hairline.js +74 -65
  291. package/dist/es/utils/index.js +2 -0
  292. package/dist/es/utils/number.js +21 -29
  293. package/dist/es/utils/render.js +7 -0
  294. package/dist/es/utils/rtl.js +17 -0
  295. package/dist/es/utils/string.js +8 -25
  296. package/dist/es/utils/validate.js +1 -2
  297. package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -1
  298. package/dist/types/components/area/Area.d.ts +1 -1
  299. package/dist/types/components/area/tokens.d.ts +4 -0
  300. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  301. package/dist/types/components/avatar/index.d.ts +1 -2
  302. package/dist/types/components/badge/Badge.d.ts +1 -1
  303. package/dist/types/components/button/Button.d.ts +1 -1
  304. package/dist/types/components/button/index.d.ts +1 -1
  305. package/dist/types/components/calendar/Calendar.d.ts +1 -1
  306. package/dist/types/components/cascader/Cascader.d.ts +1 -1
  307. package/dist/types/components/cell/Cell.d.ts +1 -1
  308. package/dist/types/components/cell/CellGroup.d.ts +1 -1
  309. package/dist/types/components/cell/index.d.ts +2 -2
  310. package/dist/types/components/checkbox/Checkbox.d.ts +1 -1
  311. package/dist/types/components/circle/Circle.d.ts +1 -1
  312. package/dist/types/components/collapse/Collapse.d.ts +1 -2
  313. package/dist/types/components/config-provider/DirectionContext.d.ts +3 -0
  314. package/dist/types/components/config-provider/index.d.ts +2 -1
  315. package/dist/types/components/config-provider/locale/en-US.d.ts +32 -0
  316. package/dist/types/components/config-provider/locale/zh-CN.d.ts +32 -0
  317. package/dist/types/components/config-provider/useDirection.d.ts +1 -0
  318. package/dist/types/components/count-down/CountDown.d.ts +1 -1
  319. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -1
  320. package/dist/types/components/datetime-picker/tokens.d.ts +12 -0
  321. package/dist/types/components/dialog/Dialog.d.ts +1 -1
  322. package/dist/types/components/dialog/tokens.d.ts +1 -0
  323. package/dist/types/components/divider/Divider.d.ts +1 -1
  324. package/dist/types/components/empty/Empty.d.ts +1 -1
  325. package/dist/types/components/error-boundary/ErrorBoundary.d.ts +6 -0
  326. package/dist/types/components/error-boundary/index.d.ts +2 -0
  327. package/dist/types/components/field/Field.d.ts +1 -1
  328. package/dist/types/components/flex/Flex.d.ts +1 -1
  329. package/dist/types/components/flex/FlexItem.d.ts +1 -1
  330. package/dist/types/components/flex/index.d.ts +2 -2
  331. package/dist/types/components/form/Form.d.ts +1 -1
  332. package/dist/types/components/form/FormItem.d.ts +2 -1
  333. package/dist/types/components/form/index.d.ts +2 -2
  334. package/dist/types/components/form/tokens.d.ts +4 -0
  335. package/dist/types/components/grid/Grid.d.ts +1 -1
  336. package/dist/types/components/grid/GridItem.d.ts +1 -1
  337. package/dist/types/components/grid/index.d.ts +2 -2
  338. package/dist/types/components/image/Image.d.ts +1 -1
  339. package/dist/types/components/image-preview/ImagePreview.d.ts +1 -1
  340. package/dist/types/components/image-preview/tokens.d.ts +1 -0
  341. package/dist/types/components/index.d.ts +4 -1
  342. package/dist/types/components/input/Input.d.ts +3 -3
  343. package/dist/types/components/loading/Loading.d.ts +1 -1
  344. package/dist/types/components/nav-bar/NavBar.d.ts +1 -1
  345. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  346. package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -1
  347. package/dist/types/components/notice-bar/tokens.d.ts +1 -0
  348. package/dist/types/components/notify/Notify.d.ts +2 -2
  349. package/dist/types/components/notify/index.d.ts +1 -1
  350. package/dist/types/components/number-keyboard/tokens.d.ts +5 -0
  351. package/dist/types/components/overlay/Overlay.d.ts +1 -5
  352. package/dist/types/components/overlay/tokens.d.ts +3 -0
  353. package/dist/types/components/password-input/PasswordInput.d.ts +1 -1
  354. package/dist/types/components/picker/Picker.d.ts +6 -6
  355. package/dist/types/components/popup/Popup.d.ts +3 -42
  356. package/dist/types/components/popup/tokens.d.ts +1 -0
  357. package/dist/types/components/portal/Portal.d.ts +9 -6
  358. package/dist/types/components/portal/PortalHost.d.ts +1 -1
  359. package/dist/types/components/radio/RadioGroup.d.ts +1 -1
  360. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -1
  361. package/dist/types/components/search/Search.d.ts +1 -1
  362. package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -1
  363. package/dist/types/components/share-sheet/tokens.d.ts +1 -0
  364. package/dist/types/components/sidebar/Sidebar.d.ts +1 -1
  365. package/dist/types/components/sidebar/SidebarContext.d.ts +1 -1
  366. package/dist/types/components/sidebar/SidebarItem.d.ts +1 -1
  367. package/dist/types/components/sidebar/index.d.ts +2 -2
  368. package/dist/types/components/skeleton/Skeleton.d.ts +1 -1
  369. package/dist/types/components/slider/Slider.d.ts +1 -1
  370. package/dist/types/components/stepper/Stepper.d.ts +1 -1
  371. package/dist/types/components/stepper/tokens.d.ts +1 -0
  372. package/dist/types/components/swiper/Swiper.d.ts +1 -1
  373. package/dist/types/components/swiper/index.d.ts +1 -1
  374. package/dist/types/components/swiper/tokens.d.ts +8 -0
  375. package/dist/types/components/tabbar/Tabbar.d.ts +2 -2
  376. package/dist/types/components/tabbar/TabbarContext.d.ts +1 -1
  377. package/dist/types/components/tabbar/TabbarItem.d.ts +2 -2
  378. package/dist/types/components/tabs/Tabs.d.ts +1 -1
  379. package/dist/types/components/tabs/index.d.ts +1 -1
  380. package/dist/types/components/tabs/tokens.d.ts +1 -0
  381. package/dist/types/components/tag/Tag.d.ts +1 -1
  382. package/dist/types/components/toast/Toast.d.ts +2 -2
  383. package/dist/types/components/toast/index.d.ts +1 -1
  384. package/dist/types/components/toast/tokens.d.ts +1 -0
  385. package/dist/types/components/water-mark/WaterMark.d.ts +1 -1
  386. package/dist/types/design-system/Text.d.ts +3 -0
  387. package/dist/types/design-system/index.d.ts +1 -0
  388. package/dist/types/design-system/tokens.d.ts +0 -1
  389. package/dist/types/hooks/animation/index.d.ts +3 -0
  390. package/dist/types/hooks/animation/useAnimatedTransition.d.ts +13 -0
  391. package/dist/types/hooks/animation/useReducedMotion.d.ts +3 -0
  392. package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -1
  393. package/dist/types/hooks/gesture/useGestureScroll.d.ts +11 -10
  394. package/dist/types/hooks/index.d.ts +1 -0
  395. package/dist/types/hooks/overlay/OverlayStackStore.d.ts +8 -8
  396. package/dist/types/hooks/useCountDown.d.ts +1 -1
  397. package/dist/types/hooks/useHairline.d.ts +1 -1
  398. package/dist/types/index.d.ts +5 -0
  399. package/dist/types/platform/animation.d.ts +8 -0
  400. package/dist/types/platform/measure.d.ts +1 -1
  401. package/dist/types/utils/color.d.ts +0 -2
  402. package/dist/types/utils/compare.d.ts +1 -1
  403. package/dist/types/utils/createPlatformShadow.d.ts +2 -2
  404. package/dist/types/utils/date.d.ts +2 -2
  405. package/dist/types/utils/hairline.d.ts +5 -10
  406. package/dist/types/utils/index.d.ts +2 -0
  407. package/dist/types/utils/number.d.ts +2 -2
  408. package/dist/types/utils/render.d.ts +5 -0
  409. package/dist/types/utils/rtl.d.ts +5 -0
  410. package/dist/types/utils/validate.d.ts +0 -1
  411. package/package.json +25 -4
@@ -20,13 +20,16 @@ function _reactNative() {
20
20
  }
21
21
  var _hooks = require("../../hooks");
22
22
  var _utils = require("../../utils");
23
+ var _useDirection = require("../config-provider/useDirection");
23
24
  var _tokens = require("./tokens");
25
+ var _hairline = require("../../utils/hairline");
24
26
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
25
27
  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); }
26
28
  const LONG_PRESS_DELAY = 600;
27
29
  const LONG_PRESS_INTERVAL = 100;
28
- const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, ref) => {
29
- const tokens = (0, _tokens.useStepperTokens)(p.tokensOverride);
30
+ const StepperImpl = (props, ref) => {
31
+ const tokens = (0, _tokens.useStepperTokens)(props.tokensOverride);
32
+ const layoutDir = (0, _useDirection.useDirection)();
30
33
  const {
31
34
  min,
32
35
  max,
@@ -59,50 +62,66 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
59
62
  inputStyle,
60
63
  buttonStyle,
61
64
  style,
62
- ...rest
63
- } = p;
64
- const [changing, setChanging] = (0, _react().useState)(false);
65
+ ...restProps
66
+ } = props;
67
+ const [isChanging, setIsChanging] = (0, _react().useState)(false);
65
68
  const changingRef = (0, _react().useRef)(false);
66
- const decimalLength = (0, _utils.parseDecimalLength)(decimalLengthProp);
67
- const resolvedStepRaw = Number(step ?? 1);
68
- const resolvedStep = (0, _utils.isFiniteNumber)(resolvedStepRaw) && resolvedStepRaw > 0 ? resolvedStepRaw : 1;
69
- const resolvedButtonSize = Math.max(0, (0, _utils.parseNumber)(buttonSize, tokens.defaults.buttonSize));
70
- const resolvedInputWidth = Math.max(0, (0, _utils.parseNumber)(inputWidth, tokens.defaults.inputWidth));
71
- const resolvedDefaultValue = (0, _react().useMemo)(() => {
72
- const raw = p.defaultValue;
69
+ const onPlusRef = (0, _react().useRef)(onPlus);
70
+ const onMinusRef = (0, _react().useRef)(onMinus);
71
+ const onOverlimitRef = (0, _react().useRef)(onOverlimit);
72
+ const onFocusRef = (0, _react().useRef)(onFocus);
73
+ const onBlurRef = (0, _react().useRef)(onBlur);
74
+ const onClickRef = (0, _react().useRef)(onClick);
75
+ const valueRef = (0, _react().useRef)(null);
76
+ const inputRef = (0, _react().useRef)(null);
77
+ const inputValueRef = (0, _react().useRef)('');
78
+ const inputPropsRef = (0, _react().useRef)(inputProps);
79
+ const longPressRef = (0, _react().useRef)({
80
+ hadLongPress: false
81
+ });
82
+ onPlusRef.current = onPlus;
83
+ onMinusRef.current = onMinus;
84
+ onOverlimitRef.current = onOverlimit;
85
+ onFocusRef.current = onFocus;
86
+ onBlurRef.current = onBlur;
87
+ onClickRef.current = onClick;
88
+ inputPropsRef.current = inputProps;
89
+ const decimalLen = (0, _utils.parseDecimalLength)(decimalLengthProp);
90
+ const stepRaw = Number(step ?? 1);
91
+ const stepSize = (0, _utils.isFiniteNumber)(stepRaw) && stepRaw > 0 ? stepRaw : 1;
92
+ const rBtnSize = Math.max(0, (0, _utils.parseNumber)(buttonSize, tokens.defaults.buttonSize));
93
+ const rInputW = Math.max(0, (0, _utils.parseNumber)(inputWidth, tokens.defaults.inputWidth));
94
+ const defaultVal = (0, _react().useMemo)(() => {
95
+ const raw = props.defaultValue;
73
96
  if (raw === null) return null;
74
97
  const base = (0, _utils.isFiniteNumber)(raw) ? raw : 0;
75
- const formatted = (0, _utils.formatNumber)(base, integer, decimalLength);
76
- return autoFixed ? (0, _utils.clampValue)(formatted, min, max) : formatted;
77
- }, [autoFixed, decimalLength, integer, max, min, p.defaultValue]);
98
+ const fmt = (0, _utils.formatNumber)(base, integer, decimalLen);
99
+ return autoFixed ? (0, _utils.clampValue)(fmt, min, max) : fmt;
100
+ }, [autoFixed, decimalLen, integer, max, min, props.defaultValue]);
78
101
  const [value, triggerChange] = (0, _hooks.useControllableValue)({
79
- ...p,
80
- defaultValue: resolvedDefaultValue
102
+ ...props,
103
+ defaultValue: defaultVal
81
104
  }, {
82
- defaultValue: resolvedDefaultValue
105
+ defaultValue: defaultVal
83
106
  });
84
- const valueRef = (0, _react().useRef)(value ?? null);
85
107
  (0, _react().useEffect)(() => {
86
108
  valueRef.current = value ?? null;
87
109
  }, [value]);
88
- const inputRef = (0, _react().useRef)(null);
89
110
  (0, _react().useImperativeHandle)(ref, () => ({
90
111
  focus: () => inputRef.current?.focus(),
91
112
  blur: () => inputRef.current?.blur()
92
113
  }));
93
- const [hasFocus, setHasFocus] = (0, _react().useState)(false);
94
- const [inputValue, setInputValue] = (0, _react().useState)(() => (0, _utils.numberToString)(value, decimalLength));
95
- const inputValueRef = (0, _react().useRef)(inputValue);
96
- const setInputText = (0, _react().useCallback)(text => {
114
+ const [isFocused, setIsFocused] = (0, _react().useState)(false);
115
+ const [inputText, setInputTextState] = (0, _react().useState)(() => (0, _utils.numberToString)(value, decimalLen));
116
+ const updateInputText = (0, _react().useCallback)(text => {
97
117
  inputValueRef.current = text;
98
- setInputValue(text);
118
+ setInputTextState(text);
99
119
  }, []);
100
120
  (0, _react().useEffect)(() => {
101
- if (!hasFocus) {
102
- const nextText = (0, _utils.numberToString)(value, decimalLength);
103
- setInputText(nextText);
121
+ if (!isFocused) {
122
+ updateInputText((0, _utils.numberToString)(value, decimalLen));
104
123
  }
105
- }, [decimalLength, hasFocus, setInputText, value]);
124
+ }, [decimalLen, isFocused, updateInputText, value]);
106
125
  const getCurrentNumber = (0, _react().useCallback)(() => {
107
126
  const current = valueRef.current;
108
127
  if ((0, _utils.isFiniteNumber)(current)) return current;
@@ -113,15 +132,11 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
113
132
  if (type === 'plus' && disablePlus) return true;
114
133
  if (type === 'minus' && disableMinus) return true;
115
134
  const current = getCurrentNumber();
116
- if (type === 'plus' && (0, _utils.isFiniteNumber)(max) && current >= max) {
117
- return true;
118
- }
119
- if (type === 'minus' && (0, _utils.isFiniteNumber)(min) && current <= min) {
120
- return true;
121
- }
135
+ if (type === 'plus' && (0, _utils.isFiniteNumber)(max) && current >= max) return true;
136
+ if (type === 'minus' && (0, _utils.isFiniteNumber)(min) && current <= min) return true;
122
137
  return false;
123
138
  }, [disableMinus, disablePlus, disabled, getCurrentNumber, max, min]);
124
- const setValue = (0, _react().useCallback)(next => {
139
+ const commitValue = (0, _react().useCallback)(next => {
125
140
  const prev = valueRef.current ?? null;
126
141
  if (Object.is(prev, next)) return false;
127
142
  valueRef.current = next;
@@ -130,93 +145,87 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
130
145
  });
131
146
  return true;
132
147
  }, [name, triggerChange]);
133
- const applyNextValue = (0, _react().useCallback)(nextRaw => {
134
- const formatted = (0, _utils.formatNumber)(nextRaw, integer, decimalLength);
148
+ const normalizeNumber = (0, _react().useCallback)(nextRaw => {
149
+ const formatted = (0, _utils.formatNumber)(nextRaw, integer, decimalLen);
135
150
  return autoFixed ? (0, _utils.clampValue)(formatted, min, max) : formatted;
136
- }, [autoFixed, decimalLength, integer, max, min]);
137
- const performValueChange = (0, _react().useCallback)((next, committed) => {
138
- if (changingRef.current) {
139
- return 'noop';
140
- }
151
+ }, [autoFixed, decimalLen, integer, max, min]);
152
+ const processValueChange = (0, _react().useCallback)((next, committed) => {
153
+ if (changingRef.current) return 'noop';
141
154
  const commit = () => {
142
- const didChange = setValue(next);
155
+ const didChange = commitValue(next);
143
156
  if (!didChange) return 'noop';
144
- setInputText((0, _utils.numberToString)(next, decimalLength));
157
+ updateInputText((0, _utils.numberToString)(next, decimalLen));
145
158
  committed?.(next);
146
159
  return 'changed';
147
160
  };
148
- if (!beforeChange) {
149
- return commit();
150
- }
161
+ if (!beforeChange) return commit();
151
162
  try {
152
163
  const result = beforeChange(next);
153
164
  if ((0, _utils.isPromiseLike)(result)) {
154
165
  changingRef.current = true;
155
- setChanging(true);
166
+ setIsChanging(true);
156
167
  result.then(allowed => {
157
168
  if (allowed === false) {
158
- setInputText((0, _utils.numberToString)(valueRef.current, decimalLength));
169
+ updateInputText((0, _utils.numberToString)(valueRef.current, decimalLen));
159
170
  return;
160
171
  }
172
+ ;
161
173
  commit();
162
- }).catch(() => {
163
- commit();
164
- }).finally(() => {
174
+ }).catch(() => commit()).finally(() => {
165
175
  changingRef.current = false;
166
- setChanging(false);
176
+ setIsChanging(false);
167
177
  });
168
178
  return 'pending';
169
179
  }
180
+ ;
170
181
  if (result === false) {
171
- setInputText((0, _utils.numberToString)(valueRef.current, decimalLength));
182
+ updateInputText((0, _utils.numberToString)(valueRef.current, decimalLen));
172
183
  return 'noop';
173
184
  }
185
+ ;
174
186
  return commit();
175
187
  } catch {
176
188
  return commit();
177
189
  }
178
- }, [beforeChange, decimalLength, setInputText, setValue]);
190
+ }, [beforeChange, decimalLen, updateInputText, commitValue]);
179
191
  const stepOnce = (0, _react().useCallback)((type, event, options) => {
180
- if (changingRef.current) {
181
- return 'noop';
182
- }
192
+ if (changingRef.current) return 'noop';
183
193
  const emitOverlimit = options?.emitOverlimit ?? true;
184
- const emitButtonCallbacks = options?.emitButtonCallbacks ?? Boolean(event);
194
+ const emitCallbacks = options?.emitButtonCallbacks ?? Boolean(event);
185
195
  if (isActionDisabled(type)) {
186
- if (emitOverlimit) onOverlimit?.(type);
196
+ if (emitOverlimit) onOverlimitRef.current?.(type);
187
197
  return 'overlimit';
188
198
  }
199
+ ;
189
200
  const current = getCurrentNumber();
190
- const diff = type === 'plus' ? resolvedStep : -resolvedStep;
191
- const next = applyNextValue((0, _utils.addNumber)(current, diff));
192
- return performValueChange(next, committedValue => {
193
- if (!emitButtonCallbacks || !event) return;
201
+ const diff = type === 'plus' ? stepSize : -stepSize;
202
+ const next = normalizeNumber((0, _utils.addNumber)(current, diff));
203
+ return processValueChange(next, committedValue => {
204
+ if (!emitCallbacks || !event) return;
194
205
  if (type === 'plus') {
195
- onPlus?.(event, committedValue);
206
+ onPlusRef.current?.(event, committedValue);
196
207
  } else {
197
- onMinus?.(event, committedValue);
208
+ onMinusRef.current?.(event, committedValue);
198
209
  }
199
210
  });
200
- }, [applyNextValue, getCurrentNumber, isActionDisabled, onMinus, onOverlimit, onPlus, performValueChange, resolvedStep]);
201
- const longPressRef = (0, _react().useRef)({
202
- hadLongPress: false
203
- });
211
+ }, [normalizeNumber, getCurrentNumber, isActionDisabled, processValueChange, stepSize]);
204
212
  const clearLongPress = (0, _react().useCallback)(() => {
205
213
  if (longPressRef.current.delay) {
206
214
  clearTimeout(longPressRef.current.delay);
207
215
  longPressRef.current.delay = undefined;
208
216
  }
217
+ ;
209
218
  if (longPressRef.current.interval) {
210
219
  clearInterval(longPressRef.current.interval);
211
220
  longPressRef.current.interval = undefined;
212
221
  }
213
222
  }, []);
214
- (0, _react().useEffect)(() => clearLongPress, [clearLongPress]);
223
+ (0, _react().useEffect)(() => clearLongPress(), [clearLongPress]);
215
224
  (0, _react().useEffect)(() => {
216
- if (disabled || changing || !longPress) {
225
+ if (disabled || isChanging || !longPress) {
217
226
  clearLongPress();
218
227
  }
219
- }, [changing, clearLongPress, disabled, longPress]);
228
+ }, [isChanging, clearLongPress, disabled, longPress]);
220
229
  const startLongPress = (0, _react().useCallback)(type => {
221
230
  if (!longPress) return;
222
231
  if (changingRef.current) return;
@@ -233,6 +242,7 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
233
242
  clearLongPress();
234
243
  return;
235
244
  }
245
+ ;
236
246
  longPressRef.current.interval = setInterval(() => {
237
247
  const result = stepOnce(type, undefined, {
238
248
  emitOverlimit: true,
@@ -244,14 +254,13 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
244
254
  }, LONG_PRESS_INTERVAL);
245
255
  }, LONG_PRESS_DELAY);
246
256
  }, [clearLongPress, isActionDisabled, longPress, stepOnce]);
247
- const handlePressOut = (0, _react().useCallback)(() => {
248
- clearLongPress();
249
- }, [clearLongPress]);
257
+ const handlePressOut = (0, _react().useCallback)(() => clearLongPress(), [clearLongPress]);
250
258
  const handleButtonPress = (0, _react().useCallback)((type, event) => {
251
259
  if (longPressRef.current.hadLongPress) {
252
260
  longPressRef.current.hadLongPress = false;
253
261
  return;
254
262
  }
263
+ ;
255
264
  longPressRef.current.hadLongPress = false;
256
265
  stepOnce(type, event, {
257
266
  emitOverlimit: true,
@@ -261,122 +270,129 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
261
270
  const currentForCompare = (0, _utils.isFiniteNumber)(value) ? value : 0;
262
271
  const minNumber = (0, _utils.isFiniteNumber)(min) ? min : undefined;
263
272
  const maxNumber = (0, _utils.isFiniteNumber)(max) ? max : undefined;
264
- const disabledForAll = disabled || changing;
265
- const minusDisabled = disabledForAll || disableMinus || minNumber !== undefined && currentForCompare <= minNumber;
266
- const plusDisabled = disabledForAll || disablePlus || maxNumber !== undefined && currentForCompare >= maxNumber;
273
+ const isDisabledAll = disabled || isChanging;
274
+ const isMinusDisabled = isDisabledAll || disableMinus || minNumber != null && currentForCompare <= minNumber;
275
+ const isPlusDisabled = isDisabledAll || disablePlus || maxNumber != null && currentForCompare >= maxNumber;
267
276
  const radius = tokens.radii.default;
268
- const buttonBaseStyle = (0, _react().useMemo)(() => ({
269
- width: resolvedButtonSize,
270
- height: resolvedButtonSize
271
- }), [resolvedButtonSize]);
272
- const inputBoxStyle = (0, _react().useMemo)(() => ({
273
- width: resolvedInputWidth,
274
- height: resolvedButtonSize,
277
+ const btnSizeStyle = (0, _react().useMemo)(() => ({
278
+ width: rBtnSize,
279
+ height: rBtnSize
280
+ }), [rBtnSize]);
281
+ const inputSizeStyle = (0, _react().useMemo)(() => ({
282
+ width: rInputW,
283
+ height: rBtnSize,
275
284
  marginHorizontal: tokens.spacing.gap
276
- }), [resolvedButtonSize, resolvedInputWidth, tokens.spacing.gap]);
285
+ }), [rBtnSize, rInputW, tokens.spacing.gap]);
277
286
  const getButtonStyle = (0, _react().useCallback)((type, state) => {
278
287
  const isPlus = type === 'plus';
279
- const disabledState = isPlus ? plusDisabled : minusDisabled;
288
+ const isDisabled = isPlus ? isPlusDisabled : isMinusDisabled;
280
289
  if (theme === 'round') {
281
- const base = [styles.button, buttonBaseStyle, {
282
- borderRadius: resolvedButtonSize / 2,
283
- opacity: disabledState ? tokens.opacity.roundDisabled : 1
290
+ const base = [S.btn, btnSizeStyle, {
291
+ borderRadius: rBtnSize / 2,
292
+ opacity: isDisabled ? tokens.opacity.roundDisabled : 1
284
293
  }];
285
294
  if (isPlus) {
286
295
  return [...base, {
287
296
  backgroundColor: tokens.colors.roundTheme,
288
- ...(state.pressed && !disabledState && {
297
+ ...(state.pressed && !isDisabled && {
289
298
  opacity: tokens.opacity.pressed
290
299
  })
291
300
  }, buttonStyle];
292
301
  }
302
+ ;
293
303
  return [...base, {
294
304
  backgroundColor: tokens.colors.roundThemeBackground,
295
- borderWidth: _reactNative().StyleSheet.hairlineWidth,
296
- borderColor: tokens.colors.roundTheme,
297
- ...(state.pressed && !disabledState && {
305
+ ...(state.pressed && !isDisabled && {
298
306
  opacity: tokens.opacity.pressed
299
307
  })
300
308
  }, buttonStyle];
301
309
  }
302
- const cornerStyle = type === 'minus' ? {
310
+ ;
311
+ const isLeading = type === 'minus' !== (layoutDir === 'rtl');
312
+ const cornerStyle = isLeading ? {
303
313
  borderTopLeftRadius: radius,
304
314
  borderBottomLeftRadius: radius
305
315
  } : {
306
316
  borderTopRightRadius: radius,
307
317
  borderBottomRightRadius: radius
308
318
  };
309
- const backgroundColor = disabledState ? tokens.colors.buttonDisabledBackground : state.pressed ? tokens.colors.active : tokens.colors.background;
310
- return [styles.button, buttonBaseStyle, cornerStyle, {
311
- backgroundColor
319
+ const bgColor = isDisabled ? tokens.colors.buttonDisabledBackground : state.pressed ? tokens.colors.active : tokens.colors.background;
320
+ return [S.btn, btnSizeStyle, cornerStyle, {
321
+ backgroundColor: bgColor
312
322
  }, buttonStyle];
313
- }, [buttonBaseStyle, buttonStyle, minusDisabled, plusDisabled, radius, resolvedButtonSize, theme, tokens.colors.active, tokens.colors.background, tokens.colors.buttonDisabledBackground, tokens.colors.roundTheme, tokens.colors.roundThemeBackground, tokens.opacity.pressed, tokens.opacity.roundDisabled]);
323
+ }, [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]);
314
324
  const getButtonTextStyle = (0, _react().useCallback)(type => {
315
325
  const isPlus = type === 'plus';
316
- const disabledState = isPlus ? plusDisabled : minusDisabled;
326
+ const isDisabled = isPlus ? isPlusDisabled : isMinusDisabled;
317
327
  if (theme === 'round') {
318
328
  const color = isPlus ? tokens.colors.roundThemeText : tokens.colors.roundTheme;
319
- return [styles.buttonText, {
329
+ return [S.btnTxt, {
320
330
  color,
331
+ fontFamily: tokens.typography.fontFamily,
321
332
  fontSize: tokens.typography.fontSize,
322
333
  fontWeight: tokens.typography.fontWeight
323
334
  }];
324
335
  }
325
- return [styles.buttonText, {
326
- color: disabledState ? tokens.colors.buttonDisabledIcon : tokens.colors.buttonIcon,
336
+ ;
337
+ return [S.btnTxt, {
338
+ color: isDisabled ? tokens.colors.buttonDisabledIcon : tokens.colors.buttonIcon,
339
+ fontFamily: tokens.typography.fontFamily,
327
340
  fontSize: tokens.typography.fontSize,
328
341
  fontWeight: tokens.typography.fontWeight
329
342
  }];
330
- }, [minusDisabled, plusDisabled, theme, tokens.colors.buttonDisabledIcon, tokens.colors.buttonIcon, tokens.colors.roundTheme, tokens.colors.roundThemeText, tokens.typography.fontSize, tokens.typography.fontWeight]);
343
+ }, [isMinusDisabled, isPlusDisabled, theme, tokens.colors.buttonDisabledIcon, tokens.colors.buttonIcon, tokens.colors.roundTheme, tokens.colors.roundThemeText, tokens.typography.fontFamily, tokens.typography.fontSize, tokens.typography.fontWeight]);
331
344
  const handleChangeText = (0, _react().useCallback)(text => {
332
345
  if (disableInput || disabled || changingRef.current) return;
333
- setInputText(text);
334
- inputProps?.onChangeText?.(text);
346
+ updateInputText(text);
347
+ inputPropsRef.current?.onChangeText?.(text);
335
348
  const trimmed = text.trim();
336
349
  if (trimmed === '') {
337
- performValueChange(allowEmpty ? null : resolvedDefaultValue);
350
+ processValueChange(allowEmpty ? null : defaultVal);
338
351
  return;
339
352
  }
340
- const numeric = Number.parseFloat(trimmed);
341
- if (!Number.isFinite(numeric)) return;
342
- performValueChange(applyNextValue(numeric));
343
- }, [allowEmpty, applyNextValue, changingRef, disableInput, disabled, inputProps, performValueChange, resolvedDefaultValue, setInputText]);
353
+ ;
354
+ const num = Number.parseFloat(trimmed);
355
+ if (!Number.isFinite(num)) return;
356
+ processValueChange(normalizeNumber(num));
357
+ }, [allowEmpty, normalizeNumber, changingRef, disableInput, disabled, inputPropsRef, processValueChange, defaultVal, updateInputText]);
344
358
  const handleFocus = (0, _react().useCallback)(event => {
345
359
  if (disableInput) {
346
360
  inputRef.current?.blur();
347
361
  return;
348
362
  }
349
- setHasFocus(true);
350
- onFocus?.(event);
351
- inputProps?.onFocus?.(event);
352
- }, [disableInput, inputProps, onFocus]);
363
+ ;
364
+ setIsFocused(true);
365
+ onFocusRef.current?.(event);
366
+ inputPropsRef.current?.onFocus?.(event);
367
+ }, [disableInput]);
353
368
  const handleBlur = (0, _react().useCallback)(event => {
354
- setHasFocus(false);
369
+ setIsFocused(false);
355
370
  if (!changingRef.current) {
356
371
  const trimmed = inputValueRef.current.trim();
357
372
  if (trimmed === '') {
358
- performValueChange(allowEmpty ? null : resolvedDefaultValue);
373
+ processValueChange(allowEmpty ? null : defaultVal);
359
374
  } else {
360
- const numeric = Number.parseFloat(trimmed);
361
- if (Number.isFinite(numeric)) {
362
- performValueChange(applyNextValue(numeric));
375
+ const num = Number.parseFloat(trimmed);
376
+ if (Number.isFinite(num)) {
377
+ processValueChange(normalizeNumber(num));
363
378
  }
364
379
  }
365
380
  }
366
- onBlur?.(event);
367
- inputProps?.onBlur?.(event);
368
- }, [allowEmpty, applyNextValue, inputProps, onBlur, performValueChange, resolvedDefaultValue]);
381
+ ;
382
+ onBlurRef.current?.(event);
383
+ inputPropsRef.current?.onBlur?.(event);
384
+ }, [allowEmpty, normalizeNumber, processValueChange, defaultVal]);
369
385
  const handleInputPressIn = (0, _react().useCallback)(event => {
370
- onClick?.(event);
371
- inputProps?.onPressIn?.(event);
372
- }, [inputProps, onClick]);
386
+ onClickRef.current?.(event);
387
+ inputPropsRef.current?.onPressIn?.(event);
388
+ }, []);
373
389
  const handleMinusPress = (0, _react().useCallback)(event => handleButtonPress('minus', event), [handleButtonPress]);
374
390
  const handlePlusPress = (0, _react().useCallback)(event => handleButtonPress('plus', event), [handleButtonPress]);
375
391
  const handleMinusPressIn = (0, _react().useCallback)(() => startLongPress('minus'), [startLongPress]);
376
392
  const handlePlusPressIn = (0, _react().useCallback)(() => startLongPress('plus'), [startLongPress]);
377
- const getMinusButtonStyle = (0, _react().useCallback)(state => getButtonStyle('minus', state), [getButtonStyle]);
378
- const getPlusButtonStyle = (0, _react().useCallback)(state => getButtonStyle('plus', state), [getButtonStyle]);
379
- const renderMinusButton = (0, _react().useCallback)(() => {
393
+ const getMinusBtnStyle = (0, _react().useCallback)(state => getButtonStyle('minus', state), [getButtonStyle]);
394
+ const getPlusBtnStyle = (0, _react().useCallback)(state => getButtonStyle('plus', state), [getButtonStyle]);
395
+ const renderMinusBtn = (0, _react().useCallback)(() => {
380
396
  if (!showMinus) return null;
381
397
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, {
382
398
  key: "minus",
@@ -384,17 +400,23 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
384
400
  accessibilityRole: "button",
385
401
  accessibilityLabel: "minus",
386
402
  accessibilityState: {
387
- disabled: minusDisabled
403
+ disabled: isMinusDisabled
388
404
  },
389
405
  onPress: handleMinusPress,
390
406
  onPressIn: handleMinusPressIn,
391
407
  onPressOut: handlePressOut,
392
- style: getMinusButtonStyle
408
+ style: getMinusBtnStyle
393
409
  }, /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
394
410
  style: getButtonTextStyle('minus')
395
- }, "-"));
396
- }, [getButtonTextStyle, getMinusButtonStyle, handleMinusPress, handleMinusPressIn, handlePressOut, minusDisabled, showMinus]);
397
- const renderPlusButton = (0, _react().useCallback)(() => {
411
+ }, "-"), theme === 'round' && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
412
+ style: (0, _hairline.createHairlineView)({
413
+ position: 'all',
414
+ color: tokens.colors.roundTheme,
415
+ borderRadius: rBtnSize / 2
416
+ })
417
+ }));
418
+ }, [getButtonTextStyle, getMinusBtnStyle, handleMinusPress, handleMinusPressIn, handlePressOut, isMinusDisabled, showMinus, theme, tokens.colors.roundTheme, rBtnSize]);
419
+ const renderPlusBtn = (0, _react().useCallback)(() => {
398
420
  if (!showPlus) return null;
399
421
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, {
400
422
  key: "plus",
@@ -402,33 +424,33 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
402
424
  accessibilityRole: "button",
403
425
  accessibilityLabel: "add",
404
426
  accessibilityState: {
405
- disabled: plusDisabled
427
+ disabled: isPlusDisabled
406
428
  },
407
429
  onPress: handlePlusPress,
408
430
  onPressIn: handlePlusPressIn,
409
431
  onPressOut: handlePressOut,
410
- style: getPlusButtonStyle
432
+ style: getPlusBtnStyle
411
433
  }, /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
412
434
  style: getButtonTextStyle('plus')
413
435
  }, "+"));
414
- }, [getButtonTextStyle, getPlusButtonStyle, handlePlusPress, handlePlusPressIn, handlePressOut, plusDisabled, showPlus]);
436
+ }, [getButtonTextStyle, getPlusBtnStyle, handlePlusPress, handlePlusPressIn, handlePressOut, isPlusDisabled, showPlus]);
415
437
  const inputNode = (0, _react().useMemo)(() => {
416
438
  if (!showInput) return null;
417
- const editable = !disabledForAll && !disableInput;
418
- const inputDisabled = disabledForAll || disableInput;
419
- const inputBackground = theme === 'round' ? tokens.colors.transparent : inputDisabled ? tokens.colors.inputDisabledBackground : tokens.colors.background;
420
- const inputTextColor = inputDisabled ? tokens.colors.inputDisabledText : tokens.colors.inputText;
439
+ const editable = !isDisabledAll && !disableInput;
440
+ const isInputDisabled = isDisabledAll || disableInput;
441
+ const bgColor = theme === 'round' ? tokens.colors.transparent : isInputDisabled ? tokens.colors.inputDisabledBackground : tokens.colors.background;
442
+ const textColor = isInputDisabled ? tokens.colors.inputDisabledText : tokens.colors.inputText;
421
443
  const keyboardType = integer ? 'number-pad' : 'decimal-pad';
422
444
  return /*#__PURE__*/_react().default.createElement(_reactNative().TextInput, _extends({
423
445
  ref: inputRef
424
446
  }, inputProps, {
425
- style: [styles.input, inputBoxStyle, {
426
- backgroundColor: inputBackground,
427
- color: inputTextColor,
447
+ style: [S.inp, inputSizeStyle, {
448
+ backgroundColor: bgColor,
449
+ color: textColor,
428
450
  paddingHorizontal: tokens.spacing.none,
429
451
  paddingVertical: tokens.spacing.none
430
452
  }, inputStyle],
431
- value: inputValue,
453
+ value: inputText,
432
454
  placeholder: placeholder,
433
455
  editable: editable,
434
456
  keyboardType: keyboardType,
@@ -437,24 +459,26 @@ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.forwardRef((p, r
437
459
  onBlur: handleBlur,
438
460
  onPressIn: handleInputPressIn
439
461
  }));
440
- }, [disabledForAll, disableInput, handleBlur, handleChangeText, handleFocus, handleInputPressIn, inputBoxStyle, inputProps, inputStyle, inputValue, integer, placeholder, showInput, theme, tokens.colors.background, tokens.colors.inputDisabledBackground, tokens.colors.inputDisabledText, tokens.colors.inputText, tokens.colors.transparent, tokens.spacing.none]);
441
- return /*#__PURE__*/_react().default.createElement(_reactNative().View, _extends({}, rest, {
442
- style: [styles.container, style]
443
- }), renderMinusButton(), inputNode, renderPlusButton());
444
- });
445
- const styles = _reactNative().StyleSheet.create({
446
- container: {
462
+ }, [isDisabledAll, disableInput, handleBlur, handleChangeText, handleFocus, handleInputPressIn, inputSizeStyle, inputProps, inputStyle, inputText, integer, placeholder, showInput, theme, tokens.colors.background, tokens.colors.inputDisabledBackground, tokens.colors.inputDisabledText, tokens.colors.inputText, tokens.colors.transparent, tokens.spacing.none]);
463
+ return /*#__PURE__*/_react().default.createElement(_reactNative().View, _extends({}, restProps, {
464
+ style: [S.cnt, style]
465
+ }), renderMinusBtn(), inputNode, renderPlusBtn());
466
+ };
467
+ const S = _reactNative().StyleSheet.create({
468
+ cnt: {
447
469
  flexDirection: 'row',
448
470
  alignItems: 'center'
449
471
  },
450
- button: {
472
+ btn: {
451
473
  justifyContent: 'center',
452
474
  alignItems: 'center'
453
475
  },
454
- buttonText: {},
455
- input: {
476
+ btnTxt: {},
477
+ inp: {
456
478
  textAlign: 'center'
457
479
  }
458
480
  });
459
- Stepper.displayName = 'Stepper';
481
+ const StepperForwardRef = /*#__PURE__*/_react().default.forwardRef(StepperImpl);
482
+ StepperForwardRef.displayName = 'Stepper';
483
+ const Stepper = exports.Stepper = /*#__PURE__*/_react().default.memo(StepperForwardRef);
460
484
  var _default = exports.default = Stepper;
@@ -42,6 +42,7 @@ const createStepperTokens = foundations => {
42
42
  default: radii.md
43
43
  },
44
44
  typography: {
45
+ fontFamily: typography.fontFamily,
45
46
  fontSize: fontSize.md,
46
47
  fontWeight: typography.weight.semiBold
47
48
  },