react-native-system-ui 0.0.7 → 1.0.1

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 (411) hide show
  1. package/README.md +46 -31
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +128 -142
  3. package/dist/cjs/components/action-sheet/tokens.js +16 -27
  4. package/dist/cjs/components/area/Area.js +57 -70
  5. package/dist/cjs/components/area/tokens.js +6 -3
  6. package/dist/cjs/components/avatar/Avatar.js +38 -36
  7. package/dist/cjs/components/badge/Badge.js +68 -73
  8. package/dist/cjs/components/badge/tokens.js +6 -8
  9. package/dist/cjs/components/button/Button.js +135 -176
  10. package/dist/cjs/components/button/ButtonGroup.js +11 -45
  11. package/dist/cjs/components/button/tokens.js +1 -8
  12. package/dist/cjs/components/calendar/Calendar.js +212 -223
  13. package/dist/cjs/components/calendar/tokens.js +3 -3
  14. package/dist/cjs/components/cascader/Cascader.js +257 -267
  15. package/dist/cjs/components/cascader/tokens.js +2 -2
  16. package/dist/cjs/components/cascader/useCascaderExtend.js +25 -29
  17. package/dist/cjs/components/cell/Cell.js +94 -104
  18. package/dist/cjs/components/cell/CellGroup.js +37 -49
  19. package/dist/cjs/components/checkbox/Checkbox.js +140 -132
  20. package/dist/cjs/components/checkbox/CheckboxGroup.js +21 -51
  21. package/dist/cjs/components/checkbox/tokens.js +7 -10
  22. package/dist/cjs/components/circle/Circle.js +87 -74
  23. package/dist/cjs/components/collapse/Collapse.js +88 -104
  24. package/dist/cjs/components/config-provider/ConfigProvider.js +17 -4
  25. package/dist/cjs/components/config-provider/DirectionContext.js +15 -0
  26. package/dist/cjs/components/config-provider/index.js +7 -0
  27. package/dist/cjs/components/config-provider/locale/en-US.js +32 -0
  28. package/dist/cjs/components/config-provider/locale/zh-CN.js +32 -0
  29. package/dist/cjs/components/config-provider/useDirection.js +16 -0
  30. package/dist/cjs/components/count-down/CountDown.js +32 -27
  31. package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -104
  32. package/dist/cjs/components/datetime-picker/tokens.js +14 -3
  33. package/dist/cjs/components/dialog/Dialog.js +159 -121
  34. package/dist/cjs/components/dialog/imperative.js +24 -43
  35. package/dist/cjs/components/dialog/tokens.js +1 -0
  36. package/dist/cjs/components/divider/Divider.js +57 -62
  37. package/dist/cjs/components/empty/Empty.js +53 -52
  38. package/dist/cjs/components/error-boundary/ErrorBoundary.js +74 -0
  39. package/dist/cjs/components/error-boundary/index.js +19 -0
  40. package/dist/cjs/components/field/Field.js +109 -106
  41. package/dist/cjs/components/flex/Flex.js +32 -32
  42. package/dist/cjs/components/flex/FlexItem.js +27 -27
  43. package/dist/cjs/components/form/Form.js +178 -196
  44. package/dist/cjs/components/form/FormItem.js +87 -109
  45. package/dist/cjs/components/form/FormList.js +57 -45
  46. package/dist/cjs/components/form/tokens.js +6 -3
  47. package/dist/cjs/components/form/utils.js +15 -34
  48. package/dist/cjs/components/grid/Grid.js +44 -43
  49. package/dist/cjs/components/grid/GridItem.js +92 -86
  50. package/dist/cjs/components/image/Image.js +76 -79
  51. package/dist/cjs/components/image/tokens.js +5 -3
  52. package/dist/cjs/components/image-preview/ImagePreview.js +125 -113
  53. package/dist/cjs/components/image-preview/imperative.js +4 -13
  54. package/dist/cjs/components/image-preview/tokens.js +3 -1
  55. package/dist/cjs/components/index.js +13 -0
  56. package/dist/cjs/components/input/Input.js +40 -35
  57. package/dist/cjs/components/loading/Loading.js +32 -33
  58. package/dist/cjs/components/nav-bar/NavBar.js +88 -100
  59. package/dist/cjs/components/nav-bar/tokens.js +4 -10
  60. package/dist/cjs/components/notice-bar/NoticeBar.js +81 -80
  61. package/dist/cjs/components/notice-bar/tokens.js +3 -1
  62. package/dist/cjs/components/notify/Notify.js +89 -84
  63. package/dist/cjs/components/notify/imperative.js +32 -55
  64. package/dist/cjs/components/notify/tokens.js +2 -11
  65. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +277 -283
  66. package/dist/cjs/components/number-keyboard/tokens.js +7 -1
  67. package/dist/cjs/components/overlay/Overlay.js +37 -52
  68. package/dist/cjs/components/overlay/tokens.js +5 -3
  69. package/dist/cjs/components/password-input/PasswordInput.js +114 -95
  70. package/dist/cjs/components/picker/Picker.js +465 -454
  71. package/dist/cjs/components/picker/tokens.js +1 -1
  72. package/dist/cjs/components/popup/Popup.js +269 -299
  73. package/dist/cjs/components/popup/tokens.js +1 -0
  74. package/dist/cjs/components/portal/Portal.js +12 -30
  75. package/dist/cjs/components/portal/PortalHost.js +151 -234
  76. package/dist/cjs/components/progress/Progress.js +103 -101
  77. package/dist/cjs/components/progress/tokens.js +1 -0
  78. package/dist/cjs/components/radio/Radio.js +98 -91
  79. package/dist/cjs/components/radio/RadioGroup.js +13 -45
  80. package/dist/cjs/components/radio/tokens.js +7 -10
  81. package/dist/cjs/components/safe-area-view/SafeAreaView.js +22 -26
  82. package/dist/cjs/components/search/Search.js +65 -57
  83. package/dist/cjs/components/selector/Selector.js +21 -27
  84. package/dist/cjs/components/share-sheet/ShareSheet.js +165 -161
  85. package/dist/cjs/components/share-sheet/tokens.js +3 -1
  86. package/dist/cjs/components/sidebar/Sidebar.js +51 -51
  87. package/dist/cjs/components/sidebar/SidebarContext.js +1 -2
  88. package/dist/cjs/components/sidebar/SidebarItem.js +19 -21
  89. package/dist/cjs/components/sidebar/tokens.js +4 -4
  90. package/dist/cjs/components/skeleton/Skeleton.js +71 -77
  91. package/dist/cjs/components/skeleton/tokens.js +1 -2
  92. package/dist/cjs/components/slider/Slider.js +156 -135
  93. package/dist/cjs/components/space/Space.js +57 -76
  94. package/dist/cjs/components/space/tokens.js +7 -1
  95. package/dist/cjs/components/stepper/Stepper.js +182 -158
  96. package/dist/cjs/components/stepper/tokens.js +1 -0
  97. package/dist/cjs/components/swiper/Swiper.js +256 -255
  98. package/dist/cjs/components/swiper/SwiperPagIndicator.js +26 -27
  99. package/dist/cjs/components/swiper/tokens.js +10 -3
  100. package/dist/cjs/components/switch/Switch.js +23 -25
  101. package/dist/cjs/components/tabbar/Tabbar.js +48 -40
  102. package/dist/cjs/components/tabbar/TabbarContext.js +1 -2
  103. package/dist/cjs/components/tabbar/TabbarItem.js +65 -68
  104. package/dist/cjs/components/tabs/Tabs.js +402 -439
  105. package/dist/cjs/components/tabs/tokens.js +3 -1
  106. package/dist/cjs/components/tag/Tag.js +68 -59
  107. package/dist/cjs/components/toast/Toast.js +91 -90
  108. package/dist/cjs/components/toast/imperative.js +16 -41
  109. package/dist/cjs/components/toast/tokens.js +1 -0
  110. package/dist/cjs/components/typography/Typography.js +25 -25
  111. package/dist/cjs/components/water-mark/WaterMark.js +80 -78
  112. package/dist/cjs/design-system/Text.js +38 -0
  113. package/dist/cjs/design-system/ThemeProvider.js +5 -11
  114. package/dist/cjs/design-system/createComponentTokensHook.js +11 -13
  115. package/dist/cjs/design-system/index.js +7 -0
  116. package/dist/cjs/design-system/mergeTokensOverride.js +1 -4
  117. package/dist/cjs/design-system/presets.js +2 -3
  118. package/dist/cjs/design-system/tokens.js +2 -11
  119. package/dist/cjs/hooks/animation/index.js +25 -0
  120. package/dist/cjs/hooks/animation/useAnimatedTransition.js +72 -0
  121. package/dist/cjs/hooks/animation/useReducedMotion.js +75 -0
  122. package/dist/cjs/hooks/aria/useAriaListBox.js +8 -16
  123. package/dist/cjs/hooks/aria/useAriaOverlay.js +3 -3
  124. package/dist/cjs/hooks/aria/useAriaPress.js +8 -21
  125. package/dist/cjs/hooks/aria/useAriaToggle.js +3 -3
  126. package/dist/cjs/hooks/gesture/useGestureScroll.js +60 -61
  127. package/dist/cjs/hooks/index.js +12 -0
  128. package/dist/cjs/hooks/overlay/OverlayStackStore.js +49 -69
  129. package/dist/cjs/hooks/overlay/useOverlayStack.js +13 -19
  130. package/dist/cjs/hooks/useControllableValue.js +13 -24
  131. package/dist/cjs/hooks/useCountDown.js +30 -38
  132. package/dist/cjs/hooks/useHairline.js +17 -29
  133. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -4
  134. package/dist/cjs/index.js +67 -1
  135. package/dist/cjs/platform/animation.js +10 -2
  136. package/dist/cjs/platform/measure.js +21 -37
  137. package/dist/cjs/utils/color.js +20 -39
  138. package/dist/cjs/utils/compare.js +7 -12
  139. package/dist/cjs/utils/createPlatformShadow.js +28 -39
  140. package/dist/cjs/utils/date.js +20 -50
  141. package/dist/cjs/utils/deepMerge.js +16 -26
  142. package/dist/cjs/utils/hairline.js +75 -71
  143. package/dist/cjs/utils/index.js +22 -0
  144. package/dist/cjs/utils/number.js +21 -29
  145. package/dist/cjs/utils/render.js +21 -0
  146. package/dist/cjs/utils/rtl.js +25 -0
  147. package/dist/cjs/utils/string.js +8 -25
  148. package/dist/cjs/utils/validate.js +2 -4
  149. package/dist/es/components/action-sheet/ActionSheet.js +130 -144
  150. package/dist/es/components/action-sheet/tokens.js +16 -27
  151. package/dist/es/components/area/Area.js +58 -71
  152. package/dist/es/components/area/tokens.js +6 -3
  153. package/dist/es/components/avatar/Avatar.js +38 -36
  154. package/dist/es/components/avatar/index.js +1 -2
  155. package/dist/es/components/badge/Badge.js +70 -75
  156. package/dist/es/components/badge/tokens.js +6 -8
  157. package/dist/es/components/button/Button.js +136 -177
  158. package/dist/es/components/button/ButtonGroup.js +12 -46
  159. package/dist/es/components/button/tokens.js +2 -3
  160. package/dist/es/components/calendar/Calendar.js +214 -225
  161. package/dist/es/components/calendar/tokens.js +3 -3
  162. package/dist/es/components/cascader/Cascader.js +260 -270
  163. package/dist/es/components/cascader/tokens.js +2 -2
  164. package/dist/es/components/cascader/useCascaderExtend.js +25 -29
  165. package/dist/es/components/cell/Cell.js +95 -105
  166. package/dist/es/components/cell/CellGroup.js +37 -48
  167. package/dist/es/components/checkbox/Checkbox.js +141 -133
  168. package/dist/es/components/checkbox/CheckboxGroup.js +22 -52
  169. package/dist/es/components/checkbox/tokens.js +7 -10
  170. package/dist/es/components/circle/Circle.js +87 -73
  171. package/dist/es/components/collapse/Collapse.js +90 -105
  172. package/dist/es/components/config-provider/ConfigProvider.js +11 -4
  173. package/dist/es/components/config-provider/DirectionContext.js +2 -0
  174. package/dist/es/components/config-provider/index.js +1 -0
  175. package/dist/es/components/config-provider/locale/en-US.js +32 -0
  176. package/dist/es/components/config-provider/locale/zh-CN.js +32 -0
  177. package/dist/es/components/config-provider/useDirection.js +3 -0
  178. package/dist/es/components/count-down/CountDown.js +35 -30
  179. package/dist/es/components/datetime-picker/DatetimePicker.js +80 -104
  180. package/dist/es/components/datetime-picker/tokens.js +14 -3
  181. package/dist/es/components/dialog/Dialog.js +160 -121
  182. package/dist/es/components/dialog/imperative.js +24 -43
  183. package/dist/es/components/dialog/tokens.js +1 -0
  184. package/dist/es/components/divider/Divider.js +59 -63
  185. package/dist/es/components/empty/Empty.js +54 -52
  186. package/dist/es/components/error-boundary/ErrorBoundary.js +62 -0
  187. package/dist/es/components/error-boundary/index.js +1 -0
  188. package/dist/es/components/field/Field.js +109 -106
  189. package/dist/es/components/flex/Flex.js +32 -31
  190. package/dist/es/components/flex/FlexItem.js +28 -27
  191. package/dist/es/components/form/Form.js +179 -197
  192. package/dist/es/components/form/FormItem.js +86 -107
  193. package/dist/es/components/form/FormList.js +57 -45
  194. package/dist/es/components/form/tokens.js +6 -3
  195. package/dist/es/components/form/utils.js +15 -34
  196. package/dist/es/components/grid/Grid.js +44 -42
  197. package/dist/es/components/grid/GridItem.js +94 -87
  198. package/dist/es/components/image/Image.js +79 -82
  199. package/dist/es/components/image/tokens.js +5 -3
  200. package/dist/es/components/image-preview/ImagePreview.js +125 -113
  201. package/dist/es/components/image-preview/imperative.js +4 -13
  202. package/dist/es/components/image-preview/tokens.js +3 -1
  203. package/dist/es/components/index.js +3 -1
  204. package/dist/es/components/input/Input.js +41 -36
  205. package/dist/es/components/loading/Loading.js +34 -34
  206. package/dist/es/components/nav-bar/NavBar.js +88 -100
  207. package/dist/es/components/nav-bar/tokens.js +4 -4
  208. package/dist/es/components/notice-bar/NoticeBar.js +81 -79
  209. package/dist/es/components/notice-bar/tokens.js +3 -1
  210. package/dist/es/components/notify/Notify.js +93 -87
  211. package/dist/es/components/notify/imperative.js +33 -56
  212. package/dist/es/components/notify/tokens.js +2 -5
  213. package/dist/es/components/number-keyboard/NumberKeyboard.js +277 -283
  214. package/dist/es/components/number-keyboard/tokens.js +7 -1
  215. package/dist/es/components/overlay/Overlay.js +36 -51
  216. package/dist/es/components/overlay/tokens.js +5 -3
  217. package/dist/es/components/password-input/PasswordInput.js +114 -95
  218. package/dist/es/components/picker/Picker.js +465 -454
  219. package/dist/es/components/picker/tokens.js +1 -1
  220. package/dist/es/components/popup/Popup.js +269 -298
  221. package/dist/es/components/popup/tokens.js +1 -0
  222. package/dist/es/components/portal/Portal.js +13 -30
  223. package/dist/es/components/portal/PortalHost.js +152 -234
  224. package/dist/es/components/progress/Progress.js +103 -101
  225. package/dist/es/components/progress/tokens.js +1 -0
  226. package/dist/es/components/radio/Radio.js +100 -93
  227. package/dist/es/components/radio/RadioGroup.js +15 -46
  228. package/dist/es/components/radio/tokens.js +7 -10
  229. package/dist/es/components/safe-area-view/SafeAreaView.js +22 -25
  230. package/dist/es/components/search/Search.js +66 -58
  231. package/dist/es/components/selector/Selector.js +21 -27
  232. package/dist/es/components/share-sheet/ShareSheet.js +167 -163
  233. package/dist/es/components/share-sheet/tokens.js +3 -1
  234. package/dist/es/components/sidebar/Sidebar.js +53 -53
  235. package/dist/es/components/sidebar/SidebarContext.js +1 -2
  236. package/dist/es/components/sidebar/SidebarItem.js +19 -20
  237. package/dist/es/components/sidebar/tokens.js +4 -4
  238. package/dist/es/components/skeleton/Skeleton.js +71 -77
  239. package/dist/es/components/skeleton/tokens.js +1 -2
  240. package/dist/es/components/slider/Slider.js +156 -134
  241. package/dist/es/components/space/Space.js +59 -78
  242. package/dist/es/components/space/tokens.js +7 -1
  243. package/dist/es/components/stepper/Stepper.js +183 -159
  244. package/dist/es/components/stepper/tokens.js +1 -0
  245. package/dist/es/components/swiper/Swiper.js +258 -257
  246. package/dist/es/components/swiper/SwiperPagIndicator.js +26 -27
  247. package/dist/es/components/swiper/tokens.js +10 -3
  248. package/dist/es/components/switch/Switch.js +23 -25
  249. package/dist/es/components/tabbar/Tabbar.js +49 -41
  250. package/dist/es/components/tabbar/TabbarContext.js +1 -2
  251. package/dist/es/components/tabbar/TabbarItem.js +66 -69
  252. package/dist/es/components/tabs/Tabs.js +403 -440
  253. package/dist/es/components/tabs/tokens.js +3 -1
  254. package/dist/es/components/tag/Tag.js +71 -61
  255. package/dist/es/components/toast/Toast.js +94 -91
  256. package/dist/es/components/toast/imperative.js +16 -41
  257. package/dist/es/components/toast/tokens.js +1 -0
  258. package/dist/es/components/typography/Typography.js +25 -25
  259. package/dist/es/components/water-mark/WaterMark.js +81 -79
  260. package/dist/es/design-system/Text.js +19 -0
  261. package/dist/es/design-system/ThemeProvider.js +5 -11
  262. package/dist/es/design-system/createComponentTokensHook.js +11 -13
  263. package/dist/es/design-system/index.js +1 -0
  264. package/dist/es/design-system/mergeTokensOverride.js +1 -4
  265. package/dist/es/design-system/presets.js +2 -3
  266. package/dist/es/design-system/tokens.js +1 -9
  267. package/dist/es/hooks/animation/index.js +2 -0
  268. package/dist/es/hooks/animation/useAnimatedTransition.js +53 -0
  269. package/dist/es/hooks/animation/useReducedMotion.js +54 -0
  270. package/dist/es/hooks/aria/useAriaListBox.js +8 -16
  271. package/dist/es/hooks/aria/useAriaOverlay.js +3 -3
  272. package/dist/es/hooks/aria/useAriaPress.js +8 -21
  273. package/dist/es/hooks/aria/useAriaToggle.js +3 -3
  274. package/dist/es/hooks/gesture/useGestureScroll.js +60 -61
  275. package/dist/es/hooks/index.js +1 -0
  276. package/dist/es/hooks/overlay/OverlayStackStore.js +49 -69
  277. package/dist/es/hooks/overlay/useOverlayStack.js +13 -19
  278. package/dist/es/hooks/useControllableValue.js +13 -24
  279. package/dist/es/hooks/useCountDown.js +30 -38
  280. package/dist/es/hooks/useHairline.js +16 -28
  281. package/dist/es/hooks/useSafeAreaPadding.js +1 -4
  282. package/dist/es/index.js +8 -1
  283. package/dist/es/platform/animation.js +9 -1
  284. package/dist/es/platform/measure.js +21 -37
  285. package/dist/es/utils/color.js +18 -35
  286. package/dist/es/utils/compare.js +7 -12
  287. package/dist/es/utils/createPlatformShadow.js +28 -39
  288. package/dist/es/utils/date.js +20 -50
  289. package/dist/es/utils/deepMerge.js +16 -26
  290. package/dist/es/utils/hairline.js +74 -65
  291. package/dist/es/utils/index.js +2 -0
  292. package/dist/es/utils/number.js +21 -29
  293. package/dist/es/utils/render.js +7 -0
  294. package/dist/es/utils/rtl.js +17 -0
  295. package/dist/es/utils/string.js +8 -25
  296. package/dist/es/utils/validate.js +1 -2
  297. package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -1
  298. package/dist/types/components/area/Area.d.ts +1 -1
  299. package/dist/types/components/area/tokens.d.ts +4 -0
  300. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  301. package/dist/types/components/avatar/index.d.ts +1 -2
  302. package/dist/types/components/badge/Badge.d.ts +1 -1
  303. package/dist/types/components/button/Button.d.ts +1 -1
  304. package/dist/types/components/button/index.d.ts +1 -1
  305. package/dist/types/components/calendar/Calendar.d.ts +1 -1
  306. package/dist/types/components/cascader/Cascader.d.ts +1 -1
  307. package/dist/types/components/cell/Cell.d.ts +1 -1
  308. package/dist/types/components/cell/CellGroup.d.ts +1 -1
  309. package/dist/types/components/cell/index.d.ts +2 -2
  310. package/dist/types/components/checkbox/Checkbox.d.ts +1 -1
  311. package/dist/types/components/circle/Circle.d.ts +1 -1
  312. package/dist/types/components/collapse/Collapse.d.ts +1 -2
  313. package/dist/types/components/config-provider/DirectionContext.d.ts +3 -0
  314. package/dist/types/components/config-provider/index.d.ts +2 -1
  315. package/dist/types/components/config-provider/locale/en-US.d.ts +32 -0
  316. package/dist/types/components/config-provider/locale/zh-CN.d.ts +32 -0
  317. package/dist/types/components/config-provider/useDirection.d.ts +1 -0
  318. package/dist/types/components/count-down/CountDown.d.ts +1 -1
  319. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -1
  320. package/dist/types/components/datetime-picker/tokens.d.ts +12 -0
  321. package/dist/types/components/dialog/Dialog.d.ts +1 -1
  322. package/dist/types/components/dialog/tokens.d.ts +1 -0
  323. package/dist/types/components/divider/Divider.d.ts +1 -1
  324. package/dist/types/components/empty/Empty.d.ts +1 -1
  325. package/dist/types/components/error-boundary/ErrorBoundary.d.ts +6 -0
  326. package/dist/types/components/error-boundary/index.d.ts +2 -0
  327. package/dist/types/components/field/Field.d.ts +1 -1
  328. package/dist/types/components/flex/Flex.d.ts +1 -1
  329. package/dist/types/components/flex/FlexItem.d.ts +1 -1
  330. package/dist/types/components/flex/index.d.ts +2 -2
  331. package/dist/types/components/form/Form.d.ts +1 -1
  332. package/dist/types/components/form/FormItem.d.ts +2 -1
  333. package/dist/types/components/form/index.d.ts +2 -2
  334. package/dist/types/components/form/tokens.d.ts +4 -0
  335. package/dist/types/components/grid/Grid.d.ts +1 -1
  336. package/dist/types/components/grid/GridItem.d.ts +1 -1
  337. package/dist/types/components/grid/index.d.ts +2 -2
  338. package/dist/types/components/image/Image.d.ts +1 -1
  339. package/dist/types/components/image-preview/ImagePreview.d.ts +1 -1
  340. package/dist/types/components/image-preview/tokens.d.ts +1 -0
  341. package/dist/types/components/index.d.ts +4 -1
  342. package/dist/types/components/input/Input.d.ts +3 -3
  343. package/dist/types/components/loading/Loading.d.ts +1 -1
  344. package/dist/types/components/nav-bar/NavBar.d.ts +1 -1
  345. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  346. package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -1
  347. package/dist/types/components/notice-bar/tokens.d.ts +1 -0
  348. package/dist/types/components/notify/Notify.d.ts +2 -2
  349. package/dist/types/components/notify/index.d.ts +1 -1
  350. package/dist/types/components/number-keyboard/tokens.d.ts +5 -0
  351. package/dist/types/components/overlay/Overlay.d.ts +1 -5
  352. package/dist/types/components/overlay/tokens.d.ts +3 -0
  353. package/dist/types/components/password-input/PasswordInput.d.ts +1 -1
  354. package/dist/types/components/picker/Picker.d.ts +6 -6
  355. package/dist/types/components/popup/Popup.d.ts +3 -42
  356. package/dist/types/components/popup/tokens.d.ts +1 -0
  357. package/dist/types/components/portal/Portal.d.ts +9 -6
  358. package/dist/types/components/portal/PortalHost.d.ts +1 -1
  359. package/dist/types/components/radio/RadioGroup.d.ts +1 -1
  360. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -1
  361. package/dist/types/components/search/Search.d.ts +1 -1
  362. package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -1
  363. package/dist/types/components/share-sheet/tokens.d.ts +1 -0
  364. package/dist/types/components/sidebar/Sidebar.d.ts +1 -1
  365. package/dist/types/components/sidebar/SidebarContext.d.ts +1 -1
  366. package/dist/types/components/sidebar/SidebarItem.d.ts +1 -1
  367. package/dist/types/components/sidebar/index.d.ts +2 -2
  368. package/dist/types/components/skeleton/Skeleton.d.ts +1 -1
  369. package/dist/types/components/slider/Slider.d.ts +1 -1
  370. package/dist/types/components/stepper/Stepper.d.ts +1 -1
  371. package/dist/types/components/stepper/tokens.d.ts +1 -0
  372. package/dist/types/components/swiper/Swiper.d.ts +1 -1
  373. package/dist/types/components/swiper/index.d.ts +1 -1
  374. package/dist/types/components/swiper/tokens.d.ts +8 -0
  375. package/dist/types/components/tabbar/Tabbar.d.ts +2 -2
  376. package/dist/types/components/tabbar/TabbarContext.d.ts +1 -1
  377. package/dist/types/components/tabbar/TabbarItem.d.ts +2 -2
  378. package/dist/types/components/tabs/Tabs.d.ts +1 -1
  379. package/dist/types/components/tabs/index.d.ts +1 -1
  380. package/dist/types/components/tabs/tokens.d.ts +1 -0
  381. package/dist/types/components/tag/Tag.d.ts +1 -1
  382. package/dist/types/components/toast/Toast.d.ts +2 -2
  383. package/dist/types/components/toast/index.d.ts +1 -1
  384. package/dist/types/components/toast/tokens.d.ts +1 -0
  385. package/dist/types/components/water-mark/WaterMark.d.ts +1 -1
  386. package/dist/types/design-system/Text.d.ts +3 -0
  387. package/dist/types/design-system/index.d.ts +1 -0
  388. package/dist/types/design-system/tokens.d.ts +0 -1
  389. package/dist/types/hooks/animation/index.d.ts +3 -0
  390. package/dist/types/hooks/animation/useAnimatedTransition.d.ts +13 -0
  391. package/dist/types/hooks/animation/useReducedMotion.d.ts +3 -0
  392. package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -1
  393. package/dist/types/hooks/gesture/useGestureScroll.d.ts +11 -10
  394. package/dist/types/hooks/index.d.ts +1 -0
  395. package/dist/types/hooks/overlay/OverlayStackStore.d.ts +8 -8
  396. package/dist/types/hooks/useCountDown.d.ts +1 -1
  397. package/dist/types/hooks/useHairline.d.ts +1 -1
  398. package/dist/types/index.d.ts +5 -0
  399. package/dist/types/platform/animation.d.ts +8 -0
  400. package/dist/types/platform/measure.d.ts +1 -1
  401. package/dist/types/utils/color.d.ts +0 -2
  402. package/dist/types/utils/compare.d.ts +1 -1
  403. package/dist/types/utils/createPlatformShadow.d.ts +2 -2
  404. package/dist/types/utils/date.d.ts +2 -2
  405. package/dist/types/utils/hairline.d.ts +5 -10
  406. package/dist/types/utils/index.d.ts +2 -0
  407. package/dist/types/utils/number.d.ts +2 -2
  408. package/dist/types/utils/render.d.ts +5 -0
  409. package/dist/types/utils/rtl.d.ts +5 -0
  410. package/dist/types/utils/validate.d.ts +0 -1
  411. package/package.json +25 -4
