react-native-system-ui 0.0.6 → 1.0.0

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 (366) hide show
  1. package/README.md +53 -30
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +97 -105
  3. package/dist/cjs/components/action-sheet/tokens.js +16 -27
  4. package/dist/cjs/components/area/Area.js +54 -67
  5. package/dist/cjs/components/area/tokens.js +6 -3
  6. package/dist/cjs/components/avatar/Avatar.js +25 -23
  7. package/dist/cjs/components/badge/Badge.js +31 -31
  8. package/dist/cjs/components/badge/tokens.js +6 -8
  9. package/dist/cjs/components/button/Button.js +115 -151
  10. package/dist/cjs/components/button/ButtonGroup.js +8 -42
  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 +177 -180
  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 +70 -83
  18. package/dist/cjs/components/cell/CellGroup.js +16 -29
  19. package/dist/cjs/components/checkbox/Checkbox.js +139 -132
  20. package/dist/cjs/components/checkbox/CheckboxGroup.js +4 -35
  21. package/dist/cjs/components/checkbox/tokens.js +7 -10
  22. package/dist/cjs/components/circle/Circle.js +25 -24
  23. package/dist/cjs/components/collapse/Collapse.js +75 -91
  24. package/dist/cjs/components/config-provider/ConfigProvider.js +16 -3
  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 +20 -15
  31. package/dist/cjs/components/datetime-picker/DatetimePicker.js +61 -84
  32. package/dist/cjs/components/datetime-picker/tokens.js +14 -3
  33. package/dist/cjs/components/dialog/Dialog.js +153 -121
  34. package/dist/cjs/components/dialog/imperative.js +17 -30
  35. package/dist/cjs/components/divider/Divider.js +26 -28
  36. package/dist/cjs/components/empty/Empty.js +35 -39
  37. package/dist/cjs/components/error-boundary/ErrorBoundary.js +73 -0
  38. package/dist/cjs/components/error-boundary/index.js +19 -0
  39. package/dist/cjs/components/field/Field.js +109 -106
  40. package/dist/cjs/components/flex/Flex.js +18 -18
  41. package/dist/cjs/components/flex/FlexItem.js +26 -27
  42. package/dist/cjs/components/form/Form.js +142 -161
  43. package/dist/cjs/components/form/FormItem.js +69 -97
  44. package/dist/cjs/components/form/FormList.js +49 -37
  45. package/dist/cjs/components/form/tokens.js +6 -3
  46. package/dist/cjs/components/form/utils.js +15 -34
  47. package/dist/cjs/components/grid/Grid.js +30 -29
  48. package/dist/cjs/components/grid/GridItem.js +84 -85
  49. package/dist/cjs/components/image/Image.js +55 -59
  50. package/dist/cjs/components/image/tokens.js +2 -2
  51. package/dist/cjs/components/image-preview/ImagePreview.js +124 -112
  52. package/dist/cjs/components/image-preview/imperative.js +4 -13
  53. package/dist/cjs/components/index.js +13 -0
  54. package/dist/cjs/components/input/Input.js +30 -22
  55. package/dist/cjs/components/loading/Loading.js +14 -15
  56. package/dist/cjs/components/nav-bar/NavBar.js +68 -83
  57. package/dist/cjs/components/nav-bar/tokens.js +1 -9
  58. package/dist/cjs/components/notice-bar/NoticeBar.js +74 -77
  59. package/dist/cjs/components/notify/Notify.js +88 -84
  60. package/dist/cjs/components/notify/imperative.js +20 -43
  61. package/dist/cjs/components/notify/tokens.js +1 -11
  62. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +187 -209
  63. package/dist/cjs/components/overlay/Overlay.js +37 -52
  64. package/dist/cjs/components/overlay/tokens.js +5 -3
  65. package/dist/cjs/components/password-input/PasswordInput.js +98 -79
  66. package/dist/cjs/components/picker/Picker.js +440 -421
  67. package/dist/cjs/components/picker/tokens.js +1 -1
  68. package/dist/cjs/components/popup/Popup.js +263 -293
  69. package/dist/cjs/components/portal/Portal.js +12 -29
  70. package/dist/cjs/components/portal/PortalHost.js +151 -234
  71. package/dist/cjs/components/progress/Progress.js +51 -48
  72. package/dist/cjs/components/radio/Radio.js +45 -42
  73. package/dist/cjs/components/radio/RadioGroup.js +8 -40
  74. package/dist/cjs/components/radio/tokens.js +7 -10
  75. package/dist/cjs/components/safe-area-view/SafeAreaView.js +22 -26
  76. package/dist/cjs/components/search/Search.js +51 -43
  77. package/dist/cjs/components/selector/Selector.js +14 -13
  78. package/dist/cjs/components/share-sheet/ShareSheet.js +160 -161
  79. package/dist/cjs/components/sidebar/Sidebar.js +39 -45
  80. package/dist/cjs/components/sidebar/SidebarContext.js +1 -2
  81. package/dist/cjs/components/sidebar/SidebarItem.js +13 -16
  82. package/dist/cjs/components/sidebar/tokens.js +1 -3
  83. package/dist/cjs/components/skeleton/Skeleton.js +30 -37
  84. package/dist/cjs/components/skeleton/tokens.js +1 -2
  85. package/dist/cjs/components/slider/Slider.js +156 -135
  86. package/dist/cjs/components/space/Space.js +46 -69
  87. package/dist/cjs/components/stepper/Stepper.js +177 -155
  88. package/dist/cjs/components/swiper/Swiper.js +251 -253
  89. package/dist/cjs/components/swiper/SwiperPagIndicator.js +25 -27
  90. package/dist/cjs/components/swiper/tokens.js +10 -3
  91. package/dist/cjs/components/switch/Switch.js +13 -15
  92. package/dist/cjs/components/tabbar/Tabbar.js +35 -27
  93. package/dist/cjs/components/tabbar/TabbarContext.js +1 -2
  94. package/dist/cjs/components/tabbar/TabbarItem.js +65 -68
  95. package/dist/cjs/components/tabs/Tabs.js +286 -313
  96. package/dist/cjs/components/tag/Tag.js +46 -37
  97. package/dist/cjs/components/toast/Toast.js +90 -90
  98. package/dist/cjs/components/toast/imperative.js +16 -41
  99. package/dist/cjs/components/typography/Typography.js +3 -5
  100. package/dist/cjs/components/water-mark/WaterMark.js +31 -29
  101. package/dist/cjs/design-system/ThemeProvider.js +5 -11
  102. package/dist/cjs/design-system/createComponentTokensHook.js +11 -13
  103. package/dist/cjs/design-system/presets.js +2 -3
  104. package/dist/cjs/design-system/tokens.js +2 -11
  105. package/dist/cjs/hooks/animation/index.js +25 -0
  106. package/dist/cjs/hooks/animation/useAnimatedTransition.js +72 -0
  107. package/dist/cjs/hooks/animation/useReducedMotion.js +75 -0
  108. package/dist/cjs/hooks/aria/useAriaListBox.js +8 -16
  109. package/dist/cjs/hooks/aria/useAriaOverlay.js +3 -3
  110. package/dist/cjs/hooks/aria/useAriaPress.js +8 -21
  111. package/dist/cjs/hooks/aria/useAriaToggle.js +3 -3
  112. package/dist/cjs/hooks/gesture/useGestureScroll.js +60 -61
  113. package/dist/cjs/hooks/index.js +12 -0
  114. package/dist/cjs/hooks/overlay/OverlayStackStore.js +49 -69
  115. package/dist/cjs/hooks/overlay/useOverlayStack.js +13 -19
  116. package/dist/cjs/hooks/useControllableValue.js +10 -21
  117. package/dist/cjs/hooks/useCountDown.js +14 -22
  118. package/dist/cjs/hooks/useHairline.js +17 -29
  119. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -4
  120. package/dist/cjs/index.js +67 -1
  121. package/dist/cjs/platform/animation.js +10 -2
  122. package/dist/cjs/platform/measure.js +18 -36
  123. package/dist/cjs/utils/color.js +21 -35
  124. package/dist/cjs/utils/compare.js +7 -12
  125. package/dist/cjs/utils/createPlatformShadow.js +28 -39
  126. package/dist/cjs/utils/date.js +20 -50
  127. package/dist/cjs/utils/deepMerge.js +16 -26
  128. package/dist/cjs/utils/hairline.js +74 -71
  129. package/dist/cjs/utils/index.js +22 -0
  130. package/dist/cjs/utils/number.js +21 -29
  131. package/dist/cjs/utils/render.js +27 -0
  132. package/dist/cjs/utils/rtl.js +25 -0
  133. package/dist/cjs/utils/string.js +8 -25
  134. package/dist/es/components/action-sheet/ActionSheet.js +99 -107
  135. package/dist/es/components/action-sheet/tokens.js +16 -27
  136. package/dist/es/components/area/Area.js +55 -68
  137. package/dist/es/components/area/tokens.js +6 -3
  138. package/dist/es/components/avatar/Avatar.js +25 -23
  139. package/dist/es/components/avatar/index.js +1 -2
  140. package/dist/es/components/badge/Badge.js +33 -33
  141. package/dist/es/components/badge/tokens.js +6 -8
  142. package/dist/es/components/button/Button.js +116 -152
  143. package/dist/es/components/button/ButtonGroup.js +9 -43
  144. package/dist/es/components/button/tokens.js +2 -3
  145. package/dist/es/components/calendar/Calendar.js +214 -225
  146. package/dist/es/components/calendar/tokens.js +3 -3
  147. package/dist/es/components/cascader/Cascader.js +180 -183
  148. package/dist/es/components/cascader/tokens.js +2 -2
  149. package/dist/es/components/cascader/useCascaderExtend.js +25 -29
  150. package/dist/es/components/cell/Cell.js +71 -84
  151. package/dist/es/components/cell/CellGroup.js +16 -28
  152. package/dist/es/components/checkbox/Checkbox.js +140 -133
  153. package/dist/es/components/checkbox/CheckboxGroup.js +5 -36
  154. package/dist/es/components/checkbox/tokens.js +7 -10
  155. package/dist/es/components/circle/Circle.js +25 -23
  156. package/dist/es/components/collapse/Collapse.js +77 -92
  157. package/dist/es/components/config-provider/ConfigProvider.js +10 -3
  158. package/dist/es/components/config-provider/DirectionContext.js +2 -0
  159. package/dist/es/components/config-provider/index.js +1 -0
  160. package/dist/es/components/config-provider/locale/en-US.js +32 -0
  161. package/dist/es/components/config-provider/locale/zh-CN.js +32 -0
  162. package/dist/es/components/config-provider/useDirection.js +3 -0
  163. package/dist/es/components/count-down/CountDown.js +23 -18
  164. package/dist/es/components/datetime-picker/DatetimePicker.js +61 -84
  165. package/dist/es/components/datetime-picker/tokens.js +14 -3
  166. package/dist/es/components/dialog/Dialog.js +154 -121
  167. package/dist/es/components/dialog/imperative.js +17 -30
  168. package/dist/es/components/divider/Divider.js +28 -29
  169. package/dist/es/components/empty/Empty.js +36 -39
  170. package/dist/es/components/error-boundary/ErrorBoundary.js +61 -0
  171. package/dist/es/components/error-boundary/index.js +1 -0
  172. package/dist/es/components/field/Field.js +109 -106
  173. package/dist/es/components/flex/Flex.js +18 -17
  174. package/dist/es/components/flex/FlexItem.js +27 -27
  175. package/dist/es/components/form/Form.js +143 -162
  176. package/dist/es/components/form/FormItem.js +68 -95
  177. package/dist/es/components/form/FormList.js +49 -37
  178. package/dist/es/components/form/tokens.js +6 -3
  179. package/dist/es/components/form/utils.js +15 -34
  180. package/dist/es/components/grid/Grid.js +30 -28
  181. package/dist/es/components/grid/GridItem.js +84 -84
  182. package/dist/es/components/image/Image.js +58 -62
  183. package/dist/es/components/image/tokens.js +2 -2
  184. package/dist/es/components/image-preview/ImagePreview.js +124 -112
  185. package/dist/es/components/image-preview/imperative.js +4 -13
  186. package/dist/es/components/index.js +3 -1
  187. package/dist/es/components/input/Input.js +31 -23
  188. package/dist/es/components/loading/Loading.js +16 -16
  189. package/dist/es/components/nav-bar/NavBar.js +68 -83
  190. package/dist/es/components/nav-bar/tokens.js +1 -3
  191. package/dist/es/components/notice-bar/NoticeBar.js +74 -76
  192. package/dist/es/components/notify/Notify.js +92 -87
  193. package/dist/es/components/notify/imperative.js +21 -44
  194. package/dist/es/components/notify/tokens.js +1 -5
  195. package/dist/es/components/number-keyboard/NumberKeyboard.js +187 -209
  196. package/dist/es/components/overlay/Overlay.js +36 -51
  197. package/dist/es/components/overlay/tokens.js +5 -3
  198. package/dist/es/components/password-input/PasswordInput.js +98 -79
  199. package/dist/es/components/picker/Picker.js +440 -421
  200. package/dist/es/components/picker/tokens.js +1 -1
  201. package/dist/es/components/popup/Popup.js +263 -292
  202. package/dist/es/components/portal/Portal.js +13 -29
  203. package/dist/es/components/portal/PortalHost.js +152 -234
  204. package/dist/es/components/progress/Progress.js +51 -48
  205. package/dist/es/components/radio/Radio.js +47 -44
  206. package/dist/es/components/radio/RadioGroup.js +10 -41
  207. package/dist/es/components/radio/tokens.js +7 -10
  208. package/dist/es/components/safe-area-view/SafeAreaView.js +22 -25
  209. package/dist/es/components/search/Search.js +52 -44
  210. package/dist/es/components/selector/Selector.js +14 -13
  211. package/dist/es/components/share-sheet/ShareSheet.js +162 -163
  212. package/dist/es/components/sidebar/Sidebar.js +41 -47
  213. package/dist/es/components/sidebar/SidebarContext.js +1 -2
  214. package/dist/es/components/sidebar/SidebarItem.js +13 -15
  215. package/dist/es/components/sidebar/tokens.js +1 -3
  216. package/dist/es/components/skeleton/Skeleton.js +30 -37
  217. package/dist/es/components/skeleton/tokens.js +1 -2
  218. package/dist/es/components/slider/Slider.js +156 -134
  219. package/dist/es/components/space/Space.js +48 -71
  220. package/dist/es/components/stepper/Stepper.js +178 -156
  221. package/dist/es/components/swiper/Swiper.js +252 -254
  222. package/dist/es/components/swiper/SwiperPagIndicator.js +25 -27
  223. package/dist/es/components/swiper/tokens.js +10 -3
  224. package/dist/es/components/switch/Switch.js +13 -15
  225. package/dist/es/components/tabbar/Tabbar.js +36 -28
  226. package/dist/es/components/tabbar/TabbarContext.js +1 -2
  227. package/dist/es/components/tabbar/TabbarItem.js +66 -69
  228. package/dist/es/components/tabs/Tabs.js +286 -313
  229. package/dist/es/components/tag/Tag.js +49 -39
  230. package/dist/es/components/toast/Toast.js +93 -91
  231. package/dist/es/components/toast/imperative.js +16 -41
  232. package/dist/es/components/typography/Typography.js +3 -5
  233. package/dist/es/components/water-mark/WaterMark.js +32 -30
  234. package/dist/es/design-system/ThemeProvider.js +5 -11
  235. package/dist/es/design-system/createComponentTokensHook.js +11 -13
  236. package/dist/es/design-system/presets.js +2 -3
  237. package/dist/es/design-system/tokens.js +1 -9
  238. package/dist/es/hooks/animation/index.js +2 -0
  239. package/dist/es/hooks/animation/useAnimatedTransition.js +53 -0
  240. package/dist/es/hooks/animation/useReducedMotion.js +54 -0
  241. package/dist/es/hooks/aria/useAriaListBox.js +8 -16
  242. package/dist/es/hooks/aria/useAriaOverlay.js +3 -3
  243. package/dist/es/hooks/aria/useAriaPress.js +8 -21
  244. package/dist/es/hooks/aria/useAriaToggle.js +3 -3
  245. package/dist/es/hooks/gesture/useGestureScroll.js +60 -61
  246. package/dist/es/hooks/index.js +1 -0
  247. package/dist/es/hooks/overlay/OverlayStackStore.js +49 -69
  248. package/dist/es/hooks/overlay/useOverlayStack.js +13 -19
  249. package/dist/es/hooks/useControllableValue.js +10 -21
  250. package/dist/es/hooks/useCountDown.js +14 -22
  251. package/dist/es/hooks/useHairline.js +16 -28
  252. package/dist/es/hooks/useSafeAreaPadding.js +1 -4
  253. package/dist/es/index.js +8 -1
  254. package/dist/es/platform/animation.js +9 -1
  255. package/dist/es/platform/measure.js +18 -36
  256. package/dist/es/utils/color.js +21 -35
  257. package/dist/es/utils/compare.js +7 -12
  258. package/dist/es/utils/createPlatformShadow.js +28 -39
  259. package/dist/es/utils/date.js +20 -50
  260. package/dist/es/utils/deepMerge.js +16 -26
  261. package/dist/es/utils/hairline.js +73 -65
  262. package/dist/es/utils/index.js +2 -0
  263. package/dist/es/utils/number.js +21 -29
  264. package/dist/es/utils/render.js +7 -0
  265. package/dist/es/utils/rtl.js +17 -0
  266. package/dist/es/utils/string.js +8 -25
  267. package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -1
  268. package/dist/types/components/area/Area.d.ts +1 -1
  269. package/dist/types/components/area/tokens.d.ts +4 -0
  270. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  271. package/dist/types/components/avatar/index.d.ts +1 -2
  272. package/dist/types/components/badge/Badge.d.ts +1 -1
  273. package/dist/types/components/button/Button.d.ts +1 -1
  274. package/dist/types/components/button/index.d.ts +1 -1
  275. package/dist/types/components/calendar/Calendar.d.ts +1 -1
  276. package/dist/types/components/cascader/Cascader.d.ts +1 -1
  277. package/dist/types/components/cell/Cell.d.ts +1 -1
  278. package/dist/types/components/cell/CellGroup.d.ts +1 -1
  279. package/dist/types/components/cell/index.d.ts +2 -2
  280. package/dist/types/components/checkbox/Checkbox.d.ts +1 -1
  281. package/dist/types/components/circle/Circle.d.ts +1 -1
  282. package/dist/types/components/collapse/Collapse.d.ts +1 -2
  283. package/dist/types/components/config-provider/DirectionContext.d.ts +3 -0
  284. package/dist/types/components/config-provider/index.d.ts +2 -1
  285. package/dist/types/components/config-provider/locale/en-US.d.ts +32 -0
  286. package/dist/types/components/config-provider/locale/zh-CN.d.ts +32 -0
  287. package/dist/types/components/config-provider/useDirection.d.ts +1 -0
  288. package/dist/types/components/count-down/CountDown.d.ts +1 -1
  289. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -1
  290. package/dist/types/components/datetime-picker/tokens.d.ts +12 -0
  291. package/dist/types/components/dialog/Dialog.d.ts +1 -1
  292. package/dist/types/components/divider/Divider.d.ts +1 -1
  293. package/dist/types/components/empty/Empty.d.ts +1 -1
  294. package/dist/types/components/error-boundary/ErrorBoundary.d.ts +6 -0
  295. package/dist/types/components/error-boundary/index.d.ts +2 -0
  296. package/dist/types/components/field/Field.d.ts +1 -1
  297. package/dist/types/components/flex/Flex.d.ts +1 -1
  298. package/dist/types/components/flex/FlexItem.d.ts +1 -1
  299. package/dist/types/components/flex/index.d.ts +2 -2
  300. package/dist/types/components/form/Form.d.ts +1 -1
  301. package/dist/types/components/form/FormItem.d.ts +2 -1
  302. package/dist/types/components/form/index.d.ts +2 -2
  303. package/dist/types/components/form/tokens.d.ts +4 -0
  304. package/dist/types/components/grid/Grid.d.ts +1 -1
  305. package/dist/types/components/grid/GridItem.d.ts +1 -1
  306. package/dist/types/components/grid/index.d.ts +2 -2
  307. package/dist/types/components/image/Image.d.ts +1 -1
  308. package/dist/types/components/image-preview/ImagePreview.d.ts +1 -1
  309. package/dist/types/components/index.d.ts +4 -1
  310. package/dist/types/components/input/Input.d.ts +3 -3
  311. package/dist/types/components/loading/Loading.d.ts +1 -1
  312. package/dist/types/components/nav-bar/NavBar.d.ts +1 -1
  313. package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -1
  314. package/dist/types/components/notify/Notify.d.ts +2 -2
  315. package/dist/types/components/notify/index.d.ts +1 -1
  316. package/dist/types/components/overlay/Overlay.d.ts +1 -5
  317. package/dist/types/components/overlay/tokens.d.ts +3 -0
  318. package/dist/types/components/password-input/PasswordInput.d.ts +1 -1
  319. package/dist/types/components/picker/Picker.d.ts +5 -5
  320. package/dist/types/components/popup/Popup.d.ts +3 -42
  321. package/dist/types/components/portal/Portal.d.ts +9 -6
  322. package/dist/types/components/portal/PortalHost.d.ts +1 -1
  323. package/dist/types/components/radio/RadioGroup.d.ts +1 -1
  324. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -1
  325. package/dist/types/components/search/Search.d.ts +1 -1
  326. package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -1
  327. package/dist/types/components/sidebar/Sidebar.d.ts +1 -1
  328. package/dist/types/components/sidebar/SidebarContext.d.ts +1 -1
  329. package/dist/types/components/sidebar/SidebarItem.d.ts +1 -1
  330. package/dist/types/components/sidebar/index.d.ts +2 -2
  331. package/dist/types/components/skeleton/Skeleton.d.ts +1 -1
  332. package/dist/types/components/slider/Slider.d.ts +1 -1
  333. package/dist/types/components/stepper/Stepper.d.ts +1 -1
  334. package/dist/types/components/swiper/Swiper.d.ts +1 -1
  335. package/dist/types/components/swiper/index.d.ts +1 -1
  336. package/dist/types/components/swiper/tokens.d.ts +8 -0
  337. package/dist/types/components/tabbar/Tabbar.d.ts +2 -2
  338. package/dist/types/components/tabbar/TabbarContext.d.ts +1 -1
  339. package/dist/types/components/tabbar/TabbarItem.d.ts +2 -2
  340. package/dist/types/components/tabs/Tabs.d.ts +1 -1
  341. package/dist/types/components/tabs/index.d.ts +1 -1
  342. package/dist/types/components/tag/Tag.d.ts +1 -1
  343. package/dist/types/components/toast/Toast.d.ts +2 -2
  344. package/dist/types/components/toast/index.d.ts +1 -1
  345. package/dist/types/components/water-mark/WaterMark.d.ts +1 -1
  346. package/dist/types/design-system/tokens.d.ts +0 -1
  347. package/dist/types/hooks/animation/index.d.ts +3 -0
  348. package/dist/types/hooks/animation/useAnimatedTransition.d.ts +13 -0
  349. package/dist/types/hooks/animation/useReducedMotion.d.ts +3 -0
  350. package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -1
  351. package/dist/types/hooks/gesture/useGestureScroll.d.ts +11 -10
  352. package/dist/types/hooks/index.d.ts +1 -0
  353. package/dist/types/hooks/overlay/OverlayStackStore.d.ts +8 -8
  354. package/dist/types/hooks/useHairline.d.ts +1 -1
  355. package/dist/types/index.d.ts +5 -0
  356. package/dist/types/platform/animation.d.ts +8 -0
  357. package/dist/types/platform/measure.d.ts +1 -1
  358. package/dist/types/utils/compare.d.ts +1 -1
  359. package/dist/types/utils/createPlatformShadow.d.ts +2 -2
  360. package/dist/types/utils/date.d.ts +2 -2
  361. package/dist/types/utils/hairline.d.ts +5 -10
  362. package/dist/types/utils/index.d.ts +2 -0
  363. package/dist/types/utils/number.d.ts +2 -2
  364. package/dist/types/utils/render.d.ts +5 -0
  365. package/dist/types/utils/rtl.d.ts +5 -0
  366. package/package.json +10 -3
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.Overlay = exports.ExitAnimationContext = void 0;
6
+ exports.default = exports.Overlay = void 0;
7
7
  function _react() {
8
8
  const data = _interopRequireDefault(require("react"));
9
9
  _react = function () {
@@ -32,65 +32,50 @@ function _interactions() {
32
32
  };
33
33
  return data;
34
34
  }
35
+ var _tokens = require("./tokens");
35
36
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
36
- const ExitAnimationContext = exports.ExitAnimationContext = /*#__PURE__*/_react().default.createContext({
37
- exited: true,
38
- setExited: _exited => {}
39
- });
40
- const Overlay = exports.Overlay = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
37
+ const IS_WEB = _reactNative().Platform.OS === 'web';
38
+ const OverlayImpl = (props, ref) => {
41
39
  const {
42
40
  children,
43
- isOpen,
44
- visible,
45
- useRNModal = false,
46
- useRNModalOnAndroid = false,
47
- isKeyboardDismissable = true,
48
- animationPreset = 'fade',
41
+ isOpen: isOpenProp,
42
+ visible: visibleProp,
43
+ useRNModal: useRNModalProp,
44
+ useRNModalOnAndroid: useRNModalOnAndroidProp = false,
45
+ isKeyboardDismissable: isKeyboardDismissableProp = true,
46
+ animationPreset: animationPresetProp = 'fade',
49
47
  onRequestClose,
50
48
  style
51
49
  } = props;
52
- const resolvedOpen = isOpen ?? visible ?? false;
53
- const [exited, setExited] = _react().default.useState(!resolvedOpen);
50
+ const tokens = (0, _tokens.useOverlayTokens)();
51
+ const shouldUseModal = useRNModalProp ?? !IS_WEB;
52
+ const webOverlayStyle = IS_WEB ? {
53
+ zIndex: tokens.layer.zIndex,
54
+ position: 'fixed',
55
+ top: 0,
56
+ left: 0,
57
+ right: 0,
58
+ bottom: 0
59
+ } : undefined;
60
+ const resolvedOpen = isOpenProp ?? visibleProp ?? false;
54
61
  (0, _interactions().useKeyboardDismissable)({
55
- enabled: _reactNative().Platform.OS !== 'web' && resolvedOpen && isKeyboardDismissable,
62
+ enabled: !IS_WEB && resolvedOpen && isKeyboardDismissableProp,
56
63
  callback: onRequestClose ?? (() => {})
57
64
  });
58
- let styleObj = {};
59
- if (_reactNative().Platform.OS === 'web') {
60
- styleObj.zIndex = 9999;
61
- }
62
- if (animationPreset === 'slide') {
63
- styleObj.overflow = 'hidden';
64
- styleObj.display = 'flex';
65
- } else {
66
- styleObj.display = exited && !resolvedOpen ? 'none' : 'flex';
67
- }
68
- if (!resolvedOpen && exited) {
69
- return null;
70
- }
71
- if (useRNModal || useRNModalOnAndroid && _reactNative().Platform.OS === 'android') {
72
- return /*#__PURE__*/_react().default.createElement(ExitAnimationContext.Provider, {
73
- value: {
74
- exited,
75
- setExited
76
- }
77
- }, /*#__PURE__*/_react().default.createElement(_reactNative().Modal, {
78
- statusBarTranslucent: true,
79
- transparent: true,
80
- visible: resolvedOpen,
81
- onRequestClose: onRequestClose,
82
- animationType: animationPreset,
83
- ref: ref
84
- }, children));
85
- }
65
+ if (!resolvedOpen) return null;
66
+ if (shouldUseModal || useRNModalOnAndroidProp && _reactNative().Platform.OS === 'android') return /*#__PURE__*/_react().default.createElement(_reactNative().Modal, {
67
+ statusBarTranslucent: true,
68
+ transparent: true,
69
+ visible: resolvedOpen,
70
+ onRequestClose: onRequestClose,
71
+ animationType: animationPresetProp,
72
+ ref: ref
73
+ }, children);
86
74
  return /*#__PURE__*/_react().default.createElement(_overlays().OverlayContainer, {
87
- style: [style, styleObj]
88
- }, /*#__PURE__*/_react().default.createElement(ExitAnimationContext.Provider, {
89
- value: {
90
- exited,
91
- setExited
92
- }
93
- }, children));
94
- });
95
- Overlay.displayName = 'Overlay';
75
+ style: [style, webOverlayStyle]
76
+ }, children);
77
+ };
78
+ const OverlayForwardRef = /*#__PURE__*/_react().default.forwardRef(OverlayImpl);
79
+ OverlayForwardRef.displayName = 'Overlay';
80
+ const Overlay = exports.Overlay = /*#__PURE__*/_react().default.memo(OverlayForwardRef);
96
81
  var _default = exports.default = Overlay;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useOverlayTokens = void 0;
