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
@@ -11,41 +11,21 @@ function _react() {
11
11
  };
12
12
  return data;
13
13
  }
14
- var _overlay = _interopRequireDefault(require("../overlay"));
15
14
  var _PortalHost = require("./PortalHost");
16
15
  var _PortalContext = require("./PortalContext");
17
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
16
  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); }
19
- const PortalComponent = /*#__PURE__*/_react().default.forwardRef(({
17
+ const PortalComponentImpl = ({
20
18
  children,
21
19
  isOpen,
22
- visible,
23
- useRNModal,
24
- useRNModalOnAndroid,
25
- isKeyboardDismissable,
26
- animationPreset,
27
- onRequestClose,
28
- style
20
+ visible
29
21
  }, _ref) => {
30
22
  const manager = (0, _react().useContext)(_PortalContext.PortalContext) ?? _PortalHost.portalManager;
31
23
  const keyRef = (0, _react().useRef)(null);
32
- const resolvedOpen = isOpen ?? visible ?? true;
33
- const overlayNode = (0, _react().useMemo)(() => /*#__PURE__*/_react().default.createElement(_overlay.default, {
34
- isOpen: resolvedOpen,
35
- useRNModal: useRNModal,
36
- useRNModalOnAndroid: useRNModalOnAndroid,
37
- isKeyboardDismissable: isKeyboardDismissable,
38
- animationPreset: animationPreset,
39
- onRequestClose: onRequestClose,
40
- style: style
41
- }, children), [animationPreset, children, isKeyboardDismissable, onRequestClose, resolvedOpen, style, useRNModal, useRNModalOnAndroid]);
24
+ const shouldRender = isOpen ?? visible ?? true;
25
+ const content = shouldRender ? children : null;
42
26
  (0, _react().useLayoutEffect)(() => {
43
- if (keyRef.current === null) {
44
- keyRef.current = manager.mount(overlayNode);
45
- } else {
46
- manager.update(keyRef.current, overlayNode);
47
- }
48
- }, [manager, overlayNode]);
27
+ if (keyRef.current === null) keyRef.current = manager.mount(content);else manager.update(keyRef.current, content);
28
+ }, [manager, content]);
49
29
  (0, _react().useLayoutEffect)(() => () => {
50
30
  if (keyRef.current !== null) {
51
31
  manager.unmount(keyRef.current);
@@ -53,10 +33,13 @@ const PortalComponent = /*#__PURE__*/_react().default.forwardRef(({
53
33
  }
54
34
  }, [manager]);
55
35
  return null;
56
- });
57
- const add = (children, key) => _PortalHost.portalManager.mount(children, key);
36
+ };
37
+ const PortalComponentRef = /*#__PURE__*/_react().default.forwardRef(PortalComponentImpl);
38
+ PortalComponentRef.displayName = 'Portal';
39
+ const PortalComponent = /*#__PURE__*/_react().default.memo(PortalComponentRef);
40
+ const add = (content, key) => _PortalHost.portalManager.mount(content, key);
58
41
  const remove = key => _PortalHost.portalManager.unmount(key);
59
- const update = (key, children) => _PortalHost.portalManager.update(key, children);
42
+ const update = (key, content) => _PortalHost.portalManager.update(key, content);
60
43
  const clear = () => _PortalHost.portalStore.clear();
61
44
  const Portal = exports.Portal = Object.assign(PortalComponent, {
62
45
  Host: _PortalHost.PortalHost,
@@ -19,318 +19,235 @@ function _reactNative() {
19
19
  return data;
20
20
  }
21
21
  var _utils = require("../../utils");
22
- var _overlay = require("../overlay");
23
22
  var _PortalContext = require("./PortalContext");
24
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
25
- const ADD_EVENT = 'RNSU_PORTAL_ADD';
26
- const UPDATE_EVENT = 'RNSU_PORTAL_UPDATE';
27
- const REMOVE_EVENT = 'RNSU_PORTAL_REMOVE';
28
- const CLEAR_EVENT = 'RNSU_PORTAL_CLEAR';
29
- const TopViewEventEmitter = _reactNative().DeviceEventEmitter || new (_reactNative().NativeEventEmitter)();
30
- const getMaxZIndex = node => {
31
- if (!node) return undefined;
32
- if (Array.isArray(node)) {
33
- let max;
34
- for (const child of node) {
35
- const value = getMaxZIndex(child);
36
- if (!(0, _utils.isNumber)(value)) continue;
37
- max = (0, _utils.isNumber)(max) ? Math.max(max, value) : value;
38
- }
39
- return max;
40
- }
41
- if (! /*#__PURE__*/_react().default.isValidElement(node)) return undefined;
42
- const element = node;
43
- const style = element.props.style;
44
- let max;
45
- if (style && typeof style !== 'function') {
46
- const flattened = typeof style === 'object' && !Array.isArray(style) && style !== null ? style : _reactNative().StyleSheet.flatten(style);
47
- const zIndex = flattened?.zIndex;
48
- if ((0, _utils.isNumber)(zIndex)) {
49
- max = zIndex;
50
- }
51
- }
52
- const childMax = getMaxZIndex(element.props.children);
53
- if (!(0, _utils.isNumber)(childMax)) return max;
54
- if (!(0, _utils.isNumber)(max)) return childMax;
55
- return Math.max(max, childMax);
56
- };
57
- const applyOperation = (manager, operation) => {
58
- if (operation.type === 'mount') {
59
- manager.mount(operation.children, operation.key);
60
- } else if (operation.type === 'update') {
61
- manager.update(operation.key, operation.children);
62
- } else if (operation.type === 'clear') {
63
- manager.clear();
64
- } else {
65
- manager.unmount(operation.key);
66
- }
24
+ const AE = 'RNSU_PORTAL_ADD';
25
+ const UE = 'RNSU_PORTAL_UPDATE';
26
+ const RE = 'RNSU_PORTAL_REMOVE';
27
+ const CE = 'RNSU_PORTAL_CLEAR';
28
+ const TVE = _reactNative().DeviceEventEmitter || new (_reactNative().NativeEventEmitter)();
29
+ const IW = _reactNative().Platform.OS === 'web';
30
+ const ao = (m, o) => {
31
+ if (o.type === 'mount') m.mount(o.children, o.key);else if (o.type === 'update') m.update(o.key, o.children);else if (o.type === 'clear') m.clear();else m.unmount(o.key);
67
32
  };
68
33
  const PortalManagerView = /*#__PURE__*/_react().default.forwardRef((_, ref) => {
69
- const [entries, setEntries] = (0, _react().useState)([]);
70
- const keySeed = (0, _react().useRef)(0);
71
- const mount = (0, _react().useCallback)((children, key) => {
72
- const resolvedKey = key ?? ++keySeed.current;
73
- if ((0, _utils.isNumber)(key) && key >= keySeed.current) {
74
- keySeed.current = key + 1;
75
- }
76
- const entry = {
77
- key: resolvedKey,
78
- children,
79
- zIndex: getMaxZIndex(children)
80
- };
81
- setEntries(prev => {
82
- const index = prev.findIndex(item => item.key === resolvedKey);
83
- if (index === -1) {
84
- return [...prev, entry];
85
- }
86
- return [...prev.slice(0, index), entry, ...prev.slice(index + 1)];
34
+ const [e, setE] = (0, _react().useState)([]);
35
+ const ks = (0, _react().useRef)(0);
36
+ const us = (0, _react().useCallback)(en => {
37
+ setE(p => {
38
+ const i = p.findIndex(it => it.key === en.key);
39
+ return i === -1 ? [...p, en] : [...p.slice(0, i), en, ...p.slice(i + 1)];
87
40
  });
88
- return resolvedKey;
89
41
  }, []);
90
- const update = (0, _react().useCallback)((key, children) => {
91
- setEntries(prev => {
92
- const index = prev.findIndex(item => item.key === key);
93
- const entry = {
94
- key,
95
- children,
96
- zIndex: getMaxZIndex(children)
97
- };
98
- if (index === -1) {
99
- return [...prev, entry];
100
- }
101
- return [...prev.slice(0, index), entry, ...prev.slice(index + 1)];
42
+ const mt = (0, _react().useCallback)((c, k) => {
43
+ const rk = k ?? ++ks.current;
44
+ if ((0, _utils.isNumber)(k) && k >= ks.current) ks.current = k + 1;
45
+ us({
46
+ key: rk,
47
+ children: c
102
48
  });
49
+ return rk;
50
+ }, [us]);
51
+ const up = (0, _react().useCallback)((k, c) => {
52
+ us({
53
+ key: k,
54
+ children: c
55
+ });
56
+ }, [us]);
57
+ const um = (0, _react().useCallback)(k => {
58
+ setE(p => p.filter(it => it.key !== k));
103
59
  }, []);
104
- const unmount = (0, _react().useCallback)(key => {
105
- setEntries(prev => prev.filter(item => item.key !== key));
106
- }, []);
107
- const clear = (0, _react().useCallback)(() => {
108
- setEntries([]);
60
+ const cl = (0, _react().useCallback)(() => {
61
+ setE([]);
109
62
  }, []);
110
63
  _react().default.useImperativeHandle(ref, () => ({
111
- mount,
112
- update,
113
- unmount,
114
- clear
115
- }), [mount, update, unmount, clear]);
116
- if (entries.length === 0) return null;
64
+ mount: mt,
65
+ update: up,
66
+ unmount: um,
67
+ clear: cl
68
+ }), [mt, up, um, cl]);
69
+ if (e.length === 0) return null;
117
70
  return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
118
71
  pointerEvents: "box-none",
119
- style: styles.portalLayer,
72
+ style: S.pl,
120
73
  collapsable: false
121
- }, entries.map(entry => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
122
- key: entry.key,
74
+ }, e.map(en => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
75
+ key: en.key,
123
76
  pointerEvents: "box-none",
124
77
  collapsable: false,
125
- style: [styles.portalEntry, (0, _utils.isNumber)(entry.zIndex) && {
126
- zIndex: entry.zIndex
127
- }]
128
- }, entry.children)));
78
+ style: S.pe
79
+ }, en.children)));
129
80
  });
130
- let activeHostId = 0;
131
- let nextHostId = 1;
132
- let nextGlobalKey = 1;
133
- const globalManager = {
134
- mount: (children, key) => {
135
- if (typeof __DEV__ !== 'undefined' && __DEV__ && activeHostId === 0) {
136
- console.warn('[Portal] 请在根节点挂载 <PortalHost> <ConfigProvider> 以启用静态组件能力。');
137
- }
138
- const resolvedKey = key ?? nextGlobalKey++;
139
- if ((0, _utils.isNumber)(key) && key >= nextGlobalKey) {
140
- nextGlobalKey = key + 1;
141
- }
142
- TopViewEventEmitter.emit(ADD_EVENT, {
143
- key: resolvedKey,
144
- children
81
+ let ah = 0;
82
+ let nh = 1;
83
+ let ngk = 10000;
84
+ const gm = {
85
+ mount: (c, k) => {
86
+ if (typeof __DEV__ !== 'undefined' && __DEV__ && ah === 0) console.warn('[Portal] Please mount <PortalHost> or <ConfigProvider> at the root to enable imperative APIs.');
87
+ const rk = k ?? ngk++;
88
+ if ((0, _utils.isNumber)(k) && k >= ngk) ngk = k + 1;
89
+ TVE.emit(AE, {
90
+ key: rk,
91
+ children: c
145
92
  });
146
- return resolvedKey;
93
+ return rk;
147
94
  },
148
- update: (key, children) => {
149
- TopViewEventEmitter.emit(UPDATE_EVENT, {
150
- key,
151
- children
95
+ update: (k, c) => {
96
+ TVE.emit(UE, {
97
+ key: k,
98
+ children: c
152
99
  });
153
100
  },
154
- unmount: key => {
155
- TopViewEventEmitter.emit(REMOVE_EVENT, {
156
- key
101
+ unmount: k => {
102
+ TVE.emit(RE, {
103
+ key: k
157
104
  });
158
105
  }
159
106
  };
160
- const PortalHost = ({
107
+ const PortalHostImpl = ({
161
108
  children
162
109
  }) => {
163
- const hostIdRef = (0, _react().useRef)(nextHostId++);
164
- const managerRef = (0, _react().useRef)(null);
165
- const queueRef = (0, _react().useRef)([]);
166
- const nextKeyRef = (0, _react().useRef)(1);
167
- const enqueueOrRun = (0, _react().useCallback)(operation => {
168
- const manager = managerRef.current;
169
- if (manager) {
170
- applyOperation(manager, operation);
171
- } else {
172
- queueRef.current.push(operation);
173
- }
110
+ const hir = (0, _react().useRef)(nh++),
111
+ mr = (0, _react().useRef)(null),
112
+ qr = (0, _react().useRef)([]),
113
+ nkr = (0, _react().useRef)(1);
114
+ const eor = (0, _react().useCallback)(o => {
115
+ const m = mr.current;
116
+ if (m) ao(m, o);else qr.current.push(o);
174
117
  }, []);
175
- const scopedManager = (0, _react().useMemo)(() => ({
176
- mount: (children, key) => {
177
- const resolvedKey = key ?? nextKeyRef.current++;
178
- if ((0, _utils.isNumber)(key) && key >= nextKeyRef.current) {
179
- nextKeyRef.current = key + 1;
180
- }
181
- enqueueOrRun({
118
+ const sm = (0, _react().useMemo)(() => ({
119
+ mount: (c, k) => {
120
+ const rk = k ?? nkr.current++;
121
+ if ((0, _utils.isNumber)(k) && k >= nkr.current) nkr.current = k + 1;
122
+ eor({
182
123
  type: 'mount',
183
- key: resolvedKey,
184
- children
124
+ key: rk,
125
+ children: c
185
126
  });
186
- return resolvedKey;
127
+ return rk;
187
128
  },
188
- update: (key, children) => {
189
- enqueueOrRun({
129
+ update: (k, c) => {
130
+ eor({
190
131
  type: 'update',
191
- key,
192
- children
132
+ key: k,
133
+ children: c
193
134
  });
194
135
  },
195
- unmount: key => {
196
- enqueueOrRun({
136
+ unmount: k => {
137
+ eor({
197
138
  type: 'unmount',
198
- key
139
+ key: k
199
140
  });
200
141
  }
201
- }), [enqueueOrRun]);
202
- const handleManagerRef = (0, _react().useCallback)(manager => {
203
- managerRef.current = manager;
204
- if (manager) {
205
- if (queueRef.current.length > 0) {
206
- const pending = queueRef.current.splice(0, queueRef.current.length);
207
- pending.forEach(operation => applyOperation(manager, operation));
208
- }
209
- if (activeHostId === 0 || activeHostId === hostIdRef.current) {
210
- activeHostId = hostIdRef.current;
211
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
212
- console.log('[PortalHost] activeHost', activeHostId);
213
- }
214
- } else if (typeof __DEV__ !== 'undefined' && __DEV__) {
215
- console.warn('[PortalHost] 检测到多个 Portal.Host,静态 API 仅会使用第一个挂载的 Host。建议全局只挂载一个。');
142
+ }), [eor]);
143
+ const hmr = (0, _react().useCallback)(m => {
144
+ mr.current = m;
145
+ if (m) {
146
+ if (qr.current.length > 0) {
147
+ const pd = qr.current.splice(0, qr.current.length);
148
+ pd.forEach(o => ao(m, o));
216
149
  }
150
+ ;
151
+ if (ah === 0 || ah === hir.current) ah = hir.current;else if (typeof __DEV__ !== 'undefined' && __DEV__) console.warn('[PortalHost] Multiple PortalHost instances detected. Imperative APIs will only use the first mounted host.');
217
152
  }
218
153
  }, []);
219
154
  (0, _react().useEffect)(() => () => {
220
- if (activeHostId === hostIdRef.current) {
221
- activeHostId = 0;
222
- queueRef.current = [];
155
+ if (ah === hir.current) {
156
+ ah = 0;
157
+ qr.current = [];
223
158
  portalStore.clear();
224
159
  }
225
160
  }, []);
226
161
  (0, _react().useEffect)(() => {
227
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
228
- console.log('[PortalHost] mounted', {
229
- hostId: hostIdRef.current,
230
- activeHostId
231
- });
232
- }
233
- }, []);
234
- (0, _react().useEffect)(() => {
235
- const handleAdd = ({
236
- key,
237
- children
162
+ const ha = ({
163
+ key: k,
164
+ children: c
238
165
  }) => {
239
- if (activeHostId !== hostIdRef.current) return;
240
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
241
- console.log('[PortalHost] add', key);
242
- }
243
- enqueueOrRun({
166
+ if (ah !== hir.current) return;
167
+ eor({
244
168
  type: 'mount',
245
- key,
246
- children
169
+ key: k,
170
+ children: c
247
171
  });
248
172
  };
249
- const handleUpdate = ({
250
- key,
251
- children
173
+ const hu = ({
174
+ key: k,
175
+ children: c
252
176
  }) => {
253
- if (activeHostId !== hostIdRef.current) return;
254
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
255
- console.log('[PortalHost] update', key);
256
- }
257
- enqueueOrRun({
177
+ if (ah !== hir.current) return;
178
+ eor({
258
179
  type: 'update',
259
- key,
260
- children
180
+ key: k,
181
+ children: c
261
182
  });
262
183
  };
263
- const handleRemove = ({
264
- key
184
+ const hr = ({
185
+ key: k
265
186
  }) => {
266
- if (activeHostId !== hostIdRef.current) return;
267
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
268
- console.log('[PortalHost] remove', key);
269
- }
270
- enqueueOrRun({
187
+ if (ah !== hir.current) return;
188
+ eor({
271
189
  type: 'unmount',
272
- key
190
+ key: k
273
191
  });
274
192
  };
275
- const handleClear = () => {
276
- if (activeHostId !== hostIdRef.current) return;
277
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
278
- console.log('[PortalHost] clear');
279
- }
280
- queueRef.current = [];
281
- enqueueOrRun({
193
+ const hc = () => {
194
+ if (ah !== hir.current) return;
195
+ qr.current = [];
196
+ eor({
282
197
  type: 'clear'
283
198
  });
284
199
  };
285
- const addSub = TopViewEventEmitter.addListener(ADD_EVENT, handleAdd);
286
- const updateSub = TopViewEventEmitter.addListener(UPDATE_EVENT, handleUpdate);
287
- const removeSub = TopViewEventEmitter.addListener(REMOVE_EVENT, handleRemove);
288
- const clearSub = TopViewEventEmitter.addListener(CLEAR_EVENT, handleClear);
200
+ const as = TVE.addListener(AE, ha);
201
+ const us = TVE.addListener(UE, hu);
202
+ const rs = TVE.addListener(RE, hr);
203
+ const cs = TVE.addListener(CE, hc);
289
204
  return () => {
290
- addSub.remove?.();
291
- updateSub.remove?.();
292
- removeSub.remove?.();
293
- clearSub.remove?.();
294
- const emitter = TopViewEventEmitter;
295
- emitter.removeListener?.(ADD_EVENT, handleAdd);
296
- emitter.removeListener?.(UPDATE_EVENT, handleUpdate);
297
- emitter.removeListener?.(REMOVE_EVENT, handleRemove);
298
- emitter.removeListener?.(CLEAR_EVENT, handleClear);
205
+ as.remove();
206
+ us.remove();
207
+ rs.remove();
208
+ cs.remove();
299
209
  };
300
- }, [enqueueOrRun]);
301
- return /*#__PURE__*/_react().default.createElement(_overlay.OverlayProvider, null, /*#__PURE__*/_react().default.createElement(_PortalContext.PortalContext.Provider, {
302
- value: scopedManager
210
+ }, [eor]);
211
+ return /*#__PURE__*/_react().default.createElement(_PortalContext.PortalContext.Provider, {
212
+ value: sm
303
213
  }, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
304
- style: styles.host,
214
+ style: S.h,
305
215
  collapsable: false
306
216
  }, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
307
- style: styles.root,
217
+ style: S.r,
308
218
  collapsable: false,
309
219
  pointerEvents: "box-none"
310
220
  }, children), /*#__PURE__*/_react().default.createElement(PortalManagerView, {
311
- ref: handleManagerRef
312
- }))));
221
+ ref: hmr
222
+ })));
313
223
  };
314
- exports.PortalHost = PortalHost;
315
- const styles = _reactNative().StyleSheet.create({
316
- host: {
224
+ const PortalHost = exports.PortalHost = /*#__PURE__*/_react().default.memo(PortalHostImpl);
225
+ PortalHost.displayName = 'PortalHost';
226
+ const S = _reactNative().StyleSheet.create({
227
+ h: {
317
228
  position: 'relative',
318
229
  flex: 1
319
230
  },
320
- root: {
231
+ r: {
321
232
  flex: 1
322
233
  },
323
- portalLayer: {
234
+ pl: IW ? {
235
+ position: 'fixed',
236
+ top: 0,
237
+ left: 0,
238
+ right: 0,
239
+ bottom: 0
240
+ } : {
324
241
  ..._reactNative().StyleSheet.absoluteFillObject
325
242
  },
326
- portalEntry: {
243
+ pe: {
327
244
  ..._reactNative().StyleSheet.absoluteFillObject
328
245
  }
329
246
  });
330
- const portalManager = exports.portalManager = globalManager;
247
+ const portalManager = exports.portalManager = gm;
331
248
  const portalStore = exports.portalStore = {
332
249
  clear: () => {
333
- TopViewEventEmitter.emit(CLEAR_EVENT);
250
+ TVE.emit(CE);
334
251
  },
335
- hasHosts: () => activeHostId !== 0
252
+ hasHosts: () => ah !== 0
336
253
  };