react-native-system-ui 0.0.2 → 0.0.4

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 (565) hide show
  1. package/README.md +22 -6
  2. package/dist/cjs/{area → components/area}/Area.js +4 -10
  3. package/dist/cjs/{avatar → components/avatar}/Avatar.js +3 -3
  4. package/dist/cjs/{avatar → components/avatar}/tokens.js +2 -1
  5. package/dist/cjs/{badge → components/badge}/Badge.js +30 -38
  6. package/dist/cjs/{button → components/button}/Button.js +13 -13
  7. package/dist/cjs/{button → components/button}/ButtonGroup.js +8 -8
  8. package/dist/cjs/{calendar → components/calendar}/Calendar.js +10 -10
  9. package/dist/cjs/{cascader → components/cascader}/Cascader.js +4 -4
  10. package/dist/cjs/{cascader → components/cascader}/useCascaderExtend.js +5 -15
  11. package/dist/cjs/{checkbox → components/checkbox}/CheckboxGroup.js +2 -2
  12. package/dist/cjs/{circle → components/circle}/Circle.js +2 -2
  13. package/dist/cjs/{collapse → components/collapse}/Collapse.js +13 -16
  14. package/dist/cjs/{config-provider → components/config-provider}/ConfigProvider.js +1 -1
  15. package/dist/cjs/{datetime-picker → components/datetime-picker}/DatetimePicker.js +7 -7
  16. package/dist/cjs/{dialog → components/dialog}/Dialog.js +4 -6
  17. package/dist/cjs/{dialog → components/dialog}/tokens.js +2 -1
  18. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
  19. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +19 -23
  20. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
  21. package/dist/cjs/{field → components/field}/Field.js +6 -6
  22. package/dist/cjs/{form → components/form}/Form.js +5 -9
  23. package/dist/cjs/{grid → components/grid}/Grid.js +4 -4
  24. package/dist/cjs/{image → components/image}/Image.js +19 -15
  25. package/dist/cjs/{image-preview → components/image-preview}/ImagePreview.js +62 -60
  26. package/dist/cjs/{image-preview → components/image-preview}/tokens.js +21 -2
  27. package/dist/cjs/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
  28. package/dist/cjs/{index-bar → components/index-bar}/IndexBar.js +40 -45
  29. package/dist/cjs/components/index-bar/tokens.js +45 -0
  30. package/dist/cjs/components/index.js +854 -0
  31. package/dist/cjs/{input → components/input}/Input.js +7 -10
  32. package/dist/cjs/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  33. package/dist/cjs/{notice-bar → components/notice-bar}/NoticeBar.js +69 -95
  34. package/dist/cjs/{notify → components/notify}/Notify.js +65 -49
  35. package/dist/cjs/{notify → components/notify}/defaults.js +2 -2
  36. package/dist/cjs/{notify → components/notify}/imperative.js +2 -2
  37. package/dist/cjs/{notify → components/notify}/tokens.js +5 -4
  38. package/dist/cjs/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +15 -16
  39. package/dist/cjs/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
  40. package/dist/cjs/{overlay → components/overlay}/useOverlayStack.js +5 -1
  41. package/dist/cjs/{pagination → components/pagination}/Pagination.js +2 -2
  42. package/dist/cjs/{password-input → components/password-input}/PasswordInput.js +35 -27
  43. package/dist/cjs/{picker → components/picker}/Picker.js +11 -12
  44. package/dist/cjs/{picker → components/picker}/WheelPicker.js +9 -9
  45. package/dist/cjs/{picker → components/picker}/tokens.js +4 -2
  46. package/dist/cjs/{popup → components/popup}/Popup.js +48 -75
  47. package/dist/cjs/{popup → components/popup}/tokens.js +2 -1
  48. package/dist/cjs/{portal → components/portal}/Portal.js +5 -0
  49. package/dist/cjs/{portal → components/portal}/PortalHost.js +1 -13
  50. package/dist/cjs/{pull-refresh → components/pull-refresh}/PullRefresh.js +46 -27
  51. package/dist/cjs/{radio → components/radio}/RadioGroup.js +2 -2
  52. package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
  53. package/dist/cjs/components/safe-area-view/index.js +12 -0
  54. package/dist/cjs/{search → components/search}/Search.js +52 -67
  55. package/dist/cjs/{search → components/search}/tokens.js +2 -1
  56. package/dist/cjs/{selector → components/selector}/Selector.js +3 -3
  57. package/dist/cjs/{share-sheet → components/share-sheet}/ShareSheet.js +64 -62
  58. package/dist/cjs/{share-sheet → components/share-sheet}/tokens.js +15 -2
  59. package/dist/cjs/{sidebar → components/sidebar}/Sidebar.js +15 -19
  60. package/dist/cjs/{sidebar → components/sidebar}/SidebarItem.js +0 -3
  61. package/dist/cjs/{skeleton → components/skeleton}/Skeleton.js +44 -56
  62. package/dist/cjs/{slider → components/slider}/Slider.js +55 -61
  63. package/dist/cjs/{stepper → components/stepper}/Stepper.js +13 -16
  64. package/dist/cjs/{stepper → components/stepper}/tokens.js +4 -2
  65. package/dist/cjs/{swiper → components/swiper}/Swiper.js +21 -42
  66. package/dist/cjs/{swiper → components/swiper}/useSwiperWeb.js +15 -18
  67. package/dist/cjs/{tabbar → components/tabbar}/Tabbar.js +10 -12
  68. package/dist/cjs/{tabbar → components/tabbar}/TabbarItem.js +0 -3
  69. package/dist/cjs/{tabs → components/tabs}/Tabs.js +33 -54
  70. package/dist/cjs/{tabs → components/tabs}/tokens.js +9 -1
  71. package/dist/cjs/{tabs → components/tabs}/useTabsScroll.js +4 -0
  72. package/dist/cjs/{toast → components/toast}/Toast.js +15 -16
  73. package/dist/cjs/{toast → components/toast}/tokens.js +5 -1
  74. package/dist/cjs/components/types.js +1 -0
  75. package/dist/cjs/{typography → components/typography}/Typography.js +17 -30
  76. package/dist/cjs/{uploader → components/uploader}/Uploader.js +49 -46
  77. package/dist/cjs/{uploader → components/uploader}/tokens.js +27 -1
  78. package/dist/cjs/{water-mark → components/water-mark}/WaterMark.js +16 -16
  79. package/dist/cjs/design-system/ThemeContext.js +19 -0
  80. package/dist/cjs/design-system/ThemeProvider.js +37 -0
  81. package/dist/cjs/design-system/createComponentTokensHook.js +30 -0
  82. package/dist/cjs/design-system/index.js +59 -0
  83. package/dist/cjs/design-system/mergeTokensOverride.js +12 -0
  84. package/dist/cjs/design-system/presets.js +147 -0
  85. package/dist/cjs/design-system/tokens.js +144 -0
  86. package/dist/cjs/design-system/useTheme.js +16 -0
  87. package/dist/cjs/hooks/aria/index.js +49 -0
  88. package/dist/cjs/hooks/aria/useAriaListBox.js +58 -0
  89. package/dist/cjs/hooks/aria/useAriaOverlay.js +50 -0
  90. package/dist/cjs/hooks/aria/useAriaPress.js +107 -0
  91. package/dist/cjs/hooks/aria/useAriaToggle.js +41 -0
  92. package/dist/cjs/hooks/gesture/index.js +16 -0
  93. package/dist/cjs/hooks/gesture/useGestureScroll.js +131 -0
  94. package/dist/cjs/hooks/index.js +84 -0
  95. package/dist/cjs/hooks/useControllableValue.js +52 -0
  96. package/dist/cjs/hooks/useCountDown.js +107 -0
  97. package/dist/cjs/hooks/useHairline.js +62 -0
  98. package/dist/cjs/hooks/usePresenceAnimation.js +70 -0
  99. package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
  100. package/dist/cjs/index.js +33 -499
  101. package/dist/cjs/platform/animation.js +14 -0
  102. package/dist/cjs/platform/history.js +14 -0
  103. package/dist/cjs/platform/index.js +60 -0
  104. package/dist/cjs/platform/measure.js +55 -0
  105. package/dist/cjs/platform/runtime.js +19 -0
  106. package/dist/cjs/platform/scrollLock.js +24 -0
  107. package/dist/cjs/utils/array.js +12 -0
  108. package/dist/cjs/utils/color.js +52 -0
  109. package/dist/cjs/utils/createPlatformShadow.js +63 -0
  110. package/dist/cjs/utils/date.js +75 -0
  111. package/dist/cjs/utils/deepMerge.js +37 -0
  112. package/dist/cjs/utils/hairline.js +103 -0
  113. package/dist/cjs/utils/index.js +115 -0
  114. package/dist/cjs/utils/number.js +73 -0
  115. package/dist/cjs/utils/promise.js +9 -0
  116. package/dist/cjs/utils/string.js +39 -0
  117. package/dist/cjs/utils/validate.js +41 -0
  118. package/dist/es/{area → components/area}/Area.js +5 -11
  119. package/dist/es/{avatar → components/avatar}/Avatar.js +3 -3
  120. package/dist/es/{avatar → components/avatar}/tokens.js +2 -1
  121. package/dist/es/{badge → components/badge}/Badge.js +31 -39
  122. package/dist/es/{button → components/button}/Button.js +14 -14
  123. package/dist/es/{button → components/button}/ButtonGroup.js +7 -7
  124. package/dist/es/{calendar → components/calendar}/Calendar.js +11 -11
  125. package/dist/es/{cascader → components/cascader}/Cascader.js +5 -5
  126. package/dist/es/{cascader → components/cascader}/useCascaderExtend.js +5 -9
  127. package/dist/es/{checkbox → components/checkbox}/CheckboxGroup.js +3 -3
  128. package/dist/es/{circle → components/circle}/Circle.js +3 -3
  129. package/dist/es/{collapse → components/collapse}/Collapse.js +14 -17
  130. package/dist/es/{config-provider → components/config-provider}/ConfigProvider.js +2 -2
  131. package/dist/es/{datetime-picker → components/datetime-picker}/DatetimePicker.js +8 -8
  132. package/dist/es/{dialog → components/dialog}/Dialog.js +4 -6
  133. package/dist/es/{dialog → components/dialog}/tokens.js +2 -1
  134. package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
  135. package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +20 -24
  136. package/dist/es/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
  137. package/dist/es/{field → components/field}/Field.js +7 -7
  138. package/dist/es/{field → components/field}/index.js +1 -1
  139. package/dist/es/{form → components/form}/Form.js +6 -10
  140. package/dist/es/{grid → components/grid}/Grid.js +3 -3
  141. package/dist/es/{image → components/image}/Image.js +20 -16
  142. package/dist/es/{image-preview → components/image-preview}/ImagePreview.js +63 -61
  143. package/dist/es/components/image-preview/tokens.js +35 -0
  144. package/dist/es/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
  145. package/dist/es/{index-bar → components/index-bar}/IndexBar.js +41 -46
  146. package/dist/es/components/index-bar/tokens.js +39 -0
  147. package/dist/es/components/index.js +123 -0
  148. package/dist/es/{input → components/input}/Input.js +8 -11
  149. package/dist/es/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  150. package/dist/es/{notice-bar → components/notice-bar}/NoticeBar.js +70 -96
  151. package/dist/es/{notify → components/notify}/Notify.js +68 -52
  152. package/dist/es/{notify → components/notify}/defaults.js +2 -2
  153. package/dist/es/{notify → components/notify}/imperative.js +2 -2
  154. package/dist/es/{notify → components/notify}/tokens.js +5 -4
  155. package/dist/es/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +16 -17
  156. package/dist/es/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
  157. package/dist/es/{overlay → components/overlay}/useOverlayStack.js +6 -2
  158. package/dist/es/{pagination → components/pagination}/Pagination.js +3 -3
  159. package/dist/es/{password-input → components/password-input}/PasswordInput.js +36 -28
  160. package/dist/es/{picker → components/picker}/Picker.js +12 -13
  161. package/dist/es/{picker → components/picker}/WheelPicker.js +10 -10
  162. package/dist/es/{picker → components/picker}/tokens.js +4 -2
  163. package/dist/es/{popup → components/popup}/Popup.js +48 -75
  164. package/dist/es/{popup → components/popup}/tokens.js +2 -1
  165. package/dist/es/{portal → components/portal}/Portal.js +5 -0
  166. package/dist/es/{portal → components/portal}/PortalHost.js +1 -13
  167. package/dist/es/{pull-refresh → components/pull-refresh}/PullRefresh.js +47 -28
  168. package/dist/es/{radio → components/radio}/RadioGroup.js +3 -3
  169. package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
  170. package/dist/es/components/safe-area-view/index.js +1 -0
  171. package/dist/es/{search → components/search}/Search.js +53 -68
  172. package/dist/es/{search → components/search}/tokens.js +2 -1
  173. package/dist/es/{selector → components/selector}/Selector.js +4 -4
  174. package/dist/es/{share-sheet → components/share-sheet}/ShareSheet.js +65 -63
  175. package/dist/es/{share-sheet → components/share-sheet}/tokens.js +15 -2
  176. package/dist/es/{sidebar → components/sidebar}/Sidebar.js +14 -18
  177. package/dist/es/{sidebar → components/sidebar}/SidebarItem.js +0 -3
  178. package/dist/es/{skeleton → components/skeleton}/Skeleton.js +45 -57
  179. package/dist/es/{slider → components/slider}/Slider.js +56 -62
  180. package/dist/es/{stepper → components/stepper}/Stepper.js +14 -17
  181. package/dist/es/{stepper → components/stepper}/tokens.js +4 -2
  182. package/dist/es/{swiper → components/swiper}/Swiper.js +22 -43
  183. package/dist/es/{swiper → components/swiper}/useSwiperWeb.js +16 -19
  184. package/dist/es/{tabbar → components/tabbar}/Tabbar.js +11 -13
  185. package/dist/es/{tabbar → components/tabbar}/TabbarItem.js +0 -3
  186. package/dist/es/{tabs → components/tabs}/Tabs.js +34 -55
  187. package/dist/es/{tabs → components/tabs}/tokens.js +9 -1
  188. package/dist/es/{tabs → components/tabs}/useTabsScroll.js +4 -0
  189. package/dist/es/{toast → components/toast}/Toast.js +14 -15
  190. package/dist/es/{toast → components/toast}/tokens.js +5 -1
  191. package/dist/es/components/types.js +1 -0
  192. package/dist/es/{typography → components/typography}/Typography.js +18 -31
  193. package/dist/es/{uploader → components/uploader}/Uploader.js +49 -46
  194. package/dist/es/{uploader → components/uploader}/tokens.js +27 -1
  195. package/dist/es/{water-mark → components/water-mark}/WaterMark.js +17 -17
  196. package/dist/es/design-system/ThemeContext.js +6 -0
  197. package/dist/es/design-system/ThemeProvider.js +23 -0
  198. package/dist/es/design-system/createComponentTokensHook.js +17 -0
  199. package/dist/es/design-system/index.js +6 -0
  200. package/dist/es/design-system/mergeTokensOverride.js +5 -0
  201. package/dist/es/design-system/presets.js +140 -0
  202. package/dist/es/design-system/tokens.js +136 -0
  203. package/dist/es/design-system/useTheme.js +3 -0
  204. package/dist/es/hooks/aria/index.js +5 -0
  205. package/dist/es/hooks/aria/useAriaListBox.js +33 -0
  206. package/dist/es/hooks/aria/useAriaOverlay.js +25 -0
  207. package/dist/es/hooks/aria/useAriaPress.js +70 -0
  208. package/dist/es/hooks/aria/useAriaToggle.js +16 -0
  209. package/dist/es/hooks/gesture/index.js +2 -0
  210. package/dist/es/hooks/gesture/useGestureScroll.js +112 -0
  211. package/dist/es/hooks/index.js +7 -0
  212. package/dist/es/hooks/useControllableValue.js +40 -0
  213. package/dist/es/hooks/useCountDown.js +95 -0
  214. package/dist/es/hooks/useHairline.js +42 -0
  215. package/dist/es/hooks/usePresenceAnimation.js +51 -0
  216. package/dist/es/hooks/useSafeAreaPadding.js +23 -0
  217. package/dist/es/index.js +4 -73
  218. package/dist/es/platform/animation.js +2 -0
  219. package/dist/es/platform/history.js +7 -0
  220. package/dist/es/platform/index.js +6 -0
  221. package/dist/es/platform/measure.js +48 -0
  222. package/dist/es/platform/runtime.js +4 -0
  223. package/dist/es/platform/scrollLock.js +16 -0
  224. package/dist/es/utils/array.js +5 -0
  225. package/dist/es/utils/color.js +42 -0
  226. package/dist/es/utils/createPlatformShadow.js +50 -0
  227. package/dist/es/utils/date.js +63 -0
  228. package/dist/es/utils/deepMerge.js +31 -0
  229. package/dist/es/utils/hairline.js +84 -0
  230. package/dist/es/utils/index.js +12 -0
  231. package/dist/es/utils/number.js +56 -0
  232. package/dist/es/utils/promise.js +2 -0
  233. package/dist/es/utils/string.js +30 -0
  234. package/dist/es/utils/validate.js +15 -0
  235. package/dist/types/components/dialog/tokens.d.ts +1 -0
  236. package/dist/types/components/dropdown-menu/tokens.d.ts +17 -0
  237. package/dist/types/components/field/index.d.ts +1 -1
  238. package/dist/types/components/image-preview/tokens.d.ts +16 -0
  239. package/dist/types/components/index-bar/tokens.d.ts +13 -4
  240. package/dist/types/components/index.d.ts +104 -0
  241. package/dist/types/components/notify/defaults.d.ts +2 -2
  242. package/dist/types/components/number-keyboard/tokens.d.ts +1 -0
  243. package/dist/types/components/password-input/PasswordInput.d.ts +4 -0
  244. package/dist/types/components/picker/tokens.d.ts +2 -0
  245. package/dist/types/components/popup/tokens.d.ts +1 -0
  246. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
  247. package/dist/types/components/safe-area-view/index.d.ts +2 -0
  248. package/dist/types/components/search/tokens.d.ts +1 -0
  249. package/dist/types/components/share-sheet/tokens.d.ts +13 -0
  250. package/dist/types/components/stepper/tokens.d.ts +2 -0
  251. package/dist/types/components/tabs/tokens.d.ts +8 -0
  252. package/dist/types/components/toast/tokens.d.ts +4 -0
  253. package/dist/types/components/uploader/tokens.d.ts +25 -0
  254. package/dist/types/hooks/index.d.ts +1 -0
  255. package/dist/types/hooks/usePresenceAnimation.d.ts +6 -1
  256. package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
  257. package/package.json +290 -274
  258. package/dist/cjs/index-bar/tokens.js +0 -36
  259. package/dist/cjs/safe-area/SafeAreaClipper.js +0 -114
  260. package/dist/cjs/safe-area/index.js +0 -63
  261. package/dist/es/image-preview/tokens.js +0 -16
  262. package/dist/es/index-bar/tokens.js +0 -30
  263. package/dist/es/safe-area/SafeAreaClipper.js +0 -86
  264. package/dist/es/safe-area/index.js +0 -25
  265. package/dist/types/components/safe-area/SafeAreaClipper.d.ts +0 -47
  266. package/dist/types/components/safe-area/index.d.ts +0 -9
  267. /package/dist/cjs/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  268. /package/dist/cjs/{action-sheet → components/action-sheet}/index.js +0 -0
  269. /package/dist/cjs/{action-sheet → components/action-sheet}/tokens.js +0 -0
  270. /package/dist/cjs/{area → components/area}/index.js +0 -0
  271. /package/dist/cjs/{area → components/area}/utils.js +0 -0
  272. /package/dist/cjs/{avatar → components/avatar}/index.js +0 -0
  273. /package/dist/cjs/{badge → components/badge}/index.js +0 -0
  274. /package/dist/cjs/{badge → components/badge}/tokens.js +0 -0
  275. /package/dist/cjs/{button → components/button}/ButtonContext.js +0 -0
  276. /package/dist/cjs/{button → components/button}/index.js +0 -0
  277. /package/dist/cjs/{button → components/button}/tokens.js +0 -0
  278. /package/dist/cjs/{calendar → components/calendar}/index.js +0 -0
  279. /package/dist/cjs/{calendar → components/calendar}/tokens.js +0 -0
  280. /package/dist/cjs/{cascader → components/cascader}/index.js +0 -0
  281. /package/dist/cjs/{cascader → components/cascader}/tokens.js +0 -0
  282. /package/dist/cjs/{cascader → components/cascader}/utils.js +0 -0
  283. /package/dist/cjs/{cell → components/cell}/Cell.js +0 -0
  284. /package/dist/cjs/{cell → components/cell}/CellContext.js +0 -0
  285. /package/dist/cjs/{cell → components/cell}/CellGroup.js +0 -0
  286. /package/dist/cjs/{cell → components/cell}/index.js +0 -0
  287. /package/dist/cjs/{cell → components/cell}/tokens.js +0 -0
  288. /package/dist/cjs/{checkbox → components/checkbox}/Checkbox.js +0 -0
  289. /package/dist/cjs/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  290. /package/dist/cjs/{checkbox → components/checkbox}/index.js +0 -0
  291. /package/dist/cjs/{checkbox → components/checkbox}/tokens.js +0 -0
  292. /package/dist/cjs/{circle → components/circle}/index.js +0 -0
  293. /package/dist/cjs/{circle → components/circle}/tokens.js +0 -0
  294. /package/dist/cjs/{collapse → components/collapse}/index.js +0 -0
  295. /package/dist/cjs/{collapse → components/collapse}/tokens.js +0 -0
  296. /package/dist/cjs/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  297. /package/dist/cjs/{config-provider → components/config-provider}/index.js +0 -0
  298. /package/dist/cjs/{config-provider → components/config-provider}/locale/base.js +0 -0
  299. /package/dist/cjs/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  300. /package/dist/cjs/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  301. /package/dist/cjs/{config-provider → components/config-provider}/useLocale.js +0 -0
  302. /package/dist/cjs/{count-down → components/count-down}/CountDown.js +0 -0
  303. /package/dist/cjs/{count-down → components/count-down}/index.js +0 -0
  304. /package/dist/cjs/{count-down → components/count-down}/tokens.js +0 -0
  305. /package/dist/cjs/{datetime-picker → components/datetime-picker}/index.js +0 -0
  306. /package/dist/cjs/{dialog → components/dialog}/imperative.js +0 -0
  307. /package/dist/cjs/{dialog → components/dialog}/index.js +0 -0
  308. /package/dist/cjs/{divider → components/divider}/Divider.js +0 -0
  309. /package/dist/cjs/{divider → components/divider}/index.js +0 -0
  310. /package/dist/cjs/{divider → components/divider}/tokens.js +0 -0
  311. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  312. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  313. /package/dist/cjs/{empty → components/empty}/Empty.js +0 -0
  314. /package/dist/cjs/{empty → components/empty}/index.js +0 -0
  315. /package/dist/cjs/{empty → components/empty}/tokens.js +0 -0
  316. /package/dist/cjs/{field → components/field}/index.js +0 -0
  317. /package/dist/cjs/{field → components/field}/tokens.js +0 -0
  318. /package/dist/cjs/{field → components/field}/utils.js +0 -0
  319. /package/dist/cjs/{flex → components/flex}/Flex.js +0 -0
  320. /package/dist/cjs/{flex → components/flex}/FlexContext.js +0 -0
  321. /package/dist/cjs/{flex → components/flex}/FlexItem.js +0 -0
  322. /package/dist/cjs/{flex → components/flex}/index.js +0 -0
  323. /package/dist/cjs/{flex → components/flex}/tokens.js +0 -0
  324. /package/dist/cjs/{form → components/form}/FormContext.js +0 -0
  325. /package/dist/cjs/{form → components/form}/FormItem.js +0 -0
  326. /package/dist/cjs/{form → components/form}/FormList.js +0 -0
  327. /package/dist/cjs/{form → components/form}/index.js +0 -0
  328. /package/dist/cjs/{form → components/form}/utils.js +0 -0
  329. /package/dist/cjs/{grid → components/grid}/GridContext.js +0 -0
  330. /package/dist/cjs/{grid → components/grid}/GridItem.js +0 -0
  331. /package/dist/cjs/{grid → components/grid}/index.js +0 -0
  332. /package/dist/cjs/{grid → components/grid}/tokens.js +0 -0
  333. /package/dist/cjs/{image → components/image}/index.js +0 -0
  334. /package/dist/cjs/{image → components/image}/tokens.js +0 -0
  335. /package/dist/cjs/{image-preview → components/image-preview}/imperative.js +0 -0
  336. /package/dist/cjs/{image-preview → components/image-preview}/index.js +0 -0
  337. /package/dist/cjs/{index-bar → components/index-bar}/index.js +0 -0
  338. /package/dist/cjs/{input → components/input}/index.js +0 -0
  339. /package/dist/cjs/{input → components/input}/tokens.js +0 -0
  340. /package/dist/cjs/{list → components/list}/List.js +0 -0
  341. /package/dist/cjs/{list → components/list}/index.js +0 -0
  342. /package/dist/cjs/{list → components/list}/tokens.js +0 -0
  343. /package/dist/cjs/{loading → components/loading}/Loading.js +0 -0
  344. /package/dist/cjs/{loading → components/loading}/index.js +0 -0
  345. /package/dist/cjs/{loading → components/loading}/tokens.js +0 -0
  346. /package/dist/cjs/{nav-bar → components/nav-bar}/index.js +0 -0
  347. /package/dist/cjs/{nav-bar → components/nav-bar}/tokens.js +0 -0
  348. /package/dist/cjs/{notice-bar → components/notice-bar}/index.js +0 -0
  349. /package/dist/cjs/{notice-bar → components/notice-bar}/tokens.js +0 -0
  350. /package/dist/cjs/{notify → components/notify}/index.js +0 -0
  351. /package/dist/cjs/{number-keyboard → components/number-keyboard}/index.js +0 -0
  352. /package/dist/cjs/{overlay → components/overlay}/Overlay.js +0 -0
  353. /package/dist/cjs/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  354. /package/dist/cjs/{overlay → components/overlay}/index.js +0 -0
  355. /package/dist/cjs/{overlay → components/overlay}/tokens.js +0 -0
  356. /package/dist/cjs/{pagination → components/pagination}/index.js +0 -0
  357. /package/dist/cjs/{pagination → components/pagination}/tokens.js +0 -0
  358. /package/dist/cjs/{password-input → components/password-input}/index.js +0 -0
  359. /package/dist/cjs/{picker → components/picker}/index.js +0 -0
  360. /package/dist/cjs/{picker → components/picker}/utils.js +0 -0
  361. /package/dist/cjs/{popup → components/popup}/index.js +0 -0
  362. /package/dist/cjs/{portal → components/portal}/PortalContext.js +0 -0
  363. /package/dist/cjs/{portal → components/portal}/index.js +0 -0
  364. /package/dist/cjs/{progress → components/progress}/Progress.js +0 -0
  365. /package/dist/cjs/{progress → components/progress}/index.js +0 -0
  366. /package/dist/cjs/{progress → components/progress}/tokens.js +0 -0
  367. /package/dist/cjs/{pull-refresh → components/pull-refresh}/index.js +0 -0
  368. /package/dist/cjs/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  369. /package/dist/cjs/{radio → components/radio}/Radio.js +0 -0
  370. /package/dist/cjs/{radio → components/radio}/RadioContext.js +0 -0
  371. /package/dist/cjs/{radio → components/radio}/index.js +0 -0
  372. /package/dist/cjs/{radio → components/radio}/tokens.js +0 -0
  373. /package/dist/cjs/{rate → components/rate}/Rate.js +0 -0
  374. /package/dist/cjs/{rate → components/rate}/index.js +0 -0
  375. /package/dist/cjs/{rate → components/rate}/tokens.js +0 -0
  376. /package/dist/cjs/{search → components/search}/index.js +0 -0
  377. /package/dist/cjs/{selector → components/selector}/index.js +0 -0
  378. /package/dist/cjs/{selector → components/selector}/tokens.js +0 -0
  379. /package/dist/cjs/{share-sheet → components/share-sheet}/index.js +0 -0
  380. /package/dist/cjs/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  381. /package/dist/cjs/{sidebar → components/sidebar}/index.js +0 -0
  382. /package/dist/cjs/{sidebar → components/sidebar}/tokens.js +0 -0
  383. /package/dist/cjs/{skeleton → components/skeleton}/index.js +0 -0
  384. /package/dist/cjs/{skeleton → components/skeleton}/tokens.js +0 -0
  385. /package/dist/cjs/{slider → components/slider}/index.js +0 -0
  386. /package/dist/cjs/{slider → components/slider}/tokens.js +0 -0
  387. /package/dist/cjs/{slider → components/slider}/utils.js +0 -0
  388. /package/dist/cjs/{space → components/space}/Space.js +0 -0
  389. /package/dist/cjs/{space → components/space}/index.js +0 -0
  390. /package/dist/cjs/{space → components/space}/tokens.js +0 -0
  391. /package/dist/cjs/{stepper → components/stepper}/index.js +0 -0
  392. /package/dist/cjs/{swiper → components/swiper}/SwiperItem.js +0 -0
  393. /package/dist/cjs/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  394. /package/dist/cjs/{swiper → components/swiper}/index.js +0 -0
  395. /package/dist/cjs/{swiper → components/swiper}/utils.js +0 -0
  396. /package/dist/cjs/{switch → components/switch}/Switch.js +0 -0
  397. /package/dist/cjs/{switch → components/switch}/index.js +0 -0
  398. /package/dist/cjs/{switch → components/switch}/tokens.js +0 -0
  399. /package/dist/cjs/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  400. /package/dist/cjs/{tabbar → components/tabbar}/index.js +0 -0
  401. /package/dist/cjs/{tabbar → components/tabbar}/tokens.js +0 -0
  402. /package/dist/cjs/{tabs → components/tabs}/TabPane.js +0 -0
  403. /package/dist/cjs/{tabs → components/tabs}/index.js +0 -0
  404. /package/dist/cjs/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  405. /package/dist/cjs/{tabs → components/tabs}/utils.js +0 -0
  406. /package/dist/cjs/{tag → components/tag}/Tag.js +0 -0
  407. /package/dist/cjs/{tag → components/tag}/index.js +0 -0
  408. /package/dist/cjs/{tag → components/tag}/tokens.js +0 -0
  409. /package/dist/cjs/{toast → components/toast}/imperative.js +0 -0
  410. /package/dist/cjs/{toast → components/toast}/index.js +0 -0
  411. /package/dist/cjs/{typography → components/typography}/index.js +0 -0
  412. /package/dist/cjs/{typography → components/typography}/tokens.js +0 -0
  413. /package/dist/cjs/{uploader → components/uploader}/index.js +0 -0
  414. /package/dist/cjs/{uploader → components/uploader}/utils.js +0 -0
  415. /package/dist/cjs/{water-mark → components/water-mark}/index.js +0 -0
  416. /package/dist/cjs/{water-mark → components/water-mark}/tokens.js +0 -0
  417. /package/dist/es/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  418. /package/dist/es/{action-sheet → components/action-sheet}/index.js +0 -0
  419. /package/dist/es/{action-sheet → components/action-sheet}/tokens.js +0 -0
  420. /package/dist/es/{area → components/area}/index.js +0 -0
  421. /package/dist/es/{area → components/area}/utils.js +0 -0
  422. /package/dist/es/{avatar → components/avatar}/index.js +0 -0
  423. /package/dist/es/{badge → components/badge}/index.js +0 -0
  424. /package/dist/es/{badge → components/badge}/tokens.js +0 -0
  425. /package/dist/es/{button → components/button}/ButtonContext.js +0 -0
  426. /package/dist/es/{button → components/button}/index.js +0 -0
  427. /package/dist/es/{button → components/button}/tokens.js +0 -0
  428. /package/dist/es/{calendar → components/calendar}/index.js +0 -0
  429. /package/dist/es/{calendar → components/calendar}/tokens.js +0 -0
  430. /package/dist/es/{cascader → components/cascader}/index.js +0 -0
  431. /package/dist/es/{cascader → components/cascader}/tokens.js +0 -0
  432. /package/dist/es/{cascader → components/cascader}/utils.js +0 -0
  433. /package/dist/es/{cell → components/cell}/Cell.js +0 -0
  434. /package/dist/es/{cell → components/cell}/CellContext.js +0 -0
  435. /package/dist/es/{cell → components/cell}/CellGroup.js +0 -0
  436. /package/dist/es/{cell → components/cell}/index.js +0 -0
  437. /package/dist/es/{cell → components/cell}/tokens.js +0 -0
  438. /package/dist/es/{checkbox → components/checkbox}/Checkbox.js +0 -0
  439. /package/dist/es/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  440. /package/dist/es/{checkbox → components/checkbox}/index.js +0 -0
  441. /package/dist/es/{checkbox → components/checkbox}/tokens.js +0 -0
  442. /package/dist/es/{circle → components/circle}/index.js +0 -0
  443. /package/dist/es/{circle → components/circle}/tokens.js +0 -0
  444. /package/dist/es/{collapse → components/collapse}/index.js +0 -0
  445. /package/dist/es/{collapse → components/collapse}/tokens.js +0 -0
  446. /package/dist/es/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  447. /package/dist/es/{config-provider → components/config-provider}/index.js +0 -0
  448. /package/dist/es/{config-provider → components/config-provider}/locale/base.js +0 -0
  449. /package/dist/es/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  450. /package/dist/es/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  451. /package/dist/es/{config-provider → components/config-provider}/useLocale.js +0 -0
  452. /package/dist/es/{count-down → components/count-down}/CountDown.js +0 -0
  453. /package/dist/es/{count-down → components/count-down}/index.js +0 -0
  454. /package/dist/es/{count-down → components/count-down}/tokens.js +0 -0
  455. /package/dist/es/{datetime-picker → components/datetime-picker}/index.js +0 -0
  456. /package/dist/es/{dialog → components/dialog}/imperative.js +0 -0
  457. /package/dist/es/{dialog → components/dialog}/index.js +0 -0
  458. /package/dist/es/{divider → components/divider}/Divider.js +0 -0
  459. /package/dist/es/{divider → components/divider}/index.js +0 -0
  460. /package/dist/es/{divider → components/divider}/tokens.js +0 -0
  461. /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  462. /package/dist/es/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  463. /package/dist/es/{empty → components/empty}/Empty.js +0 -0
  464. /package/dist/es/{empty → components/empty}/index.js +0 -0
  465. /package/dist/es/{empty → components/empty}/tokens.js +0 -0
  466. /package/dist/es/{field → components/field}/tokens.js +0 -0
  467. /package/dist/es/{field → components/field}/utils.js +0 -0
  468. /package/dist/es/{flex → components/flex}/Flex.js +0 -0
  469. /package/dist/es/{flex → components/flex}/FlexContext.js +0 -0
  470. /package/dist/es/{flex → components/flex}/FlexItem.js +0 -0
  471. /package/dist/es/{flex → components/flex}/index.js +0 -0
  472. /package/dist/es/{flex → components/flex}/tokens.js +0 -0
  473. /package/dist/es/{form → components/form}/FormContext.js +0 -0
  474. /package/dist/es/{form → components/form}/FormItem.js +0 -0
  475. /package/dist/es/{form → components/form}/FormList.js +0 -0
  476. /package/dist/es/{form → components/form}/index.js +0 -0
  477. /package/dist/es/{form → components/form}/utils.js +0 -0
  478. /package/dist/es/{grid → components/grid}/GridContext.js +0 -0
  479. /package/dist/es/{grid → components/grid}/GridItem.js +0 -0
  480. /package/dist/es/{grid → components/grid}/index.js +0 -0
  481. /package/dist/es/{grid → components/grid}/tokens.js +0 -0
  482. /package/dist/es/{image → components/image}/index.js +0 -0
  483. /package/dist/es/{image → components/image}/tokens.js +0 -0
  484. /package/dist/es/{image-preview → components/image-preview}/imperative.js +0 -0
  485. /package/dist/es/{image-preview → components/image-preview}/index.js +0 -0
  486. /package/dist/es/{index-bar → components/index-bar}/index.js +0 -0
  487. /package/dist/es/{input → components/input}/index.js +0 -0
  488. /package/dist/es/{input → components/input}/tokens.js +0 -0
  489. /package/dist/es/{list → components/list}/List.js +0 -0
  490. /package/dist/es/{list → components/list}/index.js +0 -0
  491. /package/dist/es/{list → components/list}/tokens.js +0 -0
  492. /package/dist/es/{loading → components/loading}/Loading.js +0 -0
  493. /package/dist/es/{loading → components/loading}/index.js +0 -0
  494. /package/dist/es/{loading → components/loading}/tokens.js +0 -0
  495. /package/dist/es/{nav-bar → components/nav-bar}/index.js +0 -0
  496. /package/dist/es/{nav-bar → components/nav-bar}/tokens.js +0 -0
  497. /package/dist/es/{notice-bar → components/notice-bar}/index.js +0 -0
  498. /package/dist/es/{notice-bar → components/notice-bar}/tokens.js +0 -0
  499. /package/dist/es/{notify → components/notify}/index.js +0 -0
  500. /package/dist/es/{number-keyboard → components/number-keyboard}/index.js +0 -0
  501. /package/dist/es/{overlay → components/overlay}/Overlay.js +0 -0
  502. /package/dist/es/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  503. /package/dist/es/{overlay → components/overlay}/index.js +0 -0
  504. /package/dist/es/{overlay → components/overlay}/tokens.js +0 -0
  505. /package/dist/es/{pagination → components/pagination}/index.js +0 -0
  506. /package/dist/es/{pagination → components/pagination}/tokens.js +0 -0
  507. /package/dist/es/{password-input → components/password-input}/index.js +0 -0
  508. /package/dist/es/{picker → components/picker}/index.js +0 -0
  509. /package/dist/es/{picker → components/picker}/utils.js +0 -0
  510. /package/dist/es/{popup → components/popup}/index.js +0 -0
  511. /package/dist/es/{portal → components/portal}/PortalContext.js +0 -0
  512. /package/dist/es/{portal → components/portal}/index.js +0 -0
  513. /package/dist/es/{progress → components/progress}/Progress.js +0 -0
  514. /package/dist/es/{progress → components/progress}/index.js +0 -0
  515. /package/dist/es/{progress → components/progress}/tokens.js +0 -0
  516. /package/dist/es/{pull-refresh → components/pull-refresh}/index.js +0 -0
  517. /package/dist/es/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  518. /package/dist/es/{radio → components/radio}/Radio.js +0 -0
  519. /package/dist/es/{radio → components/radio}/RadioContext.js +0 -0
  520. /package/dist/es/{radio → components/radio}/index.js +0 -0
  521. /package/dist/es/{radio → components/radio}/tokens.js +0 -0
  522. /package/dist/es/{rate → components/rate}/Rate.js +0 -0
  523. /package/dist/es/{rate → components/rate}/index.js +0 -0
  524. /package/dist/es/{rate → components/rate}/tokens.js +0 -0
  525. /package/dist/es/{search → components/search}/index.js +0 -0
  526. /package/dist/es/{selector → components/selector}/index.js +0 -0
  527. /package/dist/es/{selector → components/selector}/tokens.js +0 -0
  528. /package/dist/es/{share-sheet → components/share-sheet}/index.js +0 -0
  529. /package/dist/es/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  530. /package/dist/es/{sidebar → components/sidebar}/index.js +0 -0
  531. /package/dist/es/{sidebar → components/sidebar}/tokens.js +0 -0
  532. /package/dist/es/{skeleton → components/skeleton}/index.js +0 -0
  533. /package/dist/es/{skeleton → components/skeleton}/tokens.js +0 -0
  534. /package/dist/es/{slider → components/slider}/index.js +0 -0
  535. /package/dist/es/{slider → components/slider}/tokens.js +0 -0
  536. /package/dist/es/{slider → components/slider}/utils.js +0 -0
  537. /package/dist/es/{space → components/space}/Space.js +0 -0
  538. /package/dist/es/{space → components/space}/index.js +0 -0
  539. /package/dist/es/{space → components/space}/tokens.js +0 -0
  540. /package/dist/es/{stepper → components/stepper}/index.js +0 -0
  541. /package/dist/es/{swiper → components/swiper}/SwiperItem.js +0 -0
  542. /package/dist/es/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  543. /package/dist/es/{swiper → components/swiper}/index.js +0 -0
  544. /package/dist/es/{swiper → components/swiper}/utils.js +0 -0
  545. /package/dist/es/{switch → components/switch}/Switch.js +0 -0
  546. /package/dist/es/{switch → components/switch}/index.js +0 -0
  547. /package/dist/es/{switch → components/switch}/tokens.js +0 -0
  548. /package/dist/es/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  549. /package/dist/es/{tabbar → components/tabbar}/index.js +0 -0
  550. /package/dist/es/{tabbar → components/tabbar}/tokens.js +0 -0
  551. /package/dist/es/{tabs → components/tabs}/TabPane.js +0 -0
  552. /package/dist/es/{tabs → components/tabs}/index.js +0 -0
  553. /package/dist/es/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  554. /package/dist/es/{tabs → components/tabs}/utils.js +0 -0
  555. /package/dist/es/{tag → components/tag}/Tag.js +0 -0
  556. /package/dist/es/{tag → components/tag}/index.js +0 -0
  557. /package/dist/es/{tag → components/tag}/tokens.js +0 -0
  558. /package/dist/es/{toast → components/toast}/imperative.js +0 -0
  559. /package/dist/es/{toast → components/toast}/index.js +0 -0
  560. /package/dist/es/{typography → components/typography}/index.js +0 -0
  561. /package/dist/es/{typography → components/typography}/tokens.js +0 -0
  562. /package/dist/es/{uploader → components/uploader}/index.js +0 -0
  563. /package/dist/es/{uploader → components/uploader}/utils.js +0 -0
  564. /package/dist/es/{water-mark → components/water-mark}/index.js +0 -0
  565. /package/dist/es/{water-mark → components/water-mark}/tokens.js +0 -0
