react-native-system-ui 1.0.2 → 1.0.3

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 (496) hide show
  1. package/README.md +42 -22
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +1 -301
  3. package/dist/cjs/components/action-sheet/index.js +1 -16
  4. package/dist/cjs/components/action-sheet/tokens.js +1 -133
  5. package/dist/cjs/components/area/Area.js +1 -127
  6. package/dist/cjs/components/area/index.js +1 -9
  7. package/dist/cjs/components/area/tokens.js +1 -14
  8. package/dist/cjs/components/avatar/Avatar.js +1 -125
  9. package/dist/cjs/components/avatar/index.js +1 -18
  10. package/dist/cjs/components/avatar/tokens.js +1 -56
  11. package/dist/cjs/components/badge/Badge.js +1 -166
  12. package/dist/cjs/components/badge/index.js +1 -8
  13. package/dist/cjs/components/badge/tokens.js +1 -81
  14. package/dist/cjs/components/button/Button.js +1 -203
  15. package/dist/cjs/components/button/ButtonContext.js +1 -12
  16. package/dist/cjs/components/button/ButtonGroup.js +1 -65
  17. package/dist/cjs/components/button/index.js +1 -12
  18. package/dist/cjs/components/button/tokens.js +1 -176
  19. package/dist/cjs/components/calendar/Calendar.js +1 -452
  20. package/dist/cjs/components/calendar/index.js +1 -9
  21. package/dist/cjs/components/calendar/tokens.js +1 -129
  22. package/dist/cjs/components/cascader/Cascader.js +1 -482
  23. package/dist/cjs/components/cascader/index.js +1 -15
  24. package/dist/cjs/components/cascader/tokens.js +1 -138
  25. package/dist/cjs/components/cascader/useCascaderExtend.js +1 -39
  26. package/dist/cjs/components/cell/Cell.js +1 -181
  27. package/dist/cjs/components/cell/CellContext.js +1 -19
  28. package/dist/cjs/components/cell/CellGroup.js +1 -100
  29. package/dist/cjs/components/cell/index.js +1 -19
  30. package/dist/cjs/components/cell/tokens.js +1 -173
  31. package/dist/cjs/components/checkbox/Checkbox.js +1 -251
  32. package/dist/cjs/components/checkbox/CheckboxContext.js +1 -12
  33. package/dist/cjs/components/checkbox/CheckboxGroup.js +1 -148
  34. package/dist/cjs/components/checkbox/index.js +1 -16
  35. package/dist/cjs/components/checkbox/tokens.js +1 -97
  36. package/dist/cjs/components/circle/Circle.js +1 -212
  37. package/dist/cjs/components/circle/index.js +1 -9
  38. package/dist/cjs/components/circle/tokens.js +1 -55
  39. package/dist/cjs/components/collapse/Collapse.js +1 -311
  40. package/dist/cjs/components/collapse/index.js +1 -8
  41. package/dist/cjs/components/collapse/tokens.js +1 -81
  42. package/dist/cjs/components/config-provider/ConfigProvider.js +1 -44
  43. package/dist/cjs/components/config-provider/DirectionContext.js +1 -15
  44. package/dist/cjs/components/config-provider/LocaleContext.js +1 -16
  45. package/dist/cjs/components/config-provider/index.js +1 -40
  46. package/dist/cjs/components/config-provider/locale/en-US.js +1 -112
  47. package/dist/cjs/components/config-provider/locale/zh-CN.js +1 -112
  48. package/dist/cjs/components/config-provider/tokens.js +1 -11
  49. package/dist/cjs/components/config-provider/useDirection.js +1 -16
  50. package/dist/cjs/components/config-provider/useLocale.js +1 -16
  51. package/dist/cjs/components/count-down/CountDown.js +1 -88
  52. package/dist/cjs/components/count-down/index.js +1 -15
  53. package/dist/cjs/components/count-down/tokens.js +1 -34
  54. package/dist/cjs/components/datetime-picker/DatetimePicker.js +1 -319
  55. package/dist/cjs/components/datetime-picker/index.js +1 -9
  56. package/dist/cjs/components/datetime-picker/tokens.js +1 -22
  57. package/dist/cjs/components/dialog/Dialog.js +1 -433
  58. package/dist/cjs/components/dialog/imperative.js +1 -199
  59. package/dist/cjs/components/dialog/index.js +1 -23
  60. package/dist/cjs/components/dialog/tokens.js +1 -64
  61. package/dist/cjs/components/divider/Divider.js +1 -126
  62. package/dist/cjs/components/divider/index.js +1 -8
  63. package/dist/cjs/components/divider/tokens.js +1 -62
  64. package/dist/cjs/components/empty/Empty.js +1 -125
  65. package/dist/cjs/components/empty/index.js +1 -8
  66. package/dist/cjs/components/empty/tokens.js +1 -55
  67. package/dist/cjs/components/error-boundary/ErrorBoundary.js +1 -74
  68. package/dist/cjs/components/error-boundary/index.js +1 -19
  69. package/dist/cjs/components/field/Field.js +1 -565
  70. package/dist/cjs/components/field/index.js +1 -29
  71. package/dist/cjs/components/field/tokens.js +1 -150
  72. package/dist/cjs/components/flex/Flex.js +1 -85
  73. package/dist/cjs/components/flex/FlexContext.js +1 -12
  74. package/dist/cjs/components/flex/FlexItem.js +1 -95
  75. package/dist/cjs/components/flex/index.js +1 -19
  76. package/dist/cjs/components/flex/tokens.js +1 -21
  77. package/dist/cjs/components/form/Form.js +1 -340
  78. package/dist/cjs/components/form/FormContext.js +1 -12
  79. package/dist/cjs/components/form/FormItem.js +1 -151
  80. package/dist/cjs/components/form/FormList.js +1 -95
  81. package/dist/cjs/components/form/index.js +1 -50
  82. package/dist/cjs/components/form/tokens.js +1 -14
  83. package/dist/cjs/components/form/utils.js +1 -56
  84. package/dist/cjs/components/grid/Grid.js +1 -118
  85. package/dist/cjs/components/grid/GridContext.js +1 -12
  86. package/dist/cjs/components/grid/GridItem.js +1 -158
  87. package/dist/cjs/components/grid/index.js +1 -12
  88. package/dist/cjs/components/grid/tokens.js +1 -105
  89. package/dist/cjs/components/image/Image.js +1 -263
  90. package/dist/cjs/components/image/index.js +1 -16
  91. package/dist/cjs/components/image/tokens.js +1 -66
  92. package/dist/cjs/components/image-preview/ImagePreview.js +1 -408
  93. package/dist/cjs/components/image-preview/imperative.js +1 -72
  94. package/dist/cjs/components/image-preview/index.js +1 -17
  95. package/dist/cjs/components/image-preview/tokens.js +1 -43
  96. package/dist/cjs/components/index.js +1 -769
  97. package/dist/cjs/components/input/Input.js +1 -122
  98. package/dist/cjs/components/input/index.js +1 -15
  99. package/dist/cjs/components/input/tokens.js +1 -22
  100. package/dist/cjs/components/loading/Loading.js +1 -76
  101. package/dist/cjs/components/loading/index.js +1 -8
  102. package/dist/cjs/components/loading/tokens.js +1 -32
  103. package/dist/cjs/components/nav-bar/NavBar.js +1 -196
  104. package/dist/cjs/components/nav-bar/index.js +1 -16
  105. package/dist/cjs/components/nav-bar/tokens.js +1 -90
  106. package/dist/cjs/components/notice-bar/NoticeBar.js +1 -369
  107. package/dist/cjs/components/notice-bar/index.js +1 -8
  108. package/dist/cjs/components/notice-bar/tokens.js +1 -39
  109. package/dist/cjs/components/notify/Notify.js +1 -262
  110. package/dist/cjs/components/notify/imperative.js +1 -145
  111. package/dist/cjs/components/notify/index.js +1 -10
  112. package/dist/cjs/components/notify/tokens.js +1 -74
  113. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -487
  114. package/dist/cjs/components/number-keyboard/index.js +1 -15
  115. package/dist/cjs/components/number-keyboard/tokens.js +1 -59
  116. package/dist/cjs/components/overlay/Overlay.js +1 -81
  117. package/dist/cjs/components/overlay/index.js +1 -28
  118. package/dist/cjs/components/overlay/tokens.js +1 -13
  119. package/dist/cjs/components/password-input/PasswordInput.js +1 -346
  120. package/dist/cjs/components/password-input/index.js +1 -13
  121. package/dist/cjs/components/password-input/tokens.js +1 -53
  122. package/dist/cjs/components/picker/Picker.js +1 -1056
  123. package/dist/cjs/components/picker/index.js +1 -15
  124. package/dist/cjs/components/picker/tokens.js +1 -53
  125. package/dist/cjs/components/popup/Popup.js +1 -518
  126. package/dist/cjs/components/popup/index.js +1 -15
  127. package/dist/cjs/components/popup/tokens.js +1 -62
  128. package/dist/cjs/components/portal/Portal.js +1 -50
  129. package/dist/cjs/components/portal/PortalContext.js +1 -15
  130. package/dist/cjs/components/portal/PortalHost.js +1 -253
  131. package/dist/cjs/components/portal/index.js +1 -25
  132. package/dist/cjs/components/portal/tokens.js +1 -11
  133. package/dist/cjs/components/progress/Progress.js +1 -216
  134. package/dist/cjs/components/progress/index.js +1 -14
  135. package/dist/cjs/components/progress/tokens.js +1 -52
  136. package/dist/cjs/components/radio/Radio.js +1 -245
  137. package/dist/cjs/components/radio/RadioContext.js +1 -12
  138. package/dist/cjs/components/radio/RadioGroup.js +1 -113
  139. package/dist/cjs/components/radio/index.js +1 -16
  140. package/dist/cjs/components/radio/tokens.js +1 -92
  141. package/dist/cjs/components/safe-area-view/SafeAreaView.js +1 -59
  142. package/dist/cjs/components/safe-area-view/index.js +1 -12
  143. package/dist/cjs/components/safe-area-view/tokens.js +1 -11
  144. package/dist/cjs/components/search/Search.js +1 -215
  145. package/dist/cjs/components/search/index.js +1 -15
  146. package/dist/cjs/components/search/tokens.js +1 -54
  147. package/dist/cjs/components/selector/Selector.js +1 -185
  148. package/dist/cjs/components/selector/index.js +1 -15
  149. package/dist/cjs/components/selector/tokens.js +1 -100
  150. package/dist/cjs/components/share-sheet/ShareSheet.js +1 -287
  151. package/dist/cjs/components/share-sheet/index.js +1 -16
  152. package/dist/cjs/components/share-sheet/tokens.js +1 -55
  153. package/dist/cjs/components/sidebar/Sidebar.js +1 -103
  154. package/dist/cjs/components/sidebar/SidebarContext.js +1 -17
  155. package/dist/cjs/components/sidebar/SidebarItem.js +1 -103
  156. package/dist/cjs/components/sidebar/index.js +1 -26
  157. package/dist/cjs/components/sidebar/tokens.js +1 -93
  158. package/dist/cjs/components/skeleton/Skeleton.js +1 -162
  159. package/dist/cjs/components/skeleton/index.js +1 -22
  160. package/dist/cjs/components/skeleton/tokens.js +1 -39
  161. package/dist/cjs/components/slider/Slider.js +1 -633
  162. package/dist/cjs/components/slider/index.js +1 -8
  163. package/dist/cjs/components/slider/tokens.js +1 -37
  164. package/dist/cjs/components/space/Space.js +1 -134
  165. package/dist/cjs/components/space/index.js +1 -18
  166. package/dist/cjs/components/space/tokens.js +1 -39
  167. package/dist/cjs/components/stepper/Stepper.js +1 -484
  168. package/dist/cjs/components/stepper/index.js +1 -15
  169. package/dist/cjs/components/stepper/tokens.js +1 -60
  170. package/dist/cjs/components/swiper/Swiper.js +1 -364
  171. package/dist/cjs/components/swiper/SwiperItem.js +1 -12
  172. package/dist/cjs/components/swiper/SwiperPagIndicator.js +1 -106
  173. package/dist/cjs/components/swiper/index.js +1 -40
  174. package/dist/cjs/components/swiper/tokens.js +1 -18
  175. package/dist/cjs/components/switch/Switch.js +1 -102
  176. package/dist/cjs/components/switch/index.js +1 -15
  177. package/dist/cjs/components/switch/tokens.js +1 -31
  178. package/dist/cjs/components/tabbar/Tabbar.js +1 -149
  179. package/dist/cjs/components/tabbar/TabbarContext.js +1 -17
  180. package/dist/cjs/components/tabbar/TabbarItem.js +1 -159
  181. package/dist/cjs/components/tabbar/index.js +1 -25
  182. package/dist/cjs/components/tabbar/tokens.js +1 -41
  183. package/dist/cjs/components/tabs/Tabs.js +1 -860
  184. package/dist/cjs/components/tabs/index.js +1 -25
  185. package/dist/cjs/components/tabs/tokens.js +1 -111
  186. package/dist/cjs/components/tag/Tag.js +1 -130
  187. package/dist/cjs/components/tag/index.js +1 -8
  188. package/dist/cjs/components/tag/tokens.js +1 -104
  189. package/dist/cjs/components/toast/Toast.js +1 -306
  190. package/dist/cjs/components/toast/imperative.js +1 -144
  191. package/dist/cjs/components/toast/index.js +1 -10
  192. package/dist/cjs/components/toast/tokens.js +1 -43
  193. package/dist/cjs/components/typography/Typography.js +1 -181
  194. package/dist/cjs/components/typography/index.js +1 -9
  195. package/dist/cjs/components/typography/tokens.js +1 -88
  196. package/dist/cjs/components/water-mark/WaterMark.js +1 -172
  197. package/dist/cjs/components/water-mark/index.js +1 -22
  198. package/dist/cjs/components/water-mark/tokens.js +1 -54
  199. package/dist/cjs/design-system/Text.js +1 -38
  200. package/dist/cjs/design-system/ThemeContext.js +1 -19
  201. package/dist/cjs/design-system/ThemeProvider.js +1 -31
  202. package/dist/cjs/design-system/createComponentTokensHook.js +1 -28
  203. package/dist/cjs/design-system/index.js +1 -66
  204. package/dist/cjs/design-system/mergeTokensOverride.js +1 -9
  205. package/dist/cjs/design-system/presets.js +1 -146
  206. package/dist/cjs/design-system/tokens.js +1 -135
  207. package/dist/cjs/design-system/useTheme.js +1 -16
  208. package/dist/cjs/hooks/animation/index.js +1 -25
  209. package/dist/cjs/hooks/animation/useAnimatedTransition.js +1 -72
  210. package/dist/cjs/hooks/animation/useReducedMotion.js +1 -75
  211. package/dist/cjs/hooks/aria/index.js +1 -49
  212. package/dist/cjs/hooks/aria/useAriaListBox.js +1 -50
  213. package/dist/cjs/hooks/aria/useAriaOverlay.js +1 -50
  214. package/dist/cjs/hooks/aria/useAriaPress.js +1 -94
  215. package/dist/cjs/hooks/aria/useAriaToggle.js +1 -41
  216. package/dist/cjs/hooks/gesture/index.js +1 -16
  217. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -129
  218. package/dist/cjs/hooks/index.js +1 -96
  219. package/dist/cjs/hooks/overlay/OverlayStackStore.js +1 -106
  220. package/dist/cjs/hooks/overlay/index.js +1 -27
  221. package/dist/cjs/hooks/overlay/useOverlayStack.js +1 -53
  222. package/dist/cjs/hooks/useControllableValue.js +1 -41
  223. package/dist/cjs/hooks/useCountDown.js +1 -99
  224. package/dist/cjs/hooks/useHairline.js +1 -46
  225. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -38
  226. package/dist/cjs/index.js +1 -104
  227. package/dist/cjs/nativewind.js +1 -0
  228. package/dist/cjs/platform/animation.js +1 -22
  229. package/dist/cjs/platform/history.js +1 -14
  230. package/dist/cjs/platform/index.js +1 -60
  231. package/dist/cjs/platform/measure.js +1 -39
  232. package/dist/cjs/platform/runtime.js +1 -19
  233. package/dist/cjs/platform/scrollLock.js +1 -24
  234. package/dist/cjs/utils/array.js +1 -12
  235. package/dist/cjs/utils/color.js +1 -33
  236. package/dist/cjs/utils/compare.js +1 -21
  237. package/dist/cjs/utils/createPlatformShadow.js +1 -52
  238. package/dist/cjs/utils/date.js +1 -45
  239. package/dist/cjs/utils/deepMerge.js +1 -27
  240. package/dist/cjs/utils/hairline.js +1 -107
  241. package/dist/cjs/utils/index.js +1 -148
  242. package/dist/cjs/utils/number.js +1 -65
  243. package/dist/cjs/utils/promise.js +1 -9
  244. package/dist/cjs/utils/render.js +1 -21
  245. package/dist/cjs/utils/rtl.js +1 -25
  246. package/dist/cjs/utils/string.js +1 -22
  247. package/dist/cjs/utils/validate.js +1 -39
  248. package/dist/es/components/action-sheet/ActionSheet.js +1 -275
  249. package/dist/es/components/action-sheet/index.js +1 -3
  250. package/dist/es/components/action-sheet/tokens.js +1 -126
  251. package/dist/es/components/area/Area.js +1 -113
  252. package/dist/es/components/area/index.js +1 -2
  253. package/dist/es/components/area/tokens.js +1 -8
  254. package/dist/es/components/avatar/Avatar.js +1 -106
  255. package/dist/es/components/avatar/index.js +1 -1
  256. package/dist/es/components/avatar/tokens.js +1 -49
  257. package/dist/es/components/badge/Badge.js +1 -147
  258. package/dist/es/components/badge/index.js +1 -2
  259. package/dist/es/components/badge/tokens.js +1 -75
  260. package/dist/es/components/button/Button.js +1 -184
  261. package/dist/es/components/button/ButtonContext.js +1 -1
  262. package/dist/es/components/button/ButtonGroup.js +1 -46
  263. package/dist/es/components/button/index.js +1 -7
  264. package/dist/es/components/button/tokens.js +1 -170
  265. package/dist/es/components/calendar/Calendar.js +1 -432
  266. package/dist/es/components/calendar/index.js +1 -2
  267. package/dist/es/components/calendar/tokens.js +1 -122
  268. package/dist/es/components/cascader/Cascader.js +1 -456
  269. package/dist/es/components/cascader/index.js +1 -3
  270. package/dist/es/components/cascader/tokens.js +1 -131
  271. package/dist/es/components/cascader/useCascaderExtend.js +1 -32
  272. package/dist/es/components/cell/Cell.js +1 -156
  273. package/dist/es/components/cell/CellContext.js +1 -6
  274. package/dist/es/components/cell/CellGroup.js +1 -81
  275. package/dist/es/components/cell/index.js +1 -8
  276. package/dist/es/components/cell/tokens.js +1 -160
  277. package/dist/es/components/checkbox/Checkbox.js +1 -220
  278. package/dist/es/components/checkbox/CheckboxContext.js +1 -1
  279. package/dist/es/components/checkbox/CheckboxGroup.js +1 -117
  280. package/dist/es/components/checkbox/index.js +1 -5
  281. package/dist/es/components/checkbox/tokens.js +1 -85
  282. package/dist/es/components/circle/Circle.js +1 -187
  283. package/dist/es/components/circle/index.js +1 -2
  284. package/dist/es/components/circle/tokens.js +1 -48
  285. package/dist/es/components/collapse/Collapse.js +1 -286
  286. package/dist/es/components/collapse/index.js +1 -2
  287. package/dist/es/components/collapse/tokens.js +1 -74
  288. package/dist/es/components/config-provider/ConfigProvider.js +1 -25
  289. package/dist/es/components/config-provider/DirectionContext.js +1 -2
  290. package/dist/es/components/config-provider/LocaleContext.js +1 -3
  291. package/dist/es/components/config-provider/index.js +1 -5
  292. package/dist/es/components/config-provider/locale/en-US.js +1 -106
  293. package/dist/es/components/config-provider/locale/zh-CN.js +1 -106
  294. package/dist/es/components/config-provider/tokens.js +1 -5
  295. package/dist/es/components/config-provider/useDirection.js +1 -3
  296. package/dist/es/components/config-provider/useLocale.js +1 -3
  297. package/dist/es/components/count-down/CountDown.js +1 -69
  298. package/dist/es/components/count-down/index.js +1 -3
  299. package/dist/es/components/count-down/tokens.js +1 -27
  300. package/dist/es/components/datetime-picker/DatetimePicker.js +1 -305
  301. package/dist/es/components/datetime-picker/index.js +1 -2
  302. package/dist/es/components/datetime-picker/tokens.js +1 -16
  303. package/dist/es/components/dialog/Dialog.js +1 -407
  304. package/dist/es/components/dialog/imperative.js +1 -185
  305. package/dist/es/components/dialog/index.js +1 -17
  306. package/dist/es/components/dialog/tokens.js +1 -57
  307. package/dist/es/components/divider/Divider.js +1 -107
  308. package/dist/es/components/divider/index.js +1 -2
  309. package/dist/es/components/divider/tokens.js +1 -55
  310. package/dist/es/components/empty/Empty.js +1 -100
  311. package/dist/es/components/empty/index.js +1 -2
  312. package/dist/es/components/empty/tokens.js +1 -48
  313. package/dist/es/components/error-boundary/ErrorBoundary.js +1 -62
  314. package/dist/es/components/error-boundary/index.js +1 -1
  315. package/dist/es/components/field/Field.js +1 -539
  316. package/dist/es/components/field/index.js +1 -6
  317. package/dist/es/components/field/tokens.js +1 -138
  318. package/dist/es/components/flex/Flex.js +1 -66
  319. package/dist/es/components/flex/FlexContext.js +1 -1
  320. package/dist/es/components/flex/FlexItem.js +1 -76
  321. package/dist/es/components/flex/index.js +1 -8
  322. package/dist/es/components/flex/tokens.js +1 -15
  323. package/dist/es/components/form/Form.js +1 -319
  324. package/dist/es/components/form/FormContext.js +1 -1
  325. package/dist/es/components/form/FormItem.js +1 -138
  326. package/dist/es/components/form/FormList.js +1 -81
  327. package/dist/es/components/form/index.js +1 -13
  328. package/dist/es/components/form/tokens.js +1 -8
  329. package/dist/es/components/form/utils.js +1 -45
  330. package/dist/es/components/grid/Grid.js +1 -99
  331. package/dist/es/components/grid/GridContext.js +1 -1
  332. package/dist/es/components/grid/GridItem.js +1 -138
  333. package/dist/es/components/grid/index.js +1 -6
  334. package/dist/es/components/grid/tokens.js +1 -98
  335. package/dist/es/components/image/Image.js +1 -238
  336. package/dist/es/components/image/index.js +1 -3
  337. package/dist/es/components/image/tokens.js +1 -60
  338. package/dist/es/components/image-preview/ImagePreview.js +1 -388
  339. package/dist/es/components/image-preview/imperative.js +1 -58
  340. package/dist/es/components/image-preview/index.js +1 -11
  341. package/dist/es/components/image-preview/tokens.js +1 -37
  342. package/dist/es/components/index.js +1 -110
  343. package/dist/es/components/input/Input.js +1 -109
  344. package/dist/es/components/input/index.js +1 -3
  345. package/dist/es/components/input/tokens.js +1 -16
  346. package/dist/es/components/loading/Loading.js +1 -57
  347. package/dist/es/components/loading/index.js +1 -2
  348. package/dist/es/components/loading/tokens.js +1 -25
  349. package/dist/es/components/nav-bar/NavBar.js +1 -171
  350. package/dist/es/components/nav-bar/index.js +1 -3
  351. package/dist/es/components/nav-bar/tokens.js +1 -83
  352. package/dist/es/components/notice-bar/NoticeBar.js +1 -344
  353. package/dist/es/components/notice-bar/index.js +1 -2
  354. package/dist/es/components/notice-bar/tokens.js +1 -32
  355. package/dist/es/components/notify/Notify.js +1 -242
  356. package/dist/es/components/notify/imperative.js +1 -131
  357. package/dist/es/components/notify/index.js +1 -5
  358. package/dist/es/components/notify/tokens.js +1 -67
  359. package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -467
  360. package/dist/es/components/number-keyboard/index.js +1 -3
  361. package/dist/es/components/number-keyboard/tokens.js +1 -53
  362. package/dist/es/components/overlay/Overlay.js +1 -50
  363. package/dist/es/components/overlay/index.js +1 -4
  364. package/dist/es/components/overlay/tokens.js +1 -7
  365. package/dist/es/components/password-input/PasswordInput.js +1 -327
  366. package/dist/es/components/password-input/index.js +1 -1
  367. package/dist/es/components/password-input/tokens.js +1 -41
  368. package/dist/es/components/picker/Picker.js +1 -1031
  369. package/dist/es/components/picker/index.js +1 -3
  370. package/dist/es/components/picker/tokens.js +1 -47
  371. package/dist/es/components/popup/Popup.js +1 -492
  372. package/dist/es/components/popup/index.js +1 -3
  373. package/dist/es/components/popup/tokens.js +1 -55
  374. package/dist/es/components/portal/Portal.js +1 -37
  375. package/dist/es/components/portal/PortalContext.js +1 -2
  376. package/dist/es/components/portal/PortalHost.js +1 -234
  377. package/dist/es/components/portal/index.js +1 -3
  378. package/dist/es/components/portal/tokens.js +1 -5
  379. package/dist/es/components/progress/Progress.js +1 -196
  380. package/dist/es/components/progress/index.js +1 -3
  381. package/dist/es/components/progress/tokens.js +1 -45
  382. package/dist/es/components/radio/Radio.js +1 -214
  383. package/dist/es/components/radio/RadioContext.js +1 -1
  384. package/dist/es/components/radio/RadioGroup.js +1 -82
  385. package/dist/es/components/radio/index.js +1 -5
  386. package/dist/es/components/radio/tokens.js +1 -80
  387. package/dist/es/components/safe-area-view/SafeAreaView.js +1 -40
  388. package/dist/es/components/safe-area-view/index.js +1 -1
  389. package/dist/es/components/safe-area-view/tokens.js +1 -5
  390. package/dist/es/components/search/Search.js +1 -189
  391. package/dist/es/components/search/index.js +1 -3
  392. package/dist/es/components/search/tokens.js +1 -48
  393. package/dist/es/components/selector/Selector.js +1 -166
  394. package/dist/es/components/selector/index.js +1 -3
  395. package/dist/es/components/selector/tokens.js +1 -88
  396. package/dist/es/components/share-sheet/ShareSheet.js +1 -267
  397. package/dist/es/components/share-sheet/index.js +1 -3
  398. package/dist/es/components/share-sheet/tokens.js +1 -49
  399. package/dist/es/components/sidebar/Sidebar.js +1 -84
  400. package/dist/es/components/sidebar/SidebarContext.js +1 -3
  401. package/dist/es/components/sidebar/SidebarItem.js +1 -84
  402. package/dist/es/components/sidebar/index.js +1 -8
  403. package/dist/es/components/sidebar/tokens.js +1 -80
  404. package/dist/es/components/skeleton/Skeleton.js +1 -143
  405. package/dist/es/components/skeleton/index.js +1 -4
  406. package/dist/es/components/skeleton/tokens.js +1 -33
  407. package/dist/es/components/slider/Slider.js +1 -596
  408. package/dist/es/components/slider/index.js +1 -2
  409. package/dist/es/components/slider/tokens.js +1 -31
  410. package/dist/es/components/space/Space.js +1 -115
  411. package/dist/es/components/space/index.js +1 -2
  412. package/dist/es/components/space/tokens.js +1 -32
  413. package/dist/es/components/stepper/Stepper.js +1 -465
  414. package/dist/es/components/stepper/index.js +1 -3
  415. package/dist/es/components/stepper/tokens.js +1 -54
  416. package/dist/es/components/swiper/Swiper.js +1 -344
  417. package/dist/es/components/swiper/SwiperItem.js +1 -1
  418. package/dist/es/components/swiper/SwiperPagIndicator.js +1 -87
  419. package/dist/es/components/swiper/index.js +1 -10
  420. package/dist/es/components/swiper/tokens.js +1 -12
  421. package/dist/es/components/switch/Switch.js +1 -83
  422. package/dist/es/components/switch/index.js +1 -3
  423. package/dist/es/components/switch/tokens.js +1 -25
  424. package/dist/es/components/tabbar/Tabbar.js +1 -130
  425. package/dist/es/components/tabbar/TabbarContext.js +1 -3
  426. package/dist/es/components/tabbar/TabbarItem.js +1 -139
  427. package/dist/es/components/tabbar/index.js +1 -7
  428. package/dist/es/components/tabbar/tokens.js +1 -35
  429. package/dist/es/components/tabs/Tabs.js +1 -841
  430. package/dist/es/components/tabs/index.js +1 -7
  431. package/dist/es/components/tabs/tokens.js +1 -105
  432. package/dist/es/components/tag/Tag.js +1 -105
  433. package/dist/es/components/tag/index.js +1 -2
  434. package/dist/es/components/tag/tokens.js +1 -97
  435. package/dist/es/components/toast/Toast.js +1 -280
  436. package/dist/es/components/toast/imperative.js +1 -130
  437. package/dist/es/components/toast/index.js +1 -5
  438. package/dist/es/components/toast/tokens.js +1 -36
  439. package/dist/es/components/typography/Typography.js +1 -162
  440. package/dist/es/components/typography/index.js +1 -2
  441. package/dist/es/components/typography/tokens.js +1 -82
  442. package/dist/es/components/water-mark/WaterMark.js +1 -153
  443. package/dist/es/components/water-mark/index.js +1 -4
  444. package/dist/es/components/water-mark/tokens.js +1 -42
  445. package/dist/es/design-system/Text.js +1 -19
  446. package/dist/es/design-system/ThemeContext.js +1 -6
  447. package/dist/es/design-system/ThemeProvider.js +1 -17
  448. package/dist/es/design-system/createComponentTokensHook.js +1 -15
  449. package/dist/es/design-system/index.js +1 -7
  450. package/dist/es/design-system/mergeTokensOverride.js +1 -2
  451. package/dist/es/design-system/presets.js +1 -139
  452. package/dist/es/design-system/tokens.js +1 -128
  453. package/dist/es/design-system/useTheme.js +1 -3
  454. package/dist/es/hooks/animation/index.js +1 -2
  455. package/dist/es/hooks/animation/useAnimatedTransition.js +1 -53
  456. package/dist/es/hooks/animation/useReducedMotion.js +1 -54
  457. package/dist/es/hooks/aria/index.js +1 -5
  458. package/dist/es/hooks/aria/useAriaListBox.js +1 -25
  459. package/dist/es/hooks/aria/useAriaOverlay.js +1 -25
  460. package/dist/es/hooks/aria/useAriaPress.js +1 -57
  461. package/dist/es/hooks/aria/useAriaToggle.js +1 -16
  462. package/dist/es/hooks/gesture/index.js +1 -2
  463. package/dist/es/hooks/gesture/useGestureScroll.js +1 -110
  464. package/dist/es/hooks/index.js +1 -8
  465. package/dist/es/hooks/overlay/OverlayStackStore.js +1 -93
  466. package/dist/es/hooks/overlay/index.js +1 -3
  467. package/dist/es/hooks/overlay/useOverlayStack.js +1 -40
  468. package/dist/es/hooks/useControllableValue.js +1 -29
  469. package/dist/es/hooks/useCountDown.js +1 -87
  470. package/dist/es/hooks/useHairline.js +1 -26
  471. package/dist/es/hooks/useSafeAreaPadding.js +1 -20
  472. package/dist/es/index.js +1 -11
  473. package/dist/es/nativewind.js +1 -0
  474. package/dist/es/platform/animation.js +1 -10
  475. package/dist/es/platform/history.js +1 -7
  476. package/dist/es/platform/index.js +1 -6
  477. package/dist/es/platform/measure.js +1 -32
  478. package/dist/es/platform/runtime.js +1 -4
  479. package/dist/es/platform/scrollLock.js +1 -16
  480. package/dist/es/types.js +1 -1
  481. package/dist/es/utils/array.js +1 -5
  482. package/dist/es/utils/color.js +1 -25
  483. package/dist/es/utils/compare.js +1 -13
  484. package/dist/es/utils/createPlatformShadow.js +1 -39
  485. package/dist/es/utils/date.js +1 -33
  486. package/dist/es/utils/deepMerge.js +1 -21
  487. package/dist/es/utils/hairline.js +1 -93
  488. package/dist/es/utils/index.js +1 -14
  489. package/dist/es/utils/number.js +1 -48
  490. package/dist/es/utils/promise.js +1 -2
  491. package/dist/es/utils/render.js +1 -7
  492. package/dist/es/utils/rtl.js +1 -17
  493. package/dist/es/utils/string.js +1 -13
  494. package/dist/es/utils/validate.js +1 -14
  495. package/dist/types/nativewind.d.ts +4 -0
  496. package/package.json +15 -3
