react-native-system-ui 0.0.5 → 0.0.7

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 (372) hide show
  1. package/README.md +12 -4
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
  3. package/dist/cjs/components/area/Area.js +72 -6
  4. package/dist/cjs/components/area/tokens.js +11 -0
  5. package/dist/cjs/components/avatar/Avatar.js +42 -10
  6. package/dist/cjs/components/badge/Badge.js +10 -10
  7. package/dist/cjs/components/badge/tokens.js +4 -0
  8. package/dist/cjs/components/button/Button.js +16 -65
  9. package/dist/cjs/components/button/ButtonContext.js +7 -10
  10. package/dist/cjs/components/button/ButtonGroup.js +13 -15
  11. package/dist/cjs/components/button/tokens.js +1 -5
  12. package/dist/cjs/components/calendar/Calendar.js +23 -12
  13. package/dist/cjs/components/cascader/Cascader.js +18 -13
  14. package/dist/cjs/components/cell/Cell.js +3 -3
  15. package/dist/cjs/components/cell/CellGroup.js +26 -21
  16. package/dist/cjs/components/checkbox/Checkbox.js +5 -4
  17. package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
  18. package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
  19. package/dist/cjs/components/circle/Circle.js +6 -6
  20. package/dist/cjs/components/collapse/Collapse.js +10 -10
  21. package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
  22. package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
  23. package/dist/cjs/components/config-provider/tokens.js +11 -0
  24. package/dist/cjs/components/count-down/CountDown.js +6 -6
  25. package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
  26. package/dist/cjs/components/datetime-picker/tokens.js +11 -0
  27. package/dist/cjs/components/dialog/Dialog.js +39 -34
  28. package/dist/cjs/components/dialog/tokens.js +1 -4
  29. package/dist/cjs/components/divider/Divider.js +36 -1
  30. package/dist/cjs/components/field/Field.js +303 -201
  31. package/dist/cjs/components/flex/Flex.js +7 -3
  32. package/dist/cjs/components/flex/FlexContext.js +7 -14
  33. package/dist/cjs/components/form/Form.js +112 -122
  34. package/dist/cjs/components/form/FormContext.js +7 -10
  35. package/dist/cjs/components/form/FormItem.js +30 -4
  36. package/dist/cjs/components/form/FormList.js +16 -3
  37. package/dist/cjs/components/form/tokens.js +11 -0
  38. package/dist/cjs/components/form/utils.js +2 -1
  39. package/dist/cjs/components/grid/Grid.js +45 -31
  40. package/dist/cjs/components/grid/GridContext.js +7 -10
  41. package/dist/cjs/components/grid/GridItem.js +22 -22
  42. package/dist/cjs/components/image/Image.js +17 -13
  43. package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
  44. package/dist/cjs/components/index.js +43 -141
  45. package/dist/cjs/components/input/Input.js +19 -5
  46. package/dist/cjs/components/loading/Loading.js +10 -139
  47. package/dist/cjs/components/loading/tokens.js +0 -24
  48. package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
  49. package/dist/cjs/components/notify/Notify.js +63 -22
  50. package/dist/cjs/components/notify/imperative.js +2 -2
  51. package/dist/cjs/components/notify/tokens.js +11 -1
  52. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
  53. package/dist/cjs/components/overlay/Overlay.js +70 -77
  54. package/dist/cjs/components/overlay/index.js +13 -27
  55. package/dist/cjs/components/overlay/tokens.js +4 -31
  56. package/dist/cjs/components/password-input/PasswordInput.js +2 -41
  57. package/dist/cjs/components/password-input/tokens.js +53 -0
  58. package/dist/cjs/components/picker/Picker.js +618 -38
  59. package/dist/cjs/components/popup/Popup.js +60 -47
  60. package/dist/cjs/components/portal/Portal.js +39 -31
  61. package/dist/cjs/components/portal/PortalHost.js +258 -213
  62. package/dist/cjs/components/portal/tokens.js +11 -0
  63. package/dist/cjs/components/progress/Progress.js +77 -36
  64. package/dist/cjs/components/progress/index.js +6 -0
  65. package/dist/cjs/components/radio/Radio.js +35 -12
  66. package/dist/cjs/components/radio/RadioContext.js +7 -10
  67. package/dist/cjs/components/radio/RadioGroup.js +23 -20
  68. package/dist/cjs/components/safe-area-view/tokens.js +11 -0
  69. package/dist/cjs/components/search/Search.js +16 -16
  70. package/dist/cjs/components/selector/Selector.js +6 -6
  71. package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
  72. package/dist/cjs/components/sidebar/Sidebar.js +27 -22
  73. package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
  74. package/dist/cjs/components/skeleton/Skeleton.js +34 -21
  75. package/dist/cjs/components/slider/Slider.js +135 -78
  76. package/dist/cjs/components/stepper/Stepper.js +12 -10
  77. package/dist/cjs/components/swiper/Swiper.js +247 -710
  78. package/dist/cjs/components/swiper/SwiperItem.js +5 -33
  79. package/dist/cjs/components/swiper/tokens.js +11 -0
  80. package/dist/cjs/components/switch/Switch.js +46 -98
  81. package/dist/cjs/components/switch/tokens.js +1 -55
  82. package/dist/cjs/components/tabbar/Tabbar.js +26 -22
  83. package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
  84. package/dist/cjs/components/tabbar/tokens.js +0 -2
  85. package/dist/cjs/components/tabs/Tabs.js +268 -94
  86. package/dist/cjs/components/tabs/index.js +4 -5
  87. package/dist/cjs/components/toast/Toast.js +72 -27
  88. package/dist/cjs/components/toast/imperative.js +2 -2
  89. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
  90. package/dist/cjs/hooks/index.js +12 -12
  91. package/dist/cjs/hooks/overlay/index.js +27 -0
  92. package/dist/cjs/hooks/useHairline.js +0 -4
  93. package/dist/cjs/platform/scrollLock.js +1 -1
  94. package/dist/cjs/utils/compare.js +26 -0
  95. package/dist/cjs/utils/index.js +11 -0
  96. package/dist/es/components/action-sheet/ActionSheet.js +29 -23
  97. package/dist/es/components/area/Area.js +73 -7
  98. package/dist/es/components/area/tokens.js +5 -0
  99. package/dist/es/components/avatar/Avatar.js +42 -10
  100. package/dist/es/components/badge/Badge.js +11 -11
  101. package/dist/es/components/badge/tokens.js +4 -0
  102. package/dist/es/components/button/Button.js +17 -65
  103. package/dist/es/components/button/ButtonContext.js +1 -2
  104. package/dist/es/components/button/ButtonGroup.js +10 -12
  105. package/dist/es/components/button/tokens.js +1 -5
  106. package/dist/es/components/calendar/Calendar.js +24 -13
  107. package/dist/es/components/cascader/Cascader.js +16 -11
  108. package/dist/es/components/cell/Cell.js +4 -4
  109. package/dist/es/components/cell/CellGroup.js +25 -20
  110. package/dist/es/components/checkbox/Checkbox.js +5 -4
  111. package/dist/es/components/checkbox/CheckboxContext.js +1 -2
  112. package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
  113. package/dist/es/components/circle/Circle.js +7 -7
  114. package/dist/es/components/collapse/Collapse.js +11 -11
  115. package/dist/es/components/config-provider/locale/en-US.js +66 -4
  116. package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
  117. package/dist/es/components/config-provider/tokens.js +5 -0
  118. package/dist/es/components/count-down/CountDown.js +7 -7
  119. package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
  120. package/dist/es/components/datetime-picker/tokens.js +5 -0
  121. package/dist/es/components/dialog/Dialog.js +40 -35
  122. package/dist/es/components/dialog/tokens.js +1 -4
  123. package/dist/es/components/divider/Divider.js +36 -1
  124. package/dist/es/components/field/Field.js +304 -202
  125. package/dist/es/components/flex/Flex.js +5 -1
  126. package/dist/es/components/flex/FlexContext.js +1 -6
  127. package/dist/es/components/form/Form.js +89 -99
  128. package/dist/es/components/form/FormContext.js +1 -2
  129. package/dist/es/components/form/FormItem.js +32 -6
  130. package/dist/es/components/form/FormList.js +18 -5
  131. package/dist/es/components/form/tokens.js +5 -0
  132. package/dist/es/components/form/utils.js +1 -0
  133. package/dist/es/components/grid/Grid.js +43 -29
  134. package/dist/es/components/grid/GridContext.js +1 -2
  135. package/dist/es/components/grid/GridItem.js +24 -24
  136. package/dist/es/components/image/Image.js +18 -14
  137. package/dist/es/components/image-preview/ImagePreview.js +44 -42
  138. package/dist/es/components/index.js +2 -17
  139. package/dist/es/components/input/Input.js +20 -6
  140. package/dist/es/components/loading/Loading.js +10 -139
  141. package/dist/es/components/loading/tokens.js +0 -24
  142. package/dist/es/components/notice-bar/NoticeBar.js +46 -42
  143. package/dist/es/components/notify/Notify.js +63 -22
  144. package/dist/es/components/notify/imperative.js +2 -2
  145. package/dist/es/components/notify/tokens.js +5 -1
  146. package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
  147. package/dist/es/components/overlay/Overlay.js +58 -75
  148. package/dist/es/components/overlay/index.js +3 -4
  149. package/dist/es/components/overlay/tokens.js +3 -29
  150. package/dist/es/components/password-input/PasswordInput.js +1 -40
  151. package/dist/es/components/password-input/tokens.js +41 -0
  152. package/dist/es/components/picker/Picker.js +610 -34
  153. package/dist/es/components/popup/Popup.js +62 -49
  154. package/dist/es/components/portal/Portal.js +37 -31
  155. package/dist/es/components/portal/PortalHost.js +257 -211
  156. package/dist/es/components/portal/tokens.js +5 -0
  157. package/dist/es/components/progress/Progress.js +76 -36
  158. package/dist/es/components/progress/index.js +2 -1
  159. package/dist/es/components/radio/Radio.js +37 -14
  160. package/dist/es/components/radio/RadioContext.js +1 -2
  161. package/dist/es/components/radio/RadioGroup.js +23 -20
  162. package/dist/es/components/safe-area-view/tokens.js +5 -0
  163. package/dist/es/components/search/Search.js +17 -17
  164. package/dist/es/components/selector/Selector.js +7 -7
  165. package/dist/es/components/share-sheet/ShareSheet.js +51 -47
  166. package/dist/es/components/sidebar/Sidebar.js +26 -21
  167. package/dist/es/components/sidebar/SidebarItem.js +26 -22
  168. package/dist/es/components/skeleton/Skeleton.js +35 -22
  169. package/dist/es/components/slider/Slider.js +132 -75
  170. package/dist/es/components/stepper/Stepper.js +13 -11
  171. package/dist/es/components/swiper/Swiper.js +248 -711
  172. package/dist/es/components/swiper/SwiperItem.js +1 -21
  173. package/dist/es/components/swiper/tokens.js +5 -0
  174. package/dist/es/components/switch/Switch.js +49 -101
  175. package/dist/es/components/switch/tokens.js +1 -49
  176. package/dist/es/components/tabbar/Tabbar.js +27 -23
  177. package/dist/es/components/tabbar/TabbarItem.js +22 -22
  178. package/dist/es/components/tabbar/tokens.js +0 -2
  179. package/dist/es/components/tabs/Tabs.js +264 -90
  180. package/dist/es/components/tabs/index.js +1 -2
  181. package/dist/es/components/toast/Toast.js +72 -28
  182. package/dist/es/components/toast/imperative.js +2 -2
  183. package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
  184. package/dist/es/hooks/index.js +1 -1
  185. package/dist/es/hooks/overlay/index.js +3 -0
  186. package/dist/es/hooks/useHairline.js +0 -4
  187. package/dist/es/platform/scrollLock.js +1 -1
  188. package/dist/es/utils/compare.js +18 -0
  189. package/dist/es/utils/index.js +1 -1
  190. package/dist/types/components/area/tokens.d.ts +3 -0
  191. package/dist/types/components/avatar/Avatar.d.ts +4 -2
  192. package/dist/types/components/button/ButtonContext.d.ts +2 -16
  193. package/dist/types/components/button/ButtonGroup.d.ts +14 -1
  194. package/dist/types/components/button/index.d.ts +1 -1
  195. package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
  196. package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
  197. package/dist/types/components/collapse/Collapse.d.ts +0 -1
  198. package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
  199. package/dist/types/components/config-provider/tokens.d.ts +3 -0
  200. package/dist/types/components/config-provider/useLocale.d.ts +1 -74
  201. package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
  202. package/dist/types/components/flex/Flex.d.ts +6 -0
  203. package/dist/types/components/flex/FlexContext.d.ts +2 -8
  204. package/dist/types/components/form/Form.d.ts +15 -1
  205. package/dist/types/components/form/FormContext.d.ts +2 -17
  206. package/dist/types/components/form/tokens.d.ts +3 -0
  207. package/dist/types/components/form/utils.d.ts +1 -0
  208. package/dist/types/components/grid/Grid.d.ts +16 -1
  209. package/dist/types/components/grid/GridContext.d.ts +2 -17
  210. package/dist/types/components/index.d.ts +3 -33
  211. package/dist/types/components/loading/index.d.ts +1 -1
  212. package/dist/types/components/notify/Notify.d.ts +1 -0
  213. package/dist/types/components/overlay/Overlay.d.ts +6 -1
  214. package/dist/types/components/overlay/index.d.ts +2 -3
  215. package/dist/types/components/overlay/tokens.d.ts +2 -3
  216. package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
  217. package/dist/types/components/password-input/tokens.d.ts +40 -0
  218. package/dist/types/components/picker/Picker.d.ts +18 -2
  219. package/dist/types/components/picker/index.d.ts +1 -1
  220. package/dist/types/components/portal/Portal.d.ts +4 -6
  221. package/dist/types/components/portal/PortalHost.d.ts +1 -15
  222. package/dist/types/components/portal/tokens.d.ts +3 -0
  223. package/dist/types/components/progress/Progress.d.ts +4 -0
  224. package/dist/types/components/progress/index.d.ts +2 -1
  225. package/dist/types/components/radio/RadioContext.d.ts +2 -13
  226. package/dist/types/components/radio/RadioGroup.d.ts +12 -1
  227. package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
  228. package/dist/types/components/swiper/Swiper.d.ts +4 -2
  229. package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
  230. package/dist/types/components/swiper/tokens.d.ts +3 -0
  231. package/dist/types/components/tabs/Tabs.d.ts +8 -4
  232. package/dist/types/components/tabs/index.d.ts +3 -1
  233. package/dist/types/components/toast/Toast.d.ts +1 -4
  234. package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
  235. package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
  236. package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
  237. package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
  238. package/dist/types/hooks/index.d.ts +1 -1
  239. package/dist/types/hooks/overlay/index.d.ts +2 -0
  240. package/dist/types/hooks/useHairline.d.ts +0 -21
  241. package/dist/types/utils/compare.d.ts +2 -0
  242. package/dist/types/utils/index.d.ts +1 -0
  243. package/package.json +10 -48
  244. package/dist/cjs/components/area/utils.js +0 -74
  245. package/dist/cjs/components/cascader/utils.js +0 -20
  246. package/dist/cjs/components/config-provider/locale/base.js +0 -80
  247. package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
  248. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
  249. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
  250. package/dist/cjs/components/dropdown-menu/index.js +0 -25
  251. package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
  252. package/dist/cjs/components/field/utils.js +0 -24
  253. package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
  254. package/dist/cjs/components/index-bar/IndexBar.js +0 -436
  255. package/dist/cjs/components/index-bar/index.js +0 -25
  256. package/dist/cjs/components/index-bar/tokens.js +0 -45
  257. package/dist/cjs/components/list/List.js +0 -165
  258. package/dist/cjs/components/list/index.js +0 -9
  259. package/dist/cjs/components/list/tokens.js +0 -39
  260. package/dist/cjs/components/notify/defaults.js +0 -15
  261. package/dist/cjs/components/pagination/Pagination.js +0 -160
  262. package/dist/cjs/components/pagination/index.js +0 -22
  263. package/dist/cjs/components/pagination/tokens.js +0 -103
  264. package/dist/cjs/components/picker/WheelPicker.js +0 -492
  265. package/dist/cjs/components/picker/utils.js +0 -138
  266. package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
  267. package/dist/cjs/components/pull-refresh/index.js +0 -16
  268. package/dist/cjs/components/pull-refresh/tokens.js +0 -22
  269. package/dist/cjs/components/rate/Rate.js +0 -269
  270. package/dist/cjs/components/rate/index.js +0 -15
  271. package/dist/cjs/components/rate/tokens.js +0 -60
  272. package/dist/cjs/components/slider/utils.js +0 -60
  273. package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
  274. package/dist/cjs/components/swiper/utils.js +0 -49
  275. package/dist/cjs/components/tabs/TabPane.js +0 -9
  276. package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
  277. package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
  278. package/dist/cjs/components/tabs/utils.js +0 -34
  279. package/dist/cjs/components/types.js +0 -1
  280. package/dist/cjs/components/uploader/Uploader.js +0 -557
  281. package/dist/cjs/components/uploader/index.js +0 -22
  282. package/dist/cjs/components/uploader/tokens.js +0 -58
  283. package/dist/cjs/components/uploader/utils.js +0 -72
  284. package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
  285. package/dist/es/components/area/utils.js +0 -67
  286. package/dist/es/components/cascader/utils.js +0 -13
  287. package/dist/es/components/config-provider/locale/base.js +0 -74
  288. package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
  289. package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
  290. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
  291. package/dist/es/components/dropdown-menu/index.js +0 -7
  292. package/dist/es/components/dropdown-menu/tokens.js +0 -61
  293. package/dist/es/components/field/utils.js +0 -17
  294. package/dist/es/components/index-bar/IndexAnchor.js +0 -55
  295. package/dist/es/components/index-bar/IndexBar.js +0 -417
  296. package/dist/es/components/index-bar/index.js +0 -7
  297. package/dist/es/components/index-bar/tokens.js +0 -39
  298. package/dist/es/components/list/List.js +0 -145
  299. package/dist/es/components/list/index.js +0 -2
  300. package/dist/es/components/list/tokens.js +0 -32
  301. package/dist/es/components/notify/defaults.js +0 -9
  302. package/dist/es/components/pagination/Pagination.js +0 -141
  303. package/dist/es/components/pagination/index.js +0 -4
  304. package/dist/es/components/pagination/tokens.js +0 -91
  305. package/dist/es/components/picker/WheelPicker.js +0 -473
  306. package/dist/es/components/picker/utils.js +0 -127
  307. package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
  308. package/dist/es/components/pull-refresh/index.js +0 -3
  309. package/dist/es/components/pull-refresh/tokens.js +0 -16
  310. package/dist/es/components/rate/Rate.js +0 -250
  311. package/dist/es/components/rate/index.js +0 -3
  312. package/dist/es/components/rate/tokens.js +0 -53
  313. package/dist/es/components/slider/utils.js +0 -49
  314. package/dist/es/components/swiper/useSwiperWeb.js +0 -190
  315. package/dist/es/components/swiper/utils.js +0 -37
  316. package/dist/es/components/tabs/TabPane.js +0 -3
  317. package/dist/es/components/tabs/useTabsAnimation.js +0 -55
  318. package/dist/es/components/tabs/useTabsScroll.js +0 -114
  319. package/dist/es/components/tabs/utils.js +0 -19
  320. package/dist/es/components/types.js +0 -1
  321. package/dist/es/components/uploader/Uploader.js +0 -537
  322. package/dist/es/components/uploader/index.js +0 -4
  323. package/dist/es/components/uploader/tokens.js +0 -52
  324. package/dist/es/components/uploader/utils.js +0 -60
  325. package/dist/es/hooks/usePresenceAnimation.js +0 -51
  326. package/dist/types/components/area/utils.d.ts +0 -2
  327. package/dist/types/components/cascader/utils.d.ts +0 -6
  328. package/dist/types/components/config-provider/locale/base.d.ts +0 -74
  329. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
  330. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
  331. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
  332. package/dist/types/components/dropdown-menu/index.d.ts +0 -8
  333. package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
  334. package/dist/types/components/field/utils.d.ts +0 -4
  335. package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
  336. package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
  337. package/dist/types/components/index-bar/index.d.ts +0 -9
  338. package/dist/types/components/index-bar/tokens.d.ts +0 -31
  339. package/dist/types/components/list/List.d.ts +0 -4
  340. package/dist/types/components/list/index.d.ts +0 -3
  341. package/dist/types/components/list/tokens.d.ts +0 -4
  342. package/dist/types/components/notify/defaults.d.ts +0 -10
  343. package/dist/types/components/pagination/Pagination.d.ts +0 -5
  344. package/dist/types/components/pagination/index.d.ts +0 -5
  345. package/dist/types/components/pagination/tokens.d.ts +0 -2
  346. package/dist/types/components/picker/WheelPicker.d.ts +0 -21
  347. package/dist/types/components/picker/utils.d.ts +0 -17
  348. package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
  349. package/dist/types/components/pull-refresh/index.d.ts +0 -4
  350. package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
  351. package/dist/types/components/rate/Rate.d.ts +0 -4
  352. package/dist/types/components/rate/index.d.ts +0 -4
  353. package/dist/types/components/rate/tokens.d.ts +0 -4
  354. package/dist/types/components/slider/utils.d.ts +0 -42
  355. package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
  356. package/dist/types/components/swiper/utils.d.ts +0 -17
  357. package/dist/types/components/tabs/TabPane.d.ts +0 -4
  358. package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
  359. package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
  360. package/dist/types/components/tabs/utils.d.ts +0 -5
  361. package/dist/types/components/types.d.ts +0 -59
  362. package/dist/types/components/uploader/Uploader.d.ts +0 -4
  363. package/dist/types/components/uploader/index.d.ts +0 -5
  364. package/dist/types/components/uploader/tokens.d.ts +0 -42
  365. package/dist/types/components/uploader/utils.d.ts +0 -11
  366. package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
  367. /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  368. /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
  369. /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  370. /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
  371. /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
  372. /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