@@ -1,11 +1,11 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import React, { useCallback, useMemo, useRef } from 'react';
3
- import { Platform, View } from 'react-native';
3
+ import { View } from 'react-native';
4
4
  import { useRadioGroup } from '@react-native-aria/radio';
5
5
  import { useRadioGroupState } from '@react-stately/radio';
6
6
  import { useRadioTokens } from './tokens';
7
7
  export const RadioGroupContext = /*#__PURE__*/React.createContext(null);
8
- export const RadioGroup = props => {
8
+ const RadioGroupImpl = props => {
9
9
  const {
10
10
  value,
11
11
  defaultValue,
@@ -40,8 +40,7 @@ export const RadioGroup = props => {
40
40
  defaultValue: defaultValue == null ? undefined : String(defaultValue),
41
41
  isDisabled: disabled,
42
42
  onChange: key => {
43
- const raw = registryRef.current.get(key);
44
- onChange?.(raw ?? key);
43
+ onChange?.(registryRef.current.get(key) ?? key);
45
44
  },
46
45
  name
47
46
  });
@@ -52,33 +51,14 @@ export const RadioGroup = props => {
52
51
  'aria-label': accessibilityLabel,
53
52
  name
54
53
  }, state);
55
- const resolvedRadioGroupProps = useMemo(() => ({
54
+ const rProps = useMemo(() => ({
56
55
  ...(radioGroupProps ?? {}),
57
56
  ...(accessibilityHint && {
58
57
  'aria-describedby': accessibilityHint
59
58
  }),
60
59
  'aria-disabled': disabled
61
60
  }), [accessibilityHint, disabled, radioGroupProps]);
62
- const supportsGap = Platform.OS === 'web';
63
- const childrenArray = useMemo(() => React.Children.toArray(children).filter(child => child != null && typeof child !== 'boolean'), [children]);
64
- const childrenLength = childrenArray.length;
65
- const itemStyleForIndex = useCallback(index => {
66
- if (supportsGap) return tokens.layout.groupItem;
67
- const isLast = index === childrenLength - 1;
68
- if (direction === 'horizontal') {
69
- return [tokens.layout.groupItem, !isLast && {
70
- marginRight: gap
71
- }];
72
- }
73
- return isLast ? tokens.layout.groupItem : [tokens.layout.groupItem, {
74
- marginBottom: gap
75
- }];
76
- }, [childrenLength, direction, gap, supportsGap, tokens.layout.groupItem]);
77
- const containerGapStyle = useMemo(() => supportsGap ? {
78
- columnGap: direction === 'horizontal' ? gap : undefined,
79
- rowGap: gap
80
- } : null, [direction, gap, supportsGap]);
81
- const contextValue = useMemo(() => ({
61
+ const ctxVal = useMemo(() => ({
82
62
  state,
83
63
  direction,
84
64
  iconSize,
@@ -87,27 +67,16 @@ export const RadioGroup = props => {
87
67
  registerValue,
88
68
  unregisterValue
89
69
  }), [checkedColor, direction, iconSize, labelDisabled, registerValue, state, unregisterValue]);
90
- const containerStyle = useMemo(() => [direction === 'horizontal' ? tokens.layout.groupHorizontal : tokens.layout.groupVertical, containerGapStyle, style], [containerGapStyle, direction, style, tokens.layout.groupHorizontal, tokens.layout.groupVertical]);
91
- const renderedChildren = useMemo(() => supportsGap ? childrenArray : childrenArray.map((child, index) => {
92
- const key = /*#__PURE__*/React.isValidElement(child) && child.key !== null ? child.key : index;
93
- const itemStyle = itemStyleForIndex(index);
94
- if (/*#__PURE__*/React.isValidElement(child) && child.type !== React.Fragment) {
95
- const element = child;
96
- return /*#__PURE__*/React.cloneElement(element, {
97
- style: [element.props.style, itemStyle],
98
- key
99
- });
100
- }
101
- return /*#__PURE__*/React.createElement(View, {
102
- key: key,
103
- style: itemStyle
104
- }, child);
105
- }), [childrenArray, itemStyleForIndex, supportsGap]);
70
+ const ctrStyle = [direction === 'horizontal' ? tokens.layout.groupHorizontal : tokens.layout.groupVertical, {
71
+ columnGap: direction === 'horizontal' ? gap : undefined,
72
+ rowGap: gap
73
+ }, style];
106
74
  return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {
107
- value: contextValue
108
- }, /*#__PURE__*/React.createElement(View, _extends({}, resolvedRadioGroupProps, viewProps, {
75
+ value: ctxVal
76
+ }, /*#__PURE__*/React.createElement(View, _extends({}, rProps, viewProps, {
109
77
  accessibilityLabel: accessibilityLabel,
110
78
  accessibilityHint: accessibilityHint,
111
- style: containerStyle
112
- }), renderedChildren));
113
- };
79
+ style: ctrStyle
80
+ }), children));
81
+ };
82
+ export const RadioGroup = /*#__PURE__*/React.memo(RadioGroupImpl);
@@ -1,5 +1,9 @@
1
1
  import { StyleSheet } from 'react-native';
2
2
  import { createComponentTokensHook } from '../../design-system';
3
+ const centered = {
4
+ justifyContent: 'center',
5
+ alignItems: 'center'
6
+ };
3
7
  const createRadioTokens = foundations => {
4
8
  const {
5
9
  palette,
@@ -7,7 +11,6 @@ const createRadioTokens = foundations => {
7
11
  fontSize,
8
12
  typography
9
13
  } = foundations;
10
- const onPrimary = palette.primary.foreground ?? '#ffffff';
11
14
  return {
12
15
  defaults: {
13
16
  iconSize: 20,
@@ -22,17 +25,11 @@ const createRadioTokens = foundations => {
22
25
  flexDirection: 'row',
23
26
  alignItems: 'center'
24
27
  },
25
- iconWrapper: {
26
- justifyContent: 'center',
27
- alignItems: 'center'
28
- },
28
+ iconWrapper: centered,
29
29
  labelWrapper: {
30
30
  flexShrink: 1
31
31
  },
32
- icon: {
33
- justifyContent: 'center',
34
- alignItems: 'center'
35
- },
32
+ icon: centered,
36
33
  label: {
37
34
  includeFontPadding: false
38
35
  },
@@ -54,7 +51,7 @@ const createRadioTokens = foundations => {
54
51
  checkedBackground: palette.primary[500],
55
52
  disabledBorder: palette.default[300],
56
53
  disabledBackground: palette.default[100],
57
- checkmark: onPrimary,
54
+ checkmark: palette.primary.foreground ?? '#ffffff',
58
55
  label: palette.default.foreground ?? '#111827',
59
56
  labelDisabled: palette.default[400]
60
57
  },
@@ -1,43 +1,40 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
3
  import { useSafeAreaPadding } from '../../hooks/useSafeAreaPadding';
4
- export const SafeAreaView = ({
4
+ const SafeAreaViewImpl = ({
5
5
  edge,
6
6
  style,
7
7
  children,
8
8
  onLayout,
9
9
  pointerEvents
10
10
  }) => {
11
- const p = useSafeAreaPadding({});
12
- if (edge === 'top') {
13
- return /*#__PURE__*/React.createElement(View, {
14
- style: [{
15
- width: '100%',
16
- minHeight: p.paddingTop
17
- }, style],
18
- onLayout: onLayout,
19
- pointerEvents: pointerEvents ?? 'none'
20
- });
21
- }
22
- if (edge === 'bottom') {
23
- return /*#__PURE__*/React.createElement(View, {
24
- style: [{
25
- width: '100%',
26
- minHeight: p.paddingBottom
27
- }, style],
28
- pointerEvents: pointerEvents ?? 'none'
29
- });
30
- }
11
+ const pad = useSafeAreaPadding({});
12
+ if (edge === 'top') return /*#__PURE__*/React.createElement(View, {
13
+ style: [{
14
+ width: '100%',
15
+ minHeight: pad.paddingTop
16
+ }, style],
17
+ onLayout: onLayout,
18
+ pointerEvents: pointerEvents ?? 'none'
19
+ });
20
+ if (edge === 'bottom') return /*#__PURE__*/React.createElement(View, {
21
+ style: [{
22
+ width: '100%',
23
+ minHeight: pad.paddingBottom
24
+ }, style],
25
+ pointerEvents: pointerEvents ?? 'none'
26
+ });
31
27
  return /*#__PURE__*/React.createElement(View, {
32
28
  style: [{
33
29
  width: '100%',
34
- paddingTop: p.paddingTop,
35
- paddingBottom: p.paddingBottom,
36
- paddingLeft: p.paddingLeft,
37
- paddingRight: p.paddingRight
30
+ paddingTop: pad.paddingTop,
31
+ paddingBottom: pad.paddingBottom,
32
+ paddingLeft: pad.paddingLeft,
33
+ paddingRight: pad.paddingRight
38
34
  }, style],
39
35
  onLayout: onLayout,
40
36
  pointerEvents: pointerEvents
41
37
  }, children);
42
38
  };
39
+ export const SafeAreaView = /*#__PURE__*/React.memo(SafeAreaViewImpl);
43
40
  SafeAreaView.displayName = 'SafeAreaView';
@@ -1,5 +1,5 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useCallback, useImperativeHandle, useMemo, useRef } from 'react';
2
+ import React, { useCallback, useImperativeHandle, useRef } from 'react';
3
3
  import { Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { Search as SearchIcon } from 'react-native-system-icon';
5
5
  import { useAriaPress, useControllableValue } from '../../hooks';
@@ -15,7 +15,7 @@ const SearchComponent = (props, ref) => {
15
15
  action,
16
16
  actionText,
17
17
  showAction = false,
18
- shape: shapeProp,
18
+ shape: shapeP,
19
19
  background,
20
20
  style: containerStyle,
21
21
  fieldStyle,
@@ -36,62 +36,72 @@ const SearchComponent = (props, ref) => {
36
36
  ...restFieldProps
37
37
  } = props;
38
38
  const tokens = useSearchTokens(tokensOverride);
39
- const shape = shapeProp ?? tokens.defaults.shape;
39
+ const shape = shapeP ?? tokens.defaults.shape;
40
40
  const [value, triggerChange] = useControllableValue(props, {
41
41
  defaultValue: ''
42
42
  });
43
43
  const inputValue = value ?? '';
44
- const resolvedInputAlign = useMemo(() => align ?? inputAlign, [align, inputAlign]);
44
+ const rInputAlign = align ?? inputAlign;
45
+ const onChangeTextRef = useRef(onChangeText),
46
+ onCancelRef = useRef(onCancel),
47
+ onSearchRef = useRef(onSearch),
48
+ onSubmitEditingRef = useRef(onSubmitEditing),
49
+ inputValueRef = useRef(inputValue);
50
+ onChangeTextRef.current = onChangeText;
51
+ onCancelRef.current = onCancel;
52
+ onSearchRef.current = onSearch;
53
+ onSubmitEditingRef.current = onSubmitEditing;
54
+ inputValueRef.current = inputValue;
45
55
  const handleChange = useCallback(next => {
46
56
  triggerChange(next);
47
- onChangeText?.(next);
48
- }, [onChangeText, triggerChange]);
57
+ onChangeTextRef.current?.(next);
58
+ }, [triggerChange]);
49
59
  const handleCancel = useCallback(() => {
50
60
  handleChange('');
51
- onCancel?.();
52
- }, [handleChange, onCancel]);
61
+ onCancelRef.current?.();
62
+ }, [handleChange]);
53
63
  const handleSubmit = useCallback(event => {
54
- onSearch?.(inputValue);
55
- onSubmitEditing?.(event);
56
- }, [inputValue, onSearch, onSubmitEditing]);
57
- const resolvedBackground = useMemo(() => background ?? tokens.colors.background, [background, tokens.colors.background]);
58
- const resolvedLeftIcon = useMemo(() => leftIcon ?? /*#__PURE__*/React.createElement(SearchIcon, {
64
+ onSearchRef.current?.(inputValueRef.current);
65
+ onSubmitEditingRef.current?.(event);
66
+ }, []);
67
+ const rBg = background ?? tokens.colors.background;
68
+ const rLeftIcon = leftIcon ?? /*#__PURE__*/React.createElement(SearchIcon, {
59
69
  size: tokens.icon.size,
60
70
  fill: tokens.colors.icon,
61
71
  color: tokens.colors.icon
62
- }), [leftIcon, tokens.colors.icon, tokens.icon.size]);
63
- const resolvedClearTrigger = useMemo(() => clearTrigger ?? tokens.defaults.clearTrigger, [clearTrigger, tokens.defaults.clearTrigger]);
64
- const resolvedReturnKeyType = useMemo(() => returnKeyType ?? 'search', [returnKeyType]);
65
- const shouldShowAction = useMemo(() => !!action || showAction, [action, showAction]);
66
- const isCustomActionText = useMemo(() => /*#__PURE__*/React.isValidElement(actionText), [actionText]);
67
- const shouldRenderCancelAction = useMemo(() => shouldShowAction && !action && !isCustomActionText, [action, isCustomActionText, shouldShowAction]);
68
- const radius = useMemo(() => shape === 'round' ? tokens.radius.round : tokens.radius.square, [shape, tokens.radius.round, tokens.radius.square]);
72
+ });
73
+ const rClearTrigger = clearTrigger ?? tokens.defaults.clearTrigger;
74
+ const rReturnKey = returnKeyType ?? 'search';
75
+ const showAct = !!action || showAction;
76
+ const customActTxt = /*#__PURE__*/React.isValidElement(actionText);
77
+ const renderCancelAct = showAct && !action && !customActTxt;
78
+ const radius = shape === 'round' ? tokens.radius.round : tokens.radius.square;
69
79
  const inputRef = useRef(null);
70
80
  useImperativeHandle(ref, () => ({
71
81
  focus: () => inputRef.current?.focus(),
72
82
  blur: () => inputRef.current?.blur(),
73
83
  clear: () => handleChange('')
74
84
  }), [handleChange]);
75
- const cancelActionPress = useAriaPress({
76
- disabled: !shouldRenderCancelAction,
85
+ const cancelActPress = useAriaPress({
86
+ disabled: !renderCancelAct,
77
87
  onPress: handleCancel,
78
88
  extraProps: {
79
89
  accessibilityRole: 'button',
80
90
  testID: 'rnsu-search-action'
81
91
  }
82
92
  });
83
- const containerStyles = useMemo(() => [styles.container, {
93
+ const ctrStyles = [S.ctr, {
84
94
  paddingHorizontal: tokens.spacing.paddingHorizontal,
85
95
  paddingVertical: tokens.spacing.paddingVertical,
86
- backgroundColor: resolvedBackground
87
- }, containerStyle], [containerStyle, resolvedBackground, tokens.spacing.paddingHorizontal, tokens.spacing.paddingVertical]);
88
- const contentStyles = useMemo(() => [styles.content, {
96
+ backgroundColor: rBg
97
+ }, containerStyle];
98
+ const cntStyles = [S.cnt, {
89
99
  borderRadius: radius,
90
100
  paddingHorizontal: tokens.spacing.contentPaddingHorizontal,
91
101
  paddingVertical: tokens.spacing.contentPaddingVertical,
92
102
  backgroundColor: tokens.colors.contentBackground
93
- }], [radius, tokens.colors.contentBackground, tokens.spacing.contentPaddingHorizontal, tokens.spacing.contentPaddingVertical]);
94
- const labelNode = useMemo(() => !label ? null : isText(label) ? /*#__PURE__*/React.createElement(Text, {
103
+ }];
104
+ const labelEl = !label ? null : isText(label) ? /*#__PURE__*/React.createElement(Text, {
95
105
  style: {
96
106
  marginRight: tokens.spacing.labelGap,
97
107
  color: tokens.colors.label,
@@ -102,21 +112,21 @@ const SearchComponent = (props, ref) => {
102
112
  style: {
103
113
  marginRight: tokens.spacing.labelGap
104
114
  }
105
- }, label), [label, tokens.colors.label, tokens.spacing.labelGap, tokens.typography.label, tokens.typography.labelWeight]);
106
- const actionNode = action ? /*#__PURE__*/React.createElement(View, {
107
- style: [styles.actionWrapper, {
115
+ }, label);
116
+ const actEl = action ? /*#__PURE__*/React.createElement(View, {
117
+ style: [S.act, {
108
118
  marginLeft: tokens.spacing.actionGap
109
119
  }]
110
- }, action) : !shouldShowAction ? null : isCustomActionText ? /*#__PURE__*/React.createElement(View, {
111
- style: [styles.actionWrapper, {
120
+ }, action) : !showAct ? null : customActTxt ? /*#__PURE__*/React.createElement(View, {
121
+ style: [S.act, {
112
122
  marginLeft: tokens.spacing.actionGap
113
123
  }]
114
124
  }, actionText) : /*#__PURE__*/React.createElement(Pressable, _extends({
115
- style: [styles.actionWrapper, {
125
+ style: [S.act, {
116
126
  marginLeft: tokens.spacing.actionGap,
117
- opacity: cancelActionPress.states.pressed ? tokens.opacity.actionPressed : 1
127
+ opacity: cancelActPress.states.pressed ? tokens.opacity.actionPressed : 1
118
128
  }]
119
- }, cancelActionPress.interactionProps), /*#__PURE__*/React.createElement(Text, {
129
+ }, cancelActPress.interactionProps), /*#__PURE__*/React.createElement(Text, {
120
130
  style: {
121
131
  color: tokens.colors.action,
122
132
  fontSize: tokens.typography.action,
@@ -124,57 +134,55 @@ const SearchComponent = (props, ref) => {
124
134
  }
125
135
  }, actionText ?? locale.cancel));
126
136
  return /*#__PURE__*/React.createElement(View, {
127
- style: containerStyles
137
+ style: ctrStyles
128
138
  }, /*#__PURE__*/React.createElement(View, {
129
- style: contentStyles
130
- }, labelNode, /*#__PURE__*/React.createElement(View, {
131
- style: styles.fieldWrapper
139
+ style: cntStyles
140
+ }, labelEl, /*#__PURE__*/React.createElement(View, {
141
+ style: S.field
132
142
  }, /*#__PURE__*/React.createElement(Field, _extends({
133
143
  ref: inputRef,
134
144
  type: "search",
135
145
  value: inputValue,
136
146
  onChangeText: handleChange,
137
147
  clearable: clearable,
138
- clearTrigger: resolvedClearTrigger,
139
- leftIcon: resolvedLeftIcon,
148
+ clearTrigger: rClearTrigger,
149
+ leftIcon: rLeftIcon,
140
150
  rightIcon: rightIcon,
141
151
  center: !errorMessage,
142
152
  errorMessage: errorMessage,
143
- inputAlign: resolvedInputAlign,
153
+ inputAlign: rInputAlign,
144
154
  border: false,
145
- style: [styles.field, {
155
+ style: [{
146
156
  paddingHorizontal: tokens.spacing.none,
147
157
  paddingVertical: tokens.spacing.none
148
158
  }, fieldStyle],
149
- contentStyle: [styles.fieldContent, {
159
+ contentStyle: [{
150
160
  paddingVertical: tokens.spacing.none
151
161
  }, fieldContentStyle],
152
- inputStyle: [styles.input, {
162
+ inputStyle: [{
153
163
  paddingVertical: tokens.spacing.none
154
164
  }, inputStyle],
155
165
  onSubmitEditing: handleSubmit,
156
- returnKeyType: resolvedReturnKeyType
157
- }, restFieldProps)))), actionNode);
166
+ returnKeyType: rReturnKey
167
+ }, restFieldProps)))), actEl);
158
168
  };
159
- export const Search = /*#__PURE__*/React.forwardRef(SearchComponent);
160
- Search.displayName = 'Search';
161
- const styles = StyleSheet.create({
162
- container: {
169
+ const SearchForwardRef = /*#__PURE__*/React.forwardRef(SearchComponent);
170
+ SearchForwardRef.displayName = 'Search';
171
+ export const Search = /*#__PURE__*/React.memo(SearchForwardRef);
172
+ const S = StyleSheet.create({
173
+ ctr: {
163
174
  flexDirection: 'row',
164
175
  alignItems: 'center'
165
176
  },
166
- content: {
177
+ cnt: {
167
178
  flex: 1,
168
179
  flexDirection: 'row',
169
180
  alignItems: 'center'
170
181
  },
171
- fieldWrapper: {
182
+ field: {
172
183
  flex: 1
173
184
  },
174
- field: {},
175
- fieldContent: {},
176
- input: {},
177
- actionWrapper: {
185
+ act: {
178
186
  justifyContent: 'center'
179
187
  }
180
188
  });
@@ -34,8 +34,8 @@ const SelectorOptionItemImpl = ({
34
34
  onPress: () => onToggle(option),
35
35
  extraProps: {
36
36
  accessibilityRole: multiple ? 'checkbox' : 'radio',
37
- accessibilityLabel,
38
- accessibilityHint,
37
+ accessibilityLabel: accessibilityLabel,
38
+ accessibilityHint: accessibilityHint,
39
39
  accessibilityState: multiple ? {
40
40
  checked: active,
41
41
  disabled
@@ -103,10 +103,10 @@ const SelectorImpl = props => {
103
103
  const {
104
104
  tokensOverride,
105
105
  options,
106
- columns: columnsProp,
107
- multiple: multipleProp,
108
- showCheckMark: showCheckMarkProp,
109
- disabled: disabledProp,
106
+ columns: colP,
107
+ multiple: multP,
108
+ showCheckMark: showChkP,
109
+ disabled: disP,
110
110
  onChange,
111
111
  itemStyle,
112
112
  labelStyle,
@@ -115,36 +115,30 @@ const SelectorImpl = props => {
115
115
  ...rest
116
116
  } = props;
117
117
  const tokens = useSelectorTokens(tokensOverride);
118
- const columns = columnsProp ?? tokens.defaults.columns ?? 1;
119
- const multiple = multipleProp ?? tokens.defaults.multiple;
120
- const showCheckMark = showCheckMarkProp ?? tokens.defaults.showCheckMark;
121
- const disabled = Boolean(disabledProp ?? tokens.defaults.disabled);
118
+ const columns = colP ?? tokens.defaults.columns ?? 1;
119
+ const multiple = multP ?? tokens.defaults.multiple;
120
+ const showCheckMark = showChkP ?? tokens.defaults.showCheckMark;
121
+ const disabled = Boolean(disP ?? tokens.defaults.disabled);
122
122
  const [value = [], triggerChange] = useControllableValue(props, {
123
123
  defaultValue: []
124
124
  });
125
- const optionByValue = useMemo(() => {
126
- const map = new Map();
127
- for (const option of options) map.set(option.value, option);
128
- return map;
125
+ const optionsByVal = useMemo(() => {
126
+ const m = new Map();
127
+ for (const o of options) m.set(o.value, o);
128
+ return m;
129
129
  }, [options]);
130
- const resolvedColumns = useMemo(() => Math.max(1, Math.floor(columns)), [columns]);
131
- const basis = useMemo(() => `${100 / resolvedColumns}%`, [resolvedColumns]);
132
- const itemMargin = useMemo(() => tokens.spacing.gap / 2, [tokens.spacing.gap]);
130
+ const rCols = Math.max(1, Math.floor(columns));
131
+ const basis = `${100 / rCols}%`;
132
+ const itemMargin = tokens.spacing.gap / 2;
133
133
  const selectedSet = useMemo(() => new Set(value), [value]);
134
134
  const toggleOption = useCallback(option => {
135
135
  if (disabled || option.disabled) return;
136
136
  const active = selectedSet.has(option.value);
137
- let next;
138
- if (multiple) {
139
- next = active ? value.filter(item => item !== option.value) : [...value, option.value];
140
- } else {
141
- next = active ? [] : [option.value];
142
- }
143
- const items = next.map(v => optionByValue.get(v)).filter(Boolean);
144
- triggerChange(next, {
145
- items
137
+ const nextVal = multiple ? active ? value.filter(item => item !== option.value) : [...value, option.value] : active ? [] : [option.value];
138
+ triggerChange(nextVal, {
139
+ items: nextVal.map(v => optionsByVal.get(v)).filter(Boolean)
146
140
  });
147
- }, [disabled, multiple, optionByValue, selectedSet, triggerChange, value]);
141
+ }, [disabled, multiple, optionsByVal, selectedSet, triggerChange, value]);
148
142
  return /*#__PURE__*/React.createElement(View, _extends({}, rest, {
149
143
  style: [tokens.layout.container, {
150
144
  marginHorizontal: -itemMargin,