@@ -1,3 +1 @@
1
- import Picker from './Picker';
2
- export default Picker;
3
- export { Picker };
1
+ import Picker from"./Picker";export default Picker;export{Picker};
@@ -1,47 +1 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- const createPickerTokens = foundations => {
3
- const {
4
- palette,
5
- spacing,
6
- fontSize,
7
- typography,
8
- radii
9
- } = foundations;
10
- return {
11
- defaults: {
12
- itemHeight: 44,
13
- visibleItemCount: 5,
14
- showToolbar: true,
15
- toolbarPosition: 'top',
16
- swipeDuration: 700,
17
- maskType: 'gradient'
18
- },
19
- colors: {
20
- background: '#ffffff',
21
- indicator: palette.default[200] ?? '#ebedf0',
22
- text: palette.default[900],
23
- textMuted: palette.default[900],
24
- textDisabled: palette.default[400],
25
- confirm: palette.primary[600],
26
- cancel: palette.default[600],
27
- mask: '#ffffff',
28
- loadingMask: 'rgba(255,255,255,0.65)'
29
- },
30
- spacing: {
31
- toolbarHeight: 44,
32
- actionPadding: spacing.lg
33
- },
34
- typography: {
35
- optionSize: fontSize.md,
36
- toolbarSize: fontSize.md,
37
- fontFamily: typography.fontFamily,
38
- optionWeight: typography.weight.regular,
39
- toolbarWeight: typography.weight.medium
40
- },
41
- radius: {
42
- toolbar: radii.none,
43
- container: radii.xs
44
- }
45
- };
46
- };
47
- export const usePickerTokens = createComponentTokensHook('picker', createPickerTokens);
1
+ import{createComponentTokensHook}from"../../design-system";const createPickerTokens=e=>{const{palette:t,spacing:o,fontSize:i,typography:a,radii:n}=e;return{defaults:{itemHeight:44,visibleItemCount:5,showToolbar:!0,toolbarPosition:"top",swipeDuration:700,maskType:"gradient"},colors:{background:"#ffffff",indicator:t.default[200]??"#ebedf0",text:t.default[900],textMuted:t.default[900],textDisabled:t.default[400],confirm:t.primary[600],cancel:t.default[600],mask:"#ffffff",loadingMask:"rgba(255,255,255,0.65)"},spacing:{toolbarHeight:44,actionPadding:o.lg},typography:{optionSize:i.md,toolbarSize:i.md,fontFamily:a.fontFamily,optionWeight:a.weight.regular,toolbarWeight:a.weight.medium},radius:{toolbar:n.none,container:n.xs}}};export const usePickerTokens=createComponentTokensHook("picker",createPickerTokens);
@@ -1,492 +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, Platform, Pressable, StyleSheet, Text, View, useWindowDimensions } from 'react-native';
4
- import { SafeAreaView } from '../safe-area-view';
5
- import { addPopStateListener, nativeDriverEnabled } from '../../platform';
6
- import { useReducedMotion } from '../../hooks/animation';
7
- import { createPlatformShadow } from '../../utils/createPlatformShadow';
8
- import { isRenderable, isText } from '../../utils/validate';
9
- import { Cross } from 'react-native-system-icon';
10
- import Portal from '../portal/Portal';
11
- import { useAriaOverlay, useOverlayStack } from '../../hooks';
12
- import { useLocale } from '../config-provider/useLocale';
13
- import { useDirection } from '../config-provider/useDirection';
14
- import { usePopupTokens } from './tokens';
15
- const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
16
- const EASE_OUT = Easing.bezier(0.075, 0.82, 0.165, 1.0);
17
- const EASE_IN = Easing.bezier(0.55, 0.055, 0.675, 0.19);
18
- const CAPTURE = () => true;
19
- const placementConfig = {
20
- top: {
21
- container: {
22
- justifyContent: 'flex-start',
23
- alignItems: 'center'
24
- },
25
- axis: 'y'
26
- },
27
- bottom: {
28
- container: {
29
- justifyContent: 'flex-end',
30
- alignItems: 'center'
31
- },
32
- axis: 'y'
33
- },
34
- left: {
35
- container: {
36
- justifyContent: 'center',
37
- alignItems: 'flex-start'
38
- },
39
- axis: 'x'
40
- },
41
- right: {
42
- container: {
43
- justifyContent: 'center',
44
- alignItems: 'flex-end'
45
- },
46
- axis: 'x'
47
- },
48
- center: {
49
- container: {
50
- justifyContent: 'center',
51
- alignItems: 'center'
52
- },
53
- axis: 'y'
54
- }
55
- };
56
- const buildRadius = (round, p, r) => {
57
- if (!round) return;
58
- if (p === 'top') return {
59
- borderBottomLeftRadius: r,
60
- borderBottomRightRadius: r
61
- };
62
- if (p === 'bottom') return {
63
- borderTopLeftRadius: r,
64
- borderTopRightRadius: r
65
- };
66
- if (p === 'left') return {
67
- borderTopRightRadius: r,
68
- borderBottomRightRadius: r
69
- };
70
- if (p === 'right') return {
71
- borderTopLeftRadius: r,
72
- borderBottomLeftRadius: r
73
- };
74
- return {
75
- borderRadius: r
76
- };
77
- };
78
- const hiddenStyle = {
79
- opacity: 0,
80
- shadowOpacity: 0,
81
- shadowRadius: 0,
82
- elevation: 0
83
- };
84
- const PopupImpl = props => {
85
- const locale = useLocale();
86
- const layoutDir = useDirection();
87
- const {
88
- visible,
89
- placement: placementProp,
90
- position,
91
- title,
92
- description,
93
- tokensOverride,
94
- overlay = true,
95
- overlayStyle,
96
- overlayAccessibilityLabel = locale?.vanPopup?.closeOverlay ?? 'Close overlay',
97
- closeOnOverlayPress,
98
- closeOnClickOverlay,
99
- overlayTestID = 'popup-overlay',
100
- closeable = false,
101
- closeIcon,
102
- closeIconPosition = 'top-right',
103
- round,
104
- safeArea = false,
105
- safeAreaInsetTop = false,
106
- safeAreaInsetBottom: safeBottomP,
107
- lockScroll = true,
108
- destroyOnClose = true,
109
- duration = 300,
110
- zIndex,
111
- closeOnBackPress = false,
112
- closeOnPopstate = false,
113
- children,
114
- beforeClose,
115
- onClickOverlay,
116
- onClose,
117
- onOpen,
118
- onOpened,
119
- onClosed,
120
- stopPropagation = true,
121
- style,
122
- contentAnimationStyle,
123
- ...rest
124
- } = props;
125
- const placement = placementProp ?? position ?? 'center';
126
- const closeOvl = closeOnClickOverlay ?? closeOnOverlayPress ?? true;
127
- const isCenter = placement === 'center';
128
- const safeAreaInsetBottom = safeBottomP ?? false;
129
- const tokens = usePopupTokens(tokensOverride);
130
- const reducedMotion = useReducedMotion();
131
- const cbRef = useRef({
132
- onOpened,
133
- onClosed,
134
- onOpen,
135
- onClose,
136
- beforeClose,
137
- onClickOverlay
138
- });
139
- cbRef.current = {
140
- onOpened,
141
- onClosed,
142
- onOpen,
143
- onClose,
144
- beforeClose,
145
- onClickOverlay
146
- };
147
- const ds = useMemo(() => {
148
- const shadow = createPlatformShadow(tokens.shadow);
149
- const {
150
- colors: c,
151
- spacing: s,
152
- typography: t,
153
- layout: l
154
- } = tokens;
155
- return {
156
- popup: {
157
- backgroundColor: c.background,
158
- padding: s.padding,
159
- ...shadow
160
- },
161
- title: {
162
- color: c.title,
163
- fontFamily: t.fontFamily,
164
- fontSize: t.titleSize,
165
- fontWeight: t.titleWeight,
166
- marginHorizontal: s.descriptionHorizontal,
167
- textAlign: 'center'
168
- },
169
- titleWrap: {
170
- marginTop: s.titleTop,
171
- marginBottom: s.titleBottom,
172
- marginHorizontal: s.descriptionHorizontal,
173
- alignItems: 'center'
174
- },
175
- desc: {
176
- color: c.description,
177
- fontFamily: t.fontFamily,
178
- fontSize: t.descriptionSize,
179
- lineHeight: t.descriptionLineHeight
180
- },
181
- descWrap: {
182
- marginHorizontal: s.descriptionHorizontal,
183
- marginBottom: s.descriptionBottom
184
- },
185
- closeBase: {
186
- minWidth: s.closeIconSize,
187
- minHeight: s.closeIconSize,
188
- padding: s.closeIconPadding
189
- },
190
- closeDef: {
191
- width: s.closeIconSize,
192
- height: s.closeIconSize
193
- },
194
- side: {
195
- width: l.sideWidth,
196
- maxWidth: l.maxWidth
197
- },
198
- center: {
199
- minWidth: l.minWidth,
200
- maxWidth: l.centerMaxWidth
201
- }
202
- };
203
- }, [tokens]);
204
- const [mounted, setMounted] = useState(visible);
205
- const [interVis, setInterVis] = useState(visible);
206
- const isOpen = visible || interVis;
207
- const canCloseOvl = closeOvl && (onClose || beforeClose);
208
- const progress = useRef(new Animated.Value(0)).current;
209
- const animRef = useRef(null);
210
- const seqRef = useRef(0);
211
- const prevVis = useRef(visible);
212
- const closingRef = useRef(false);
213
- const isV = placement === 'top' || placement === 'bottom';
214
- const isH = placement === 'left' || placement === 'right';
215
- const dir = placement === 'top' || placement === 'left' ? -1 : 1;
216
- const runAnim = useCallback((show, rm) => {
217
- seqRef.current += 1;
218
- const seq = seqRef.current;
219
- animRef.current?.stop();
220
- const d = rm ? 0 : duration;
221
- const a = Animated.timing(progress, {
222
- toValue: show ? 1 : 0,
223
- duration: d,
224
- easing: show ? EASE_OUT : EASE_IN,
225
- useNativeDriver: nativeDriverEnabled,
226
- isInteraction: false
227
- });
228
- animRef.current = a;
229
- a.start(({
230
- finished
231
- }) => {
232
- if (!finished || seq !== seqRef.current) return;
233
- if (show) cbRef.current.onOpened?.();else {
234
- setInterVis(false);
235
- if (destroyOnClose) setMounted(false);
236
- cbRef.current.onClosed?.();
237
- }
238
- });
239
- }, [destroyOnClose, duration, progress]);
240
- useEffect(() => {
241
- if (visible) {
242
- setMounted(true);
243
- setInterVis(true);
244
- runAnim(true, reducedMotion);
245
- } else {
246
- if (prevVis.current) runAnim(false, reducedMotion);
247
- }
248
- }, [runAnim, visible, reducedMotion]);
249
- useEffect(() => {
250
- if (visible && !prevVis.current) cbRef.current.onOpen?.();
251
- prevVis.current = visible;
252
- }, [visible]);
253
- useEffect(() => () => {
254
- animRef.current?.stop();
255
- }, []);
256
- const requestClose = useCallback(async reason => {
257
- if (closingRef.current) return;
258
- closingRef.current = true;
259
- try {
260
- if (cbRef.current.beforeClose) {
261
- const r = await cbRef.current.beforeClose(reason);
262
- if (r === false) return;
263
- }
264
- ;
265
- cbRef.current.onClose?.();
266
- } finally {
267
- closingRef.current = false;
268
- }
269
- }, []);
270
- useEffect(() => {
271
- if (!closeOnPopstate) return;
272
- return addPopStateListener(() => {
273
- if (visible) requestClose('close');
274
- });
275
- }, [closeOnPopstate, requestClose, visible]);
276
- const handleOvlPress = useCallback(() => {
277
- cbRef.current.onClickOverlay?.();
278
- if (closeOvl) requestClose('overlay');
279
- }, [requestClose, closeOvl]);
280
- const handleClosePress = useCallback(() => requestClose('close-icon'), [requestClose]);
281
- const handleEscape = useCallback(() => requestClose('close'), [requestClose]);
282
- const {
283
- zIndex: stackZ
284
- } = useOverlayStack({
285
- visible: isOpen,
286
- onClose: handleEscape,
287
- closeOnBack: closeOnBackPress,
288
- lockScroll,
289
- zIndex,
290
- type: 'popup'
291
- });
292
- const {
293
- overlayRef,
294
- overlayProps
295
- } = useAriaOverlay({
296
- isOpen,
297
- onClose: () => requestClose('overlay'),
298
- isDismissable: closeOvl,
299
- overlayProps: {
300
- ...(Platform.OS === 'android' ? {} : {
301
- accessibilityRole: 'dialog'
302
- }),
303
- accessibilityLiveRegion: 'polite'
304
- }
305
- });
306
- const {
307
- onLayout: ovlOnLayout,
308
- ...ovlRest
309
- } = overlayProps;
310
- const contentProps = useMemo(() => stopPropagation ? {
311
- ...ovlRest,
312
- onStartShouldSetResponder: CAPTURE
313
- } : ovlRest, [ovlRest, stopPropagation]);
314
- const cfg = placementConfig[placement];
315
- const radiusStyle = buildRadius(round, placement, tokens.radius.round);
316
- const {
317
- width: wW,
318
- height: wH
319
- } = useWindowDimensions();
320
- const dist = isH ? wW : isV ? wH : 0;
321
- const translateT = useMemo(() => {
322
- if (isCenter) return null;
323
- const out = [dist * dir, 0];
324
- return cfg.axis === 'y' ? {
325
- translateY: progress.interpolate({
326
- inputRange: [0, 1],
327
- outputRange: out
328
- })
329
- } : {
330
- translateX: progress.interpolate({
331
- inputRange: [0, 1],
332
- outputRange: out
333
- })
334
- };
335
- }, [cfg.axis, dir, dist, isCenter, progress]);
336
- const baseT = useMemo(() => translateT ? [translateT] : [], [translateT]);
337
- const animStyle = useMemo(() => {
338
- const et = contentAnimationStyle?.transform;
339
- const t = Array.isArray(et) ? [...baseT, ...et] : baseT;
340
- const s = {
341
- ...contentAnimationStyle,
342
- transform: t
343
- };
344
- if (isCenter) return {
345
- ...s,
346
- opacity: progress
347
- };
348
- if (contentAnimationStyle?.opacity == null) return {
349
- ...s,
350
- opacity: 1
351
- };
352
- return s;
353
- }, [baseT, contentAnimationStyle, isCenter, progress]);
354
- const [saTopH, setSaTopH] = useState(0);
355
- const onSaTop = useCallback(e => setSaTopH(e.nativeEvent.layout.height), []);
356
- const shouldRender = mounted || visible;
357
- const hidden = !isOpen;
358
- const hasHeader = isRenderable(title) || isRenderable(description);
359
- const headerNode = useMemo(() => {
360
- if (!hasHeader) return null;
361
- const pad = tokens.spacing.closeIconRight + tokens.spacing.closeIconSize;
362
- const ps = closeable && closeIconPosition.startsWith('top-') ? closeIconPosition.endsWith('right') ? {
363
- paddingRight: pad
364
- } : {
365
- paddingLeft: pad
366
- } : undefined;
367
- const renderH = (n, ts, ws) => !isRenderable(n) ? null : isText(n) ? /*#__PURE__*/React.createElement(Text, {
368
- style: ts
369
- }, n) : /*#__PURE__*/React.createElement(View, {
370
- style: ws
371
- }, n);
372
- return /*#__PURE__*/React.createElement(View, {
373
- style: [S.header, ps]
374
- }, renderH(title, [S.title, ds.title], ds.titleWrap), renderH(description, [S.desc, ds.desc], ds.descWrap));
375
- }, [closeable, closeIconPosition, description, ds, hasHeader, title, tokens.spacing.closeIconRight, tokens.spacing.closeIconSize]);
376
- const closeNode = useMemo(() => {
377
- if (!closeable) return null;
378
- const custom = closeIcon != null;
379
- const v = closeIconPosition.includes('bottom') ? {
380
- bottom: tokens.spacing.closeIconTop
381
- } : {
382
- top: tokens.spacing.closeIconTop + saTopH
383
- };
384
- const isRtl = layoutDir === 'rtl';
385
- const h = closeIconPosition.endsWith('left') ? isRtl ? {
386
- right: tokens.spacing.closeIconRight
387
- } : {
388
- left: tokens.spacing.closeIconRight
389
- } : isRtl ? {
390
- left: tokens.spacing.closeIconRight
391
- } : {
392
- right: tokens.spacing.closeIconRight
393
- };
394
- return /*#__PURE__*/React.createElement(Pressable, {
395
- style: [S.closeBase, ds.closeBase, v, h, !custom && ds.closeDef],
396
- hitSlop: 8,
397
- onPress: handleClosePress
398
- }, custom ? closeIcon : /*#__PURE__*/React.createElement(Cross, {
399
- size: 22,
400
- fill: tokens.colors.closeIcon,
401
- color: tokens.colors.closeIcon
402
- }));
403
- }, [closeIcon, closeIconPosition, closeable, ds, handleClosePress, saTopH, tokens.colors.closeIcon, tokens.spacing.closeIconRight, tokens.spacing.closeIconTop]);
404
- const body = hasHeader ? /*#__PURE__*/React.createElement(React.Fragment, null, headerNode, children) : children;
405
- if (!shouldRender) return null;
406
- const rz = stackZ ?? zIndex;
407
- const safeContent = safeArea ? /*#__PURE__*/React.createElement(SafeAreaView, null, body) : /*#__PURE__*/React.createElement(React.Fragment, null, safeAreaInsetTop && /*#__PURE__*/React.createElement(SafeAreaView, {
408
- edge: "top",
409
- onLayout: onSaTop,
410
- pointerEvents: "none"
411
- }), body, safeAreaInsetBottom && /*#__PURE__*/React.createElement(SafeAreaView, {
412
- edge: "bottom",
413
- pointerEvents: "none"
414
- }));
415
- return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(View, {
416
- style: [S.root, rz ? {
417
- zIndex: rz
418
- } : undefined],
419
- pointerEvents: "box-none"
420
- }, /*#__PURE__*/React.createElement(View, {
421
- style: [S.ctr, cfg.container],
422
- pointerEvents: isOpen ? 'auto' : 'none',
423
- accessibilityViewIsModal: isOpen,
424
- accessibilityLiveRegion: "polite",
425
- onAccessibilityEscape: handleEscape
426
- }, overlay && isOpen ? /*#__PURE__*/React.createElement(AnimatedPressable, _extends({
427
- testID: overlayTestID,
428
- style: [S.ovl, {
429
- backgroundColor: tokens.colors.overlay,
430
- opacity: progress
431
- }, overlayStyle],
432
- renderToHardwareTextureAndroid: Platform.OS === 'android',
433
- shouldRasterizeIOS: Platform.OS === 'ios',
434
- pointerEvents: isOpen ? 'auto' : 'none'
435
- }, canCloseOvl ? {
436
- accessibilityRole: 'button',
437
- accessibilityLabel: overlayAccessibilityLabel,
438
- accessibilityHint: locale?.vanPopup?.closeHint ?? 'Double-tap to close'
439
- } : {
440
- accessible: false
441
- }, {
442
- onPress: handleOvlPress
443
- })) : null, !overlay && lockScroll && isOpen ? /*#__PURE__*/React.createElement(View, {
444
- style: S.lock,
445
- pointerEvents: "auto",
446
- onStartShouldSetResponder: CAPTURE,
447
- onMoveShouldSetResponder: CAPTURE
448
- }) : null, /*#__PURE__*/React.createElement(Animated.View, _extends({
449
- ref: overlayRef
450
- }, contentProps, {
451
- onLayout: ovlOnLayout,
452
- renderToHardwareTextureAndroid: Platform.OS === 'android',
453
- shouldRasterizeIOS: Platform.OS === 'ios',
454
- style: [ds.popup, isCenter && ds.center, isV && S.popV, isH && ds.side, radiusStyle, animStyle, style, hidden && hiddenStyle]
455
- }, rest), closeNode, safeContent))));
456
- };
457
- const S = StyleSheet.create({
458
- root: {
459
- ...StyleSheet.absoluteFillObject,
460
- justifyContent: 'center'
461
- },
462
- ctr: {
463
- flex: 1
464
- },
465
- ovl: {
466
- ...StyleSheet.absoluteFillObject,
467
- opacity: 0
468
- },
469
- header: {
470
- width: '100%'
471
- },
472
- title: {
473
- includeFontPadding: false
474
- },
475
- desc: {
476
- includeFontPadding: false
477
- },
478
- popV: {
479
- alignSelf: 'stretch'
480
- },
481
- closeBase: {
482
- position: 'absolute',
483
- zIndex: 999,
484
- alignItems: 'center',
485
- justifyContent: 'center'
486
- },
487
- lock: {
488
- ...StyleSheet.absoluteFillObject
489
- }
490
- });
491
- export const Popup = /*#__PURE__*/React.memo(PopupImpl);
492
- export default Popup;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Platform,Pressable,StyleSheet,Text,View,useWindowDimensions}from"react-native";import{SafeAreaView}from"../safe-area-view";import{addPopStateListener,nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{isRenderable,isText}from"../../utils/validate";import{Cross}from"react-native-system-icon";import Portal from"../portal/Portal";import{useAriaOverlay,useOverlayStack}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{usePopupTokens}from"./tokens";const AnimatedPressable=Animated.createAnimatedComponent(Pressable),EASE_OUT=Easing.bezier(.075,.82,.165,1),EASE_IN=Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>{if(e)return"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}},hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=useLocale(),o=useDirection(),{visible:n,placement:i,position:r,title:a,description:s,tokensOverride:l,overlay:c=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:m,overlayTestID:f="popup-overlay",closeable:g=!1,closeIcon:y,closeIconPosition:R="top-right",round:b,safeArea:h=!1,safeAreaInsetTop:v=!1,safeAreaInsetBottom:C,lockScroll:E=!0,destroyOnClose:I=!0,duration:P=300,zIndex:O,closeOnBackPress:x=!1,closeOnPopstate:A=!1,children:w,beforeClose:k,onClickOverlay:T,onClose:z,onOpen:W,onOpened:L,onClosed:V,stopPropagation:B=!0,style:D,contentAnimationStyle:H,...M}=e,j=i??r??"center",F=m??p??!0,_="center"===j,U=C??!1,N=usePopupTokens(l),X=useReducedMotion(),Y=useRef({onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:k,onClickOverlay:T});Y.current={onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:k,onClickOverlay:T};const q=useMemo(()=>{const e=createPlatformShadow(N.shadow),{colors:t,spacing:o,typography:n,layout:i}=N;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:n.fontFamily,fontSize:n.titleSize,fontWeight:n.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:n.fontFamily,fontSize:n.descriptionSize,lineHeight:n.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:i.sideWidth,maxWidth:i.maxWidth},center:{minWidth:i.minWidth,maxWidth:i.centerMaxWidth}}},[N]),[G,J]=useState(n),[K,Q]=useState(n),Z=n||K,$=F&&(z||k),ee=useRef(new Animated.Value(0)).current,te=useRef(null),oe=useRef(0),ne=useRef(n),ie=useRef(!1),re="top"===j||"bottom"===j,ae="left"===j||"right"===j,se="top"===j||"left"===j?-1:1,le=useCallback((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const n=t?0:P,i=Animated.timing(ee,{toValue:e?1:0,duration:n,easing:e?EASE_OUT:EASE_IN,useNativeDriver:nativeDriverEnabled,isInteraction:!1});te.current=i,i.start(({finished:t})=>{t&&o===oe.current&&(e?Y.current.onOpened?.():(Q(!1),I&&J(!1),Y.current.onClosed?.()))})},[I,P,ee]);useEffect(()=>{n?(J(!0),Q(!0),le(!0,X)):ne.current&&le(!1,X)},[le,n,X]),useEffect(()=>{n&&!ne.current&&Y.current.onOpen?.(),ne.current=n},[n]),useEffect(()=>()=>{te.current?.stop()},[]);const ce=useCallback(async e=>{if(!ie.current){ie.current=!0;try{if(Y.current.beforeClose){if(!1===await Y.current.beforeClose(e))return}Y.current.onClose?.()}finally{ie.current=!1}}},[]);useEffect(()=>{if(A)return addPopStateListener(()=>{n&&ce("close")})},[A,ce,n]);const ue=useCallback(()=>{Y.current.onClickOverlay?.(),F&&ce("overlay")},[ce,F]),de=useCallback(()=>ce("close-icon"),[ce]),pe=useCallback(()=>ce("close"),[ce]),{zIndex:me}=useOverlayStack({visible:Z,onClose:pe,closeOnBack:x,lockScroll:E,zIndex:O,type:"popup"}),{overlayRef:fe,overlayProps:ge}=useAriaOverlay({isOpen:Z,onClose:()=>ce("overlay"),isDismissable:F,overlayProps:{..."android"===Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ye,...Re}=ge,be=useMemo(()=>B?{...Re,onStartShouldSetResponder:CAPTURE}:Re,[Re,B]),he=placementConfig[j],Se=buildRadius(b,j,N.radius.round),{width:ve,height:Ce}=useWindowDimensions(),Ee=ae?ve:re?Ce:0,Ie=useMemo(()=>{if(_)return null;const e=[Ee*se,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,se,Ee,_,ee]),Pe=useMemo(()=>Ie?[Ie]:[],[Ie]),Oe=useMemo(()=>{const e=H?.transform,t=Array.isArray(e)?[...Pe,...e]:Pe,o={...H,transform:t};return _?{...o,opacity:ee}:null==H?.opacity?{...o,opacity:1}:o},[Pe,H,_,ee]),[xe,Ae]=useState(0),we=useCallback(e=>Ae(e.nativeEvent.layout.height),[]),ke=G||n,Te=!Z,ze=isRenderable(a)||isRenderable(s),We=useMemo(()=>{if(!ze)return null;const e=N.spacing.closeIconRight+N.spacing.closeIconSize,t=g&&R.startsWith("top-")?R.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>isRenderable(e)?isText(e)?React.createElement(Text,{style:t},e):React.createElement(View,{style:o},e):null;return React.createElement(View,{style:[S.header,t]},o(a,[S.title,q.title],q.titleWrap),o(s,[S.desc,q.desc],q.descWrap))},[g,R,s,q,ze,a,N.spacing.closeIconRight,N.spacing.closeIconSize]),Le=useMemo(()=>{if(!g)return null;const e=null!=y,t=R.includes("bottom")?{bottom:N.spacing.closeIconTop}:{top:N.spacing.closeIconTop+xe},n="rtl"===o,i=R.endsWith("left")?n?{right:N.spacing.closeIconRight}:{left:N.spacing.closeIconRight}:n?{left:N.spacing.closeIconRight}:{right:N.spacing.closeIconRight};return React.createElement(Pressable,{style:[S.closeBase,q.closeBase,t,i,!e&&q.closeDef],hitSlop:8,onPress:de},e?y:React.createElement(Cross,{size:22,fill:N.colors.closeIcon,color:N.colors.closeIcon}))},[y,R,g,q,de,xe,N.colors.closeIcon,N.spacing.closeIconRight,N.spacing.closeIconTop]),Ve=ze?React.createElement(React.Fragment,null,We,w):w;if(!ke)return null;const Be=me??O,De=h?React.createElement(SafeAreaView,null,Ve):React.createElement(React.Fragment,null,v&&React.createElement(SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),Ve,U&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return React.createElement(Portal,null,React.createElement(View,{style:[S.root,Be?{zIndex:Be}:void 0],pointerEvents:"box-none"},React.createElement(View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},c&&Z?React.createElement(AnimatedPressable,_extends({testID:f,style:[S.ovl,{backgroundColor:N.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!c&&E&&Z?React.createElement(View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,React.createElement(Animated.View,_extends({ref:fe},be,{onLayout:ye,renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,style:[q.popup,_&&q.center,re&&S.popV,ae&&q.side,Se,Oe,D,Te&&hiddenStyle]},M),Le,De))))},S=StyleSheet.create({root:{...StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{...StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{...StyleSheet.absoluteFillObject}});export const Popup=React.memo(PopupImpl);export default Popup;
@@ -1,3 +1 @@
1
- import Popup from './Popup';
2
- export default Popup;
3
- export { Popup };
1
+ import Popup from"./Popup";export default Popup;export{Popup};
@@ -1,55 +1 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- export const createPopupTokens = foundations => {
3
- const {
4
- palette,
5
- spacing,
6
- radii,
7
- fontSize,
8
- typography
9
- } = foundations;
10
- return {
11
- colors: {
12
- overlay: 'rgba(0,0,0,0.5)',
13
- background: '#ffffff',
14
- title: palette.default[900],
15
- description: palette.default[500],
16
- closeIcon: palette.default[300]
17
- },
18
- radius: {
19
- round: radii.lg,
20
- shadow: 18
21
- },
22
- spacing: {
23
- padding: spacing.lg,
24
- titleTop: spacing.xl,
25
- titleBottom: spacing.md,
26
- descriptionHorizontal: spacing.xl,
27
- descriptionBottom: spacing.md,
28
- closeIconTop: spacing.md,
29
- closeIconRight: spacing.md,
30
- closeIconSize: 36,
31
- closeIconPadding: spacing.ssm
32
- },
33
- typography: {
34
- fontFamily: typography.fontFamily,
35
- titleSize: fontSize.md,
36
- titleWeight: typography.weight.medium,
37
- descriptionSize: fontSize.sm,
38
- descriptionLineHeight: 20
39
- },
40
- shadow: {
41
- color: 'rgba(0,0,0,0.25)',
42
- opacity: 0.35,
43
- radius: 18,
44
- offsetY: 8,
45
- elevation: 24
46
- },
47
- layout: {
48
- maxWidth: 420,
49
- minWidth: 260,
50
- centerMaxWidth: 360,
51
- sideWidth: '80%'
52
- }
53
- };
54
- };
55
- export const usePopupTokens = createComponentTokensHook('popup', createPopupTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createPopupTokens=o=>{const{palette:e,spacing:t,radii:i,fontSize:n,typography:s}=o;return{colors:{overlay:"rgba(0,0,0,0.5)",background:"#ffffff",title:e.default[900],description:e.default[500],closeIcon:e.default[300]},radius:{round:i.lg,shadow:18},spacing:{padding:t.lg,titleTop:t.xl,titleBottom:t.md,descriptionHorizontal:t.xl,descriptionBottom:t.md,closeIconTop:t.md,closeIconRight:t.md,closeIconSize:36,closeIconPadding:t.ssm},typography:{fontFamily:s.fontFamily,titleSize:n.md,titleWeight:s.weight.medium,descriptionSize:n.sm,descriptionLineHeight:20},shadow:{color:"rgba(0,0,0,0.25)",opacity:.35,radius:18,offsetY:8,elevation:24},layout:{maxWidth:420,minWidth:260,centerMaxWidth:360,sideWidth:"80%"}}};export const usePopupTokens=createComponentTokensHook("popup",createPopupTokens);
@@ -1,37 +1 @@
1
- import React, { useContext, useLayoutEffect, useRef } from 'react';
2
- import { PortalHost, portalManager as globalManager, portalStore } from './PortalHost';
3
- import { PortalContext } from './PortalContext';
4
- const PortalComponentImpl = ({
5
- children,
6
- isOpen,
7
- visible
8
- }, _ref) => {
9
- const manager = useContext(PortalContext) ?? globalManager;
10
- const keyRef = useRef(null);
11
- const content = isOpen ?? visible ?? true ? children : null;
12
- useLayoutEffect(() => {
13
- keyRef.current === null ? keyRef.current = manager.mount(content) : manager.update(keyRef.current, content);
14
- }, [manager, content]);
15
- useLayoutEffect(() => () => {
16
- if (keyRef.current != null) {
17
- manager.unmount(keyRef.current);
18
- keyRef.current = null;
19
- }
20
- }, [manager]);
21
- return null;
22
- };
23
- const PortalComponentRef = /*#__PURE__*/React.forwardRef(PortalComponentImpl);
24
- PortalComponentRef.displayName = 'Portal';
25
- const PortalComponent = /*#__PURE__*/React.memo(PortalComponentRef);
26
- const add = (content, key) => globalManager.mount(content, key);
27
- const remove = key => globalManager.unmount(key);
28
- const update = (key, content) => globalManager.update(key, content);
29
- const clear = () => portalStore.clear();
30
- export const Portal = Object.assign(PortalComponent, {
31
- Host: PortalHost,
32
- add,
33
- remove,
34
- update,
35
- clear
36
- });
37
- export default Portal;
1
+ import React,{useContext,useLayoutEffect,useRef}from"react";import{PortalHost,portalManager as globalManager,portalStore}from"./PortalHost";import{PortalContext}from"./PortalContext";const PortalComponentImpl=({children:t,isOpen:o,visible:e},a)=>{const r=useContext(PortalContext)??globalManager,l=useRef(null),n=o??e??1?t:null;return useLayoutEffect(()=>{null===l.current?l.current=r.mount(n):r.update(l.current,n)},[r,n]),useLayoutEffect(()=>()=>{null!=l.current&&(r.unmount(l.current),l.current=null)},[r]),null},PortalComponentRef=React.forwardRef(PortalComponentImpl);PortalComponentRef.displayName="Portal";const PortalComponent=React.memo(PortalComponentRef),add=(t,o)=>globalManager.mount(t,o),remove=t=>globalManager.unmount(t),update=(t,o)=>globalManager.update(t,o),clear=()=>portalStore.clear();export const Portal=Object.assign(PortalComponent,{Host:PortalHost,add:add,remove:remove,update:update,clear:clear});export default Portal;
@@ -1,2 +1 @@
1
- import React from 'react';
2
- export const PortalContext = /*#__PURE__*/React.createContext(null);
1
+ import React from"react";export const PortalContext=React.createContext(null);