package/README.md CHANGED
@@ -70,6 +70,11 @@ export const App = ({ children }) => (
70
70
  size: 'large',
71
71
  },
72
72
  },
73
+ datetimePicker: {
74
+ defaults: {
75
+ popupPlacement: 'bottom',
76
+ },
77
+ },
73
78
  },
74
79
  }}
75
80
  >
@@ -78,6 +83,8 @@ export const App = ({ children }) => (
78
83
  )
79
84
  ```
80
85
 
86
+ 组件 tokens 的 key 使用驼峰命名,与导出的组件名保持一致,例如 `passwordInput`、`safeAreaView`、`shareSheet`。
87
+
81
88
  ### 主题预设
82
89
 
83
90
  ```tsx
@@ -110,9 +117,10 @@ export const AuroraBranding = () => (
110
117
  ## 已交付能力
111
118
 
112
119
  - **设计系统**:ConfigProvider、ThemeProvider、createTokens、themePresets(light/dark/aurora),组件自管 tokens。使用 Toast/Popup/Dialog 等弹层时推荐用 ConfigProvider 包裹根节点(内置 PortalHost)。
113
- - **基础与展示**:Button、Badge、Cell、Collapse、Divider、Empty、Flex、Grid、Space、Tag、Typography、Loading、NoticeBar、Popup、Portal、Progress、Slider、Toast、Dialog 等,均提供文档与 demo。
114
- - **表单与输入**:Form、Field、Input、Checkbox、Radio、Switch、Stepper、Rate、Picker、Calendar、Search 等。
115
- - **导航与反馈**:Tabs、NavBar、Tabbar、ActionSheet、Notify、Overlay 等。
120
+ - **基础与展示**:Button、Badge、Cell、Collapse、Divider、Empty、Flex、Grid、Space、Tag、Typography、Loading、NoticeBar、Popup、Portal、Progress、Slider、Toast、Dialog、Image、ImagePreview、Skeleton、WaterMark 等。
121
+ - **表单与输入**:Form、Field、Input、PasswordInput、Checkbox、Radio、Switch、Stepper、Rate、Picker、DatetimePicker、Calendar、Search、NumberKeyboard、Area、Cascader、Selector 等。
122
+ - **导航与反馈**:Tabs、NavBar、Tabbar、ActionSheet、Notify、Overlay、ShareSheet、Sidebar、Swiper 等。
123
+ - **基础设施**:SafeAreaView、PortalHost、OverlayProvider、ConfigProvider 的 locale(zhCN/enUS)。
116
124
  - **文档**:快速上手、架构设计、路线图及组件文档站(`docs/`)。
117
125
 
118
126
  详细组件列表与状态见 [指南 / 路线图](./docs/guide/roadmap.md)。
@@ -133,4 +141,4 @@ export const AuroraBranding = () => (
133
141
 
134
142
  ## 版本与反馈
135
143
 
136
- 当前为 v0.0.1,欢迎 issue / PR。
144
+ 当前为 v0.0.6,欢迎 issue / PR。
@@ -257,28 +257,18 @@ const ActionSheet = props => {
257
257
  void requestClose('action');
258
258
  }
259
259
  }, [onSelect, requestClose, shouldCloseOnClickAction]);
