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,25 +20,30 @@ function _reactNative() {
20
20
  }
21
21
  var _hooks = require("../../hooks");
22
22
  var _platform = require("../../platform");
23
+ var _animation = require("../../hooks/animation");
23
24
  var _createPlatformShadow = require("../../utils/createPlatformShadow");
24
25
  var _number = require("../../utils/number");
26
+ var _utils = require("../../utils");
25
27
  var _loading = _interopRequireDefault(require("../loading"));
26
28
  var _Portal = _interopRequireDefault(require("../portal/Portal"));
29
+ var _useLocale = require("../config-provider/useLocale");
27
30
  var _safeAreaView = require("../safe-area-view");
28
31
  var _tokens = require("./tokens");
29
32
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
30
33
  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); }
31
34
  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); }
32
- const keyboardRegistry = new Set();
33
- const NUMBER_KEYS = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
34
- const ZERO_KEY = '0';
35
+ const registry = new Set();
36
+ const NUM_KEYS = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
37
+ const ZERO = '0';
38
+ const RE_NUM_LIKE = /^\d+$|^\.$|^x$/i;
35
39
  const shuffle = list => {
36
- const next = [...list];
37
- for (let i = next.length - 1; i > 0; i -= 1) {
40
+ const n = [...list];
41
+ for (let i = n.length - 1; i > 0; i--) {
38
42
  const j = Math.floor(Math.random() * (i + 1));
39
- [next[i], next[j]] = [next[j], next[i]];
43
+ [n[i], n[j]] = [n[j], n[i]];
40
44
  }
41
- return next;
45
+ ;
46
+ return n;
42
47
  };
43
48
  const NumberKeyboard = /*#__PURE__*/_react().default.memo(props => {
44
49
  const {
@@ -59,8 +64,8 @@ const NumberKeyboard = /*#__PURE__*/_react().default.memo(props => {
59
64
  onBlur,
60
65
  onHide,
61
66
  onShow,
62
- value: _value,
63
- defaultValue: _defaultValue,
67
+ value: _v,
68
+ defaultValue: _dv,
64
69
  maxlength: maxlengthProp,
65
70
  blurOnClose = true,
66
71
  safeAreaInsetBottom = true,
@@ -72,162 +77,157 @@ const NumberKeyboard = /*#__PURE__*/_react().default.memo(props => {
72
77
  style,
73
78
  ...rest
74
79
  } = props;
80
+ const locale = (0, _useLocale.useLocale)();
81
+ const reducedMotion = (0, _animation.useReducedMotion)();
75
82
  const tokens = (0, _tokens.useNumberKeyboardTokens)(tokensOverride);
76
83
  const {
77
84
  colors,
78
85
  radii,
79
86
  shadow,
80
87
  sizing,
81
- spacing
88
+ spacing,
89
+ typography
82
90
  } = tokens;
83
- const [mergedValue, setMergedValue] = (0, _hooks.useControllableValue)(props, {
91
+ const [value, setValue] = (0, _hooks.useControllableValue)(props, {
84
92
  defaultValue: '',
85
93
  valuePropName: 'value',
86
94
  defaultValuePropName: 'defaultValue',
87
95
  trigger: 'onChange'
88
96
  });
89
- const value = mergedValue ?? '';
90
- const maxlength = (() => {
91
- const parsed = (0, _number.parseNumberLike)(maxlengthProp, undefined);
92
- if (parsed === undefined || !Number.isFinite(parsed) || parsed < 0) return undefined;
93
- return Math.floor(parsed);
97
+ const curVal = value ?? '';
98
+ const maxLen = (() => {
99
+ const p = (0, _number.parseNumberLike)(maxlengthProp, undefined);
100
+ return p != null && Number.isFinite(p) && p >= 0 ? Math.floor(p) : undefined;
94
101
  })();
95
- const valueRef = (0, _react().useRef)(value);
96
- const maxlengthRef = (0, _react().useRef)(maxlength);
97
- valueRef.current = value;
98
- maxlengthRef.current = maxlength;
99
- const isCustomTheme = theme === 'custom';
100
- const resolvedCloseText = isCustomTheme ? closeButtonText ?? '完成' : closeButtonText;
101
- const closeSelf = (0, _react().useCallback)(() => {
102
- onClose?.();
103
- if (blurOnClose) {
104
- onBlur?.();
105
- }
106
- }, [blurOnClose, onBlur, onClose]);
107
- const prevVisible = (0, _react().useRef)(visible);
102
+ const valRef = (0, _react().useRef)(curVal);
103
+ const maxRef = (0, _react().useRef)(maxLen);
104
+ const onCloseRef = (0, _react().useRef)(onClose);
105
+ const onBlurRef = (0, _react().useRef)(onBlur);
106
+ const onShowRef = (0, _react().useRef)(onShow);
107
+ const onHideRef = (0, _react().useRef)(onHide);
108
+ const onDelRef = (0, _react().useRef)(onDelete);
109
+ const onInpRef = (0, _react().useRef)(onInput);
110
+ valRef.current = curVal;
111
+ maxRef.current = maxLen;
112
+ onCloseRef.current = onClose;
113
+ onBlurRef.current = onBlur;
114
+ onShowRef.current = onShow;
115
+ onHideRef.current = onHide;
116
+ onDelRef.current = onDelete;
117
+ onInpRef.current = onInput;
118
+ const isCustom = theme === 'custom';
119
+ const defClose = locale?.vanNumberKeyboard?.close ?? 'Done';
120
+ const closeTxt = isCustom ? closeButtonText ?? defClose : closeButtonText;
121
+ const handleClose = (0, _react().useCallback)(() => {
122
+ onCloseRef.current?.();
123
+ if (blurOnClose) onBlurRef.current?.();
124
+ }, [blurOnClose]);
125
+ const prevVis = (0, _react().useRef)(visible);
108
126
  (0, _react().useEffect)(() => {
109
- if (visible && !prevVisible.current) {
110
- onShow?.();
111
- }
112
- if (!visible && prevVisible.current) {
113
- onHide?.();
114
- }
115
- prevVisible.current = visible;
116
- }, [visible, onShow, onHide]);
127
+ if (visible && !prevVis.current) onShowRef.current?.();
128
+ if (!visible && prevVis.current) onHideRef.current?.();
129
+ prevVis.current = visible;
130
+ }, [visible]);
117
131
  (0, _react().useEffect)(() => {
118
132
  if (visible) {
119
- keyboardRegistry.add(closeSelf);
120
- keyboardRegistry.forEach(fn => {
121
- if (fn !== closeSelf) {
122
- fn();
123
- }
133
+ registry.add(handleClose);
134
+ registry.forEach(fn => {
135
+ if (fn !== handleClose) fn();
124
136
  });
125
- } else {
126
- keyboardRegistry.delete(closeSelf);
127
- }
137
+ } else registry.delete(handleClose);
128
138
  return () => {
129
- keyboardRegistry.delete(closeSelf);
139
+ registry.delete(handleClose);
130
140
  };
131
- }, [visible, closeSelf]);
141
+ }, [visible, handleClose]);
132
142
  const keys = (0, _react().useMemo)(() => {
133
- const shouldShuffle = randomKeyOrder && visible;
134
- const numbers = shouldShuffle ? shuffle(NUMBER_KEYS) : NUMBER_KEYS;
135
- const main = numbers.map(text => ({
136
- text,
143
+ const sh = randomKeyOrder && visible;
144
+ const nK = sh ? shuffle(NUM_KEYS) : NUM_KEYS;
145
+ const mat = nK.map(t => ({
146
+ text: t,
137
147
  type: ''
138
148
  }));
139
- if (isCustomTheme) {
140
- const extras = Array.isArray(extraKey) ? extraKey : extraKey ? [extraKey] : [];
141
- if (extras.length === 1) {
142
- main.push({
143
- text: ZERO_KEY,
144
- type: '',
145
- wider: true
146
- }, {
147
- text: extras[0],
148
- type: 'extra'
149
- });
150
- } else if (extras.length >= 2) {
151
- main.push({
152
- text: extras[0],
153
- type: 'extra'
154
- }, {
155
- text: ZERO_KEY,
156
- type: ''
157
- }, {
158
- text: extras[1],
159
- type: 'extra'
160
- });
161
- } else {
162
- main.push({
163
- text: ZERO_KEY,
164
- type: ''
165
- });
166
- }
167
- return main;
149
+ if (isCustom) {
150
+ const e = Array.isArray(extraKey) ? extraKey : extraKey ? [extraKey] : [];
151
+ if (e.length === 1) mat.push({
152
+ text: ZERO,
153
+ type: '',
154
+ wider: true
155
+ }, {
156
+ text: e[0],
157
+ type: 'extra'
158
+ });else if (e.length >= 2) mat.push({
159
+ text: e[0],
160
+ type: 'extra'
161
+ }, {
162
+ text: ZERO,
163
+ type: ''
164
+ }, {
165
+ text: e[1],
166
+ type: 'extra'
167
+ });else mat.push({
168
+ text: ZERO,
169
+ type: ''
170
+ });
171
+ return mat;
168
172
  }
169
- const normalizedExtra = Array.isArray(extraKey) ? extraKey[0] ?? '' : extraKey ?? '';
170
- main.push({
171
- text: normalizedExtra,
173
+ const nE = Array.isArray(extraKey) ? extraKey[0] ?? '' : extraKey ?? '';
174
+ mat.push({
175
+ text: nE,
172
176
  type: 'extra'
173
- });
174
- main.push({
175
- text: ZERO_KEY,
177
+ }, {
178
+ text: ZERO,
176
179
  type: ''
177
- });
178
- main.push({
180
+ }, {
179
181
  type: showDeleteKey ? 'delete' : '',
180
182
  text: showDeleteKey ? undefined : ''
181
183
  });
182
- return main;
183
- }, [extraKey, isCustomTheme, randomKeyOrder, showDeleteKey, visible]);
184
+ return mat;
185
+ }, [extraKey, isCustom, randomKeyOrder, showDeleteKey, visible]);
184
186
  const handleInput = (0, _react().useCallback)((text, type) => {
185
187
  if (type === 'delete') {
186
- const currentValue = valueRef.current;
187
- if (!currentValue) return;
188
- onDelete?.();
189
- setMergedValue(currentValue.slice(0, -1));
188
+ const c = valRef.current;
189
+ if (!c) return;
190
+ onDelRef.current?.();
191
+ setValue(c.slice(0, -1));
190
192
  return;
191
193
  }
192
194
  if (type === 'close' || type === 'extra' && !text) {
193
- closeSelf();
195
+ handleClose();
194
196
  return;
195
197
  }
198
+ ;
196
199
  if (!text) return;
197
- const currentValue = valueRef.current;
198
- const currentMaxlength = maxlengthRef.current;
199
- if (currentMaxlength !== undefined && currentValue.length >= currentMaxlength) return;
200
- onInput?.(text);
201
- setMergedValue(`${currentValue}${text}`);
202
- }, [closeSelf, onDelete, onInput, setMergedValue]);
203
- const wrapperShadow = (0, _react().useMemo)(() => (0, _createPlatformShadow.createPlatformShadow)({
204
- color: shadow.color,
205
- opacity: shadow.opacity,
206
- radius: shadow.radius,
207
- offsetY: shadow.offsetY,
208
- elevation: shadow.elevation
209
- }), [shadow.color, shadow.elevation, shadow.offsetY, shadow.opacity, shadow.radius]);
210
- const keyGap = spacing.keyGap;
211
- const renderKey = (0, _react().useCallback)((key, index, isClose = false, fullWidth = false, customHeight) => {
212
- const isPlaceholder = key.type === '' && !key.text;
213
- const disabled = isPlaceholder || isClose && closeButtonLoading;
214
- const onPress = disabled ? undefined : () => handleInput(key.text, key.type);
215
- const backgroundColor = isClose ? colors.closeBackground : colors.keyBackground;
216
- const activeBackground = isClose ? colors.closeActiveBackground : colors.keyActiveBackground;
217
- const inactiveTextColor = isClose ? colors.closeText : colors.keyText;
218
- const pressedTextColor = isClose ? colors.closeText : colors.keyTextActive;
219
- const keyHeight = customHeight ?? (isClose ? sizing.closeHeight : sizing.keyHeight);
220
- const actionFontSize = Math.round(sizing.fontSize * 0.64);
221
- const textFontSize = key.type === 'close' || key.type === 'extra' || key.type === 'delete' ? actionFontSize : sizing.fontSize;
222
- const keyText = key.text ?? '';
223
- const contentNode = key.type === 'delete' ? deleteRender?.() ?? deleteButtonText ?? '⌫' : key.type === 'extra' ? extraKeyRender ? extraKeyRender(keyText) : keyText || '⌨︎' : key.type === 'close' ? resolvedCloseText ?? '完成' : numberKeyRender ? numberKeyRender(keyText) : keyText;
200
+ const c = valRef.current;
201
+ const m = maxRef.current;
202
+ if (m !== undefined && c.length >= m) return;
203
+ onInpRef.current?.(text);
204
+ setValue(`${c}${text}`);
205
+ }, [handleClose, setValue]);
206
+ const winShadow = (0, _react().useMemo)(() => (0, _createPlatformShadow.createPlatformShadow)(shadow), [shadow.color, shadow.elevation, shadow.offsetY, shadow.opacity, shadow.radius]);
207
+ const renderKey = (0, _react().useCallback)((key, index, isClose = false, fullW = false, customH) => {
208
+ const kt = key.type;
209
+ const isPh = kt === '' && !key.text;
210
+ const dis = isPh || isClose && closeButtonLoading;
211
+ const onP = dis ? undefined : () => handleInput(key.text, kt);
212
+ const bg = isClose ? colors.closeBackground : colors.keyBackground;
213
+ const aBg = isClose ? colors.closeActiveBackground : colors.keyActiveBackground;
214
+ const tInact = isClose ? colors.closeText : colors.keyText;
215
+ const tPress = isClose ? colors.closeText : colors.keyTextActive;
216
+ const kH = customH ?? (isClose ? sizing.closeHeight : sizing.keyHeight);
217
+ const auxFs = sizing.auxFontSize ?? Math.round(sizing.fontSize * 0.64);
218
+ const defIconFs = sizing.defaultIconFontSize ?? sizing.fontSize;
219
+ const kTxt = key.text ?? '';
220
+ const cnt = kt === 'delete' ? deleteRender?.() ?? deleteButtonText ?? '⌫' : kt === 'extra' ? extraKeyRender ? extraKeyRender(kTxt) : kTxt || '⌨︎' : kt === 'close' ? closeTxt ?? defClose : numberKeyRender ? numberKeyRender(kTxt) : kTxt;
221
+ const isDefIcon = kt === 'delete' && deleteRender == null && deleteButtonText == null || kt === 'extra' && !extraKeyRender && !kTxt;
222
+ const isNumLike = kt === 'extra' && typeof cnt === 'string' && RE_NUM_LIKE.test(cnt);
223
+ const tFs = kt === '' ? sizing.fontSize : isDefIcon ? defIconFs : isNumLike ? sizing.fontSize : auxFs;
224
224
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, {
225
- key: `${key.type}-${index}-${key.text ?? index}`,
226
- onPress: onPress,
227
- disabled: disabled,
225
+ key: `${kt}-${index}-${key.text ?? index}`,
226
+ onPress: onP,
227
+ disabled: dis,
228
228
  style: [{
229
- opacity: isPlaceholder ? 1 : disabled ? 0.6 : 1
230
- }, fullWidth ? {
229
+ opacity: isPh ? 1 : dis ? 0.6 : 1
230
+ }, fullW ? {
231
231
  width: '100%',
232
232
  flexBasis: 'auto',
233
233
  flexGrow: 0,
@@ -238,256 +238,250 @@ const NumberKeyboard = /*#__PURE__*/_react().default.memo(props => {
238
238
  flexShrink: 1,
239
239
  minWidth: 0
240
240
  }],
241
- accessible: !isPlaceholder,
242
- accessibilityRole: isPlaceholder ? undefined : 'button',
243
- accessibilityLabel: isPlaceholder ? undefined : key.type === 'delete' ? 'delete' : key.type === 'close' ? resolvedCloseText ?? 'close' : key.type === 'extra' ? keyText || 'collapse' : keyText,
244
- accessibilityState: isPlaceholder ? undefined : {
245
- disabled: !!disabled
241
+ accessible: !isPh,
242
+ accessibilityRole: isPh ? undefined : 'button',
243
+ accessibilityLabel: isPh ? undefined : kt === 'delete' ? 'delete' : kt === 'close' ? closeTxt ?? 'close' : kt === 'extra' ? kTxt || 'collapse' : kTxt,
244
+ accessibilityState: isPh ? undefined : {
245
+ disabled: !!dis
246
246
  },
247
- accessibilityElementsHidden: isPlaceholder,
248
- importantForAccessibility: isPlaceholder ? 'no-hide-descendants' : undefined
247
+ accessibilityElementsHidden: isPh,
248
+ importantForAccessibility: isPh ? 'no-hide-descendants' : undefined
249
249
  }, ({
250
250
  pressed
251
251
  }) => {
252
- const isPressed = pressed && !disabled;
253
- const keyBackground = disabled ? colors.keyBackground : isPressed ? activeBackground : backgroundColor;
254
- const textColor = isPressed ? pressedTextColor : inactiveTextColor;
252
+ const isP = pressed && !dis;
253
+ const kBg = dis ? colors.keyBackground : isP ? aBg : bg;
254
+ const tClr = isP ? tPress : tInact;
255
255
  return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
256
- style: [styles.key, {
257
- height: keyHeight,
258
- backgroundColor: keyBackground,
256
+ style: [S.k, {
257
+ height: kH,
258
+ backgroundColor: kBg,
259
259
  borderRadius: radii.key
260
260
  }]
261
261
  }, isClose && closeButtonLoading ? /*#__PURE__*/_react().default.createElement(_loading.default, {
262
262
  size: 18,
263
- color: textColor
264
- }) : typeof contentNode === 'string' || typeof contentNode === 'number' ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
265
- style: [styles.keyText, {
266
- color: textColor,
267
- fontSize: textFontSize
268
- }]
269
- }, contentNode) : contentNode == null || contentNode === false ? null : contentNode);
263
+ color: tClr
264
+ }) : (0, _utils.isRenderable)(cnt) ? (0, _utils.renderTextOrNode)(cnt, [S.kTxt, {
265
+ color: tClr,
266
+ fontFamily: typography.fontFamily,
267
+ fontSize: tFs
268
+ }]) : null);
270
269
  });
271
- }, [closeButtonLoading, colors.closeActiveBackground, colors.closeBackground, colors.closeText, colors.keyActiveBackground, colors.keyBackground, colors.keyText, colors.keyTextActive, deleteButtonText, deleteRender, extraKeyRender, handleInput, numberKeyRender, radii.key, sizing.closeHeight, sizing.fontSize, sizing.keyHeight, resolvedCloseText]);
272
- const animated = (0, _react().useRef)(new (_reactNative().Animated.Value)(visible ? 1 : 0)).current;
273
- const animationRef = (0, _react().useRef)(null);
274
- const animationSeqRef = (0, _react().useRef)(0);
275
- const [contentHeight, setContentHeight] = (0, _react().useState)(0);
270
+ }, [closeButtonLoading, colors.closeActiveBackground, colors.closeBackground, colors.closeText, colors.keyActiveBackground, colors.keyBackground, colors.keyText, colors.keyTextActive, defClose, deleteButtonText, deleteRender, extraKeyRender, handleInput, numberKeyRender, radii.key, sizing.auxFontSize, sizing.closeHeight, sizing.defaultIconFontSize, sizing.fontSize, sizing.keyHeight, typography.fontFamily, closeTxt]);
271
+ const animVal = (0, _react().useRef)(new (_reactNative().Animated.Value)(visible ? 1 : 0)).current;
272
+ const animRef = (0, _react().useRef)(null);
273
+ const seqRef = (0, _react().useRef)(0);
274
+ const [contentH, setContentH] = (0, _react().useState)(0);
276
275
  const [shouldRender, setShouldRender] = (0, _react().useState)(visible);
277
- const effectiveDuration = transition === false ? 0 : transitionDuration;
276
+ const effD = reducedMotion ? 0 : transition === false ? 0 : transitionDuration;
278
277
  (0, _react().useEffect)(() => {
279
- animationSeqRef.current += 1;
280
- const currentSeq = animationSeqRef.current;
281
- if (visible) {
282
- setShouldRender(true);
283
- }
284
- animationRef.current?.stop();
285
- const animation = _reactNative().Animated.timing(animated, {
278
+ seqRef.current += 1;
279
+ const seq = seqRef.current;
280
+ if (visible) setShouldRender(true);
281
+ animRef.current?.stop();
282
+ const a = _reactNative().Animated.timing(animVal, {
286
283
  toValue: visible ? 1 : 0,
287
- duration: effectiveDuration,
284
+ duration: effD,
288
285
  useNativeDriver: _platform.nativeDriverEnabled,
289
- easing: visible ? _reactNative().Easing.out(_reactNative().Easing.cubic) : _reactNative().Easing.in(_reactNative().Easing.cubic)
286
+ easing: visible ? _reactNative().Easing.out(_reactNative().Easing.cubic) : _reactNative().Easing.in(_reactNative().Easing.cubic),
287
+ isInteraction: false
290
288
  });
291
- animationRef.current = animation;
292
- animation.start(({
289
+ animRef.current = a;
290
+ a.start(({
293
291
  finished
294
292
  }) => {
295
- if (finished && !visible && animationSeqRef.current === currentSeq) {
296
- setShouldRender(false);
297
- }
293
+ if (finished && !visible && seqRef.current === seq) setShouldRender(false);
298
294
  });
299
295
  return () => {
300
- animationRef.current?.stop();
301
- animationRef.current = null;
296
+ animRef.current?.stop();
297
+ animRef.current = null;
302
298
  };
303
- }, [animated, visible, effectiveDuration]);
304
- const translateY = animated.interpolate({
299
+ }, [animVal, visible, effD]);
300
+ const translateY = animVal.interpolate({
305
301
  inputRange: [0, 1],
306
- outputRange: [contentHeight || 320, 0]
302
+ outputRange: [contentH || 320, 0]
307
303
  });
308
- const handleLayout = (0, _react().useCallback)(e => {
304
+ const onLayout = (0, _react().useCallback)(e => {
309
305
  const {
310
306
  height
311
307
  } = e.nativeEvent.layout;
312
- setContentHeight(prev => Math.abs(height - prev) > 0.5 ? height : prev);
308
+ setContentH(prev => Math.abs(height - prev) > 0.5 ? height : prev);
313
309
  }, []);
314
- const hasHeader = !isCustomTheme && (title || closeButtonText);
315
- const doubleKeyHeight = sizing.keyHeight * 2 + keyGap;
316
- const memo = (0, _react().useMemo)(() => {
317
- const headerPaddingStyle = {
318
- paddingHorizontal: spacing.titlePadding
310
+ const hasHdr = !isCustom && (title || closeButtonText);
311
+ const dblH = sizing.keyHeight * 2 + spacing.keyGap;
312
+ const memoized = (0, _react().useMemo)(() => {
313
+ const kg = spacing.keyGap;
314
+ const ph = spacing.paddingHorizontal;
315
+ const tp = spacing.titlePadding;
316
+ const hP = {
317
+ paddingHorizontal: tp
319
318
  };
320
- const defaultContainerStyle = [styles.defaultRow, {
319
+ const dC = [S.dRow, {
321
320
  flexDirection: 'column',
322
321
  flexWrap: 'nowrap',
323
- paddingHorizontal: spacing.paddingHorizontal,
324
- paddingTop: keyGap,
325
- paddingBottom: keyGap,
326
- gap: keyGap
322
+ paddingHorizontal: ph,
323
+ paddingTop: kg,
324
+ paddingBottom: kg,
325
+ gap: kg
327
326
  }];
328
- const defaultLineStyle = {
327
+ const dL = {
329
328
  flexDirection: 'row',
330
- gap: keyGap
329
+ gap: kg
331
330
  };
332
- const customRowStyle = [styles.customRow, {
333
- paddingHorizontal: spacing.paddingHorizontal,
334
- paddingTop: hasHeader ? 0 : keyGap,
335
- paddingBottom: keyGap,
331
+ const cR = [S.cRow, {
332
+ paddingHorizontal: ph,
333
+ paddingTop: hasHdr ? 0 : kg,
334
+ paddingBottom: kg,
336
335
  width: '100%'
337
336
  }];
338
- const customMainStyle = [styles.customMain, {
337
+ const cM = [S.cMat, {
339
338
  flexDirection: 'column',
340
339
  flexWrap: 'nowrap',
341
- gap: keyGap
340
+ gap: kg
342
341
  }];
343
- const customSidebarStyle = [styles.customSidebar, {
344
- gap: keyGap,
345
- marginLeft: keyGap
342
+ const cS = [S.cSide, {
343
+ gap: kg,
344
+ marginLeft: kg
346
345
  }];
347
- const entries = keys.map((key, index) => ({
348
- key,
349
- index
346
+ const ents = keys.map((k, i) => ({
347
+ key: k,
348
+ index: i
350
349
  }));
351
- const defaultLines = [];
352
- for (let i = 0; i < entries.length; i += 3) {
353
- defaultLines.push(entries.slice(i, i + 3));
354
- }
355
- const defaultNode = /*#__PURE__*/_react().default.createElement(_reactNative().View, {
356
- style: defaultContainerStyle
357
- }, defaultLines.map((line, lineIndex) => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
358
- key: `l-${lineIndex}`,
359
- style: defaultLineStyle
360
- }, line.map(item => renderKey(item.key, item.index)))));
361
- const customLines = [];
362
- for (let i = 0; i < 9 && i < entries.length; i += 3) {
363
- customLines.push(entries.slice(i, i + 3));
364
- }
365
- const tail = entries.slice(9);
366
- if (tail.length === 1) {
367
- customLines.push([{
368
- key: {
369
- type: ''
370
- },
371
- index: 1000001
372
- }, tail[0], {
373
- key: {
374
- type: ''
375
- },
376
- index: 1000002
377
- }]);
378
- } else if (tail.length) {
379
- customLines.push(tail);
380
- }
381
- const customMainNode = /*#__PURE__*/_react().default.createElement(_reactNative().View, {
382
- style: customMainStyle
383
- }, customLines.map((line, lineIndex) => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
384
- key: `cl-${lineIndex}`,
385
- style: defaultLineStyle
386
- }, line.map(item => renderKey(item.key, item.index)))));
387
- const deleteNode = showDeleteKey ? renderKey({
350
+ const dLns = [];
351
+ for (let i = 0; i < ents.length; i += 3) dLns.push(ents.slice(i, i + 3));
352
+ const dN = /*#__PURE__*/_react().default.createElement(_reactNative().View, {
353
+ style: dC
354
+ }, dLns.map((line, li) => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
355
+ key: `l-${li}`,
356
+ style: dL
357
+ }, line.map(it => renderKey(it.key, it.index)))));
358
+ const cLns = [];
359
+ for (let i = 0; i < 9 && i < ents.length; i += 3) cLns.push(ents.slice(i, i + 3));
360
+ const tl = ents.slice(9);
361
+ if (tl.length === 1) cLns.push([{
362
+ key: {
363
+ type: ''
364
+ },
365
+ index: 1000001
366
+ }, tl[0], {
367
+ key: {
368
+ type: ''
369
+ },
370
+ index: 1000002
371
+ }]);else if (tl.length) cLns.push(tl);
372
+ const cMN = /*#__PURE__*/_react().default.createElement(_reactNative().View, {
373
+ style: cM
374
+ }, cLns.map((line, li) => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
375
+ key: `cl-${li}`,
376
+ style: dL
377
+ }, line.map(it => renderKey(it.key, it.index)))));
378
+ const delN = showDeleteKey && renderKey({
388
379
  type: 'delete'
389
- }, 999, false, true, doubleKeyHeight) : null;
390
- const closeNode = renderKey({
380
+ }, 999, false, true, dblH);
381
+ const closeN = renderKey({
391
382
  type: 'close'
392
- }, 1000, true, true, doubleKeyHeight);
393
- const headerNode = hasHeader ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
394
- style: [styles.header, headerPaddingStyle]
383
+ }, 1000, true, true, dblH);
384
+ const tS = {
385
+ color: colors.title,
386
+ fontFamily: typography.fontFamily,
387
+ fontSize: sizing.titleFontSize
388
+ };
389
+ const closeStyle = {
390
+ color: colors.title,
391
+ fontFamily: typography.fontFamily,
392
+ fontSize: sizing.auxFontSize ?? Math.round(sizing.fontSize * 0.64)
393
+ };
394
+ const hN = hasHdr ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
395
+ style: [S.hdr, hP]
395
396
  }, /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
396
- style: [styles.title, styles.titleOverlay, {
397
- color: colors.title,
398
- fontSize: sizing.titleFontSize
399
- }],
397
+ style: [S.tBold, S.tCenter, tS],
400
398
  numberOfLines: 1
401
- }, title), resolvedCloseText ? /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, {
402
- onPress: closeSelf,
403
- style: styles.headerClose,
399
+ }, title), closeTxt && /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, {
400
+ onPress: handleClose,
401
+ style: S.hdrClose,
404
402
  accessibilityRole: "button",
405
- accessibilityLabel: resolvedCloseText
403
+ accessibilityLabel: closeTxt
406
404
  }, /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
407
- style: {
408
- color: colors.title
409
- }
410
- }, resolvedCloseText)) : null) : null;
411
- const bodyNode = isCustomTheme ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
412
- style: customRowStyle
413
- }, customMainNode, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
414
- style: customSidebarStyle
415
- }, deleteNode, closeNode)) : defaultNode;
416
- const safeAreaNode = safeAreaInsetBottom && /*#__PURE__*/_react().default.createElement(_safeAreaView.SafeAreaView, {
417
- edge: "bottom"
418
- });
405
+ style: closeStyle
406
+ }, closeTxt))) : null;
407
+ const bN = isCustom ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
408
+ style: cR
409
+ }, cMN, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
410
+ style: cS
411
+ }, delN, closeN)) : dN;
419
412
  return {
420
- headerNode,
421
- bodyNode,
422
- safeAreaNode
413
+ headerNode: hN,
414
+ bodyNode: bN,
415
+ safeAreaNode: safeAreaInsetBottom && /*#__PURE__*/_react().default.createElement(_safeAreaView.SafeAreaView, {
416
+ edge: "bottom"
417
+ })
423
418
  };
424
- }, [closeSelf, colors.title, doubleKeyHeight, extraKeyRender, hasHeader, isCustomTheme, keyGap, keys, renderKey, resolvedCloseText, safeAreaInsetBottom, sizing.titleFontSize, spacing.paddingHorizontal, spacing.titlePadding, title]);
425
- if (!shouldRender && !visible) {
426
- return null;
427
- }
419
+ }, [handleClose, colors.title, dblH, hasHdr, isCustom, keys, renderKey, closeTxt, safeAreaInsetBottom, sizing.auxFontSize, sizing.fontSize, sizing.titleFontSize, spacing.keyGap, spacing.paddingHorizontal, spacing.titlePadding, typography.fontFamily, title, showDeleteKey]);
420
+ if (!shouldRender && !visible) return null;
428
421
  return /*#__PURE__*/_react().default.createElement(_Portal.default, null, /*#__PURE__*/_react().default.createElement(_reactNative().Animated.View, _extends({}, rest, {
429
422
  pointerEvents: visible ? 'auto' : 'none',
430
- onLayout: handleLayout,
431
- style: [styles.wrapper, wrapperShadow, style, {
423
+ renderToHardwareTextureAndroid: true,
424
+ shouldRasterizeIOS: true,
425
+ onLayout: onLayout,
426
+ style: [S.wrap, winShadow, style, {
432
427
  transform: [{
433
428
  translateY
434
429
  }],
435
430
  backgroundColor: colors.background
436
431
  }]
437
- }), memo.headerNode, memo.bodyNode, memo.safeAreaNode));
432
+ }), memoized.headerNode, memoized.bodyNode, memoized.safeAreaNode));
438
433
  });