7
7
  var _designSystem = require("../../design-system");
8
- const createOverlayTokens = _foundations => {
9
- return {};
10
- };
8
+ const createOverlayTokens = _foundations => ({
9
+ layer: {
10
+ zIndex: 9999
11
+ }
12
+ });
11
13
  const useOverlayTokens = exports.useOverlayTokens = (0, _designSystem.createComponentTokensHook)('overlay', createOverlayTokens);
@@ -22,17 +22,18 @@ var _hooks = require("../../hooks");
22
22
  var _number = require("../../utils/number");
23
23
  var _validate = require("../../utils/validate");
24
24
  var _tokens = require("./tokens");
25
+ var _hairline = require("../../utils/hairline");
25
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); }
26
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); }
27
- const HIDDEN_INPUT_PROPS = {
28
+ const HIP = {
28
29
  caretHidden: true,
29
30
  autoCorrect: false,
30
31
  spellCheck: false,
31
32
  importantForAutofill: 'no',
32
33
  autoComplete: 'off'
33
34
  };
34
- const sanitizeNumber = value => value.replace(/[^0-9]/g, '');
35
- const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
35
+ const stripNonNumeric = v => v.replace(/[^0-9]/g, '');
36
+ const PasswordInputImpl = (props, ref) => {
36
37
  const {
37
38
  value,
38
39
  defaultValue,
@@ -60,7 +61,7 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
60
61
  onBlur,
61
62
  ...rest
62
63
  } = props;
63
- const lengthSafe = Math.max(1, Math.floor((0, _number.parseNumberLike)(length, 6) ?? 6));
64
+ const lengthValue = Math.max(1, Math.floor((0, _number.parseNumberLike)(length, 6) ?? 6));
64
65
  const tokens = (0, _tokens.usePasswordInputTokens)(tokensOverride);
65
66
  const {
66
67
  colors,
@@ -70,32 +71,36 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
70
71
  opacity,
71
72
  spacing
72
73
  } = tokens;
73
- const inputRef = (0, _react().useRef)(null);
74
- const [cursorVisible, setCursorVisible] = (0, _react().useState)(true);
75
- const blinkTimer = (0, _react().useRef)(null);
76
- const [focused, setFocused] = (0, _react().useState)(autoFocus);
74
+ const inputRef = (0, _react().useRef)(null),
75
+ [cursorVisible, setCursorVisible] = (0, _react().useState)(true),
76
+ blinkTimer = (0, _react().useRef)(null),
77
+ [focused, setFocused] = (0, _react().useState)(autoFocus);
77
78
  const keyboardType = type === 'number' ? 'number-pad' : 'default';
78
79
  const inputMode = type === 'number' ? 'numeric' : 'text';
79
80
  const [code = '', setCode] = (0, _hooks.useControllableValue)(props, {
80
81
  defaultValue: ''
81
82
  });
82
- const normalizeValue = (0, _react().useCallback)(nextValue => {
83
- let next = nextValue === null || nextValue === undefined ? '' : (0, _validate.isString)(nextValue) ? nextValue : String(nextValue);
84
- if (type === 'number') {
85
- next = sanitizeNumber(next);
86
- }
87
- if (lengthSafe > 0 && next.length > lengthSafe) {
88
- next = next.slice(0, lengthSafe);
89
- }
90
- return next;
91
- }, [lengthSafe, type]);
83
+ const normalizeValue = (0, _react().useCallback)(v => {
84
+ let normalized = v === null || v === undefined ? '' : (0, _validate.isString)(v) ? v : String(v);
85
+ if (type === 'number') normalized = stripNonNumeric(normalized);
86
+ if (lengthValue > 0 && normalized.length > lengthValue) normalized = normalized.slice(0, lengthValue);
87
+ return normalized;
88
+ }, [lengthValue, type]);
92
89
  const normalizedCode = normalizeValue(code);
93
- const updateValue = (0, _react().useCallback)(nextValue => {
94
- const normalized = normalizeValue(nextValue);
90
+ const validatorRef = (0, _react().useRef)(validator),
91
+ onFocusRef = (0, _react().useRef)(onFocus),
92
+ onBlurRef = (0, _react().useRef)(onBlur),
93
+ onSubmitRef = (0, _react().useRef)(onSubmit);
94
+ validatorRef.current = validator;
95
+ onFocusRef.current = onFocus;
96
+ onBlurRef.current = onBlur;
97
+ onSubmitRef.current = onSubmit;
98
+ const updateValue = (0, _react().useCallback)(v => {
99
+ const normalized = normalizeValue(v);
95
100
  if (normalized === normalizedCode) return;
96
- if (validator && !validator(normalized)) return;
101
+ if (validatorRef.current && !validatorRef.current(normalized)) return;
97
102
  setCode(normalized);
98
- }, [normalizeValue, normalizedCode, setCode, validator]);
103
+ }, [normalizeValue, normalizedCode, setCode]);
99
104
  const focusInput = (0, _react().useCallback)(() => {
100
105
  if (disabled) return;
101
106
  inputRef.current?.focus();
@@ -118,40 +123,41 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
118
123
  }, 60);
119
124
  return () => clearTimeout(timer);
120
125
  }, [autoFocus, disabled]);