@@ -1,10 +1,11 @@
1
1
  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); }
2
2
  import React, { useCallback, useState } from 'react';
3
- import { Pressable, SafeAreaView, Text, View } from 'react-native';
3
+ import { Pressable, Text, View } from 'react-native';
4
4
  import { ArrowLeft } from 'react-native-system-icon';
5
5
  import { useAriaPress } from '../../hooks';
6
6
  import { createHairlineBorderBottom } from '../../utils/hairline';
7
7
  import { isRenderable, isText } from '../../utils/validate';
8
+ import { SafeAreaView } from '../safe-area-view';
8
9
  import { useNavBarTokens } from './tokens';
9
10
  const NavBarBase = props => {
10
11
  const {
@@ -1,5 +1,5 @@
1
1
  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); }
2
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
3
3
  import { Animated, Easing, Pressable, StyleSheet, Text, View, Platform } from 'react-native';
4
4
  import { Arrow, Close } from 'react-native-system-icon';
5
5
  import { useAriaPress } from '../../hooks';
@@ -58,15 +58,15 @@ export const NoticeBar = props => {
58
58
  const resolvedSpeed = parseNumber(speed, 60);
59
59
  const resolvedVerticalInterval = Math.max(0, parseNumber(verticalInterval, 3000));
60
60
  const resolvedVerticalDuration = Math.max(0, parseNumber(verticalDuration, 300));
61
- const verticalItems = useMemo(() => {
61
+ const verticalItems = (() => {
62
62
  if (!isVertical) return [];
63
63
  if (items && items.length) return items;
64
64
  const childArray = React.Children.toArray(children);
65
65
  if (childArray.length) return childArray;
66
66
  return text !== undefined ? [text] : [];
67
- }, [children, isVertical, items, text]);
67
+ })();
68
68
  const hasVerticalLoop = isVertical && verticalItems.length > 1;
69
- const verticalTrackItems = useMemo(() => hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems, [hasVerticalLoop, verticalItems]);
69
+ const verticalTrackItems = hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems;
70
70
  const verticalTranslateY = useRef(new Animated.Value(0)).current;
71
71
  const [itemHeight, setItemHeight] = useState(0);
72
72
  const setContentWidthSafe = useCallback(next => {
@@ -94,29 +94,21 @@ export const NoticeBar = props => {
94
94
  accessibilityRole: 'button'
95
95
  } : undefined
96
96
  });
97
- const rightNode = useMemo(() => {
98
- if (mode === 'closeable') {
99
- return /*#__PURE__*/React.createElement(Pressable, _extends({
100
- hitSlop: 8
101
- }, closePress.interactionProps), /*#__PURE__*/React.createElement(Close, {
102
- size: 16,
103
- fill: resolvedColor,
104
- color: resolvedColor
105
- }));
106
- }
107
- if (mode === 'link') {
108
- return /*#__PURE__*/React.createElement(Arrow, {
109
- size: 16,
110
- fill: resolvedColor,
111
- color: resolvedColor
112
- });
113
- }
114
- return rightIcon || null;
115
- }, [closePress.interactionProps, mode, resolvedColor, rightIcon]);
97
+ const rightNode = mode === 'closeable' ? /*#__PURE__*/React.createElement(Pressable, _extends({
98
+ hitSlop: 8
99
+ }, closePress.interactionProps), /*#__PURE__*/React.createElement(Close, {
100
+ size: 16,
101
+ fill: resolvedColor,
102
+ color: resolvedColor
103
+ })) : mode === 'link' ? /*#__PURE__*/React.createElement(Arrow, {
104
+ size: 16,
105
+ fill: resolvedColor,
106
+ color: resolvedColor
107
+ }) : rightIcon || null;
116
108
  const hasLeft = isRenderable(leftIcon);
117
109
  const hasRight = Boolean(rightNode);
118
- const effectiveContainerWidth = useMemo(() => Math.max(0, containerWidth - (hasLeft ? tokens.spacing.sidePadding : 0) - (hasRight ? tokens.spacing.sidePadding : 0)), [containerWidth, hasLeft, hasRight, tokens.spacing.sidePadding]);
119
- const shouldScroll = useMemo(() => !isVertical && !wrapable && (scrollable ?? contentWidth > effectiveContainerWidth), [contentWidth, effectiveContainerWidth, isVertical, scrollable, wrapable]);
110
+ const effectiveContainerWidth = Math.max(0, containerWidth - (hasLeft ? tokens.spacing.sidePadding : 0) - (hasRight ? tokens.spacing.sidePadding : 0));
111
+ const shouldScroll = !isVertical && !wrapable && (scrollable ?? contentWidth > effectiveContainerWidth);
120
112
  useEffect(() => {
121
113
  if (!visible) {
122
114
  translateX.stopAnimation();
@@ -167,37 +159,24 @@ export const NoticeBar = props => {
167
159
  verticalTranslateY.setValue(0);
168
160
  return;
169
161
  }
170
- let cancelled = false;
171
- let timeout = null;
172
- let nextIndex = 1;
173
- const schedule = () => {
174
- timeout = setTimeout(() => {
175
- Animated.timing(verticalTranslateY, {
176
- toValue: -itemHeight * nextIndex,
177
- duration: resolvedVerticalDuration,
178
- easing: Easing.linear,
179
- useNativeDriver: nativeDriverEnabled
180
- }).start(({
181
- finished
182
- }) => {
183
- if (cancelled || !finished) {
184
- return;
185
- }
186
- nextIndex += 1;
187
- if (nextIndex > verticalItems.length) {
188
- verticalTranslateY.setValue(0);
189
- nextIndex = 1;
190
- }
191
- schedule();
192
- });
193
- }, resolvedVerticalInterval);
194
- };
195
- schedule();
162
+ const steps = [];
163
+ for (let i = 1; i <= verticalItems.length; i += 1) {
164
+ steps.push(Animated.delay(resolvedVerticalInterval), Animated.timing(verticalTranslateY, {
165
+ toValue: -itemHeight * i,
166
+ duration: resolvedVerticalDuration,
167
+ easing: Easing.linear,
168
+ useNativeDriver: nativeDriverEnabled
169
+ }));
170
+ }
171
+ steps.push(Animated.timing(verticalTranslateY, {
172
+ toValue: 0,
173
+ duration: 0,
174
+ useNativeDriver: nativeDriverEnabled
175
+ }));
176
+ const loopAnimation = Animated.loop(Animated.sequence(steps));
177
+ loopAnimation.start();
196
178
  return () => {
197
- cancelled = true;
198
- if (timeout) {
199
- clearTimeout(timeout);
200
- }
179
+ loopAnimation.stop();
201
180
  verticalTranslateY.stopAnimation();
202
181
  };
203
182
  }, [visible, hasVerticalLoop, itemHeight, resolvedVerticalDuration, resolvedVerticalInterval, verticalItems, verticalTranslateY]);
@@ -206,49 +185,44 @@ export const NoticeBar = props => {
206
185
  if (!height) return;
207
186
  setItemHeight(prev => prev === 0 || Math.abs(prev - height) >= 0.5 ? height : prev);
208
187
  }, []);
209
- const verticalContentNode = useMemo(() => {
210
- if (!isVertical) return null;
211
- if (verticalTrackItems.length === 0) return null;
212
- if (!hasVerticalLoop) {
213
- const single = verticalTrackItems[0];
214
- if (isText(single)) {
215
- return /*#__PURE__*/React.createElement(Text, _extends({
216
- onLayout: textOnLayout,
217
- style: [styles.text, {
218
- color: resolvedColor,
219
- fontSize: tokens.typography.fontSize
220
- }],
221
- numberOfLines: 1,
222
- ellipsizeMode: "tail"
223
- }, restTextProps), single);
224
- }
225
- return single;
188
+ const verticalContentNode = !isVertical || verticalTrackItems.length === 0 ? null : !hasVerticalLoop ? (() => {
189
+ const single = verticalTrackItems[0];
190
+ if (isText(single)) {
191
+ return /*#__PURE__*/React.createElement(Text, _extends({
192
+ onLayout: textOnLayout,
193
+ style: [styles.text, {
194
+ color: resolvedColor,
195
+ fontSize: tokens.typography.fontSize
196
+ }],
197
+ numberOfLines: 1,
198
+ ellipsizeMode: "tail"
199
+ }, restTextProps), single);
226
200
  }
227
- return /*#__PURE__*/React.createElement(View, {
228
- style: [styles.verticalViewport, itemHeight ? {
229
- height: itemHeight
230
- } : undefined],
231
- pointerEvents: "none"
232
- }, /*#__PURE__*/React.createElement(Animated.View, {
233
- style: [styles.verticalTrack, {
234
- transform: [{
235
- translateY: verticalTranslateY
236
- }]
201
+ return single;
202
+ })() : /*#__PURE__*/React.createElement(View, {
203
+ style: [styles.verticalViewport, itemHeight ? {
204
+ height: itemHeight
205
+ } : undefined],
206
+ pointerEvents: "none"
207
+ }, /*#__PURE__*/React.createElement(Animated.View, {
208
+ style: [styles.verticalTrack, {
209
+ transform: [{
210
+ translateY: verticalTranslateY
237
211
  }]
238
- }, verticalTrackItems.map((item, index) => /*#__PURE__*/React.createElement(View, {
239
- key: index,
240
- onLayout: index === 0 ? handleItemLayout : undefined,
241
- style: styles.verticalItem
242
- }, isText(item) ? /*#__PURE__*/React.createElement(Text, _extends({
243
- onLayout: textOnLayout,
244
- style: [styles.text, {
245
- color: resolvedColor,
246
- fontSize: tokens.typography.fontSize
247
- }],
248
- numberOfLines: 1,
249
- ellipsizeMode: "tail"
250
- }, restTextProps), item) : item))));
251
- }, [handleItemLayout, hasVerticalLoop, isVertical, itemHeight, resolvedColor, restTextProps, textOnLayout, tokens.typography.fontSize, verticalTrackItems, verticalTranslateY]);
212
+ }]
213
+ }, verticalTrackItems.map((item, index) => /*#__PURE__*/React.createElement(View, {
214
+ key: index,
215
+ onLayout: index === 0 ? handleItemLayout : undefined,
216
+ style: styles.verticalItem
217
+ }, isText(item) ? /*#__PURE__*/React.createElement(Text, _extends({
218
+ onLayout: textOnLayout,
219
+ style: [styles.text, {
220
+ color: resolvedColor,
221
+ fontSize: tokens.typography.fontSize
222
+ }],
223
+ numberOfLines: 1,
224
+ ellipsizeMode: "tail"
225
+ }, restTextProps), item) : item))));
252
226
  const handleContainerLayout = useCallback(event => {
253
227
  setContainerWidthSafe(event.nativeEvent.layout.width);
254
228
  }, [setContainerWidthSafe]);
@@ -1,12 +1,11 @@
1
1
  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); }
2
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { Animated, Pressable, SafeAreaView, Text, View } from 'react-native';
2
+ import React, { useMemo } from 'react';
3
+ import { Animated, Platform, Pressable, Text, View } from 'react-native';
4
4
  import { isFunction, isText } from '../../utils';
5
- import { useAriaPress } from '../../hooks';
5
+ import { useAriaPress, useSafeAreaPadding } from '../../hooks';
6
6
  import { usePresenceAnimation } from '../../hooks/usePresenceAnimation';
7
7
  import Portal from '../portal/Portal';
8
8
  import { useOverlayStack } from '../overlay';
9
- import { SafeAreaClipProvider } from '../safe-area';
10
9
  import { useNotifyTokens } from './tokens';
11
10
  export const Notify = props => {
12
11
  const {
@@ -15,6 +14,7 @@ export const Notify = props => {
15
14
  type: typeProp,
16
15
  duration: durationProp,
17
16
  position: positionProp,
17
+ offset: offsetProp,
18
18
  color,
19
19
  background,
20
20
  zIndex,
@@ -29,24 +29,42 @@ export const Notify = props => {
29
29
  onClosed
30
30
  } = props;
31
31
  const tokens = useNotifyTokens(tokensOverride);
32
+ const paddingVertical = tokens.spacing.paddingVertical;
33
+ const safeAreaPadding = useSafeAreaPadding({
34
+ top: paddingVertical,
35
+ bottom: paddingVertical
36
+ });
32
37
  const type = typeProp ?? tokens.defaults.type;
33
38
  const position = positionProp ?? tokens.defaults.position;
34
39
  const closeOnClick = closeOnClickProp ?? tokens.defaults.closeOnClick;
35
40
  const safeAreaInsetTop = props.safeAreaInsetTop ?? (position === 'top' ? tokens.defaults.safeAreaInsetTop : false);
36
41
  const safeAreaInsetBottom = props.safeAreaInsetBottom ?? (position === 'bottom' ? tokens.defaults.safeAreaInsetBottom : false);
42
+ const safeTop = safeAreaInsetTop && position === 'top' ? safeAreaPadding.paddingTop : paddingVertical;
43
+ const safeBottom = safeAreaInsetBottom && position === 'bottom' ? safeAreaPadding.paddingBottom : paddingVertical;
44
+ const offset = typeof offsetProp === 'number' && Number.isFinite(offsetProp) ? Math.max(0, offsetProp) : 0;
45
+ const safeBottomInset = safeAreaInsetBottom && position === 'bottom' && typeof safeBottom === 'number' ? Math.max(0, safeBottom - paddingVertical) + offset : offset;
46
+ const webTopPadding = Platform.OS === 'web' && position === 'top' ? typeof safeTop === 'string' ? `calc(${safeTop} + ${offset}px)` : safeTop + offset : undefined;
47
+ const webBottomPadding = Platform.OS === 'web' && safeAreaInsetBottom && position === 'bottom' ? typeof safeBottom === 'string' ? `calc(${safeBottom} + ${offset}px)` : safeBottom + offset : undefined;
37
48
  const variant = tokens.colors.variants[type];
38
49
  const resolvedBackground = background ?? variant.background;
39
50
  const resolvedTextColor = color ?? variant.text;
40
51
  const resolvedDuration = durationProp ?? tokens.defaults.duration;
41
- const topInsetStyle = useMemo(() => ({
42
- backgroundColor: resolvedBackground
43
- }), [resolvedBackground]);
52
+ const [barHeight, setBarHeight] = React.useState(0);
53
+ const handleLayout = event => {
54
+ const height = event.nativeEvent.layout.height;
55
+ if (!height) return;
56
+ setBarHeight(prev => prev === height ? prev : height);
57
+ };
58
+
59
+ // 关键:静态调用时 Notify 初次挂载的 visible=true,需要执行进入动画
60
+ const canAnimate = barHeight > 0;
44
61
  const {
45
62
  mounted,
46
63
  animated
47
64
  } = usePresenceAnimation(visible, {
48
65
  duration: tokens.defaults.animationDuration,
49
- appear: true
66
+ appear: true,
67
+ canAnimate
50
68
  });
51
69
  const {
52
70
  zIndex: stackZIndex
@@ -55,9 +73,10 @@ export const Notify = props => {
55
73
  type: 'notify',
56
74
  zIndex
57
75
  });
58
- const prevVisibleRef = useRef(visible);
59
- const closingRef = useRef(false);
60
- useEffect(() => {
76
+ const resolvedZIndex = stackZIndex ?? zIndex;
77
+ const prevVisibleRef = React.useRef(visible);
78
+ const closingRef = React.useRef(false);
79
+ React.useEffect(() => {
61
80
  let openedTimer = null;
62
81
  if (visible) {
63
82
  closingRef.current = false;
@@ -73,13 +92,13 @@ export const Notify = props => {
73
92
  if (openedTimer) clearTimeout(openedTimer);
74
93
  };
75
94
  }, [onOpen, onOpened, tokens.defaults.animationDuration, visible]);
76
- useEffect(() => {
95
+ React.useEffect(() => {
77
96
  if (!mounted && closingRef.current) {
78
97
  closingRef.current = false;
79
98
  onClosed?.();
80
99
  }
81
100
  }, [mounted, onClosed]);
82
- useEffect(() => {
101
+ React.useEffect(() => {
83
102
  let timer = null;
84
103
  if (visible && resolvedDuration > 0) {
85
104
  timer = setTimeout(() => {
@@ -90,11 +109,12 @@ export const Notify = props => {
90
109
  if (timer) clearTimeout(timer);
91
110
  };
92
111
  }, [onClose, resolvedDuration, visible]);
112
+ const contentHeight = barHeight > 0 ? barHeight : tokens.sizing.minHeight;
93
113
  const interactive = closeOnClick || isFunction(onClick);
94
- const handlePress = useCallback(() => {
114
+ const handlePress = () => {
95
115
  onClick?.();
96
116
  if (closeOnClick) onClose?.();
97
- }, [closeOnClick, onClick, onClose]);
117
+ };
98
118
  const accessibilityRole = interactive ? 'button' : 'alert';
99
119
  const press = useAriaPress({
100
120
  disabled: !interactive,
@@ -104,39 +124,45 @@ export const Notify = props => {
104
124
  accessibilityLiveRegion: 'assertive'
105
125
  }
106
126
  });
107
- const [barHeight, setBarHeight] = useState(0);
108
- const handleLayout = useCallback(event => {
109
- const height = event.nativeEvent.layout.height;
110
- if (!height) return;
111
- setBarHeight(prev => prev === height ? prev : height);
112
- }, []);
113
- const translateDistance = Math.max(barHeight, tokens.sizing.minHeight);
114
- const translateY = position === 'bottom' ? animated.interpolate({
127
+ const translateY = useMemo(() => position === 'bottom' ? animated.interpolate({
115
128
  inputRange: [0, 1],
116
- outputRange: [translateDistance, 0]
129
+ outputRange: [contentHeight, 0]
117
130
  }) : animated.interpolate({
118
131
  inputRange: [0, 1],
119
- outputRange: [-translateDistance, 0]
120
- });
132
+ outputRange: [-contentHeight, 0]
133
+ }), [animated, contentHeight, position]);
121
134
  const hasMessage = message !== undefined && message !== null && message !== false && message !== '';
122
135
  if (!mounted) return null;
123
- const resolvedZIndex = stackZIndex ?? zIndex;
124
- const renderBar = topInsetNode => /*#__PURE__*/React.createElement(Animated.View, {
136
+ const bar = /*#__PURE__*/React.createElement(View, {
137
+ style: [tokens.layout.container, position === 'top' ? {
138
+ paddingTop: webTopPadding ?? (typeof safeTop === 'number' ? safeTop + offset : safeTop)
139
+ } : null, webBottomPadding !== undefined ? {
140
+ paddingBottom: webBottomPadding
141
+ } : null]
142
+ }, /*#__PURE__*/React.createElement(View, {
143
+ style: {
144
+ height: contentHeight,
145
+ overflow: 'hidden'
146
+ }
147
+ }, /*#__PURE__*/React.createElement(Animated.View, {
125
148
  testID: "rv-notify-bar",
126
149
  accessibilityRole: !interactive ? accessibilityRole : undefined,
127
150
  accessibilityLiveRegion: !interactive ? 'assertive' : undefined,
128
151
  onLayout: handleLayout,
129
152
  style: [tokens.layout.container, {
130
- backgroundColor: resolvedBackground,
131
153
  opacity: animated,
132
154
  transform: [{
133
155
  translateY
134
156
  }]
135
157
  }, style]
136
- }, topInsetNode, /*#__PURE__*/React.createElement(View, {
158
+ }, /*#__PURE__*/React.createElement(View, {
159
+ style: {
160
+ backgroundColor: resolvedBackground
161
+ }
162
+ }, /*#__PURE__*/React.createElement(View, {
137
163
  style: [tokens.layout.content, {
138
164
  paddingHorizontal: tokens.spacing.paddingHorizontal,
139
- paddingVertical: tokens.spacing.paddingVertical,
165
+ paddingVertical,
140
166
  minHeight: tokens.sizing.minHeight
141
167
  }]
142
168
  }, hasMessage ? isText(message) ? /*#__PURE__*/React.createElement(Text, {
@@ -145,13 +171,14 @@ export const Notify = props => {
145
171
  fontSize: tokens.typography.fontSize,
146
172
  lineHeight: tokens.typography.lineHeight
147
173
  }, textStyle]
148
- }, message) : message : null), safeAreaInsetBottom && /*#__PURE__*/React.createElement(SafeAreaView, {
149
- style: tokens.layout.safeArea
150
- }));
151
- return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(SafeAreaClipProvider, {
152
- enabled: safeAreaInsetTop,
153
- position: position,
154
- topInsetStyle: topInsetStyle,
174
+ }, message) : message : null)))), position === 'bottom' ? /*#__PURE__*/React.createElement(View, {
175
+ style: {
176
+ height: safeBottomInset
177
+ }
178
+ }) : null);
179
+ return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(View, {
180
+ testID: "rv-notify",
181
+ pointerEvents: interactive ? 'box-none' : 'none',
155
182
  style: [tokens.layout.portal, position === 'bottom' ? {
156
183
  bottom: 0
157
184
  } : {
@@ -159,20 +186,9 @@ export const Notify = props => {
159
186
  }, resolvedZIndex !== undefined && resolvedZIndex !== null ? {
160
187
  zIndex: resolvedZIndex
161
188
  } : null]
162
- }, ({
163
- clipTop,
164
- topInset
165
- }) => {
166
- const topInsetNode = clipTop ? null : safeAreaInsetTop ? /*#__PURE__*/React.createElement(SafeAreaView, {
167
- style: tokens.layout.safeArea
168
- }) : topInset;
169
- return /*#__PURE__*/React.createElement(View, {
170
- testID: "rv-notify",
171
- pointerEvents: interactive ? 'box-none' : 'none'
172
- }, interactive ? /*#__PURE__*/React.createElement(Pressable, _extends({}, press.interactionProps, {
173
- disabled: !interactive
174
- }), renderBar(topInsetNode)) : renderBar(topInsetNode));
175
- }));
189
+ }, interactive ? /*#__PURE__*/React.createElement(Pressable, _extends({}, press.interactionProps, {
190
+ disabled: !interactive
191
+ }), bar) : bar));
176
192
  };
177
193
  Notify.displayName = 'Notify';
178
194
  export default Notify;
@@ -4,6 +4,6 @@ export const notifyDefaults = {
4
4
  duration: 3000,
5
5
  closeOnClick: false,
6
6
  animationDuration: 220,
7
- safeAreaInsetTop: false,
8
- safeAreaInsetBottom: false
7
+ safeAreaInsetTop: true,
8
+ safeAreaInsetBottom: true
9
9
  };
@@ -12,7 +12,7 @@ const baseOptions = {
12
12
  position: 'top',
13
13
  duration: 3000,
14
14
  safeAreaInsetTop: true,
15
- safeAreaInsetBottom: false
15
+ safeAreaInsetBottom: true
16
16
  };
17
17
  let currentOptions = {
18
18
  ...baseOptions
@@ -84,7 +84,7 @@ const NotifyPortal = ({
84
84
  const showNotify = (input, fallbackType = 'primary') => {
85
85
  const opts = mergeOptions(parseOptions(input), fallbackType);
86
86
  if (!allowMultiple) {
87
- activeKeys.forEach(key => closeNotify(key));
87
+ Array.from(activeKeys).forEach(key => removeNotify(key));
88
88
  }
89
89
  const key = Portal.add(null);
90
90
  notifyOptions.set(key, opts);
@@ -7,7 +7,7 @@ export const createNotifyTokens = foundations => ({
7
7
  closeOnClick: false,
8
8
  animationDuration: 180,
9
9
  safeAreaInsetTop: true,
10
- safeAreaInsetBottom: false
10
+ safeAreaInsetBottom: true
11
11
  },
12
12
  layout: {
13
13
  portal: {
@@ -55,11 +55,12 @@ export const createNotifyTokens = foundations => ({
55
55
  lineHeight: Math.round(foundations.fontSize.sm * foundations.typography.lineHeightMultiplier)
56
56
  },
57
57
  sizing: {
58
- minHeight: 40
58
+ minHeight: 35
59
59
  },
60
60
  spacing: {
61
- paddingVertical: foundations.spacing.sm,
62
- paddingHorizontal: foundations.spacing.md
61
+ paddingVertical: foundations.spacing.ssm,
62
+ paddingHorizontal: foundations.spacing.md,
63
+ none: foundations.spacing.none
63
64
  }
64
65
  });
65
66
  export const useNotifyTokens = createComponentTokensHook('notify', createNotifyTokens);
@@ -1,12 +1,13 @@
1
1
  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); }
2
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { Animated, Easing, Pressable, SafeAreaView, StyleSheet, Text, View } from 'react-native';
2
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { Animated, Easing, Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { useControllableValue } from '../../hooks';
5
5
  import { nativeDriverEnabled } from '../../platform';
6
6
  import { createPlatformShadow } from '../../utils/createPlatformShadow';
7
7
  import { parseNumberLike } from '../../utils/number';
8
8
  import Loading from '../loading';
9
9
  import Portal from '../portal/Portal';
10
+ import { SafeAreaView } from '../safe-area-view';
10
11
  import { useNumberKeyboardTokens } from './tokens';
11
12
  const keyboardRegistry = new Set();
12
13
  const NUMBER_KEYS = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
@@ -66,11 +67,11 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
66
67
  trigger: 'onChange'
67
68
  });
68
69
  const value = mergedValue ?? '';
69
- const maxlength = useMemo(() => {
70
+ const maxlength = (() => {
70
71
  const parsed = parseNumberLike(maxlengthProp, undefined);
71
72
  if (parsed === undefined || !Number.isFinite(parsed) || parsed < 0) return undefined;
72
73
  return Math.floor(parsed);
73
- }, [maxlengthProp]);
74
+ })();
74
75
  const valueRef = useRef(value);
75
76
  const maxlengthRef = useRef(maxlength);
76
77
  valueRef.current = value;
@@ -108,7 +109,7 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
108
109
  keyboardRegistry.delete(closeSelf);
109
110
  };
110
111
  }, [visible, closeSelf]);
111
- const keys = useMemo(() => {
112
+ const keys = (() => {
112
113
  const shouldShuffle = randomKeyOrder && visible;
113
114
  const numbers = shouldShuffle ? shuffle(NUMBER_KEYS) : NUMBER_KEYS;
114
115
  const main = numbers.map(text => ({
@@ -159,7 +160,7 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
159
160
  text: showDeleteKey ? undefined : ''
160
161
  });
161
162
  return main;
162
- }, [extraKey, isCustomTheme, randomKeyOrder, showDeleteKey, visible]);
163
+ })();
163
164
  const handleInput = useCallback((text, type) => {
164
165
  if (type === 'delete') {
165
166
  const currentValue = valueRef.current;
@@ -179,13 +180,13 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
179
180
  onInput?.(text);
180
181
  setMergedValue(`${currentValue}${text}`);
181
182
  }, [closeSelf, onDelete, onInput, setMergedValue]);
182
- const wrapperShadow = useMemo(() => createPlatformShadow({
183
+ const wrapperShadow = createPlatformShadow({
183
184
  color: shadow.color,
184
185
  opacity: shadow.opacity,
185
186
  radius: shadow.radius,
186
187
  offsetY: shadow.offsetY,
187
188
  elevation: shadow.elevation
188
- }), [shadow.color, shadow.opacity, shadow.radius, shadow.offsetY, shadow.elevation]);
189
+ });
189
190
  const keyGap = spacing.keyGap;
190
191
  const renderKey = useCallback((key, index, isClose = false, fullWidth = false, customHeight) => {
191
192
  const isPlaceholder = key.type === '' && !key.text;
@@ -280,10 +281,10 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
280
281
  animationRef.current = null;
281
282
  };
282
283
  }, [animated, visible, effectiveDuration]);
283
- const translateY = useMemo(() => animated.interpolate({
284
+ const translateY = animated.interpolate({
284
285
  inputRange: [0, 1],
285
286
  outputRange: [contentHeight || 320, 0]
286
- }), [animated, contentHeight]);
287
+ });
287
288
  const handleLayout = useCallback(e => {
288
289
  const {
289
290
  height
@@ -292,7 +293,7 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
292
293
  }, []);
293
294
  const hasHeader = !isCustomTheme && (title || closeButtonText);
294
295
  const doubleKeyHeight = sizing.keyHeight * 2 + keyGap;
295
- const memo = useMemo(() => {
296
+ const memo = (() => {
296
297
  const headerPaddingStyle = {
297
298
  paddingHorizontal: spacing.titlePadding
298
299
  };
@@ -373,7 +374,8 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
373
374
  style: [styles.header, headerPaddingStyle]
374
375
  }, /*#__PURE__*/React.createElement(Text, {
375
376
  style: [styles.title, styles.titleOverlay, {
376
- color: colors.title
377
+ color: colors.title,
378
+ fontSize: sizing.titleFontSize
377
379
  }],
378
380
  numberOfLines: 1
379
381
  }, title), resolvedCloseText ? /*#__PURE__*/React.createElement(Pressable, {
@@ -392,16 +394,14 @@ const NumberKeyboard = /*#__PURE__*/React.memo(props => {
392
394
  style: customSidebarStyle
393
395
  }, deleteNode, closeNode)) : defaultNode;
394
396
  const safeAreaNode = safeAreaInsetBottom && /*#__PURE__*/React.createElement(SafeAreaView, {
395
- style: {
396
- width: '100%'
397
- }
397
+ edge: "bottom"
398
398
  });
399
399
  return {
400
400
  headerNode,
401
401
  bodyNode,
402
402
  safeAreaNode
403
403
  };
404
- }, [colors.title, doubleKeyHeight, hasHeader, isCustomTheme, keyGap, keys, renderKey, resolvedCloseText, safeAreaInsetBottom, showDeleteKey, closeSelf, spacing.paddingHorizontal, spacing.titlePadding, title]);
404
+ })();
405
405
  if (!shouldRender && !visible) {
406
406
  return null;
407
407
  }
@@ -431,7 +431,6 @@ const styles = StyleSheet.create({
431
431
  position: 'relative'
432
432
  },
433
433
  title: {
434
- fontSize: 16,
435
434
  fontWeight: '600'
436
435
  },
437
436
  titleOverlay: {
@@ -3,7 +3,8 @@ const createTokens = foundations => {
3
3
  const {
4
4
  palette,
5
5
  spacing,
6
- radii
6
+ radii,
7
+ fontSize
7
8
  } = foundations;
8
9
  const onPrimary = palette.primary.foreground ?? '#ffffff';
9
10
  return {
@@ -28,7 +29,8 @@ const createTokens = foundations => {
28
29
  sizing: {
29
30
  keyHeight: 54,
30
31
  closeHeight: 44,
31
- fontSize: 28
32
+ fontSize: 28,
33
+ titleFontSize: fontSize.md
32
34
  },
33
35
  radii: {
34
36
  key: radii.xs
@@ -1,4 +1,4 @@
1
- import { useEffect, useMemo, useRef, useSyncExternalStore } from 'react';
1
+ import { useEffect, useRef, useSyncExternalStore } from 'react';
2
2
  import { overlayStackStore } from './OverlayStackStore';
3
3
  const useOverlayEntries = () => useSyncExternalStore(overlayStackStore.subscribe, overlayStackStore.getSnapshot, overlayStackStore.getSnapshot);
4
4
  export const useOverlayStack = ({
@@ -7,7 +7,11 @@ export const useOverlayStack = ({
7
7
  }) => {
8
8
  const entries = useOverlayEntries();
9
9
  const entryRef = useRef(null);
10
- const stableOptions = useMemo(() => options, [options.onClose, options.closeOnBack, options.lockScroll, options.zIndex, options.type, options.meta]);
10
+ const optionsRef = useRef(options);
11
+ if (optionsRef.current.onClose !== options.onClose || optionsRef.current.closeOnBack !== options.closeOnBack || optionsRef.current.lockScroll !== options.lockScroll || optionsRef.current.zIndex !== options.zIndex || optionsRef.current.type !== options.type || optionsRef.current.meta !== options.meta) {
12
+ optionsRef.current = options;
13
+ }
14
+ const stableOptions = optionsRef.current;
11
15
  useEffect(() => {
12
16
  if (!visible) {
13
17
  if (entryRef.current) {