260
- return /*#__PURE__*/_react().default.createElement(_popup.default, _extends({
261
- visible: visible,
262
- placement: "bottom",
263
- round: round,
264
- safeAreaInsetTop: hasTitle && closeable,
265
- safeAreaInsetBottom: safeAreaInsetBottom,
266
- overlay: overlay,
267
- lockScroll: lockScroll,
268
- beforeClose: handlePopupBeforeClose,
269
- onClose: handlePopupClose,
270
- style: [tokens.layout.popup, popupStyle]
271
- }, popupProps), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
272
- style: [tokens.layout.panel, {
273
- backgroundColor: tokens.colors.background
274
- }]
275
- }, hasTitle ? /*#__PURE__*/_react().default.createElement(ActionSheetHeader, {
260
+ const popupStyleMemo = (0, _react().useMemo)(() => [tokens.layout.popup, popupStyle], [popupStyle, tokens.layout.popup]);
261
+ const panelStyle = (0, _react().useMemo)(() => [tokens.layout.panel, {
262
+ backgroundColor: tokens.colors.background
263
+ }], [tokens.colors.background, tokens.layout.panel]);
264
+ const headerNode = (0, _react().useMemo)(() => hasTitle ? /*#__PURE__*/_react().default.createElement(ActionSheetHeader, {
276
265
  title: title,
277
266
  closeable: closeable,
278
267
  closeIcon: closeIcon,
279
268
  tokens: tokens,
280
269
  onClose: handleCloseIcon
281
- }) : null, hasDescription ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
270
+ }) : null, [closeIcon, closeable, handleCloseIcon, hasTitle, title, tokens]);
271
+ const descriptionNode = (0, _react().useMemo)(() => hasDescription ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
282
272
  style: [tokens.layout.descriptionContainer, (0, _utils.createHairlineBorderBottom)(tokens.colors.border)]
283
273
  }, (0, _utils.isText)(description) ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