121
- const handleChangeText = (0, _react().useCallback)(text => {
122
- updateValue(text ?? '');
126
+ const handleChangeText = (0, _react().useCallback)(txt => {
127
+ updateValue(txt ?? '');
123
128
  }, [updateValue]);
124
129
  const handleFocus = (0, _react().useCallback)(() => {
125
130
  setFocused(true);
126
- onFocus?.();
127
- }, [onFocus]);
131
+ onFocusRef.current?.();
132
+ }, []);
128
133
  const handleBlur = (0, _react().useCallback)(() => {
129
134
  setFocused(false);
130
- onBlur?.();
131
- }, [onBlur]);
135
+ onBlurRef.current?.();
136
+ }, []);
132
137
  const prevSubmitRef = (0, _react().useRef)({
133
138
  value: normalizedCode,
134
- length: lengthSafe
139
+ length: lengthValue
135
140
  });
136
141
  (0, _react().useEffect)(() => {
137
142
  const prev = prevSubmitRef.current;
138
143
  prevSubmitRef.current = {
139
144
  value: normalizedCode,
140
- length: lengthSafe
145
+ length: lengthValue
141
146
  };
142
- if (!onSubmit) return;
143
- if (prev.length !== lengthSafe) return;
144
- if (lengthSafe <= 0 || normalizedCode.length !== lengthSafe) return;
147
+ if (!onSubmitRef.current) return;
148
+ if (prev.length !== lengthValue) return;
149
+ if (lengthValue <= 0 || normalizedCode.length !== lengthValue) return;
145
150
  if (prev.value === normalizedCode) return;
146
- onSubmit(normalizedCode);
151
+ onSubmitRef.current(normalizedCode);
147
152
  inputRef.current?.blur();
148
- }, [lengthSafe, normalizedCode, onSubmit]);
153
+ }, [lengthValue, normalizedCode]);
149
154
  (0, _react().useEffect)(() => {
150
155
  const shouldBlink = showCursor && focused && !disabled;
151
156
  if (blinkTimer.current) {
152
157
  clearInterval(blinkTimer.current);
153
158
  blinkTimer.current = null;
154
159
  }
160
+ ;
155
161
  if (shouldBlink) {
156
162
  setCursorVisible(true);
157
163
  blinkTimer.current = setInterval(() => {
@@ -160,6 +166,7 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
160
166
  } else {
161
167
  setCursorVisible(false);
162
168
  }
169
+ ;
163
170
  return () => {
164
171
  if (blinkTimer.current) {
165
172
  clearInterval(blinkTimer.current);
@@ -168,13 +175,13 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
168
175
  };
169
176
  }, [disabled, focused, showCursor]);
170
177
  const cells = Array.from({
171
- length: lengthSafe
172
- }, (_, index) => {
173
- const char = normalizedCode?.[index];
178
+ length: lengthValue
179
+ }, (_, i) => {
180
+ const char = normalizedCode?.[i];
174
181
  const isFilled = !!char;
175
- const showBlink = showCursor && focused && !disabled && normalizedCode.length === index && index < lengthSafe;
182
+ const showBlink = showCursor && focused && !disabled && normalizedCode.length === i && i < lengthValue;
176
183
  return {
177
- key: index,
184
+ key: i,
178
185
  char,
179
186
  isFilled,
180
187
  showBlink
@@ -182,11 +189,11 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
182
189
  });
183
190
  const gutterValue = Math.max(0, (0, _number.parseNumberLike)(gutter, 0) ?? 0);
184
191
  const hasGutter = gutterValue > 0;
185
- const tip = errorInfo ?? info;
192
+ const tipInfo = errorInfo ?? info;
186
193
  const tipColor = errorInfo ? colors.error : colors.muted;
187
194
  const backgroundColor = hasGutter ? colors.transparent : colors.background;
188
195
  const hiddenInputProps = {
189
- ...HIDDEN_INPUT_PROPS,
196
+ ...HIP,
190
197
  underlineColorAndroid: colors.transparent
191
198
  };
192
199
  const cellTextBase = {
@@ -195,16 +202,13 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
195
202
  fontWeight: typography.cellTextWeight,
196
203
  fontFamily: typography.fontFamily
197
204
  };
198
- const wrapperStyle = [styles.wrapper, {
205
+ const wrapperStyle = [S.w, {
199
206
  backgroundColor,
200
207
  borderRadius: radii.wrapper,
201
208
  paddingHorizontal: spacing.none,
202
209
  opacity: disabled ? opacity.disabled : 1
203
- }, !hasGutter && {
204
- borderWidth: _reactNative().StyleSheet.hairlineWidth,
205
- borderColor: colors.border
206
210
  }];
207
- const securityStyle = [styles.security, {
211
+ const sheetStyle = [S.s, {
208
212
  borderRadius: hasGutter ? 0 : radii.wrapper,
209
213
  backgroundColor
210
214
  }];
@@ -219,26 +223,21 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
219
223
  disabled
220
224
  }
221
225
  }), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
222
- style: securityStyle
223
- }, cells.map((item, index) => {
226
+ style: sheetStyle
227
+ }, cells.map((item, i) => {
224
228
  const filledTextStyle = [cellTextBase, cellTextStyle, !mask && item.isFilled && highlightTextStyle];
225
- const baseCell = [styles.cell, {
229
+ const baseCell = [S.c, {
226
230
  backgroundColor: colors.background,
227
231
  height: sizing.cellHeight
228
232
  }, cellStyle, item.isFilled && cellFilledStyle];
229
233
  if (hasGutter) {
230
- baseCell.push(styles.cellGutter, {
231
- borderColor: colors.border,
234
+ baseCell.push(S.cg, {
232
235
  borderRadius: radii.cellGutter
233
- }, index > 0 && {
236
+ }, i > 0 && {
234
237
  marginLeft: gutterValue
235
238
  });
236
- } else if (index < lengthSafe - 1) {
237
- baseCell.push({
238
- borderRightWidth: _reactNative().StyleSheet.hairlineWidth,
239
- borderRightColor: colors.border
240
- });
241
239
  }
240
+ ;
242
241
  return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
243
242
  key: item.key,
244
243
  style: baseCell
@@ -255,7 +254,7 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
255
254
  numberOfLines: 1
256
255
  }, item.char ?? ''), item.showBlink ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
257
256
  testID: "password-input-cursor",
258
- style: [styles.cursor, {
257
+ style: [S.cr, {
259
258
  width: sizing.cursorWidth,
260
259
  height: `${sizing.cursorHeightRatio * 100}%`,
261
260
  borderRadius: sizing.cursorWidth / 2,
@@ -264,64 +263,84 @@ const PasswordInput = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
264
263
  backgroundColor: colors.cursor,
265
264
  opacity: cursorVisible ? 1 : 0
266
265
  }, cursorStyle]
267
- }) : null);
266
+ }) : null, hasGutter && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
267
+ style: (0, _hairline.createHairlineView)({
268
+ position: 'all',
269
+ color: colors.border,
270
+ borderRadius: radii.cellGutter
271
+ })
272
+ }), !hasGutter && i < lengthValue - 1 && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
273
+ style: (0, _hairline.createHairlineView)({
274
+ position: 'right',
275
+ color: colors.border,
276
+ top: 0,
277
+ bottom: 0
278
+ })
279
+ }));
268
280
  }), /*#__PURE__*/_react().default.createElement(_reactNative().TextInput, _extends({
269
281
  ref: inputRef,
270
282
  value: normalizedCode,
271
283
  editable: !disabled,
272
284
  keyboardType: keyboardType,
273
285
  inputMode: inputMode,
274
- maxLength: lengthSafe,
286
+ maxLength: lengthValue,
275
287
  autoFocus: false,
276
288
  secureTextEntry: mask
277
289
  }, hiddenInputProps, {
278
- style: [styles.hiddenInput, {
290
+ style: [S.hi, {
279
291
  opacity: opacity.hidden
280
292
  }],
281
293
  onChangeText: handleChangeText,
282
294
  onFocus: handleFocus,
283
295
  onBlur: handleBlur,
284
296
  accessible: false
285
- })))), tip ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
286
- style: [styles.infoWrapper, {
297
+ }))), !hasGutter && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
298
+ style: (0, _hairline.createHairlineView)({
299
+ position: 'all',
300
+ color: colors.border,
301
+ borderRadius: radii.wrapper
302
+ })
303
+ })), tipInfo ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
304
+ style: [S.iw, {
287
305
  marginTop: spacing.infoMarginTop
288
306
  }]
