react-native-system-ui 1.0.2 → 1.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 (498) 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/components/nav-bar/tokens.d.ts +1 -1
  496. package/dist/types/design-system/tokens.d.ts +1 -0
  497. package/dist/types/nativewind.d.ts +4 -0
  498. package/package.json +15 -3
@@ -1,49 +1 @@
1
- import { createComponentTokensHook } from "../../design-system";
2
- export const createAvatarTokens = foundations => ({
3
- defaults: {
4
- size: "medium",
5
- shape: "circle"
6
- },
7
- layout: {
8
- container: {
9
- alignItems: "center",
10
- justifyContent: "center",
11
- overflow: "hidden"
12
- },
13
- text: {
14
- includeFontPadding: false,
15
- textAlignVertical: "center"
16
- },
17
- image: {
18
- width: "100%",
19
- height: "100%"
20
- },
21
- iconWrapper: {
22
- alignItems: "center",
23
- justifyContent: "center"
24
- }
25
- },
26
- colors: {
27
- background: foundations.palette.default[100],
28
- text: foundations.palette.default[800],
29
- transparent: "transparent"
30
- },
31
- typography: {
32
- fontWeight: "600",
33
- fallbackTextScale: 0.5
34
- },
35
- sizing: {
36
- sizes: {
37
- small: 24,
38
- medium: 32,
39
- large: 40
40
- },
41
- iconMaxSize: 32,
42
- loadingSize: 12
43
- },
44
- radii: {
45
- squareMin: 6,
46
- squareDivisor: 6
47
- }
48
- });
49
- export const useAvatarTokens = createComponentTokensHook("avatar", createAvatarTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createAvatarTokens=e=>({defaults:{size:"medium",shape:"circle"},layout:{container:{alignItems:"center",justifyContent:"center",overflow:"hidden"},text:{includeFontPadding:!1,textAlignVertical:"center"},image:{width:"100%",height:"100%"},iconWrapper:{alignItems:"center",justifyContent:"center"}},colors:{background:e.palette.default[100],text:e.palette.default[800],transparent:"transparent"},typography:{fontWeight:"600",fallbackTextScale:.5},sizing:{sizes:{small:24,medium:32,large:40},iconMaxSize:32,loadingSize:12},radii:{squareMin:6,squareDivisor:6}});export const useAvatarTokens=createComponentTokensHook("avatar",createAvatarTokens);
@@ -1,147 +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, useMemo, useState } from 'react';
3
- import { Pressable, View } from 'react-native';
4
- import { isNumericLike, isRenderable, renderTextOrNode } from '../../utils';
5
- import { useBadgeTokens } from './tokens';
6
- const BadgeImpl = (props, ref) => {
7
- const {
8
- children,
9
- content,
10
- color,
11
- textColor,
12
- dot: dotP,
13
- max,
14
- offset,
15
- showZero: showZeroP,
16
- badgeStyle,
17
- textStyle,
18
- onPress,
19
- style,
20
- tokensOverride,
21
- ...rest
22
- } = props;
23
- const tokens = useBadgeTokens(tokensOverride);
24
- const dot = dotP ?? tokens.defaults.dot;
25
- const showZero = showZeroP ?? tokens.defaults.showZero;
26
- const hasCh = React.Children.count(children) > 0;
27
- const {
28
- visible,
29
- formattedContent
30
- } = useMemo(() => {
31
- const num = isNumericLike(content) ? Number(content) : null;
32
- const hide = num === 0 && !showZero;
33
- const vis = dot || isRenderable(content) && !hide;
34
- if (!vis || dot) return {
35
- visible: vis,
36
- formattedContent: null
37
- };
38
- const numMax = isNumericLike(max) ? Number(max) : null;
39
- const fmt = num !== null && numMax !== null && num > numMax ? `${numMax}+` : content;
40
- return {
41
- visible: true,
42
- formattedContent: fmt
43
- };
44
- }, [content, dot, max, showZero]);
45
- const [sz, setSz] = useState({
46
- width: 0,
47
- height: 0
48
- });
49
- const onLay = useCallback(e => {
50
- const {
51
- width,
52
- height
53
- } = e.nativeEvent.layout;
54
- setSz(prev => prev.width === width && prev.height === height ? prev : {
55
- width,
56
- height
57
- });
58
- }, []);
59
- const transStyle = useMemo(() => {
60
- if (!hasCh) return undefined;
61
- if (dot) {
62
- const h = tokens.sizing.dotSize / 2;
63
- return {
64
- transform: [{
65
- translateX: h
66
- }, {
67
- translateY: -h
68
- }]
69
- };
70
- }
71
- ;
72
- if (sz.width === 0) return {
73
- opacity: 0
74
- };
75
- return {
76
- transform: [{
77
- translateX: sz.width / 2
78
- }, {
79
- translateY: -sz.height / 2
80
- }]
81
- };
82
- }, [dot, hasCh, sz.height, sz.width, tokens.sizing.dotSize]);
83
- const boxStyle = useMemo(() => dot ? {
84
- width: tokens.sizing.dotSize,
85
- height: tokens.sizing.dotSize,
86
- borderRadius: tokens.radii.dot,
87
- backgroundColor: color ?? tokens.colors.dot
88
- } : {
89
- minWidth: tokens.sizing.minWidth,
90
- minHeight: tokens.sizing.height,
91
- paddingHorizontal: tokens.sizing.paddingHorizontal,
92
- paddingVertical: tokens.sizing.paddingVertical,
93
- borderRadius: tokens.radii.badge,
94
- borderWidth: tokens.borders.width,
95
- borderColor: tokens.colors.border,
96
- backgroundColor: color ?? tokens.colors.background
97
- }, [color, dot, tokens.borders.width, tokens.colors.background, tokens.colors.border, tokens.colors.dot, tokens.radii.badge, tokens.radii.dot, tokens.sizing.dotSize, tokens.sizing.height, tokens.sizing.minWidth, tokens.sizing.paddingHorizontal, tokens.sizing.paddingVertical]);
98
- const txtStyle = [tokens.layout.text, {
99
- color: textColor ?? tokens.colors.text,
100
- fontSize: tokens.typography.fontSize,
101
- lineHeight: tokens.typography.lineHeight,
102
- fontFamily: tokens.typography.fontFamily,
103
- fontWeight: tokens.typography.fontWeight
104
- }, textStyle];
105
- const offStyle = useMemo(() => !offset ? undefined : hasCh ? {
106
- right: offset[0],
107
- top: offset[1]
108
- } : {
109
- marginLeft: offset[0],
110
- marginTop: offset[1]
111
- }, [hasCh, offset]);
112
- const badgeEl = !visible ? null : /*#__PURE__*/React.createElement(View, {
113
- pointerEvents: hasCh ? 'none' : 'auto',
114
- onLayout: hasCh && !dot ? onLay : undefined,
115
- style: [hasCh ? tokens.layout.badgeAbsolute : tokens.layout.badgeStandalone, boxStyle, transStyle, offStyle, badgeStyle, !hasCh ? style : undefined]
116
- }, !dot && renderTextOrNode(formattedContent, txtStyle));
117
- const accLabel = visible ? dot ? 'has new content' : `${formattedContent}` : undefined;
118
- if (hasCh) return onPress ? /*#__PURE__*/React.createElement(Pressable, _extends({
119
- ref: ref,
120
- onPress: onPress,
121
- accessibilityLabel: accLabel,
122
- style: ({
123
- pressed
124
- }) => [tokens.layout.wrapper, style, pressed && {
125
- opacity: tokens.defaults.pressedOpacity
126
- }]
127
- }, rest), children, badgeEl) : /*#__PURE__*/React.createElement(View, _extends({
128
- ref: ref,
129
- style: [tokens.layout.wrapper, style]
130
- }, rest), children, badgeEl);
131
- if (!visible) return null;
132
- return onPress ? /*#__PURE__*/React.createElement(Pressable, _extends({
133
- ref: ref,
134
- onPress: onPress,
135
- style: ({
136
- pressed
137
- }) => [tokens.layout.pressableStandalone, pressed && {
138
- opacity: tokens.defaults.pressedOpacity
139
- }]
140
- }, rest), badgeEl) : /*#__PURE__*/React.cloneElement(badgeEl, {
141
- ref,
142
- ...rest
143
- });
144
- };
145
- const BadgeForwardRef = /*#__PURE__*/React.forwardRef(BadgeImpl);
146
- BadgeForwardRef.displayName = 'Badge';
147
- export const Badge = /*#__PURE__*/React.memo(BadgeForwardRef);
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)({}).hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useState}from"react";import{Pressable,View}from"react-native";import{isNumericLike,isRenderable,renderTextOrNode}from"../../utils";import{useBadgeTokens}from"./tokens";const BadgeImpl=(e,t)=>{const{children:i,content:o,color:r,textColor:a,dot:n,max:s,offset:d,showZero:l,badgeStyle:g,textStyle:c,onPress:u,style:h,tokensOverride:m,...p}=e,f=useBadgeTokens(m),b=n??f.defaults.dot,y=l??f.defaults.showZero,w=React.Children.count(i)>0,{visible:z,formattedContent:R}=useMemo(()=>{const e=isNumericLike(o)?Number(o):null,t=0===e&&!y,i=b||isRenderable(o)&&!t;if(!i||b)return{visible:i,formattedContent:null};const r=isNumericLike(s)?Number(s):null;return{visible:!0,formattedContent:null!==e&&null!==r&&e>r?`${r}+`:o}},[o,b,s,y]),[v,x]=useState({width:0,height:0}),k=useCallback(e=>{const{width:t,height:i}=e.nativeEvent.layout;x(e=>e.width===t&&e.height===i?e:{width:t,height:i})},[]),S=useMemo(()=>{if(w){if(b){const e=f.sizing.dotSize/2;return{transform:[{translateX:e},{translateY:-e}]}}return 0===v.width?{opacity:0}:{transform:[{translateX:v.width/2},{translateY:-v.height/2}]}}},[b,w,v.height,v.width,f.sizing.dotSize]),C=useMemo(()=>b?{width:f.sizing.dotSize,height:f.sizing.dotSize,borderRadius:f.radii.dot,backgroundColor:r??f.colors.dot}:{minWidth:f.sizing.minWidth,minHeight:f.sizing.height,paddingHorizontal:f.sizing.paddingHorizontal,paddingVertical:f.sizing.paddingVertical,borderRadius:f.radii.badge,borderWidth:f.borders.width,borderColor:f.colors.border,backgroundColor:r??f.colors.background},[r,b,f.borders.width,f.colors.background,f.colors.border,f.colors.dot,f.radii.badge,f.radii.dot,f.sizing.dotSize,f.sizing.height,f.sizing.minWidth,f.sizing.paddingHorizontal,f.sizing.paddingVertical]),B=[f.layout.text,{color:a??f.colors.text,fontSize:f.typography.fontSize,lineHeight:f.typography.lineHeight,fontFamily:f.typography.fontFamily,fontWeight:f.typography.fontWeight},c],N=useMemo(()=>d?w?{right:d[0],top:d[1]}:{marginLeft:d[0],marginTop:d[1]}:void 0,[w,d]),O=z?React.createElement(View,{pointerEvents:w?"none":"auto",onLayout:w&&!b?k:void 0,style:[w?f.layout.badgeAbsolute:f.layout.badgeStandalone,C,S,N,g,w?void 0:h]},!b&&renderTextOrNode(R,B)):null,E=z?b?"has new content":`${R}`:void 0;return w?u?React.createElement(Pressable,_extends({ref:t,onPress:u,accessibilityLabel:E,style:({pressed:e})=>[f.layout.wrapper,h,e&&{opacity:f.defaults.pressedOpacity}]},p),i,O):React.createElement(View,_extends({ref:t,style:[f.layout.wrapper,h]},p),i,O):z?u?React.createElement(Pressable,_extends({ref:t,onPress:u,style:({pressed:e})=>[f.layout.pressableStandalone,e&&{opacity:f.defaults.pressedOpacity}]},p),O):React.cloneElement(O,{ref:t,...p}):null},BadgeForwardRef=React.forwardRef(BadgeImpl);BadgeForwardRef.displayName="Badge";export const Badge=React.memo(BadgeForwardRef);
@@ -1,2 +1 @@
1
- import { Badge } from './Badge';
2
- export default Badge;
1
+ import{Badge}from"./Badge";export default Badge;
@@ -1,75 +1 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- const centered = {
3
- alignItems: 'center',
4
- justifyContent: 'center'
5
- };
6
- const createBadgeTokens = ({
7
- palette,
8
- spacing,
9
- fontSize,
10
- radii,
11
- typography
12
- }) => {
13
- const dotSize = 8;
14
- return {
15
- defaults: {
16
- dot: false,
17
- showZero: true,
18
- pressedOpacity: 0.9
19
- },
20
- layout: {
21
- wrapper: {
22
- position: 'relative',
23
- alignSelf: 'flex-start'
24
- },
25
- badgeAbsolute: {
26
- position: 'absolute',
27
- top: 0,
28
- right: 0,
29
- ...centered,
30
- zIndex: 1
31
- },
32
- badgeStandalone: {
33
- alignSelf: 'flex-start',
34
- flexDirection: 'row',
35
- ...centered
36
- },
37
- pressableStandalone: {
38
- alignSelf: 'flex-start',
39
- flexDirection: 'row'
40
- },
41
- text: {
42
- textAlign: 'center',
43
- includeFontPadding: false,
44
- textAlignVertical: 'center'
45
- }
46
- },
47
- colors: {
48
- background: palette.danger[500],
49
- dot: palette.danger[500],
50
- text: palette.danger.foreground ?? '#fff',
51
- border: '#fff'
52
- },
53
- typography: {
54
- fontSize: fontSize.xs,
55
- fontWeight: typography.weight.bold,
56
- fontFamily: typography.fontFamily,
57
- lineHeight: fontSize.xs * typography.lineHeightMultiplier
58
- },
59
- sizing: {
60
- minWidth: 18,
61
- height: 18,
62
- paddingHorizontal: spacing.xs,
63
- paddingVertical: spacing.xxs,
64
- dotSize
65
- },
66
- radii: {
67
- badge: radii.pill,
68
- dot: dotSize / 2
69
- },
70
- borders: {
71
- width: 1
72
- }
73
- };
74
- };
75
- export const useBadgeTokens = createComponentTokensHook('badge', createBadgeTokens);
1
+ import{createComponentTokensHook}from"../../design-system";const centered={alignItems:"center",justifyContent:"center"},createBadgeTokens=({palette:e,spacing:t,fontSize:n,radii:o,typography:i})=>({defaults:{dot:!1,showZero:!0,pressedOpacity:.9},layout:{wrapper:{position:"relative",alignSelf:"flex-start"},badgeAbsolute:{position:"absolute",top:0,right:0,...centered,zIndex:1},badgeStandalone:{alignSelf:"flex-start",flexDirection:"row",...centered},pressableStandalone:{alignSelf:"flex-start",flexDirection:"row"},text:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"}},colors:{background:e.danger[500],dot:e.danger[500],text:e.danger.foreground??"#fff",border:"#fff"},typography:{fontSize:n.xs,fontWeight:i.weight.bold,fontFamily:i.fontFamily,lineHeight:n.xs*i.lineHeightMultiplier},sizing:{minWidth:18,height:18,paddingHorizontal:t.xs,paddingVertical:t.xxs,dotSize:8},radii:{badge:o.pill,dot:4},borders:{width:1}});export const useBadgeTokens=createComponentTokensHook("badge",createBadgeTokens);
@@ -1,184 +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, { useContext, useMemo } from 'react';
3
- import { ActivityIndicator, Platform, Pressable, Text, View } from 'react-native';
4
- import { withAlpha } from '../../utils/color';
5
- import { createPlatformShadow } from '../../utils/createPlatformShadow';
6
- import { createHairlineView } from '../../utils/hairline';
7
- import { ensureSpace } from '../../utils/string';
8
- import { isFiniteNumber, isFunction, isString } from '../../utils';
9
- import { useAriaPress } from '../../hooks';
10
- import { ButtonGroupContext } from './ButtonContext';
11
- import { useButtonTokens } from './tokens';
12
- const clampShadowLevel = level => level <= 1 ? 1 : level >= 3 ? 3 : level;
13
- const ROUND_CORNER_STYLE = {
14
- overflow: 'hidden'
15
- };
16
- const ButtonImpl = (props, forwardedRef) => {
17
- const grp = useContext(ButtonGroupContext);
18
- const {
19
- text,
20
- children,
21
- icon,
22
- iconPosition: iconPosP,
23
- type: typeP,
24
- size: sizeP,
25
- color,
26
- textColor: txtClrP,
27
- plain: plainP,
28
- block: blockP,
29
- round: roundP,
30
- square: sqP,
31
- hairline: hlP,
32
- shadow: shP,
33
- loading: loadP,
34
- loadingText,
35
- loadingIndicator,
36
- loadingSize: loadSzP,
37
- disabled: disP,
38
- allowFontScaling: fontScaleP,
39
- maxFontSizeMultiplier,
40
- rippleColor: rippleP,
41
- contentStyle,
42
- textStyle,
43
- tokensOverride,
44
- style,
45
- ...pressProps
46
- } = props;
47
- const tokens = useButtonTokens(tokensOverride);
48
- const type = typeP ?? grp?.type ?? tokens.defaults.type;
49
- const size = sizeP ?? grp?.size ?? tokens.defaults.size;
50
- const plain = plainP ?? grp?.plain ?? tokens.defaults.plain;
51
- const block = blockP ?? grp?.block ?? tokens.defaults.block;
52
- const round = roundP ?? grp?.round ?? tokens.defaults.round;
53
- const square = sqP ?? grp?.square ?? tokens.defaults.square;
54
- const hairline = hlP ?? grp?.hairline ?? tokens.defaults.hairline;
55
- const iconPos = iconPosP ?? grp?.iconPosition ?? tokens.defaults.iconPosition;
56
- const disabled = disP ?? grp?.disabled ?? tokens.defaults.disabled;
57
- const loading = loadP ?? tokens.defaults.loading;
58
- const loadSz = loadSzP ?? tokens.defaults.loadingSize;
59
- const allowFontScaling = fontScaleP ?? tokens.defaults.allowFontScaling;
60
- const shVal = shP ?? grp?.shadow;
61
- const isDis = disabled || loading;
62
- const tone = tokens.colors.tones[type] ?? tokens.colors.tones.default;
63
- const szTok = tokens.sizing.sizes[size];
64
- const [bgClr, borderClr, txtClr] = useMemo(() => plain ? [tokens.colors.backgroundPlain, color ?? tone.border, txtClrP ?? (type === 'default' && !color ? tone.text : color ?? tone.border)] : [color ?? tone.background, color ?? tone.border, txtClrP ?? (color ? '#ffffff' : tone.text)], [color, txtClrP, plain, type, tone, tokens.colors.backgroundPlain]);
65
- const hasBorder = plain || type === 'default';
66
- const useHl = hasBorder && hairline;
67
- const borderW = hasBorder && !hairline ? tokens.borders.width : 0;
68
- const radius = square ? 0 : round ? szTok.height / 2 : szTok.radius;
69
- const shStyle = useMemo(() => {
70
- if (plain) return undefined;
71
- const lvl = isFiniteNumber(shVal) ? clampShadowLevel(shVal) : shVal === true ? 2 : undefined;
72
- return lvl ? createPlatformShadow(tokens.shadows[lvl]) : undefined;
73
- }, [shVal, plain, tokens.shadows]);
74
- const {
75
- onPress,
76
- onPressIn,
77
- onPressOut,
78
- accessibilityLabel,
79
- accessibilityHint,
80
- accessibilityRole,
81
- accessibilityState,
82
- android_ripple: andRippleP,
83
- ...viewProps
84
- } = pressProps;
85
- const {
86
- interactionProps,
87
- states
88
- } = useAriaPress({
89
- disabled: isDis,
90
- onPress: onPress || undefined,
91
- onPressStart: onPressIn || undefined,
92
- onPressEnd: onPressOut || undefined
93
- });
94
- const opacity = disabled ? tokens.states.disabledOpacity : loading ? tokens.states.loadingOpacity : states.pressed ? tokens.states.pressedOpacity : 1;
95
- const txtStyle = useMemo(() => ({
96
- fontFamily: tokens.typography.fontFamily,
97
- fontWeight: tokens.typography.fontWeight,
98
- fontSize: szTok.fontSize,
99
- lineHeight: szTok.fontSize * tokens.typography.lineHeightMultiplier,
100
- color: txtClr
101
- }), [tokens.typography, szTok.fontSize, txtClr]);
102
- const iconGap = tokens.spacing.iconGap;
103
- const rIcon = () => {
104
- if (!icon) return null;
105
- try {
106
- const el = isFunction(icon) ? icon(txtClr, szTok.iconSize) : icon;
107
- const margin = iconPos === 'left' ? {
108
- marginRight: iconGap
109
- } : {
110
- marginLeft: iconGap
111
- };
112
- return /*#__PURE__*/React.createElement(View, {
113
- style: [tokens.layout.iconWrapper, margin]
114
- }, el);
115
- } catch (err) {
116
- if (__DEV__) console.warn('[Button] Failed to render icon:', err);
117
- return null;
118
- }
119
- };
120
- const rLoad = () => /*#__PURE__*/React.createElement(View, {
121
- style: [tokens.layout.iconWrapper, {
122
- marginRight: iconGap
123
- }]
124
- }, loadingIndicator ?? /*#__PURE__*/React.createElement(ActivityIndicator, {
125
- size: loadSz,
126
- color: txtClr
127
- }));
128
- const label = loading && loadingText !== undefined ? loadingText : text !== undefined ? text : children;
129
- const rLabel = () => {
130
- if (label == null) return null;
131
- if (typeof label === 'string' || typeof label === 'number') return /*#__PURE__*/React.createElement(Text, {
132
- style: [tokens.layout.text, txtStyle, textStyle],
133
- numberOfLines: 1,
134
- allowFontScaling: allowFontScaling,
135
- maxFontSizeMultiplier: maxFontSizeMultiplier
136
- }, isString(label) ? ensureSpace(label, true) : String(label));
137
- return label;
138
- };
139
- const accLabel = accessibilityLabel ?? (typeof label === 'string' || typeof label === 'number' ? String(label) : undefined);
140
- const accState = useMemo(() => ({
141
- ...accessibilityState,
142
- disabled: isDis,
143
- busy: loading
144
- }), [accessibilityState, isDis, loading]);
145
- const andRipple = useMemo(() => {
146
- if (Platform.OS !== 'android') return andRippleP;
147
- if (andRippleP) return andRippleP;
148
- const rc = rippleP ?? (plain ? txtClr : type === 'default' && !color ? withAlpha(txtClr, 0.15) : tokens.colors.ripple);
149
- return {
150
- color: rc,
151
- borderless: false
152
- };
153
- }, [andRippleP, rippleP, plain, txtClr, type, color, tokens.colors.ripple]);
154
- return /*#__PURE__*/React.createElement(Pressable, _extends({
155
- ref: forwardedRef,
156
- disabled: isDis,
157
- style: [tokens.layout.base, {
158
- minHeight: szTok.height,
159
- paddingHorizontal: szTok.paddingHorizontal,
160
- borderRadius: radius,
161
- backgroundColor: bgClr,
162
- borderColor: useHl ? 'transparent' : borderClr,
163
- borderWidth: borderW,
164
- opacity
165
- }, Platform.OS === 'android' && radius > 0 && !shStyle ? ROUND_CORNER_STYLE : null, block ? tokens.layout.block : null, shStyle, style],
166
- android_ripple: andRipple
167
- }, interactionProps, {
168
- accessibilityState: accState,
169
- accessibilityRole: accessibilityRole ?? 'button',
170
- accessibilityLabel: accLabel,
171
- accessibilityHint: accessibilityHint
172
- }, viewProps), /*#__PURE__*/React.createElement(View, {
173
- style: [tokens.layout.content, contentStyle]
174
- }, loading ? /*#__PURE__*/React.createElement(React.Fragment, null, rLoad(), rLabel()) : /*#__PURE__*/React.createElement(React.Fragment, null, icon && iconPos === 'left' && rIcon(), rLabel(), icon && iconPos === 'right' && rIcon())), useHl && /*#__PURE__*/React.createElement(View, {
175
- style: createHairlineView({
176
- position: 'all',
177
- color: borderClr,
178
- borderRadius: radius
179
- })
180
- }));
181
- };
182
- const ButtonForwardRef = /*#__PURE__*/React.forwardRef(ButtonImpl);
183
- export const Button = /*#__PURE__*/React.memo(ButtonForwardRef);
184
- export default Button;
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 i in o)({}).hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{ActivityIndicator,Platform,Pressable,Text,View}from"react-native";import{withAlpha}from"../../utils/color";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{createHairlineView}from"../../utils/hairline";import{ensureSpace}from"../../utils/string";import{isFiniteNumber,isFunction,isString}from"../../utils";import{useAriaPress}from"../../hooks";import{ButtonGroupContext}from"./ButtonContext";import{useButtonTokens}from"./tokens";const clampShadowLevel=e=>e<=1?1:e>=3?3:e,ROUND_CORNER_STYLE={overflow:"hidden"},ButtonImpl=(e,t)=>{const o=useContext(ButtonGroupContext),{text:i,children:r,icon:n,iconPosition:a,type:l,size:s,color:c,textColor:d,plain:u,block:p,round:f,square:m,hairline:y,shadow:b,loading:g,loadingText:h,loadingIndicator:S,loadingSize:R,disabled:w,allowFontScaling:P,maxFontSizeMultiplier:x,rippleColor:v,contentStyle:z,textStyle:F,tokensOverride:E,style:O,..._}=e,k=useButtonTokens(E),B=l??o?.type??k.defaults.type,C=s??o?.size??k.defaults.size,H=u??o?.plain??k.defaults.plain,M=p??o?.block??k.defaults.block,L=f??o?.round??k.defaults.round,V=m??o?.square??k.defaults.square,T=y??o?.hairline??k.defaults.hairline,A=a??o?.iconPosition??k.defaults.iconPosition,I=w??o?.disabled??k.defaults.disabled,N=g??k.defaults.loading,W=R??k.defaults.loadingSize,q=P??k.defaults.allowFontScaling,D=b??o?.shadow,G=I||N,j=k.colors.tones[B]??k.colors.tones.default,U=k.sizing.sizes[C],[Y,J,K]=useMemo(()=>H?[k.colors.backgroundPlain,c??j.border,d??("default"!==B||c?c??j.border:j.text)]:[c??j.background,c??j.border,d??(c?"#ffffff":j.text)],[c,d,H,B,j,k.colors.backgroundPlain]),Q=H||"default"===B,X=Q&&T,Z=Q&&!T?k.borders.width:0,$=V?0:L?U.height/2:U.radius,ee=useMemo(()=>{if(H)return;const e=isFiniteNumber(D)?clampShadowLevel(D):!0===D?2:void 0;return e?createPlatformShadow(k.shadows[e]):void 0},[D,H,k.shadows]),{onPress:te,onPressIn:oe,onPressOut:ie,accessibilityLabel:re,accessibilityHint:ne,accessibilityRole:ae,accessibilityState:le,android_ripple:se,...ce}=_,{interactionProps:de,states:ue}=useAriaPress({disabled:G,onPress:te||void 0,onPressStart:oe||void 0,onPressEnd:ie||void 0}),pe=I?k.states.disabledOpacity:N?k.states.loadingOpacity:ue.pressed?k.states.pressedOpacity:1,fe=useMemo(()=>({fontFamily:k.typography.fontFamily,fontWeight:k.typography.fontWeight,fontSize:U.fontSize,lineHeight:U.fontSize*k.typography.lineHeightMultiplier,color:K}),[k.typography,U.fontSize,K]),me=k.spacing.iconGap,ye=()=>{if(!n)return null;try{const e=isFunction(n)?n(K,U.iconSize):n,t="left"===A?{marginRight:me}:{marginLeft:me};return React.createElement(View,{style:[k.layout.iconWrapper,t]},e)}catch(e){return __DEV__&&console.warn("[Button] Failed to render icon:",e),null}},be=N&&void 0!==h?h:void 0!==i?i:r,ge=()=>null==be?null:"string"==typeof be||"number"==typeof be?React.createElement(Text,{style:[k.layout.text,fe,F],numberOfLines:1,allowFontScaling:q,maxFontSizeMultiplier:x},isString(be)?ensureSpace(be,!0):String(be)):be,he=re??("string"==typeof be||"number"==typeof be?String(be):void 0),Se=useMemo(()=>({...le,disabled:G,busy:N}),[le,G,N]),Re=useMemo(()=>{if("android"!==Platform.OS)return se;if(se)return se;return{color:v??(H?K:"default"!==B||c?k.colors.ripple:withAlpha(K,.15)),borderless:!1}},[se,v,H,K,B,c,k.colors.ripple]);return React.createElement(Pressable,_extends({ref:t,disabled:G,style:[k.layout.base,{minHeight:U.height,paddingHorizontal:U.paddingHorizontal,borderRadius:$,backgroundColor:Y,borderColor:X?"transparent":J,borderWidth:Z,opacity:pe},"android"===Platform.OS&&$>0&&!ee?ROUND_CORNER_STYLE:null,M?k.layout.block:null,ee,O],android_ripple:Re},de,{accessibilityState:Se,accessibilityRole:ae??"button",accessibilityLabel:he,accessibilityHint:ne},ce),React.createElement(View,{style:[k.layout.content,z]},N?React.createElement(React.Fragment,null,React.createElement(View,{style:[k.layout.iconWrapper,{marginRight:me}]},S??React.createElement(ActivityIndicator,{size:W,color:K})),ge()):React.createElement(React.Fragment,null,n&&"left"===A&&ye(),ge(),n&&"right"===A&&ye())),X&&React.createElement(View,{style:createHairlineView({position:"all",color:J,borderRadius:$})}))},ButtonForwardRef=React.forwardRef(ButtonImpl);export const Button=React.memo(ButtonForwardRef);export default Button;
@@ -1 +1 @@
1
- export { ButtonGroupContext } from './ButtonGroup';
1
+ export{ButtonGroupContext}from"./ButtonGroup";
@@ -1,46 +1 @@
1
- import React, { useMemo } from 'react';
2
- import { View } from 'react-native';
3
- import { useButtonTokens } from './tokens';
4
- export const ButtonGroupContext = /*#__PURE__*/React.createContext(null);
5
- export const ButtonGroup = /*#__PURE__*/React.memo(({
6
- children,
7
- direction = 'horizontal',
8
- spacing,
9
- style,
10
- type,
11
- size,
12
- plain,
13
- block,
14
- round,
15
- square,
16
- shadow,
17
- disabled,
18
- iconPosition,
19
- hairline
20
- }) => {
21
- const tokens = useButtonTokens();
22
- const gap = spacing ?? tokens.spacing.groupGap;
23
- const grpVal = useMemo(() => ({
24
- type,
25
- size,
26
- plain,
27
- block,
28
- round,
29
- square,
30
- shadow,
31
- disabled,
32
- iconPosition,
33
- hairline
34
- }), [block, disabled, hairline, iconPosition, plain, round, shadow, size, square, type]);
35
- const ctrStyle = useMemo(() => [{
36
- flexDirection: direction === 'horizontal' ? 'row' : 'column',
37
- alignItems: 'center',
38
- gap,
39
- width: block ? '100%' : undefined
40
- }, style], [block, direction, gap, style]);
41
- return /*#__PURE__*/React.createElement(ButtonGroupContext.Provider, {
42
- value: grpVal
43
- }, /*#__PURE__*/React.createElement(View, {
44
- style: ctrStyle
45
- }, children));
46
- });
1
+ import React,{useMemo}from"react";import{View}from"react-native";import{useButtonTokens}from"./tokens";export const ButtonGroupContext=React.createContext(null);export const ButtonGroup=React.memo(({children:e,direction:o="horizontal",spacing:t,style:n,type:i,size:r,plain:a,block:s,round:c,square:u,shadow:l,disabled:p,iconPosition:m,hairline:d})=>{const h=useButtonTokens(),w=t??h.spacing.groupGap,x=useMemo(()=>({type:i,size:r,plain:a,block:s,round:c,square:u,shadow:l,disabled:p,iconPosition:m,hairline:d}),[s,p,d,m,a,c,l,r,u,i]),g=useMemo(()=>[{flexDirection:"horizontal"===o?"row":"column",alignItems:"center",gap:w,width:s?"100%":void 0},n],[s,o,w,n]);return React.createElement(ButtonGroupContext.Provider,{value:x},React.createElement(View,{style:g},e))});
@@ -1,7 +1 @@
1
- import { Button as ButtonBase } from './Button';
2
- import { ButtonGroup } from './ButtonGroup';
3
- const Button = Object.assign(ButtonBase, {
4
- Group: ButtonGroup
5
- });
6
- export default Button;
7
- export { Button };
1
+ import{Button as ButtonBase}from"./Button";import{ButtonGroup}from"./ButtonGroup";const Button=Object.assign(ButtonBase,{Group:ButtonGroup});export default Button;export{Button};