284
274
  style: [tokens.layout.description, {
@@ -287,19 +277,35 @@ const ActionSheet = props => {
287
277
  }]
288
278
  }, description) : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
289
279
  style: tokens.layout.descriptionNode
290
- }, description)) : null, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
291
- style: tokens.layout.actions
292
- }, actions.map((action, index) => /*#__PURE__*/_react().default.createElement(ActionSheetItem, {
280
+ }, description)) : null, [description, hasDescription, tokens.colors.border, tokens.colors.description, tokens.layout.description, tokens.layout.descriptionContainer, tokens.layout.descriptionNode, tokens.typography.description]);
281
+ const actionNodes = (0, _react().useMemo)(() => actions.map((action, index) => /*#__PURE__*/_react().default.createElement(ActionSheetItem, {
293
282
  key: action.key ?? index,
294
283
  action: action,
295
284
  index: index,
296
285
  tokens: tokens,
297
286
  onActionPress: handleActionPress
298
- }))), children, hasCancelText ? /*#__PURE__*/_react().default.createElement(ActionSheetCancel, {
287
+ })), [actions, handleActionPress, tokens]);
288
+ const cancelNode = (0, _react().useMemo)(() => hasCancelText ? /*#__PURE__*/_react().default.createElement(ActionSheetCancel, {
299
289
  cancelText: cancelText,
300
290
  tokens: tokens,
301
291
  onPress: handleCancel
302
- }) : null));
292
+ }) : null, [cancelText, handleCancel, hasCancelText, tokens]);
293
+ return /*#__PURE__*/_react().default.createElement(_popup.default, _extends({
294
+ visible: visible,
295
+ placement: "bottom",
296
+ round: round,
297
+ safeAreaInsetTop: hasTitle && closeable,
298
+ safeAreaInsetBottom: safeAreaInsetBottom,
299
+ overlay: overlay,
300
+ lockScroll: lockScroll,
301
+ beforeClose: handlePopupBeforeClose,
302
+ onClose: handlePopupClose,
303
+ style: popupStyleMemo
304
+ }, popupProps), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
305
+ style: panelStyle
306
+ }, headerNode, descriptionNode, /*#__PURE__*/_react().default.createElement(_reactNative().View, {
307
+ style: tokens.layout.actions
308
+ }, actionNodes), children, cancelNode));
303
309
  };