289
- }, (0, _validate.isText)(tip) ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
290
- style: [styles.infoText, {
307
+ }, (0, _validate.isText)(tipInfo) ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
308
+ style: [S.it, {
291
309
  color: tipColor
292
310
  }]
293
- }, tip) : tip) : null);
294
- });
311
+ }, tipInfo) : tipInfo) : null);
312
+ };
313
+ const PasswordInputForwardRef = /*#__PURE__*/_react().default.forwardRef(PasswordInputImpl);
314
+ PasswordInputForwardRef.displayName = 'PasswordInput';
315
+ const PasswordInput = /*#__PURE__*/_react().default.memo(PasswordInputForwardRef);
295
316
  var _default = exports.default = PasswordInput;
296
- const styles = _reactNative().StyleSheet.create({
297
- wrapper: {
317
+ const S = _reactNative().StyleSheet.create({
318
+ w: {
298
319
  alignSelf: 'stretch'
299
320
  },
300
- security: {
321
+ s: {
301
322
  flexDirection: 'row',
302
323
  alignItems: 'center',
303
324
  position: 'relative',
304
325
  overflow: 'hidden'
305
326
  },
306
- cell: {
327
+ c: {
307
328
  flex: 1,
308
329
  justifyContent: 'center',
309
330
  alignItems: 'center'
310
331
  },
311
- cellGutter: {
312
- borderWidth: _reactNative().StyleSheet.hairlineWidth
313
- },
314
- cursor: {
332
+ cg: {},
333
+ cr: {
315
334
  position: 'absolute',
316
335
  left: '50%'
317
336
  },
318
- hiddenInput: {
337
+ hi: {
319
338
  ..._reactNative().StyleSheet.absoluteFillObject
320
339
  },
321
- infoWrapper: {
340
+ iw: {
322
341
  alignItems: 'center'
323
342
  },
324
- infoText: {
343
+ it: {
325
344
  textAlign: 'center'
326
345
  }
327
346
  });