439
- const styles = _reactNative().StyleSheet.create({
440
- wrapper: {
434
+ const S = _reactNative().StyleSheet.create({
435
+ wrap: {
441
436
  position: 'absolute',
442
437
  left: 0,
443
438
  right: 0,
444
439
  bottom: 0
445
440
  },
446
- header: {
441
+ hdr: {
447
442
  flexDirection: 'row',
448
443
  alignItems: 'center',
449
444
  justifyContent: 'flex-end',
450
445
  height: 44,
451
446
  position: 'relative'
452
447
  },
453
- title: {
448
+ tBold: {
454
449
  fontWeight: '600'
455
450
  },
456
- titleOverlay: {
451
+ tCenter: {
457
452
  position: 'absolute',
458
453
  left: 12,
459
454
  right: 12,
460
455
  textAlign: 'center'
461
456
  },
462
- headerClose: {
457
+ hdrClose: {
463
458
  minWidth: 56,
464
459
  alignItems: 'flex-end'
465
460
  },
466
- key: {
461
+ k: {
467
462
  justifyContent: 'center',
468
463
  alignItems: 'center'
469
464
  },
470
- keyText: {
465
+ kTxt: {
471
466
  includeFontPadding: false,
472
467
  textAlign: 'center'
473
468
  },
474
- defaultRow: {
469
+ dRow: {
475
470
  flexDirection: 'row',
476
471
  flexWrap: 'wrap'
477
472
  },
478
- customRow: {
473
+ cRow: {
479
474
  flexDirection: 'row'
480
475
  },
481
- customMain: {
476
+ cMat: {
482
477
  flex: 3,
483
478
  flexDirection: 'row',
484
479
  flexWrap: 'wrap'
485
480
  },
486
- customSidebar: {
481
+ cSide: {
487
482
  flex: 1,
488
483
  flexDirection: 'column',
489
484
  justifyContent: 'flex-start'
490
485
  }
491
486
  });
492
- NumberKeyboard.displayName = 'NumberKeyboard';
493
487
  var _default = exports.default = NumberKeyboard;