304
310
  ActionSheet.displayName = 'ActionSheet';
305
311
  var _default = exports.default = ActionSheet;
@@ -12,10 +12,76 @@ function _react() {
12
12
  return data;
13
13
  }
14
14
  var _picker = _interopRequireDefault(require("../picker"));
15
- var _utils = require("./utils");
16
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
17
  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); }
18
+ const compareCode = (a, b) => a < b ? -1 : a > b ? 1 : 0;
19
+ const sortEntries = records => {
20
+ if (!records) return [];
21
+ return Object.entries(records).sort(([a], [b]) => compareCode(a, b));
22
+ };
23
+ const getProvinceCode = code => code.slice(0, 2);
24
+ const getCityCode = code => code.slice(0, 4);
25
+ const buildAreaColumns = (areaList, columnsNum = 3) => {
26
+ const provinces = sortEntries(areaList.province_list);
27
+ if (columnsNum === 1) {
28
+ return provinces.map(([code, name]) => ({
29
+ label: name,
30
+ value: code
31
+ }));
32
+ }
33
+ const citiesByProvince = new Map();
34
+ sortEntries(areaList.city_list).forEach(([code, name]) => {
35
+ const provinceKey = getProvinceCode(code);
36
+ const option = {
37
+ label: name,
38
+ value: code
39
+ };
40
+ const existing = citiesByProvince.get(provinceKey);
41
+ if (existing) {
42
+ existing.push(option);
43
+ } else {
44
+ citiesByProvince.set(provinceKey, [option]);
45
+ }
46
+ });
47
+ if (columnsNum === 3) {
48
+ const countiesByCity = new Map();
49
+ sortEntries(areaList.county_list).forEach(([code, name]) => {
50
+ const cityKey = getCityCode(code);
51
+ const option = {
52
+ label: name,
53
+ value: code
54
+ };
55
+ const existing = countiesByCity.get(cityKey);
56
+ if (existing) {
57
+ existing.push(option);
58
+ } else {
59
+ countiesByCity.set(cityKey, [option]);
60
+ }
61
+ });
62
+ citiesByProvince.forEach(cityOptions => {
63
+ cityOptions.forEach(cityOption => {
64
+ const cityKey = getCityCode(cityOption.value);
65
+ const counties = countiesByCity.get(cityKey);
66
+ if (counties && counties.length) {
67
+ cityOption.children = counties;
68
+ }
69
+ });
70
+ });
71
+ }
72
+ return provinces.map(([code, name]) => {
73
+ const provinceOption = {
74
+ label: name,
75
+ value: code
76
+ };
77
+ const provinceKey = getProvinceCode(code);
78
+ const cities = citiesByProvince.get(provinceKey);
79
+ if (cities && cities.length) {
80
+ provinceOption.children = cities;
81
+ }
82
+ return provinceOption;
83
+ });
84
+ };
19
85
  const normalizeCascadeValue = (root, raw, depth) => {
20
86
  if (!raw) return raw;
21
87
  const input = Array.isArray(raw) ? raw.map(String) : [String(raw)];
@@ -42,19 +108,19 @@ const Area = props => {
42
108
  interactionMode = 'sync',
43
109
  ...pickerProps
44
110
  } = props;
45
- const resolvedColumnsNum = columnsNum === 1 || columnsNum === 2 || columnsNum === 3 ? columnsNum : 3;
111
+ const resolvedColumnsNum = (0, _react().useMemo)(() => columnsNum === 1 || columnsNum === 2 || columnsNum === 3 ? columnsNum : 3, [columnsNum]);
46
112
  const {
47
113
  province_list,
48
114
  city_list,
49
115
  county_list
50
116
  } = areaList;
51
- const columns = (0, _utils.buildAreaColumns)({
117
+ const columns = (0, _react().useMemo)(() => buildAreaColumns({
52
118
  province_list,
53
119
  city_list,
54
120
  county_list
55
- }, resolvedColumnsNum);
56
- const normalizedValue = value === undefined ? undefined : normalizeCascadeValue(columns, value, resolvedColumnsNum);
57
- const normalizedDefaultValue = defaultValue === undefined ? undefined : normalizeCascadeValue(columns, defaultValue, resolvedColumnsNum);
121
+ }, resolvedColumnsNum), [city_list, county_list, province_list, resolvedColumnsNum]);
122
+ const normalizedValue = (0, _react().useMemo)(() => value === undefined ? undefined : normalizeCascadeValue(columns, value, resolvedColumnsNum), [columns, resolvedColumnsNum, value]);
123
+ const normalizedDefaultValue = (0, _react().useMemo)(() => defaultValue === undefined ? undefined : normalizeCascadeValue(columns, defaultValue, resolvedColumnsNum), [columns, defaultValue, resolvedColumnsNum]);
58
124
  const handleChange = (0, _react().useCallback)((values, options) => {
59
125
  onChange?.(values.map(String), options);
60
126
  }, [onChange]);
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAreaTokens = void 0;
7
+ var _designSystem = require("../../design-system");
8
+ const createAreaTokens = _foundations => {
9
+ return {};
10
+ };
11
+ const useAreaTokens = exports.useAreaTokens = (0, _designSystem.createComponentTokensHook)('area', createAreaTokens);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.Avatar = void 0;
6
+ exports.default = exports.AvatarImage = exports.AvatarFallbackText = exports.Avatar = void 0;
7
7
  function _react() {
8
8
  const data = _interopRequireDefault(require("react"));
9
9
  _react = function () {
@@ -23,6 +23,39 @@ var _utils = require("../../utils");
23
23
  var _tokens = require("./tokens");
24
24
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
25
  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); }
26
+ const AvatarFallbackText = exports.AvatarFallbackText = /*#__PURE__*/_react().default.forwardRef(({
27
+ children,
28
+ color,
29
+ style
30
+ }, ref) => {
31
+ const tokens = (0, _tokens.useAvatarTokens)();
32
+ const resolvedStyle = _reactNative().StyleSheet.flatten([tokens.layout.text, {
33
+ color: color ?? tokens.colors.text,
34
+ fontWeight: tokens.typography.fontWeight
35
+ }, style]);
36
+ return /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
37
+ ref: ref,
38
+ style: resolvedStyle,
39
+ numberOfLines: 1
40
+ }, children);
41
+ });
42
+ AvatarFallbackText.displayName = 'Avatar.FallbackText';
43
+ const AvatarImage = exports.AvatarImage = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
44
+ const tokens = (0, _tokens.useAvatarTokens)();
45
+ return /*#__PURE__*/_react().default.createElement(_image.default, _extends({
46
+ ref: ref
47
+ }, props, {
48
+ containerStyle: [{
49
+ backgroundColor: tokens.colors.transparent
50
+ }, props.containerStyle],
51
+ style: [tokens.layout.image, props.style],
52
+ fit: props.fit ?? 'cover',
53
+ loadingText: props.loadingText ?? null,
54
+ loadingSize: props.loadingSize ?? tokens.sizing.loadingSize,
55
+ showError: props.showError ?? true
56
+ }));
57
+ });
58
+ AvatarImage.displayName = 'Avatar.Image';
26
59
  const Avatar = exports.Avatar = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
27
60
  const {
28
61
  src,
@@ -39,6 +72,7 @@ const Avatar = exports.Avatar = /*#__PURE__*/_react().default.forwardRef((props,
39
72
  style,
40
73
  textStyle,
41
74
  contentStyle,
75
+ children,
42
76
  tokensOverride,
43
77
  ...pressableProps
44
78
  } = props;
@@ -58,15 +92,13 @@ const Avatar = exports.Avatar = /*#__PURE__*/_react().default.forwardRef((props,
58
92
  width: Math.min(avatarWidth, tokens.sizing.iconMaxSize),
59
93
  height: Math.min(avatarHeight, tokens.sizing.iconMaxSize)
60
94
  }, contentStyle]
61
- }, icon) : fallbackText && /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
62
- style: [tokens.layout.text, {
63
- color: color ?? tokens.colors.text,
64
- fontSize: Math.min(avatarWidth, avatarHeight) * tokens.typography.fallbackTextScale,
65
- fontWeight: tokens.typography.fontWeight
66
- }, textStyle],
67
- numberOfLines: 1
95
+ }, icon) : fallbackText && /*#__PURE__*/_react().default.createElement(AvatarFallbackText, {
96
+ color: color,
97
+ style: [{
98
+ fontSize: Math.min(avatarWidth, avatarHeight) * tokens.typography.fallbackTextScale
99
+ }, textStyle]
68
100
  }, fallbackText);
69
- const content = src || source ? /*#__PURE__*/_react().default.createElement(_image.default, {
101
+ const content = children ?? (src || source ? /*#__PURE__*/_react().default.createElement(AvatarImage, {
70
102
  src: src,
71
103
  source: source,
72
104
  containerStyle: transparentContainerStyle,
@@ -76,7 +108,7 @@ const Avatar = exports.Avatar = /*#__PURE__*/_react().default.forwardRef((props,
76
108
  loadingSize: tokens.sizing.loadingSize,
77
109
  showError: true,
78
110
  fallback: fallbackContent
79
- }) : fallbackContent;
111
+ }) : fallbackContent);
80
112
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({
81
113
  ref: ref,
82
114
  style: [tokens.layout.container, {
@@ -46,7 +46,7 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
46
46
  const {
47
47
  visible,
48
48
  formattedContent
49
- } = (() => {
49
+ } = (0, _react().useMemo)(() => {
50
50
  const numericContent = (0, _utils.isNumericLike)(content) ? Number(content) : null;
51
51
  const shouldHide = numericContent === 0 && !resolvedShowZero;
52
52
  const isVisible = dot || (0, _utils.isRenderable)(content) && !shouldHide;
@@ -60,7 +60,7 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
60
60
  visible: true,
61
61
  formattedContent: finalContent
62
62
  };
63
- })();
63
+ }, [content, dot, max, resolvedShowZero]);
64
64
  const [size, setSize] = (0, _react().useState)({
65
65
  width: 0,
66
66
  height: 0
@@ -77,7 +77,7 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
77
77
  });
78
78
  }
79
79
  }, [size.width, size.height]);
80
- const transformStyle = (() => {
80
+ const transformStyle = (0, _react().useMemo)(() => {
81
81
  if (!hasChildren) return undefined;
82
82
  if (dot) {
83
83
  const half = tokens.sizing.dotSize / 2;
@@ -99,8 +99,8 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
99
99
  translateY: -size.height / 2
100
100
  }]
101
101
  };
102
- })();
103
- const baseBadgeStyle = dot ? {
102
+ }, [dot, hasChildren, size.height, size.width, tokens.sizing.dotSize]);
103
+ const baseBadgeStyle = (0, _react().useMemo)(() => dot ? {
104
104
  width: tokens.sizing.dotSize,
105
105
  height: tokens.sizing.dotSize,
106
106
  borderRadius: tokens.radii.dot,
@@ -114,15 +114,15 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
114
114
  borderWidth: tokens.borders.width,
115
115
  borderColor: tokens.colors.border,
116
116
  backgroundColor: color ?? tokens.colors.background
117
- };
118
- const mergedTextStyle = [tokens.layout.text, {
117
+ }, [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]);
118
+ const mergedTextStyle = (0, _react().useMemo)(() => [tokens.layout.text, {
119
119
  color: textColor ?? tokens.colors.text,
120
120
  fontSize: tokens.typography.fontSize,
121
121
  lineHeight: tokens.typography.lineHeight,
122
122
  fontFamily: tokens.typography.fontFamily,
123
123
  fontWeight: tokens.typography.fontWeight
124
- }, userTextStyle];
125
- const offsetStyle = (() => {
124
+ }, userTextStyle], [textColor, tokens.colors.text, tokens.layout.text, tokens.typography.fontFamily, tokens.typography.fontSize, tokens.typography.fontWeight, tokens.typography.lineHeight, userTextStyle]);
125
+ const offsetStyle = (0, _react().useMemo)(() => {
126
126
  if (!offset) return undefined;
127
127
  const [x, y] = offset;
128
128
  return hasChildren ? {
@@ -132,7 +132,7 @@ const Badge = exports.Badge = /*#__PURE__*/_react().default.forwardRef((props, r
132
132
  marginLeft: x,
133
133
  marginTop: y
134
134
  };
135
- })();
135
+ }, [hasChildren, offset]);
136
136
  const badgeElement = !visible ? null : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
137
137
  pointerEvents: hasChildren ? 'none' : 'auto',
138
138
  onLayout: hasChildren && !dot ? handleLayout : undefined,
@@ -46,6 +46,10 @@ const createBadgeTokens = ({
46
46
  textAlign: 'center',
47
47
  includeFontPadding: false,
48
48
  textAlignVertical: 'center'
49
+ },
50
+ icon: {
51
+ alignItems: 'center',
52
+ justifyContent: 'center'
49
53
  }
50
54
  },
51
55
  colors: {
@@ -22,11 +22,9 @@ var _color = require("../../utils/color");
22
22
  var _createPlatformShadow = require("../../utils/createPlatformShadow");
23
23
  var _string = require("../../utils/string");
24
24
  var _validate = require("../../utils/validate");
25
- var _loading = _interopRequireDefault(require("../loading"));
26
25
  var _hooks = require("../../hooks");
27
26
  var _ButtonContext = require("./ButtonContext");
28
27
  var _tokens = require("./tokens");
29
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
30
28
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
31
29
  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); }
32
30
  const clampShadowLevel = level => {
@@ -54,10 +52,7 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
54
52
  type: typeProp,
55
53
  size: sizeProp,
56
54
  color,
57
- buttonColor: buttonColorProp,
58
55
  textColor,
59
- dark,
60
- mode: modeProp,
61
56
  plain: plainProp,
62
57
  block: blockProp,
63
58
  round: roundProp,
@@ -67,11 +62,8 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
67
62
  loading: loadingProp,
68
63
  loadingText,
69
64
  loadingIndicator,
70
- loadingType: loadingTypeProp,
71
65
  loadingSize: loadingSizeProp,
72
66
  disabled: disabledProp,
73
- autoInsertSpace: autoInsertSpaceProp,
74
- uppercase: uppercaseProp,
75
67
  allowFontScaling: allowFontScalingProp,
76
68
  maxFontSizeMultiplier,
77
69
  rippleColor: rippleColorProp,
@@ -92,60 +84,28 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
92
84
  const iconPosition = iconPositionProp ?? group?.iconPosition ?? buttonTokens.defaults.iconPosition;
93
85
  const groupShadow = group?.shadow;
94
86
  const shadowValue = shadowProp ?? groupShadow;
95
- const hasShadowOverride = shadowProp !== undefined || groupShadow !== undefined;
96
87
  const disabled = disabledProp ?? group?.disabled ?? buttonTokens.defaults.disabled;
97
88
  const loading = loadingProp ?? buttonTokens.defaults.loading;
98
- const loadingType = loadingTypeProp ?? buttonTokens.defaults.loadingType;
99
89
  const loadingSize = loadingSizeProp ?? buttonTokens.defaults.loadingSize;
100
- const autoInsertSpace = autoInsertSpaceProp ?? buttonTokens.defaults.autoInsertSpace;
101
- const uppercase = uppercaseProp ?? buttonTokens.defaults.uppercase;
102
90
  const allowFontScaling = allowFontScalingProp ?? buttonTokens.defaults.allowFontScaling;
103
- const defaultMode = buttonTokens.defaults.mode ?? 'contained';
104
- const groupMode = group?.mode;
105
- const shouldForcePlainTextMode = plain && !modeProp && !groupMode;
106
- const derivedMode = shouldForcePlainTextMode ? 'text' : modeProp ?? groupMode ?? defaultMode;
107
- const legacyPlain = shouldForcePlainTextMode;
108
- const buttonColorOverride = buttonColorProp ?? color;
91
+ const isPlain = plain;
109
92
  const tone = buttonTokens.colors.tones[type] ?? buttonTokens.colors.tones.default;
110
93
  const sizeTokens = buttonTokens.sizing.sizes[size];
111
- const gradientString = (0, _validate.isString)(buttonColorOverride) ? buttonColorOverride : undefined;
112
- const hasGradientSyntax = gradientString?.toLowerCase().includes('gradient') ?? false;
113
- const normalizedColor = hasGradientSyntax ? (0, _color.extractFirstColorToken)(gradientString) : buttonColorOverride;
114
- const allowsGradientFill = derivedMode === 'contained' || derivedMode === 'contained-tonal' || derivedMode === 'elevated';
115
- const gradientFillEnabled = hasGradientSyntax && !legacyPlain && allowsGradientFill;
116
- const supportsGradientFill = _reactNative().Platform.OS === 'web';
117
- let backgroundColor = normalizedColor ?? (derivedMode === 'contained' ? tone.background : derivedMode === 'contained-tonal' ? tone.tonalBackground : derivedMode === 'elevated' ? tone.background : buttonTokens.colors.backgroundTransparent);
118
- let borderColor = derivedMode === 'outlined' ? normalizedColor ?? tone.border : derivedMode === 'contained-tonal' ? tone.tonalBorder : derivedMode === 'contained' || derivedMode === 'elevated' ? normalizedColor ?? tone.border : buttonTokens.colors.backgroundTransparent;
94
+ const normalizedColor = color;
95
+ let backgroundColor = normalizedColor ?? tone.background;
96
+ let borderColor = normalizedColor ?? tone.border;
119
97
  let resolvedTextColor = textColor;
120
98
  if (!resolvedTextColor) {
121
- if (derivedMode === 'contained-tonal') {
122
- resolvedTextColor = tone.tonalText;
123
- } else if (derivedMode === 'contained' || derivedMode === 'elevated') {
124
- resolvedTextColor = normalizedColor ? '#ffffff' : tone.text;
125
- } else {
126
- resolvedTextColor = normalizedColor ?? (type === 'default' ? tone.text : tone.border);
127
- }
128
- }
129
- if (dark === true) {
130
- resolvedTextColor = buttonTokens.colors.textDark;
131
- } else if (dark === false) {
132
- resolvedTextColor = buttonTokens.colors.textLight;
133
- }
134
- if (derivedMode === 'text') {
135
- backgroundColor = buttonTokens.colors.backgroundTransparent;
136
- borderColor = buttonTokens.colors.backgroundTransparent;
99
+ resolvedTextColor = normalizedColor ? '#ffffff' : tone.text;
137
100
  }
138
- if (legacyPlain) {
101
+ if (isPlain) {
139
102
  backgroundColor = buttonTokens.colors.backgroundPlain;
140
103
  borderColor = normalizedColor ?? tone.border;
141
104
  const fallbackTextColor = type === 'default' && !normalizedColor ? tone.text : normalizedColor ?? tone.border;
142
105
  resolvedTextColor = textColor ?? fallbackTextColor;
143
106
  }
144
- if (gradientFillEnabled && supportsGradientFill) {
145
- backgroundColor = buttonTokens.colors.backgroundTransparent;
146
- }
147
- const shouldRenderBorder = derivedMode === 'outlined' || legacyPlain || derivedMode === 'contained' && type === 'default';
148
- const resolvedBorderWidth = gradientFillEnabled && !legacyPlain ? 0 : shouldRenderBorder ? hairline ? buttonTokens.borders.hairlineWidth : buttonTokens.borders.width : 0;
107
+ const shouldRenderBorder = isPlain || type === 'default';
108
+ const resolvedBorderWidth = shouldRenderBorder ? hairline ? buttonTokens.borders.hairlineWidth : buttonTokens.borders.width : 0;
149
109
  const borderRadius = square ? 0 : round ? sizeTokens.height / 2 : sizeTokens.radius;
150
110
  const isDisabled = disabled || loading;
151
111
  let resolvedShadowLevel;
@@ -153,10 +113,8 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
153
113
  resolvedShadowLevel = clampShadowLevel(shadowValue);
154
114
  } else if (shadowValue === true) {
155
115
  resolvedShadowLevel = clampShadowLevel(2);
156
- } else if (!hasShadowOverride && derivedMode === 'elevated') {
157
- resolvedShadowLevel = clampShadowLevel(2);
158
116
  }
159
- const shouldShowShadow = !!resolvedShadowLevel && !gradientFillEnabled && derivedMode !== 'text' && derivedMode !== 'outlined' && !legacyPlain;
117
+ const shouldShowShadow = !!resolvedShadowLevel && !isPlain;
160
118
  const shadowTokens = resolvedShadowLevel ? buttonTokens.shadows[resolvedShadowLevel] : undefined;
161
119
  const shadowStyle = shouldShowShadow && shadowTokens ? (0, _createPlatformShadow.createPlatformShadow)({
162
120
  color: shadowTokens.color,
@@ -165,9 +123,6 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
165
123
  offsetY: shadowTokens.offsetY,
166
124
  elevation: shadowTokens.elevation
167
125
  }) : undefined;
168
- const gradientWebStyle = gradientFillEnabled && supportsGradientFill && gradientString ? {
169
- backgroundImage: gradientString
170
- } : undefined;
171
126
  const iconWrapperStyle = iconPosition === 'left' ? {
172
127
  marginRight: buttonTokens.spacing.iconGap
173
128
  } : {
@@ -192,12 +147,9 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
192
147
  };
193
148
  const renderLoading = () => {
194
149
  const spinnerSize = resolveSpinnerSize(loadingSize, sizeTokens.iconSize);
195
- const defaultIndicator = loadingType === 'spinner' ? /*#__PURE__*/_react().default.createElement(_loading.default, {
196
- type: "spinner",
197
- size: spinnerSize,
198
- color: resolvedTextColor
199
- }) : /*#__PURE__*/_react().default.createElement(_reactNative().ActivityIndicator, {
200
- size: loadingSize,
150
+ const indicatorSize = (0, _validate.isNumber)(loadingSize) ? spinnerSize : loadingSize;
151
+ const defaultIndicator = /*#__PURE__*/_react().default.createElement(_reactNative().ActivityIndicator, {
152
+ size: indicatorSize,
201
153
  color: resolvedTextColor
202
154
  });
203
155
  return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
@@ -210,8 +162,7 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
210
162
  fontWeight: buttonTokens.typography.fontWeight,
211
163
  fontSize: sizeTokens.fontSize,
212
164
  lineHeight: sizeTokens.fontSize * buttonTokens.typography.lineHeightMultiplier,
213
- color: resolvedTextColor,
214
- textTransform: uppercase ? 'uppercase' : undefined
165
+ color: resolvedTextColor
215
166
  };
216
167
  const renderText = () => {
217
168
  if (label === undefined || label === null) {
@@ -219,7 +170,7 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
219
170
  }
220
171
  const sharedTextStyle = sharedLabelTextStyle;
221
172
  if ((0, _validate.isText)(label)) {
222
- const content = (0, _validate.isString)(label) ? (0, _string.ensureSpace)(label, autoInsertSpace) : String(label);
173
+ const content = (0, _validate.isString)(label) ? (0, _string.ensureSpace)(label, true) : String(label);
223
174
  return /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
224
175
  style: [buttonTokens.layout.text, sharedTextStyle, textStyle],
225
176
  numberOfLines: 1,
@@ -266,13 +217,13 @@ const Button = exports.Button = /*#__PURE__*/_react().default.forwardRef((props,
266
217
  const rippleClipStyle = _reactNative().Platform.OS === 'android' && borderRadius > 0 && !shouldShowShadow ? {
267
218
  overflow: 'hidden'
268
219
  } : null;
269
- const baseContainerStyle = [buttonTokens.layout.base, containerStyle, rippleClipStyle, block ? buttonTokens.layout.block : null, shadowStyle, gradientWebStyle, style];
220
+ const baseContainerStyle = [buttonTokens.layout.base, containerStyle, rippleClipStyle, block ? buttonTokens.layout.block : null, shadowStyle, style];
270
221
  const mergedAccessibilityState = {
271
222
  ...accessibilityState,
272
223
  disabled: isDisabled,
273
224
  busy: loading
274
225
  };
275
- const defaultRippleColor = rippleColorProp ?? (derivedMode === 'text' || derivedMode === 'outlined' || legacyPlain ? resolvedTextColor : type === 'default' && !normalizedColor ? (0, _color.withAlpha)(resolvedTextColor, 0.15) : buttonTokens.colors.ripple);
226
+ const defaultRippleColor = rippleColorProp ?? (isPlain ? resolvedTextColor : type === 'default' && !normalizedColor ? (0, _color.withAlpha)(resolvedTextColor, 0.15) : buttonTokens.colors.ripple);
276
227
  const resolvedAndroidRipple = _reactNative().Platform.OS === 'android' ? androidRippleProp ?? {
277
228
  color: defaultRippleColor,
278
229
  borderless: false
@@ -3,13 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ButtonGroupContext = void 0;
7
- function _react() {
8
- const data = _interopRequireDefault(require("react"));
9
- _react = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const ButtonGroupContext = exports.ButtonGroupContext = /*#__PURE__*/_react().default.createContext(null);
6
+ Object.defineProperty(exports, "ButtonGroupContext", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ButtonGroup.ButtonGroupContext;
10
+ }
11
+ });
12
+ var _ButtonGroup = require("./ButtonGroup");