react-native-system-ui 1.0.5 → 1.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 (321) hide show
  1. package/README.md +22 -22
  2. package/dist/cjs/components/field/Field.js +1 -1
  3. package/dist/cjs/components/flex/Flex.js +1 -1
  4. package/dist/cjs/components/flex/FlexItem.js +1 -1
  5. package/dist/cjs/components/form/Form.js +1 -1
  6. package/dist/cjs/components/grid/Grid.js +1 -1
  7. package/dist/cjs/components/grid/GridItem.js +1 -1
  8. package/dist/cjs/components/popup/Popup.js +1 -1
  9. package/dist/cjs/components/selector/Selector.js +1 -1
  10. package/dist/cjs/components/toast/Toast.js +1 -1
  11. package/dist/es/components/field/Field.js +1 -1
  12. package/dist/es/components/flex/Flex.js +1 -1
  13. package/dist/es/components/flex/FlexItem.js +1 -1
  14. package/dist/es/components/form/Form.js +1 -1
  15. package/dist/es/components/grid/Grid.js +1 -1
  16. package/dist/es/components/grid/GridItem.js +1 -1
  17. package/dist/es/components/popup/Popup.js +1 -1
  18. package/dist/es/components/selector/Selector.js +1 -1
  19. package/dist/es/components/toast/Toast.js +1 -1
  20. package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -4
  21. package/dist/types/components/action-sheet/index.d.ts +1 -4
  22. package/dist/types/components/action-sheet/tokens.d.ts +1 -4
  23. package/dist/types/components/action-sheet/types.d.ts +1 -87
  24. package/dist/types/components/area/Area.d.ts +1 -4
  25. package/dist/types/components/area/index.d.ts +1 -3
  26. package/dist/types/components/area/tokens.d.ts +1 -7
  27. package/dist/types/components/area/types.d.ts +1 -20
  28. package/dist/types/components/avatar/Avatar.d.ts +1 -7
  29. package/dist/types/components/avatar/index.d.ts +1 -2
  30. package/dist/types/components/avatar/tokens.d.ts +1 -4
  31. package/dist/types/components/avatar/types.d.ts +1 -62
  32. package/dist/types/components/badge/Badge.d.ts +1 -4
  33. package/dist/types/components/badge/index.d.ts +1 -3
  34. package/dist/types/components/badge/tokens.d.ts +1 -2
  35. package/dist/types/components/badge/types.d.ts +1 -57
  36. package/dist/types/components/button/Button.d.ts +1 -5
  37. package/dist/types/components/button/ButtonContext.d.ts +1 -2
  38. package/dist/types/components/button/ButtonGroup.d.ts +1 -23
  39. package/dist/types/components/button/index.d.ts +1 -6
  40. package/dist/types/components/button/tokens.d.ts +1 -2
  41. package/dist/types/components/button/types.d.ts +1 -109
  42. package/dist/types/components/calendar/Calendar.d.ts +1 -4
  43. package/dist/types/components/calendar/index.d.ts +1 -3
  44. package/dist/types/components/calendar/tokens.d.ts +1 -4
  45. package/dist/types/components/calendar/types.d.ts +1 -111
  46. package/dist/types/components/cascader/Cascader.d.ts +1 -4
  47. package/dist/types/components/cascader/index.d.ts +1 -4
  48. package/dist/types/components/cascader/tokens.d.ts +1 -4
  49. package/dist/types/components/cascader/types.d.ts +1 -142
  50. package/dist/types/components/cascader/useCascaderExtend.d.ts +1 -12
  51. package/dist/types/components/cell/Cell.d.ts +1 -4
  52. package/dist/types/components/cell/CellContext.d.ts +1 -7
  53. package/dist/types/components/cell/CellGroup.d.ts +1 -3
  54. package/dist/types/components/cell/index.d.ts +1 -8
  55. package/dist/types/components/cell/tokens.d.ts +1 -4
  56. package/dist/types/components/cell/types.d.ts +1 -112
  57. package/dist/types/components/checkbox/Checkbox.d.ts +1 -5
  58. package/dist/types/components/checkbox/CheckboxContext.d.ts +1 -2
  59. package/dist/types/components/checkbox/CheckboxGroup.d.ts +1 -22
  60. package/dist/types/components/checkbox/index.d.ts +1 -7
  61. package/dist/types/components/checkbox/tokens.d.ts +1 -2
  62. package/dist/types/components/checkbox/types.d.ts +1 -99
  63. package/dist/types/components/circle/Circle.d.ts +1 -5
  64. package/dist/types/components/circle/index.d.ts +1 -3
  65. package/dist/types/components/circle/tokens.d.ts +1 -4
  66. package/dist/types/components/circle/types.d.ts +1 -51
  67. package/dist/types/components/collapse/Collapse.d.ts +1 -43
  68. package/dist/types/components/collapse/index.d.ts +1 -3
  69. package/dist/types/components/collapse/tokens.d.ts +1 -4
  70. package/dist/types/components/collapse/types.d.ts +1 -45
  71. package/dist/types/components/config-provider/ConfigProvider.d.ts +1 -3
  72. package/dist/types/components/config-provider/DirectionContext.d.ts +1 -3
  73. package/dist/types/components/config-provider/LocaleContext.d.ts +1 -3
  74. package/dist/types/components/config-provider/index.d.ts +1 -6
  75. package/dist/types/components/config-provider/locale/en-US.d.ts +1 -106
  76. package/dist/types/components/config-provider/locale/types.d.ts +1 -130
  77. package/dist/types/components/config-provider/locale/zh-CN.d.ts +1 -106
  78. package/dist/types/components/config-provider/tokens.d.ts +1 -3
  79. package/dist/types/components/config-provider/types.d.ts +1 -10
  80. package/dist/types/components/config-provider/useDirection.d.ts +1 -1
  81. package/dist/types/components/config-provider/useLocale.d.ts +1 -1
  82. package/dist/types/components/count-down/CountDown.d.ts +1 -4
  83. package/dist/types/components/count-down/index.d.ts +1 -4
  84. package/dist/types/components/count-down/tokens.d.ts +1 -4
  85. package/dist/types/components/count-down/types.d.ts +1 -29
  86. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -4
  87. package/dist/types/components/datetime-picker/index.d.ts +1 -3
  88. package/dist/types/components/datetime-picker/tokens.d.ts +1 -15
  89. package/dist/types/components/datetime-picker/types.d.ts +1 -38
  90. package/dist/types/components/dialog/Dialog.d.ts +1 -4
  91. package/dist/types/components/dialog/imperative.d.ts +1 -23
  92. package/dist/types/components/dialog/index.d.ts +1 -5
  93. package/dist/types/components/dialog/tokens.d.ts +1 -48
  94. package/dist/types/components/dialog/types.d.ts +1 -70
  95. package/dist/types/components/divider/Divider.d.ts +1 -3
  96. package/dist/types/components/divider/index.d.ts +1 -3
  97. package/dist/types/components/divider/tokens.d.ts +1 -4
  98. package/dist/types/components/divider/types.d.ts +1 -48
  99. package/dist/types/components/empty/Empty.d.ts +1 -3
  100. package/dist/types/components/empty/index.d.ts +1 -3
  101. package/dist/types/components/empty/tokens.d.ts +1 -4
  102. package/dist/types/components/empty/types.d.ts +1 -44
  103. package/dist/types/components/error-boundary/ErrorBoundary.d.ts +1 -6
  104. package/dist/types/components/error-boundary/index.d.ts +1 -2
  105. package/dist/types/components/error-boundary/types.d.ts +1 -18
  106. package/dist/types/components/field/Field.d.ts +1 -4
  107. package/dist/types/components/field/index.d.ts +1 -7
  108. package/dist/types/components/field/tokens.d.ts +1 -131
  109. package/dist/types/components/field/types.d.ts +1 -86
  110. package/dist/types/components/flex/Flex.d.ts +1 -9
  111. package/dist/types/components/flex/FlexContext.d.ts +1 -2
  112. package/dist/types/components/flex/FlexItem.d.ts +1 -3
  113. package/dist/types/components/flex/index.d.ts +1 -8
  114. package/dist/types/components/flex/tokens.d.ts +1 -2
  115. package/dist/types/components/flex/types.d.ts +1 -37
  116. package/dist/types/components/form/Form.d.ts +1 -26
  117. package/dist/types/components/form/FormItem.d.ts +1 -5
  118. package/dist/types/components/form/FormList.d.ts +1 -18
  119. package/dist/types/components/form/index.d.ts +1 -17
  120. package/dist/types/components/form/tokens.d.ts +1 -7
  121. package/dist/types/components/form/types.d.ts +1 -68
  122. package/dist/types/components/grid/Grid.d.ts +1 -18
  123. package/dist/types/components/grid/GridContext.d.ts +1 -2
  124. package/dist/types/components/grid/GridItem.d.ts +1 -3
  125. package/dist/types/components/grid/index.d.ts +1 -5
  126. package/dist/types/components/grid/tokens.d.ts +1 -4
  127. package/dist/types/components/grid/types.d.ts +1 -77
  128. package/dist/types/components/image/Image.d.ts +1 -5
  129. package/dist/types/components/image/index.d.ts +1 -4
  130. package/dist/types/components/image/tokens.d.ts +1 -2
  131. package/dist/types/components/image/types.d.ts +1 -53
  132. package/dist/types/components/image-preview/ImagePreview.d.ts +1 -4
  133. package/dist/types/components/image-preview/imperative.d.ts +1 -5
  134. package/dist/types/components/image-preview/index.d.ts +1 -6
  135. package/dist/types/components/image-preview/tokens.d.ts +1 -27
  136. package/dist/types/components/image-preview/types.d.ts +1 -55
  137. package/dist/types/components/index.d.ts +1 -213
  138. package/dist/types/components/input/Input.d.ts +1 -8
  139. package/dist/types/components/input/index.d.ts +1 -4
  140. package/dist/types/components/input/tokens.d.ts +1 -2
  141. package/dist/types/components/input/types.d.ts +1 -42
  142. package/dist/types/components/loading/Loading.d.ts +1 -3
  143. package/dist/types/components/loading/index.d.ts +1 -3
  144. package/dist/types/components/loading/tokens.d.ts +1 -4
  145. package/dist/types/components/loading/types.d.ts +1 -32
  146. package/dist/types/components/nav-bar/NavBar.d.ts +1 -4
  147. package/dist/types/components/nav-bar/index.d.ts +1 -4
  148. package/dist/types/components/nav-bar/tokens.d.ts +1 -4
  149. package/dist/types/components/nav-bar/types.d.ts +1 -67
  150. package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -3
  151. package/dist/types/components/notice-bar/index.d.ts +1 -3
  152. package/dist/types/components/notice-bar/tokens.d.ts +1 -24
  153. package/dist/types/components/notice-bar/types.d.ts +1 -26
  154. package/dist/types/components/notify/Notify.d.ts +1 -6
  155. package/dist/types/components/notify/imperative.d.ts +1 -22
  156. package/dist/types/components/notify/index.d.ts +1 -15
  157. package/dist/types/components/notify/tokens.d.ts +1 -4
  158. package/dist/types/components/notify/types.d.ts +1 -64
  159. package/dist/types/components/number-keyboard/NumberKeyboard.d.ts +1 -4
  160. package/dist/types/components/number-keyboard/index.d.ts +1 -4
  161. package/dist/types/components/number-keyboard/tokens.d.ts +1 -42
  162. package/dist/types/components/number-keyboard/types.d.ts +1 -35
  163. package/dist/types/components/overlay/Overlay.d.ts +1 -5
  164. package/dist/types/components/overlay/index.d.ts +1 -5
  165. package/dist/types/components/overlay/tokens.d.ts +1 -6
  166. package/dist/types/components/overlay/types.d.ts +1 -13
  167. package/dist/types/components/password-input/PasswordInput.d.ts +1 -4
  168. package/dist/types/components/password-input/index.d.ts +1 -2
  169. package/dist/types/components/password-input/tokens.d.ts +1 -40
  170. package/dist/types/components/password-input/types.d.ts +1 -35
  171. package/dist/types/components/picker/Picker.d.ts +1 -32
  172. package/dist/types/components/picker/index.d.ts +1 -4
  173. package/dist/types/components/picker/tokens.d.ts +1 -39
  174. package/dist/types/components/picker/types.d.ts +1 -73
  175. package/dist/types/components/popup/Popup.d.ts +1 -5
  176. package/dist/types/components/popup/index.d.ts +1 -4
  177. package/dist/types/components/popup/tokens.d.ts +1 -48
  178. package/dist/types/components/popup/types.d.ts +1 -41
  179. package/dist/types/components/portal/Portal.d.ts +1 -14
  180. package/dist/types/components/portal/PortalContext.d.ts +1 -7
  181. package/dist/types/components/portal/PortalHost.d.ts +1 -11
  182. package/dist/types/components/portal/index.d.ts +1 -3
  183. package/dist/types/components/portal/tokens.d.ts +1 -3
  184. package/dist/types/components/portal/types.d.ts +1 -1
  185. package/dist/types/components/progress/Progress.d.ts +1 -8
  186. package/dist/types/components/progress/index.d.ts +1 -4
  187. package/dist/types/components/progress/tokens.d.ts +1 -4
  188. package/dist/types/components/progress/types.d.ts +1 -51
  189. package/dist/types/components/radio/Radio.d.ts +1 -3
  190. package/dist/types/components/radio/RadioContext.d.ts +1 -2
  191. package/dist/types/components/radio/RadioGroup.d.ts +1 -14
  192. package/dist/types/components/radio/index.d.ts +1 -7
  193. package/dist/types/components/radio/tokens.d.ts +1 -2
  194. package/dist/types/components/radio/types.d.ts +1 -95
  195. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -10
  196. package/dist/types/components/safe-area-view/index.d.ts +1 -2
  197. package/dist/types/components/safe-area-view/tokens.d.ts +1 -3
  198. package/dist/types/components/safe-area-view/types.d.ts +1 -1
  199. package/dist/types/components/search/Search.d.ts +1 -4
  200. package/dist/types/components/search/index.d.ts +1 -4
  201. package/dist/types/components/search/tokens.d.ts +1 -41
  202. package/dist/types/components/search/types.d.ts +1 -28
  203. package/dist/types/components/selector/Selector.d.ts +1 -7
  204. package/dist/types/components/selector/index.d.ts +1 -4
  205. package/dist/types/components/selector/tokens.d.ts +1 -2
  206. package/dist/types/components/selector/types.d.ts +1 -74
  207. package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -4
  208. package/dist/types/components/share-sheet/index.d.ts +1 -4
  209. package/dist/types/components/share-sheet/tokens.d.ts +1 -40
  210. package/dist/types/components/share-sheet/types.d.ts +1 -26
  211. package/dist/types/components/sidebar/Sidebar.d.ts +1 -4
  212. package/dist/types/components/sidebar/SidebarContext.d.ts +1 -7
  213. package/dist/types/components/sidebar/SidebarItem.d.ts +1 -4
  214. package/dist/types/components/sidebar/index.d.ts +1 -8
  215. package/dist/types/components/sidebar/tokens.d.ts +1 -4
  216. package/dist/types/components/sidebar/types.d.ts +1 -64
  217. package/dist/types/components/skeleton/Skeleton.d.ts +1 -5
  218. package/dist/types/components/skeleton/index.d.ts +1 -5
  219. package/dist/types/components/skeleton/tokens.d.ts +1 -2
  220. package/dist/types/components/skeleton/types.d.ts +1 -45
  221. package/dist/types/components/slider/Slider.d.ts +1 -4
  222. package/dist/types/components/slider/index.d.ts +1 -3
  223. package/dist/types/components/slider/tokens.d.ts +1 -28
  224. package/dist/types/components/slider/types.d.ts +1 -38
  225. package/dist/types/components/space/Space.d.ts +1 -3
  226. package/dist/types/components/space/index.d.ts +1 -3
  227. package/dist/types/components/space/tokens.d.ts +1 -3
  228. package/dist/types/components/space/types.d.ts +1 -39
  229. package/dist/types/components/stepper/Stepper.d.ts +1 -4
  230. package/dist/types/components/stepper/index.d.ts +1 -4
  231. package/dist/types/components/stepper/tokens.d.ts +1 -46
  232. package/dist/types/components/stepper/types.d.ts +1 -46
  233. package/dist/types/components/swiper/Swiper.d.ts +1 -9
  234. package/dist/types/components/swiper/SwiperItem.d.ts +1 -1
  235. package/dist/types/components/swiper/SwiperPagIndicator.d.ts +1 -36
  236. package/dist/types/components/swiper/index.d.ts +1 -14
  237. package/dist/types/components/swiper/tokens.d.ts +1 -11
  238. package/dist/types/components/swiper/types.d.ts +1 -29
  239. package/dist/types/components/switch/Switch.d.ts +1 -7
  240. package/dist/types/components/switch/index.d.ts +1 -4
  241. package/dist/types/components/switch/tokens.d.ts +1 -2
  242. package/dist/types/components/switch/types.d.ts +1 -33
  243. package/dist/types/components/tabbar/Tabbar.d.ts +1 -4
  244. package/dist/types/components/tabbar/TabbarContext.d.ts +1 -13
  245. package/dist/types/components/tabbar/TabbarItem.d.ts +1 -4
  246. package/dist/types/components/tabbar/index.d.ts +1 -9
  247. package/dist/types/components/tabbar/tokens.d.ts +1 -28
  248. package/dist/types/components/tabbar/types.d.ts +1 -39
  249. package/dist/types/components/tabs/Tabs.d.ts +1 -8
  250. package/dist/types/components/tabs/index.d.ts +1 -10
  251. package/dist/types/components/tabs/tokens.d.ts +1 -96
  252. package/dist/types/components/tabs/types.d.ts +1 -64
  253. package/dist/types/components/tag/Tag.d.ts +1 -3
  254. package/dist/types/components/tag/index.d.ts +1 -3
  255. package/dist/types/components/tag/tokens.d.ts +1 -4
  256. package/dist/types/components/tag/types.d.ts +1 -69
  257. package/dist/types/components/theme.d.ts +1 -112
  258. package/dist/types/components/toast/Toast.d.ts +1 -33
  259. package/dist/types/components/toast/imperative.d.ts +1 -22
  260. package/dist/types/components/toast/index.d.ts +1 -15
  261. package/dist/types/components/toast/tokens.d.ts +1 -29
  262. package/dist/types/components/toast/types.d.ts +1 -1
  263. package/dist/types/components/typography/Typography.d.ts +1 -11
  264. package/dist/types/components/typography/index.d.ts +1 -3
  265. package/dist/types/components/typography/tokens.d.ts +1 -2
  266. package/dist/types/components/typography/types.d.ts +1 -66
  267. package/dist/types/components/water-mark/WaterMark.d.ts +1 -4
  268. package/dist/types/components/water-mark/index.d.ts +1 -5
  269. package/dist/types/components/water-mark/tokens.d.ts +1 -2
  270. package/dist/types/components/water-mark/types.d.ts +1 -58
  271. package/dist/types/design-system/Text.d.ts +1 -3
  272. package/dist/types/design-system/ThemeContext.d.ts +1 -14
  273. package/dist/types/design-system/ThemeProvider.d.ts +1 -14
  274. package/dist/types/design-system/createComponentTokensHook.d.ts +1 -4
  275. package/dist/types/design-system/index.d.ts +1 -11
  276. package/dist/types/design-system/mergeTokensOverride.d.ts +1 -2
  277. package/dist/types/design-system/presets.d.ts +1 -8
  278. package/dist/types/design-system/tokens.d.ts +1 -74
  279. package/dist/types/design-system/useTheme.d.ts +1 -1
  280. package/dist/types/hooks/animation/index.d.ts +1 -3
  281. package/dist/types/hooks/animation/useAnimatedTransition.d.ts +1 -13
  282. package/dist/types/hooks/animation/useReducedMotion.d.ts +1 -3
  283. package/dist/types/hooks/aria/index.d.ts +1 -4
  284. package/dist/types/hooks/aria/useAriaListBox.d.ts +1 -14
  285. package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -14
  286. package/dist/types/hooks/aria/useAriaPress.d.ts +1 -19
  287. package/dist/types/hooks/aria/useAriaToggle.d.ts +1 -12
  288. package/dist/types/hooks/gesture/index.d.ts +1 -1
  289. package/dist/types/hooks/gesture/useGestureScroll.d.ts +1 -33
  290. package/dist/types/hooks/index.d.ts +1 -9
  291. package/dist/types/hooks/overlay/OverlayStackStore.d.ts +1 -39
  292. package/dist/types/hooks/overlay/index.d.ts +1 -2
  293. package/dist/types/hooks/overlay/useOverlayStack.d.ts +1 -10
  294. package/dist/types/hooks/useControllableValue.d.ts +1 -9
  295. package/dist/types/hooks/useCountDown.d.ts +1 -23
  296. package/dist/types/hooks/useHairline.d.ts +1 -10
  297. package/dist/types/hooks/useSafeAreaPadding.d.ts +1 -13
  298. package/dist/types/index.d.ts +1 -9
  299. package/dist/types/nativewind.d.ts +1 -4
  300. package/dist/types/platform/animation.d.ts +1 -9
  301. package/dist/types/platform/history.d.ts +1 -1
  302. package/dist/types/platform/index.d.ts +1 -5
  303. package/dist/types/platform/measure.d.ts +1 -7
  304. package/dist/types/platform/runtime.d.ts +1 -3
  305. package/dist/types/platform/scrollLock.d.ts +1 -2
  306. package/dist/types/types.d.ts +1 -4
  307. package/dist/types/utils/array.d.ts +1 -1
  308. package/dist/types/utils/color.d.ts +1 -3
  309. package/dist/types/utils/compare.d.ts +1 -2
  310. package/dist/types/utils/createPlatformShadow.d.ts +1 -11
  311. package/dist/types/utils/date.d.ts +1 -13
  312. package/dist/types/utils/deepMerge.d.ts +1 -3
  313. package/dist/types/utils/hairline.d.ts +1 -15
  314. package/dist/types/utils/index.d.ts +1 -13
  315. package/dist/types/utils/number.d.ts +1 -11
  316. package/dist/types/utils/promise.d.ts +1 -1
  317. package/dist/types/utils/render.d.ts +1 -5
  318. package/dist/types/utils/rtl.d.ts +1 -5
  319. package/dist/types/utils/string.d.ts +1 -3
  320. package/dist/types/utils/validate.d.ts +1 -13
  321. package/package.json +142 -149
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # react-native-system-ui
2
2
 
3
- 面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.9 KB gzip**;iOS / Android / Web 三端同构,API 一致、行为对齐。
3
+ 面向 React Native 的高性能设计系统组件库。基于 Design Tokens 驱动主题体系,50+ 组件全量覆盖移动端场景;原生 StyleSheet 零运行时开销,单组件均值 **2.7 KB gzip**;iOS / Android / Web 三端同构,API 一致、行为对齐。
4
4
 
5
5
  ## 核心优势
6
6
 
7
- - **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.9 KB**,最小组件(SafeAreaView)仅 **0.6 KB**。
7
+ - **极致轻量**:全组件经过逐行精简——冗余 Hook 移除、StyleSheet 合并、计算内联、辅助函数提取;构建产物 esbuild 压缩;按需引入 + Tree Shaking,单组件平均 gzip 仅 **2.7 KB**,最小组件(SafeAreaView)仅 **0.5 KB**。
8
8
  - **原生性能**:纯 StyleSheet 驱动,零 CSS-in-JS 运行时;动画基于原生 Animated / LayoutAnimation,无 JS 线程阻塞;列表类组件(Picker、Swiper、Tabs)基于 FlatList / ScrollView 原生滚动,确保 60fps 流畅交互。
9
9
  - **三端同构**:iOS / Android / Web 统一 API 与交互行为;Swiper、Picker 等核心组件在 Web 端自动适配桌面鼠标拖拽与移动端触控,无需业务层额外处理。
10
10
  - **设计系统**:Design Tokens + ThemeProvider 分层架构,组件自管 tokens;支持 light / dark / 品牌主题一键切换,样式定制不侵入组件实现。
@@ -151,29 +151,29 @@ enableNativeWind(cssInterop)
151
151
 
152
152
  ## 组件体积
153
153
 
154
- 按需引入后单组件均值约 **2.9 KB**(各组件目录 gzip 相加估算)。支持 Tree Shaking,实际打包体积以构建结果为准。
154
+ 按需引入后单组件均值约 **2.7 KB**(各组件目录 gzip 相加估算,数据由 `pnpm run build && pnpm run docs:update-size` 生成)。支持 Tree Shaking,实际打包体积以构建结果为准。
155
155
 
156
156
  | 组件 | gzip | 组件 | gzip | 组件 | gzip |
157
157
  | --- | ---: | --- | ---: | --- | ---: |
158
- | picker | 6.6 KB | tabs | 6.4 KB | form | 5.6 KB |
159
- | dialog | 4.9 KB | cascader | 4.8 KB | field | 4.6 KB |
160
- | calendar | 4.4 KB | slider | 4.4 KB | number-keyboard | 4.1 KB |
161
- | toast | 4.1 KB | swiper | 4.0 KB | popup | 4.0 KB |
162
- | notify | 3.9 KB | checkbox | 3.8 KB | image-preview | 3.7 KB |
163
- | button | 3.7 KB | stepper | 3.7 KB | cell | 3.6 KB |
164
- | radio | 3.5 KB | grid | 3.4 KB | config-provider | 3.2 KB |
165
- | tabbar | 3.2 KB | notice-bar | 3.0 KB | collapse | 2.9 KB |
166
- | password-input | 2.9 KB | action-sheet | 2.8 KB | sidebar | 2.8 KB |
167
- | image | 2.8 KB | datetime-picker | 2.7 KB | share-sheet | 2.5 KB |
168
- | progress | 2.4 KB | selector | 2.3 KB | portal | 2.3 KB |
169
- | nav-bar | 2.3 KB | typography | 2.1 KB | circle | 2.1 KB |
170
- | search | 2.1 KB | skeleton | 2.0 KB | badge | 2.0 KB |
171
- | water-mark | 2.0 KB | tag | 2.0 KB | flex | 1.7 KB |
172
- | space | 1.7 KB | avatar | 1.6 KB | divider | 1.5 KB |
173
- | empty | 1.5 KB | input | 1.4 KB | area | 1.3 KB |
174
- | count-down | 1.2 KB | loading | 1.2 KB | switch | 1.1 KB |
175
- | overlay | 0.9 KB | error-boundary | 0.7 KB | safe-area-view | 0.6 KB |
158
+ | picker | 6.3 KB | tabs | 6.2 KB | form | 4.7 KB |
159
+ | dialog | 4.6 KB | cascader | 4.5 KB | field | 4.4 KB |
160
+ | calendar | 4.2 KB | slider | 4.1 KB | number-keyboard | 4.0 KB |
161
+ | toast | 3.9 KB | swiper | 3.9 KB | popup | 3.8 KB |
162
+ | notify | 3.7 KB | image-preview | 3.6 KB | checkbox | 3.6 KB |
163
+ | stepper | 3.6 KB | button | 3.6 KB | cell | 3.4 KB |
164
+ | radio | 3.3 KB | grid | 3.2 KB | tabbar | 3.0 KB |
165
+ | notice-bar | 2.9 KB | collapse | 2.8 KB | config-provider | 2.8 KB |
166
+ | password-input | 2.8 KB | action-sheet | 2.8 KB | image | 2.7 KB |
167
+ | sidebar | 2.6 KB | datetime-picker | 2.5 KB | share-sheet | 2.4 KB |
168
+ | progress | 2.3 KB | selector | 2.2 KB | nav-bar | 2.2 KB |
169
+ | portal | 2.1 KB | typography | 2.1 KB | circle | 2.0 KB |
170
+ | search | 2.0 KB | skeleton | 1.9 KB | badge | 1.9 KB |
171
+ | water-mark | 1.9 KB | tag | 1.8 KB | flex | 1.6 KB |
172
+ | space | 1.6 KB | avatar | 1.5 KB | divider | 1.4 KB |
173
+ | empty | 1.4 KB | input | 1.3 KB | area | 1.2 KB |
174
+ | count-down | 1.1 KB | loading | 1.1 KB | switch | 1.0 KB |
175
+ | overlay | 0.8 KB | error-boundary | 0.6 KB | safe-area-view | 0.5 KB |
176
176
 
177
177
  ## 版本与反馈
178
178
 
179
- 当前为 v1.0.5,欢迎 issue / PR。
179
+ 当前为 v1.0.7,欢迎 issue / PR。
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:a="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:a,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:a,onPressOut:i,onPress:l})=>{if(!e)return null;const n="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},n,{onPressIn:a,onPressOut:i,onPress:l,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:a,error:i,finalTextAlign:l,lineHeight:n,textareaHeight:o,minHeight:c,inputStyle:s,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,rows:p,placeholderTextColor:m,keyboardType:y,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:x,restInputProps:w})=>{const T=[r?t.layout.textarea:t.layout.input,{color:a?t.colors.disabled:i?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...r?{lineHeight:n,height:o,minHeight:c}:{minHeight:t.sizes.controlMinHeight}},s];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,editable:x,secureTextEntry:h,multiline:r,numberOfLines:r?p:void 0,keyboardType:y,placeholderTextColor:m,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:a,clearNode:i,rightIconNode:l,suffixNode:n})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},a,i),l,n),FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:i,labelAlign:l,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",disabled:m=!1,readOnly:y=!1,clearable:v=!1,clearTrigger:b,clearIcon:h,leftIcon:x,rightIcon:w,prefix:T,suffix:S,button:R,extra:I,value:N,defaultValue:C="",type:k="text",rows:M,autoSize:P=!1,formatter:z,formatTrigger:E,showWordLimit:F=!1,onOverlimit:O,onClear:H,onClick:L,onClickInput:q,onClickLeftIcon:D,onClickRightIcon:A,border:B,center:W,clickable:V,isLink:j,arrowDirection:G,size:K,titleStyle:$,contentStyle:Q,inputStyle:J,labelStyle:U,introStyle:X,errorMessageStyle:Y,style:Z,androidRipple:ee,children:te,placeholderTextColor:re,onFocus:ae,onBlur:ie,onPressIn:le,onChangeText:ne,maxLength:oe,...ce}=e,se=(0,_tokens.useFieldTokens)(r),ue=i??se.defaults.labelWidth,de=l??se.defaults.labelAlign,fe=n??se.defaults.inputAlign,_e=o??se.defaults.controlAlign,ge=b??se.defaults.clearTrigger,pe=M??se.defaults.rows,me=E??se.defaults.formatTrigger,ye=[{width:ue,minWidth:ue,maxWidth:ue,flexBasis:ue,marginRight:se.spacing.labelGap,flexShrink:0,flexGrow:0},$],ve=S??R,be=u??d,he=re??(m?se.colors.disabled:se.colors.placeholder),xe="textarea"===k,we=void 0!==N,[Te,Se]=(0,_react().useState)(C),Re=we?N??"":Te,[Ie,Ne]=(0,_react().useState)(!1),[Ce,ke]=(0,_react().useState)(!1),Me=(0,_react().useRef)(!1),Pe=(0,_react().useRef)(null),ze=(0,_react().useId)(),Ee=(0,_react().useId)(),Fe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Ee:null,(0,_validate.isRenderable)(be)?ze:null].filter(Boolean);return e.length?e:void 0},[Ee,g,ze,be]),Oe=se.defaults.textareaLineHeight,He=P&&(0,_validate.isObject)(P)?P:void 0,Le=xe?He&&(0,_validate.isDef)(He.minRows)?Math.max(1,He.minRows):Math.max(1,pe):1,qe=xe&&He&&(0,_validate.isDef)(He.maxRows)?Math.max(1,He.maxRows):void 0,De=(0,_react().useMemo)(()=>xe?Math.max(se.sizes.textareaMinHeight,Le*Oe):void 0,[xe,Oe,Le,se.sizes.textareaMinHeight]),Ae=(0,_react().useMemo)(()=>xe&&qe?Math.max(se.sizes.textareaMinHeight,qe*Oe):void 0,[xe,Oe,qe,se.sizes.textareaMinHeight]),[Be,We]=(0,_react().useState)(De),Ve=(0,_react().useRef)(ne);Ve.current=ne;const je=(0,_react().useRef)(O);je.current=O;const Ge=(0,_react().useRef)(ae);Ge.current=ae;const Ke=(0,_react().useRef)(ie);Ke.current=ie;const $e=(0,_react().useRef)(le);$e.current=le;const Qe=(0,_react().useRef)(q);Qe.current=q;const Je=(0,_react().useRef)(H);Je.current=H;const Ue=(0,_react().useCallback)((e,t="onChange")=>z&&t===me?z(e):e,[me,z]),Xe=(0,_react().useCallback)((e,t="onChange")=>{const r=Ue(e,t);we||Se(r),Ve.current?.(r)},[Ue,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Pe.current?.focus(),blur:()=>Pe.current?.blur(),clear:()=>Xe(""),get nativeElement(){return Pe.current}}));const Ye="left"!==_e?_e:fe,Ze=v&&!y&&""!==(Re??"")&&("always"===ge||"focus"===ge&&(Ie||Ce)),et=(0,_react().useCallback)(e=>{let t=e??"";if("number"===k||"digit"===k){const e="number"===k;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(oe)&&oe>=0&&t.length>oe&&(je.current?.(t),t=t.slice(0,oe)),Xe(t,"onChange")},[oe,k,Xe]),tt=(0,_react().useCallback)(e=>{Ne(!0),Ge.current?.(e),y&&Pe.current?.blur()},[y]),rt=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&Me.current)return Me.current=!1,Ne(!1),void Ke.current?.(e);Xe(Re??"","onBlur"),Ne(!1),Ke.current?.(e)},[Xe,Re]),at=(0,_react().useCallback)(e=>{$e.current?.(e),Qe.current?.()},[]),it=(0,_react().useCallback)(e=>{if(!xe)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;P?(r=Math.max(De??t,t),Ae&&(r=Math.min(r,Ae))):De&&(r=Math.max(De,t)),We(r)},[P,xe,Ae,De]),lt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(Me.current=!0),Xe(""),Pe.current?.clear?.(),Pe.current?.focus?.(),Je.current?.()},[Xe]),nt=(0,_react().useCallback)(()=>{ke(!0),"web"!==_reactNative().Platform.OS&&lt()},[lt]),ot=(0,_react().useCallback)(()=>{ke(!1),Me.current=!1},[]),ct=(0,_validate.isRenderable)(te)?_react().default.createElement(_reactNative().View,{style:[se.layout.children,{minHeight:se.sizes.controlMinHeight}]},te):_react().default.createElement(FieldInput,{inputRef:Pe,tokens:se,isTextarea:xe,disabled:m,error:_,finalTextAlign:Ye,lineHeight:Oe,textareaHeight:Be,minHeight:De,inputStyle:J,value:Re??"",onChangeText:et,onFocus:tt,onBlur:rt,onPressIn:at,rows:pe,keyboardType:ce.keyboardType??mapKeyboardType(k),placeholderTextColor:he,onContentSizeChange:it,describedBy:Fe,secureTextEntry:"password"===k,editable:!m&&!y,restInputProps:ce}),st=[{width:"100%",justifyContent:alignMap[_e]},Q],ut=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[se.layout.affixText,{color:se.colors.input,fontSize:se.typography.inputSize}],numberOfLines:1},e):e,dt=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:se.sizes.icon,fill:se.colors.tooltip,color:se.colors.tooltip});let t=e,r={message:f};if(!_react().default.isValidElement(f)&&!(0,_validate.isText)(f)){const{icon:a,...i}=f;t=a??e,r=i}return _react().default.createElement(_reactNative().Pressable,{style:[se.layout.tooltip,{marginLeft:se.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,ft=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:m?se.colors.disabled:se.colors.label,fontSize:se.typography.labelSize,textAlign:de},U],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:se.layout.labelRow},e,dt)})():null,_t=F&&null!=oe?(()=>{const e=(Re??"").length,t=(0,_validate.isFunction)(F)?F({currentCount:e,maxLength:oe}):`${e}/${oe}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[se.layout.wordLimit,{color:se.colors.wordLimit,fontSize:se.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:se.spacing.wordLimitMarginTop}]},t):t:null})():null,gt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Ee,style:[se.layout.message,{color:se.colors.error,fontSize:se.typography.messageSize,textAlign:p,marginTop:se.spacing.messageMarginTop},Y],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Ee,style:[se.layout.message,{alignSelf:alignMap[p],marginTop:se.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,pt=(0,_validate.isRenderable)(be)?(0,_validate.isText)(be)?_react().default.createElement(_reactNative().Text,{nativeID:ze,style:[se.layout.message,{color:se.colors.intro,fontSize:se.typography.introSize,textAlign:_e,marginTop:se.spacing.introMarginTop},X]},be):_react().default.createElement(_reactNative().View,{nativeID:ze,style:{marginTop:se.spacing.introMarginTop}},be):null,mt=T?_react().default.createElement(_reactNative().View,{style:[se.layout.prefix,{paddingRight:se.spacing.prefixGap}]},ut(T)):null,yt=ve?_react().default.createElement(_reactNative().View,{style:[se.layout.suffix,{paddingLeft:se.spacing.suffixGap}]},ut(ve)):null,vt=x?_react().default.createElement(FieldSlot,{onPress:D,style:[se.layout.leftIcon,{marginRight:se.spacing.leftIconGap,minWidth:se.sizes.icon}]},x):null,bt=w?_react().default.createElement(FieldSlot,{onPress:A,style:[se.layout.rightIcon,{paddingHorizontal:se.spacing.rightIconGap}]},w):null,ht=Ze?_react().default.createElement(FieldClearButton,{show:Ze,tokens:se,clearIcon:h,onPressIn:nt,onPressOut:"web"===_reactNative().Platform.OS?ot:void 0,onPress:"web"===_reactNative().Platform.OS?lt:void 0}):null;return _react().default.createElement(_cell.default,{title:ft,icon:void 0,required:c,border:B,center:W,size:K,clickable:V,isLink:j,arrowDirection:G,extra:I,titleStyle:ye,style:Z,contentStyle:st,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:L,android_ripple:ee},_react().default.createElement(FieldControlRow,{tokens:se,prefixNode:mt,leftIconNode:vt,controlNode:ct,clearNode:ht,rightIconNode:bt,suffixNode:yt}),_t,gt,pt)},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var l,i,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(l=t?a:r){if(l.has(e))return l.get(e);l.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?l(n,t,i):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:a="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:a,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:a,onPressOut:l,onPress:i})=>{if(!e)return null;const n="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},n,{onPressIn:a,onPressOut:l,onPress:i,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:a,error:l,finalTextAlign:i,lineHeight:n,textareaHeight:o,minHeight:c,inputStyle:s,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,rows:p,placeholderTextColor:m,keyboardType:y,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:x,restInputProps:w})=>{const T=[r?t.layout.textarea:t.layout.input,{color:a?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...r?{lineHeight:n,height:o,minHeight:c}:{minHeight:t.sizes.controlMinHeight}},s];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:f,onBlur:_,onPressIn:g,editable:x,secureTextEntry:h,multiline:r,numberOfLines:r?p:void 0,keyboardType:y,placeholderTextColor:m,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:a,clearNode:l,rightIconNode:i,suffixNode:n})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},a,l),i,n),FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:l,labelAlign:i,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:y=!1,readOnly:v=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:w,rightIcon:T,prefix:S,suffix:R,button:I,extra:N,value:C,defaultValue:M="",type:k="text",rows:P,autoSize:E=!1,formatter:z,formatTrigger:F,showWordLimit:O=!1,onOverlimit:H,onClear:L,onClick:q,onClickInput:D,onClickLeftIcon:A,onClickRightIcon:B,border:W,center:V,clickable:j,isLink:G,arrowDirection:K,size:$,titleStyle:Q,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:le,onBlur:ie,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=l??ue.defaults.labelWidth,fe=i??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=P??ue.defaults.rows,ye=F??ue.defaults.formatTrigger,ve=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},Q],be=R??I,he=u??d,xe=ae??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===k,Te=void 0!==C,[Se,Re]=(0,_react().useState)(M),Ie=Te?C??"":Se,[Ne,Ce]=(0,_react().useState)(!1),[Me,ke]=(0,_react().useState)(!1),Pe=(0,_react().useRef)(!1),Ee=(0,_react().useRef)(null),ze=(0,_react().useId)(),Fe=(0,_react().useId)(),Oe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Fe:null,(0,_validate.isRenderable)(he)?ze:null].filter(Boolean);return e.length?e:void 0},[Fe,g,ze,he]),He=ue.defaults.textareaLineHeight,Le=E&&(0,_validate.isObject)(E)?E:void 0,qe=we?Le&&(0,_validate.isDef)(Le.minRows)?Math.max(1,Le.minRows):Math.max(1,me):1,De=we&&Le&&(0,_validate.isDef)(Le.maxRows)?Math.max(1,Le.maxRows):void 0,Ae=(0,_react().useMemo)(()=>we?Math.max(ue.sizes.textareaMinHeight,qe*He):void 0,[we,He,qe,ue.sizes.textareaMinHeight]),Be=(0,_react().useMemo)(()=>we&&De?Math.max(ue.sizes.textareaMinHeight,De*He):void 0,[we,He,De,ue.sizes.textareaMinHeight]),[We,Ve]=(0,_react().useState)(Ae),je=(0,_react().useRef)(oe);je.current=oe;const Ge=(0,_react().useRef)(H);Ge.current=H;const Ke=(0,_react().useRef)(le);Ke.current=le;const $e=(0,_react().useRef)(ie);$e.current=ie;const Qe=(0,_react().useRef)(ne);Qe.current=ne;const Je=(0,_react().useRef)(D);Je.current=D;const Ue=(0,_react().useRef)(L);Ue.current=L;const Xe=(0,_react().useCallback)((e,t="onChange")=>z&&t===ye?z(e):e,[ye,z]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);Te||Re(r),je.current?.(r)},[Xe,Te]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Ee.current?.focus(),blur:()=>Ee.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Ee.current}}));const Ze="left"!==ge?ge:_e,et=b&&!v&&""!==(Ie??"")&&("always"===pe||"focus"===pe&&(Ne||Me)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===k||"digit"===k){const e="number"===k;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(Ge.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,k,Ye]),rt=(0,_react().useCallback)(e=>{Ce(!0),Ke.current?.(e),v&&Ee.current?.blur()},[v]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&Pe.current)return Pe.current=!1,Ce(!1),void $e.current?.(e);Ye(Ie??"","onBlur"),Ce(!1),$e.current?.(e)},[Ye,Ie]),lt=(0,_react().useCallback)(e=>{Qe.current?.(e),Je.current?.()},[]),it=(0,_react().useCallback)(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;E?(r=Math.max(Ae??t,t),Be&&(r=Math.min(r,Be))):Ae&&(r=Math.max(Ae,t)),Ve(r)},[E,we,Be,Ae]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(Pe.current=!0),Ye(""),Ee.current?.clear?.(),Ee.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{ke(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{ke(!1),Pe.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(FieldInput,{inputRef:Ee,tokens:ue,isTextarea:we,disabled:y,error:_,finalTextAlign:Ze,lineHeight:He,textareaHeight:We,minHeight:Ae,inputStyle:U,value:Ie??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:lt,rows:me,keyboardType:se.keyboardType??mapKeyboardType(k),placeholderTextColor:xe,onContentSizeChange:it,describedBy:Oe,secureTextEntry:"password"===k,editable:!y&&!v,restInputProps:se}),ut=[{width:"100%",justifyContent:alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip});let t=e,r={message:f};if(!_react().default.isValidElement(f)&&!(0,_validate.isText)(f)){const{icon:a,...l}=f;t=a??e,r=l}return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=O&&null!=ce?(()=>{const e=(Ie??"").length,t=(0,_validate.isFunction)(O)?O({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Fe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Fe,style:[ue.layout.message,{alignSelf:alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:ze,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:ze,style:{marginTop:ue.spacing.introMarginTop}},he):null,yt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,vt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=w?_react().default.createElement(FieldSlot,{onPress:A,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,ht=T?_react().default.createElement(FieldSlot,{onPress:B,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},T):null,xt=et?_react().default.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,wt="outer"===m,Tt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:W,center:V,size:$,clickable:j,isLink:G,arrowDirection:K,extra:N,titleStyle:ve,style:[ee,wt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:q,android_ripple:te},_react().default.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:vt}),gt,wt?null:pt,mt);return wt&&pt?_react().default.createElement(_react().default.Fragment,null,Tt,pt):Tt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlexContext=exports.Flex=void 0;var _tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(i,t,o):i[t]=e[t]);return i})(e,t)}const FlexContext=exports.FlexContext=_react().default.createContext({horizontalGap:0,verticalGap:0,columns:24}),alignMap={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},justifyMap={start:"flex-start",end:"flex-end",center:"center",around:"space-around",between:"space-between"},FlexImpl=e=>{const{tokensOverride:t,children:r,direction:a,wrap:n,gutter:o,align:i,justify:l,style:c,columns:u}=e,s=(0,_tokens.useFlexTokens)(t),f=a??s.defaults.direction,d=n??s.defaults.wrap,p=o??s.defaults.gutter,x=i??s.defaults.align,_=l??s.defaults.justify,m=Math.max(1,u??s.defaults.columns),[v,y]=Array.isArray(p)?p:[p,0],M=Math.max(0,v??0),g=Math.max(0,y??0),w="web"===_reactNative().Platform.OS,h=(0,_react().useMemo)(()=>({horizontalGap:M,verticalGap:g,columns:m}),[M,g,m]);return _react().default.createElement(FlexContext.Provider,{value:h},_react().default.createElement(_reactNative().View,{style:[s.layout.container,{flexDirection:f,flexWrap:d,alignItems:alignMap[x],justifyContent:justifyMap[_],marginHorizontal:!w&&M?-M/2:void 0,marginVertical:!w&&g?-g/2:void 0,columnGap:w?M:void 0,rowGap:w?g:void 0},c]},r))},Flex=exports.Flex=_react().default.memo(FlexImpl);
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlexContext=exports.Flex=void 0;var _tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(i,t,o):i[t]=e[t]);return i})(e,t)}const FlexContext=exports.FlexContext=_react().default.createContext({horizontalGap:0,verticalGap:0,columns:24}),alignMap={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},justifyMap={start:"flex-start",end:"flex-end",center:"center",around:"space-around",between:"space-between"},FlexImpl=e=>{const{tokensOverride:t,children:r,direction:a,wrap:n,gutter:o,align:i,justify:l,style:u,columns:c}=e,s=(0,_tokens.useFlexTokens)(t),f=a??s.defaults.direction,p=n??s.defaults.wrap,d=o??s.defaults.gutter,x=i??s.defaults.align,_=l??s.defaults.justify,y=Math.max(1,c??s.defaults.columns),[m,v]=Array.isArray(d)?d:[d,0],M=Math.max(0,m??0),g=Math.max(0,v??0),h=(0,_react().useMemo)(()=>({horizontalGap:M,verticalGap:g,columns:y}),[M,g,y]);return _react().default.createElement(FlexContext.Provider,{value:h},_react().default.createElement(_reactNative().View,{style:[s.layout.container,{flexDirection:f,flexWrap:p,alignItems:alignMap[x],justifyContent:justifyMap[_],columnGap:M||void 0,rowGap:g||void 0},u]},r))},Flex=exports.Flex=_react().default.memo(FlexImpl);
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlexItem=void 0;var _FlexContext=require("./FlexContext"),_utils=require("../../utils");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,l,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,u)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?n(u,t,l):u[t]=e[t]);return u})(e,t)}const parseFlex=e=>{if((0,_utils.isNumber)(e))return{flex:e};if(!e)return;const t=e.trim();if(!t)return;if("auto"===t)return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if("none"===t)return{flexGrow:0,flexShrink:0,flexBasis:"auto"};const r=Number(t);if((0,_utils.isNumber)(r))return{flex:r};const i=t.split(/\s+/);if(i.length>=2){const[e,t]=i.map(Number);if((0,_utils.isNumber)(e)&&(0,_utils.isNumber)(t)){const r=i.slice(2).join(" ");let n;if("auto"===r)n="auto";else if(r){const e=r.match(/^(-?\d+(?:\.\d+)?)px$/),t=Number(e?e[1]:r);(0,_utils.isNumber)(t)&&(n=t)}return{flexGrow:e,flexShrink:t,flexBasis:n}}}},FlexItemImpl=({span:e,flex:t,style:r,children:i})=>{const{horizontalGap:n,verticalGap:l,columns:u}=(0,_react().useContext)(_FlexContext.FlexContext),a="web"===_reactNative().Platform.OS;if((0,_utils.isNumber)(e)&&e<=0)return null;const o={};if((0,_utils.isNumber)(e)){const t=Math.max(1,u),r=Math.min(Math.max(e,0),t)/t;o.width=100*r+"%",o.flexGrow=0,o.flexShrink=0}return _react().default.createElement(_reactNative().View,{style:[a?null:{paddingHorizontal:n/2,paddingVertical:l/2},o,parseFlex(t),r]},i)},FlexItem=exports.FlexItem=_react().default.memo(FlexItemImpl);FlexItem.displayName="FlexItem";
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlexItem=void 0;var _FlexContext=require("./FlexContext"),_utils=require("../../utils");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,u,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(u.get||u.set)?n(l,t,u):l[t]=e[t]);return l})(e,t)}const parseFlex=e=>{if((0,_utils.isNumber)(e))return{flex:e};if(!e)return;const t=e.trim();if(!t)return;if("auto"===t)return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if("none"===t)return{flexGrow:0,flexShrink:0,flexBasis:"auto"};const r=Number(t);if((0,_utils.isNumber)(r))return{flex:r};const i=t.split(/\s+/);if(i.length>=2){const[e,t]=i.map(Number);if((0,_utils.isNumber)(e)&&(0,_utils.isNumber)(t)){const r=i.slice(2).join(" ");let n;if("auto"===r)n="auto";else if(r){const e=r.match(/^(-?\d+(?:\.\d+)?)px$/),t=Number(e?e[1]:r);(0,_utils.isNumber)(t)&&(n=t)}return{flexGrow:e,flexShrink:t,flexBasis:n}}}},FlexItemImpl=({span:e,flex:t,style:r,children:i})=>{const{columns:n}=(0,_react().useContext)(_FlexContext.FlexContext);if((0,_utils.isNumber)(e)&&e<=0)return null;const u={};if((0,_utils.isNumber)(e)){const t=Math.max(1,n),r=Math.min(Math.max(e,0),t)/t;u.flexBasis=100*r+"%",u.flexGrow=0,u.flexShrink=1}return _react().default.createElement(_reactNative().View,{style:[u,parseFlex(t),r]},i)},FlexItem=exports.FlexItem=_react().default.memo(FlexItemImpl);FlexItem.displayName="FlexItem";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.useWatch=exports.toNamePath=exports.setValueByName=exports.serializeNamePath=exports.normalizeTrigger=exports.getValueByName=exports.default=exports.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,i,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(n=r?a:t){if(n.has(e))return n.get(e);n.set(e,u)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?n(u,r,i):u[r]=e[r]);return u})(e,r)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];exports.normalizeTrigger=normalizeTrigger;const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",toNamePath=e=>null==e?[]:Array.isArray(e)?e:(0,_validate.isNumber)(e)?[e]:(0,_validate.isString)(e)?e.split("."):[String(e)];exports.toNamePath=toNamePath;const serializeNamePath=e=>toNamePath(e).join(".");exports.serializeNamePath=serializeNamePath;const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);exports.getValueByName=getValueByName;const setValueByName=(e,r,t)=>{const a=toNamePath(r);if(!a.length)return e;const n=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=n;return a.forEach((e,r)=>{const n=String(e),u=Number(n);if(r===a.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[n]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[n],c=null==s?(0,_validate.isNumber)(a[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=c:i[n]=c,i=c}),n};exports.setValueByName=setValueByName;const FormContext=exports.FormContext=_react().default.createContext(null),runRuleValidation=(e,r,t,a)=>{const n=e.message??a??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&(0,_validate.isString)(r)&&0===r.trim().length))return n;if(i)return null;if(e.pattern&&(0,_validate.isString)(r)&&!e.pattern.test(r))return n;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=(0,_validate.isNumber)(r)?r:(0,_validate.isString)(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return n;if(void 0!==e.min&&t<e.min)return n;if(void 0!==e.max&&t>e.max)return n}if(!e.validator)return null;const u=e=>(0,_validate.isString)(e)?e:!1===e?n:null,s=e.validator(r,t);return(0,_promise.isPromiseLike)(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:a,labelWidth:n,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:c,footer:l,children:o,...d}=e,m=(0,_useLocale.useLocale)(),f=(0,_react().useRef)({}),_=(0,_react().useRef)({}),g=(0,_react().useRef)(t??f.current),y=(0,_react().useRef)({}),h=(0,_react().useRef)(new Map),p=(0,_react().useRef)(t??f.current),N=(0,_react().useRef)({}),v=(0,_react().useRef)(new Set),b=(0,_react().useRef)(u),F=(0,_react().useRef)(s);b.current=u,F.current=s;const V=t??f.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,r)=>{v.current.forEach(t=>t(e,r))},[]);(0,_react().useEffect)(()=>{(0,_utils.shallowEqualObject)(g.current,V)||(g.current=V,p.current=V,_.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const A=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=_.current[t];if(!r.length){if(!a)return;const r={..._.current};return delete r[t],_.current=r,void P({[t]:getValueByName(p.current,e)},p.current)}a?.[0]===r[0]&&a.length===r.length||(_.current={..._.current,[t]:r},P({[t]:getValueByName(p.current,e)},p.current))},[P]),E=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=y.current[t];if(a?.dependencies?.length)for(const e of a.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}if(y.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a?a.add(t):h.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(g.current,e)&&(g.current=setValueByName(g.current,e,r.initialValue));if(void 0===getValueByName(p.current,e)){const a=setValueByName(p.current,e,r.initialValue);p.current=a,P({[t]:r.initialValue},a)}}return()=>{const r=y.current[t];if(delete y.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}A(e,[])}},[P,A]),L=(0,_react().useRef)(m);L.current=m;const R=(0,_react().useCallback)(async(e,r,t,a)=>{const n=serializeNamePath(e),i=(N.current[n]??0)+1;N.current[n]=i;const u=y.current[n],s=u?.rules??[];if(!s.length)return A(e,[]),!0;let c=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!c.length){if(!_.current[n]?.length)return!0;c=s}const l=a??p.current,o=t??getValueByName(l,e),d=L.current?.vanForm?.validationFailed;for(const r of c){const t=runRuleValidation(r,o,l,d),a=(0,_promise.isPromiseLike)(t)?await t:t;if(N.current[n]!==i)return!0;if(a)return A(e,[a]),!1}return N.current[n]!==i||A(e,[]),!0},[A]),B=(0,_react().useCallback)(async e=>{const r=e??Object.values(y.current).map(e=>e.name);if((await Promise.all(r.map(e=>R(e)))).some(e=>!e))throw _.current;return p.current},[R]),S=(0,_react().useCallback)((e,r,t,a,n)=>{R(r,t,a,n);const i=h.current.get(e);if(i?.size)for(const e of i){const r=y.current[e];r&&R(r.name,t,getValueByName(n,r.name),n)}},[R]),z=(0,_react().useCallback)((e,r,t)=>{const a=serializeNamePath(e),n=p.current;if(getValueByName(n,e)===r)return;const i=setValueByName(n,e,r);p.current=i,b.current?.(i,a,r),S(a,e,t,r,i),P({[a]:r},i)},[P,S]),O=(0,_react().useMemo)(()=>({submit:async()=>{try{const e=await B();return F.current?.(e),e}catch{return}},getFieldsValue:()=>p.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,a=p.current;let n=a;const i={};Object.keys(e).forEach(r=>{const a=e[r];getValueByName(n,r)!==a&&(i[r]=a,n=setValueByName(n,r,a),b.current?.(n,r,a),t&&S(r,r,void 0,a,n))}),n!==a&&(p.current=n,P(i,n))},resetFields:()=>{let e=g.current;Object.values(y.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),p.current=e,_.current={},P({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:B,getFieldError:e=>_.current[serializeNamePath(e)]??[]}),[B,S,P]);(0,_react().useImperativeHandle)(r,()=>O,[O]);const w=(0,_react().useMemo)(()=>({getFieldValue:e=>getValueByName(p.current,e),setFieldValue:z,registerField:E,getFieldError:e=>_.current[serializeNamePath(e)],validateField:(e,r)=>R(e,r),getFieldsValue:()=>p.current,subscribe:e=>(v.current.add(e),()=>v.current.delete(e)),form:O,colon:a,labelWidth:n,showValidateMessage:i}),[z,E,R,O,a,n,i]);return _react().default.createElement(FormContext.Provider,{value:w},_react().default.createElement(_reactNative().View,_extends({style:c},d),o,(0,_validate.isText)(l)?(0,_utils.renderTextOrNode)(l,[]):l))},InternalFormRef=_react().default.forwardRef(InternalFormImpl),InternalForm=_react().default.memo(InternalFormRef),useWatch=(e,r)=>{const t=(0,_react().useContext)(FormContext),a=void 0===e?void 0:Array.isArray(e)?e.length&&(0,_validate.isText)(e[0])?[e]:e:[e],n=(0,_react().useCallback)(e=>{const n=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!a)return n;if(1===a.length)return getValueByName(n,a[0]);const i={};for(const e of a)i[serializeNamePath(e)]=getValueByName(n,e);return i},[t,r,a]),[i,u]=(0,_react().useState)(()=>n());return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{FORM_ALL_FIELDS_KEY in e?u(n(r)):a&&!a.some(r=>serializeNamePath(r)in e)||u(n(r))})},[t,n,a]),(0,_react().useEffect)(()=>{u(n())},[n]),i};exports.useWatch=useWatch;const FormSubscribe=({to:e,children:r})=>{const t=(0,_react().useContext)(FormContext),[a,n]=(0,_react().useState)({});return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||FORM_ALL_FIELDS_KEY in r||Object.keys(r).some(r=>e.includes(r)))&&n(r)})},[t,e]),_react().default.createElement(_react().default.Fragment,null,r(a,t?.form||null))};exports.FormSubscribe=FormSubscribe;var _default=exports.default=InternalForm;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.useWatch=exports.toNamePath=exports.setValueByName=exports.serializeNamePath=exports.normalizeTrigger=exports.getValueByName=exports.default=exports.FormSubscribe=exports.FormContext=exports.FORM_ALL_FIELDS_KEY=void 0;var _utils=require("../../utils"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,i,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(n=r?a:t){if(n.has(e))return n.get(e);n.set(e,u)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?n(u,r,i):u[r]=e[r]);return u})(e,r)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_extends.apply(null,arguments)}const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];exports.normalizeTrigger=normalizeTrigger;const FORM_ALL_FIELDS_KEY=exports.FORM_ALL_FIELDS_KEY="__form_all__",toNamePath=e=>null==e?[]:Array.isArray(e)?e:(0,_validate.isNumber)(e)?[e]:(0,_validate.isString)(e)?e.split("."):[String(e)];exports.toNamePath=toNamePath;const serializeNamePath=e=>toNamePath(e).join(".");exports.serializeNamePath=serializeNamePath;const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);exports.getValueByName=getValueByName;const setValueByName=(e,r,t)=>{const a=toNamePath(r);if(!a.length)return e;const n=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=n;return a.forEach((e,r)=>{const n=String(e),u=Number(n);if(r===a.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[n]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[n],c=null==s?(0,_validate.isNumber)(a[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=c:i[n]=c,i=c}),n};exports.setValueByName=setValueByName;const FormContext=exports.FormContext=_react().default.createContext(null),runRuleValidation=(e,r,t,a)=>{const n=e.message??a??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&(0,_validate.isString)(r)&&0===r.trim().length))return n;if(i)return null;if(e.pattern&&(0,_validate.isString)(r)&&!e.pattern.test(r))return n;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=(0,_validate.isNumber)(r)?r:(0,_validate.isString)(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return n;if(void 0!==e.min&&t<e.min)return n;if(void 0!==e.max&&t>e.max)return n}if(!e.validator)return null;const u=e=>(0,_validate.isString)(e)?e:!1===e?n:null,s=e.validator(r,t);return(0,_promise.isPromiseLike)(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:a,labelWidth:n,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:c,footer:l,children:o,...d}=e,m=(0,_useLocale.useLocale)(),f=(0,_react().useRef)({}),_=(0,_react().useRef)({}),g=(0,_react().useRef)(t??f.current),y=(0,_react().useRef)({}),h=(0,_react().useRef)(new Map),p=(0,_react().useRef)(t??f.current),N=(0,_react().useRef)({}),v=(0,_react().useRef)(new Set),b=(0,_react().useRef)(u),F=(0,_react().useRef)(s);b.current=u,F.current=s;const V=t??f.current,[,x]=(0,_react().useState)(0),P=(0,_react().useCallback)((e,r)=>{v.current.forEach(t=>t(e,r))},[]);(0,_react().useEffect)(()=>{(0,_utils.shallowEqualObject)(g.current,V)||(g.current=V,p.current=V,_.current={},x(e=>e+1),P({[FORM_ALL_FIELDS_KEY]:!0},V))},[V,P]);const A=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=_.current[t];if(!r.length){if(!a)return;const r={..._.current};return delete r[t],_.current=r,void P({[t]:getValueByName(p.current,e)},p.current)}a?.[0]===r[0]&&a.length===r.length||(_.current={..._.current,[t]:r},P({[t]:getValueByName(p.current,e)},p.current))},[P]),E=(0,_react().useCallback)((e,r)=>{const t=serializeNamePath(e),a=y.current[t];if(a?.dependencies?.length)for(const e of a.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}if(y.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a?a.add(t):h.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(g.current,e)&&(g.current=setValueByName(g.current,e,r.initialValue));if(void 0===getValueByName(p.current,e)){const a=setValueByName(p.current,e,r.initialValue);p.current=a,P({[t]:r.initialValue},a)}}return()=>{const r=y.current[t];if(delete y.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),a=h.current.get(r);a&&(a.delete(t),a.size||h.current.delete(r))}A(e,[])}},[P,A]),L=(0,_react().useRef)(m);L.current=m;const R=(0,_react().useCallback)(async(e,r,t,a)=>{const n=serializeNamePath(e),i=(N.current[n]??0)+1;N.current[n]=i;const u=y.current[n],s=u?.rules??[];if(!s.length)return A(e,[]),!0;const c=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!c.length)return _.current[n]?.length&&A(e,[]),!0;const l=a??p.current,o=t??getValueByName(l,e),d=L.current?.vanForm?.validationFailed;for(const r of c){const t=runRuleValidation(r,o,l,d),a=(0,_promise.isPromiseLike)(t)?await t:t;if(N.current[n]!==i)return!0;if(a)return A(e,[a]),!1}return N.current[n]!==i||A(e,[]),!0},[A]),B=(0,_react().useCallback)(async e=>{const r=e??Object.values(y.current).map(e=>e.name);if((await Promise.all(r.map(e=>R(e)))).some(e=>!e))throw _.current;return p.current},[R]),S=(0,_react().useCallback)((e,r,t,a,n)=>{R(r,t,a,n);const i=h.current.get(e);if(i?.size)for(const e of i){const r=y.current[e];r&&R(r.name,t,getValueByName(n,r.name),n)}},[R]),z=(0,_react().useCallback)((e,r,t)=>{const a=serializeNamePath(e),n=p.current;if(getValueByName(n,e)===r)return;const i=setValueByName(n,e,r);p.current=i,b.current?.(i,a,r),S(a,e,t,r,i),P({[a]:r},i)},[P,S]),O=(0,_react().useMemo)(()=>({submit:async()=>{try{const e=await B();return F.current?.(e),e}catch{return}},getFieldsValue:()=>p.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,a=p.current;let n=a;const i={};Object.keys(e).forEach(r=>{const a=e[r];getValueByName(n,r)!==a&&(i[r]=a,n=setValueByName(n,r,a),b.current?.(n,r,a),t&&S(r,r,void 0,a,n))}),n!==a&&(p.current=n,P(i,n))},resetFields:()=>{let e=g.current;Object.values(y.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),p.current=e,_.current={},P({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:B,getFieldError:e=>_.current[serializeNamePath(e)]??[]}),[B,S,P]);(0,_react().useImperativeHandle)(r,()=>O,[O]);const w=(0,_react().useMemo)(()=>({getFieldValue:e=>getValueByName(p.current,e),setFieldValue:z,registerField:E,getFieldError:e=>_.current[serializeNamePath(e)],validateField:(e,r)=>R(e,r),getFieldsValue:()=>p.current,subscribe:e=>(v.current.add(e),()=>v.current.delete(e)),form:O,colon:a,labelWidth:n,showValidateMessage:i}),[z,E,R,O,a,n,i]);return _react().default.createElement(FormContext.Provider,{value:w},_react().default.createElement(_reactNative().View,_extends({style:c},d),o,(0,_validate.isText)(l)?(0,_utils.renderTextOrNode)(l,[]):l))},InternalFormRef=_react().default.forwardRef(InternalFormImpl),InternalForm=_react().default.memo(InternalFormRef),useWatch=(e,r)=>{const t=(0,_react().useContext)(FormContext),a=void 0===e?void 0:Array.isArray(e)?e.length&&(0,_validate.isText)(e[0])?[e]:e:[e],n=(0,_react().useCallback)(e=>{const n=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!a)return n;if(1===a.length)return getValueByName(n,a[0]);const i={};for(const e of a)i[serializeNamePath(e)]=getValueByName(n,e);return i},[t,r,a]),[i,u]=(0,_react().useState)(()=>n());return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{FORM_ALL_FIELDS_KEY in e?u(n(r)):a&&!a.some(r=>serializeNamePath(r)in e)||u(n(r))})},[t,n,a]),(0,_react().useEffect)(()=>{u(n())},[n]),i};exports.useWatch=useWatch;const FormSubscribe=({to:e,children:r})=>{const t=(0,_react().useContext)(FormContext),[a,n]=(0,_react().useState)({});return(0,_react().useEffect)(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||FORM_ALL_FIELDS_KEY in r||Object.keys(r).some(r=>e.includes(r)))&&n(r)})},[t,e]),_react().default.createElement(_react().default.Fragment,null,r(a,t?.form||null))};exports.FormSubscribe=FormSubscribe;var _default=exports.default=InternalForm;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.GridContext=exports.Grid=void 0;var _utils=require("../../utils"),_tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,i,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?a(n,t,i):n[t]=e[t]);return n})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const GridContext=exports.GridContext=_react().default.createContext(null),GridImpl=e=>{const{tokensOverride:t,children:r,columnNum:o,gutter:a,border:i,center:n,square:u,direction:l,reverse:c,clickable:s,iconSize:d,iconColor:f,style:_,...m}=e,p=(0,_tokens.useGridTokens)(t),b=(0,_react().useMemo)(()=>{const e=o??p.defaults.columnNum;return Number.isFinite(e)&&e>0?Math.floor(e):p.defaults.columnNum},[o,p.defaults.columnNum]),y=(0,_react().useMemo)(()=>{const e=a??p.defaults.gutter;return Number.isFinite(e)&&e>0?e:0},[a,p.defaults.gutter]),v=i??p.defaults.border,g=n??p.defaults.center,x=u??p.defaults.square,M=l??p.defaults.direction,N=c??p.defaults.reverse,k=s??p.defaults.clickable,G=(0,_react().useMemo)(()=>{const e=d??p.defaults.iconSize;return Number.isFinite(e)&&e>0?e:p.defaults.iconSize},[d,p.defaults.iconSize]),w=(0,_react().useMemo)(()=>_react().default.Children.toArray(r).filter(e=>_react().default.isValidElement(e)),[r]),h=v&&!y,O=p.colors.border,q=(0,_react().useMemo)(()=>h?_react().default.createElement(_reactNative().View,{style:[p.layout.border,p.layout.borderTop,(0,_utils.createHairlineView)({position:"top",color:O,left:0,right:0,top:0})]}):null,[O,h,p.layout.border,p.layout.borderTop]),C=(0,_react().useMemo)(()=>h?_react().default.createElement(_reactNative().View,{style:[p.layout.border,p.layout.borderBottom,(0,_utils.createHairlineView)({position:"bottom",color:O,left:0,right:0,bottom:0})]}):null,[O,h,p.layout.border,p.layout.borderBottom]),P=(0,_react().useMemo)(()=>({columnNum:b,gutter:y,border:v,center:g,square:x,direction:M,reverse:N,clickable:k,iconSize:G,iconColor:f,count:w.length,tokens:p}),[v,g,w.length,k,b,M,y,f,G,N,x,p]),S=(0,_react().useMemo)(()=>"web"===_reactNative().Platform.OS?{display:"grid",gridTemplateColumns:`repeat(${b}, minmax(0, 1fr))`,columnGap:y,rowGap:y}:void 0,[b,y]),j=(0,_react().useMemo)(()=>[p.layout.container,"web"===_reactNative().Platform.OS?S:y?{paddingLeft:y}:void 0,_],[y,_,p.layout.container,S]),E=(0,_react().useMemo)(()=>w.map((e,t)=>_react().default.cloneElement(e,{gridItemIndex:t,key:e.key??t})),[w]);return _react().default.createElement(GridContext.Provider,{value:P},_react().default.createElement(_reactNative().View,_extends({accessibilityRole:"grid",style:j},m),q,E,C))},Grid=exports.Grid=_react().default.memo(GridImpl);Grid.displayName="Grid";
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.GridContext=exports.Grid=void 0;var _utils=require("../../utils"),_tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const GridContext=exports.GridContext=_react().default.createContext(null),GridImpl=e=>{const{tokensOverride:t,children:r,columnNum:o,gutter:n,border:a,center:i,square:u,direction:l,reverse:c,clickable:s,iconSize:d,iconColor:f,style:_,onLayout:m,...p}=e,y=(0,_tokens.useGridTokens)(t),[b,v]=_react().default.useState(0),g=(0,_react().useMemo)(()=>{const e=o??y.defaults.columnNum;return Number.isFinite(e)&&e>0?Math.floor(e):y.defaults.columnNum},[o,y.defaults.columnNum]),k=(0,_react().useMemo)(()=>{const e=n??y.defaults.gutter;return Number.isFinite(e)&&e>0?e:0},[n,y.defaults.gutter]),x=a??y.defaults.border,G=i??y.defaults.center,M=u??y.defaults.square,N=l??y.defaults.direction,h=c??y.defaults.reverse,w=s??y.defaults.clickable,q=(0,_react().useMemo)(()=>{const e=d??y.defaults.iconSize;return Number.isFinite(e)&&e>0?e:y.defaults.iconSize},[d,y.defaults.iconSize]),C=(0,_react().useMemo)(()=>_react().default.Children.toArray(r).filter(e=>_react().default.isValidElement(e)),[r]),O=x&&!k,E=y.colors.border,W=(0,_react().useMemo)(()=>O?_react().default.createElement(_reactNative().View,{style:[y.layout.border,y.layout.borderTop,(0,_utils.createHairlineView)({position:"top",color:E,left:0,right:0,top:0})]}):null,[E,O,y.layout.border,y.layout.borderTop]),j=(0,_react().useMemo)(()=>O?_react().default.createElement(_reactNative().View,{style:[y.layout.border,y.layout.borderBottom,(0,_utils.createHairlineView)({position:"bottom",color:E,left:0,right:0,bottom:0})]}):null,[E,O,y.layout.border,y.layout.borderBottom]),P=(0,_react().useMemo)(()=>({columnNum:g,gutter:k,border:x,center:G,square:M,direction:N,reverse:h,clickable:w,iconSize:q,iconColor:f,count:C.length,containerWidth:b,tokens:y}),[x,G,C.length,w,g,b,N,k,f,q,h,M,y]),S=(0,_react().useMemo)(()=>C.map((e,t)=>_react().default.cloneElement(e,{gridItemIndex:t,key:e.key??t})),[C]),V=(0,_react().useCallback)(e=>{v(e.nativeEvent.layout.width),m?.(e)},[m]);return _react().default.createElement(GridContext.Provider,{value:P},_react().default.createElement(_reactNative().View,_extends({accessibilityRole:"grid",onLayout:V,style:[y.layout.container,k?{columnGap:k,rowGap:k}:void 0,_]},p),W,S,j))},Grid=exports.Grid=_react().default.memo(GridImpl);Grid.displayName="Grid";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.GridItem=void 0;var _designSystem=require("../../design-system"),_badge=_interopRequireDefault(require("../badge")),_utils=require("../../utils"),_GridContext=require("./GridContext");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(o=t?i:r){if(o.has(e))return o.get(e);o.set(e,a)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(a,t,n):a[t]=e[t]);return a})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)({}).hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},_extends.apply(null,arguments)}const GridItemImpl=e=>{const t=(0,_react().useContext)(_GridContext.GridContext);if(!t)throw new Error("GridItem must be used within Grid");const{gridItemIndex:r=0,text:i,icon:o,iconColor:n,badge:a,dot:l,contentStyle:c,textStyle:u,children:s,style:d,onPress:f,...p}=e,{tokens:y,columnNum:_,gutter:m,border:g,center:h,square:x,direction:b,reverse:v,clickable:w,iconSize:G,iconColor:N,count:O}=t,S=100/_+"%",q=(r+1)%_===0,R=Math.floor(r/_),W=Math.floor((O-1)/_),C=[y.layout.itemContentBase,"horizontal"===b?y.layout.itemHorizontal:y.layout.itemVertical,h&&y.layout.itemCenter,v?"horizontal"===b?y.layout.itemReverseRow:y.layout.itemReverseColumn:null,x?y.layout.itemContentSquare:null,{paddingHorizontal:y.spacing.paddingHorizontal,paddingVertical:y.spacing.paddingVertical,backgroundColor:y.colors.background},c],I=(0,_utils.isRenderable)(i),z=n??N??y.colors.text,P=(0,_react().useMemo)(()=>{if(s)return(0,_utils.isText)(s)?(0,_utils.renderTextOrNode)(s,[y.layout.text,{color:y.colors.text,fontSize:y.typography.fontSize,lineHeight:y.typography.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},u]):s;let e=null;if(o||a||l){const{style:t,...r}=a??{},i="vertical"===b?v?"marginTop":"marginBottom":v?"marginLeft":"marginRight",n=[y.layout.iconWrapper,I&&{[i]:y.spacing.iconGap}],c=(0,_utils.isFunction)(o)?o(G,z):o,u=_react().default.createElement(_reactNative().View,{style:n},c);e=a||l?_react().default.createElement(_badge.default,_extends({dot:l},r,{style:h?[t,{alignSelf:"center"}]:t}),u):u}const t=I&&((0,_utils.isText)(i)?_react().default.createElement(_designSystem.Text,{style:[y.layout.text,{color:y.colors.text,fontSize:y.typography.fontSize,lineHeight:y.typography.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},u],numberOfLines:y.defaults.textNumberOfLines},i):i);return _react().default.createElement(_react().default.Fragment,null,e,t)},[a,h,s,b,l,I,o,G,z,v,i,u,y.colors.text,y.defaults.textNumberOfLines,y.layout.iconWrapper,y.layout.text,y.spacing.iconGap,y.typography.fontFamily,y.typography.fontSize,y.typography.fontWeight,y.typography.lineHeight]),E=!g||m||q?null:_react().default.createElement(_reactNative().View,{style:[y.layout.itemBorderRight,(0,_utils.createHairlineView)({position:"right",color:y.colors.border,top:0,bottom:0,right:0})]}),H=g&&!m&&R<W?_react().default.createElement(_reactNative().View,{style:[y.layout.itemBorderBottom,(0,_utils.createHairlineView)({position:"bottom",color:y.colors.border,left:0,right:0,bottom:0})]}):null,V=_react().default.createElement(_reactNative().View,{style:C},P,E,H),M={width:"web"===_reactNative().Platform.OS?void 0:S,flexGrow:0,flexShrink:0,paddingRight:"web"===_reactNative().Platform.OS?void 0:m||void 0,marginTop:"web"===_reactNative().Platform.OS?void 0:m&&R>0?m:void 0};return w||(0,_utils.isFunction)(f)?_react().default.createElement(_reactNative().Pressable,_extends({accessibilityRole:"button",style:e=>[M,"function"==typeof d?d(e):d,{opacity:e.pressed?y.defaults.pressedOpacity:1}],android_ripple:{color:y.colors.active},onPress:f},p),V):_react().default.createElement(_reactNative().View,_extends({style:[M,"function"==typeof d?d({pressed:!1}):d]},p),V)},GridItem=exports.GridItem=_react().default.memo(GridItemImpl);GridItem.displayName="GridItem";
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.GridItem=void 0;var _designSystem=require("../../design-system"),_badge=_interopRequireDefault(require("../badge")),_utils=require("../../utils"),_GridContext=require("./GridContext");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(o=t?i:r){if(o.has(e))return o.get(e);o.set(e,a)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(a,t,n):a[t]=e[t]);return a})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)({}).hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},_extends.apply(null,arguments)}const GridItemImpl=e=>{const t=(0,_react().useContext)(_GridContext.GridContext);if(!t)throw new Error("GridItem must be used within Grid");const{gridItemIndex:r=0,text:i,icon:o,iconColor:n,badge:a,dot:l,contentStyle:c,textStyle:u,children:s,style:d,onPress:f,...p}=e,{tokens:y,columnNum:m,gutter:_,border:g,center:h,square:x,direction:b,reverse:v,clickable:w,iconSize:G,iconColor:W,count:S,containerWidth:q}=t,N=(r+1)%m===0,O=Math.floor(r/m),C=Math.floor((S-1)/m),I=[y.layout.itemContentBase,"horizontal"===b?y.layout.itemHorizontal:y.layout.itemVertical,h&&y.layout.itemCenter,v?"horizontal"===b?y.layout.itemReverseRow:y.layout.itemReverseColumn:null,x?y.layout.itemContentSquare:null,{paddingHorizontal:y.spacing.paddingHorizontal,paddingVertical:y.spacing.paddingVertical,backgroundColor:y.colors.background},c],R=(0,_utils.isRenderable)(i),z=n??W??y.colors.text,H=(0,_react().useMemo)(()=>{if(s)return(0,_utils.isText)(s)?(0,_utils.renderTextOrNode)(s,[y.layout.text,{color:y.colors.text,fontSize:y.typography.fontSize,lineHeight:y.typography.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},u]):s;let e=null;if(o||a||l){const{style:t,...r}=a??{},i="vertical"===b?v?"marginTop":"marginBottom":v?"marginLeft":"marginRight",n=[y.layout.iconWrapper,R&&{[i]:y.spacing.iconGap}],c=(0,_utils.isFunction)(o)?o(G,z):o,u=_react().default.createElement(_reactNative().View,{style:n},c);e=a||l?_react().default.createElement(_badge.default,_extends({dot:l},r,{style:h?[t,{alignSelf:"center"}]:t}),u):u}const t=R&&((0,_utils.isText)(i)?_react().default.createElement(_designSystem.Text,{style:[y.layout.text,{color:y.colors.text,fontSize:y.typography.fontSize,lineHeight:y.typography.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},u],numberOfLines:y.defaults.textNumberOfLines},i):i);return _react().default.createElement(_react().default.Fragment,null,e,t)},[a,h,s,b,l,R,o,G,z,v,i,u,y.colors.text,y.defaults.textNumberOfLines,y.layout.iconWrapper,y.layout.text,y.spacing.iconGap,y.typography.fontFamily,y.typography.fontSize,y.typography.fontWeight,y.typography.lineHeight]),E=!g||_||N?null:_react().default.createElement(_reactNative().View,{style:[y.layout.itemBorderRight,(0,_utils.createHairlineView)({position:"right",color:y.colors.border,top:0,bottom:0,right:0})]}),V=g&&!_&&O<C?_react().default.createElement(_reactNative().View,{style:[y.layout.itemBorderBottom,(0,_utils.createHairlineView)({position:"bottom",color:y.colors.border,left:0,right:0,bottom:0})]}):null,k=_react().default.createElement(_reactNative().View,{style:I},H,E,V),M=_>0&&q>0?{width:(q-(m-1)*_)/m,flexGrow:0,flexShrink:0}:{flexBasis:100/m+"%",flexGrow:0,flexShrink:1,minWidth:0,minHeight:0};return w||(0,_utils.isFunction)(f)?_react().default.createElement(_reactNative().Pressable,_extends({accessibilityRole:"button",style:e=>[M,"function"==typeof d?d(e):d,{opacity:e.pressed?y.defaults.pressedOpacity:1}],android_ripple:{color:y.colors.active},onPress:f},p),k):_react().default.createElement(_reactNative().View,_extends({style:[M,"function"==typeof d?d({pressed:!1}):d]},p),k)},GridItem=exports.GridItem=_react().default.memo(GridItemImpl);GridItem.displayName="GridItem";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:c,tokensOverride:l,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:v,closeIconPosition:y="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:P=!0,duration:O=300,zIndex:C,closeOnBackPress:E=!1,closeOnPopstate:x=!1,children:w,beforeClose:k,onClickOverlay:A,onClose:N,onOpen:z,onOpened:T,onClosed:W,stopPropagation:q=!0,style:L,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,H=R??!1,F=(0,_tokens.usePopupTokens)(l),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A});X.current={onOpened:T,onClosed:W,onOpen:z,onClose:N,beforeClose:k,onClickOverlay:A};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(F.shadow),{colors:t,spacing:o,typography:r,layout:a}=F;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[F]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(N||k),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,ce="top"===j||"left"===j?-1:1,le=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:O,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),P&&J(!1),X.current.onClosed?.()))})},[P,O,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),le(!0,U)):re.current&&le(!1,U)},[le,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:I,zIndex:C,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ve,...ye}=me,ge=(0,_react().useMemo)(()=>q?{...ye,onStartShouldSetResponder:CAPTURE}:ye,[ye,q]),he=placementConfig[j],be=buildRadius(g,j,F.radius.round),{width:Se,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?Se:ne?Re:0,Pe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*ce,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,ce,Ie,B,ee]),Oe=(0,_react().useMemo)(()=>Pe?[Pe]:[],[Pe]),Ce=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Oe,...e]:Oe,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Oe,V,B,ee]),[Ee,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),ke=G||r,Ae=!Z,Ne=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(c),ze=(0,_react().useMemo)(()=>{if(!Ne)return null;const e=F.spacing.closeIconRight+F.spacing.closeIconSize,t=m&&y.startsWith("top-")?y.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(c,[S.desc,Y.desc],Y.descWrap))},[m,y,c,Y,Ne,i,F.spacing.closeIconRight,F.spacing.closeIconSize]),Te=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=v,t=y.includes("bottom")?{bottom:F.spacing.closeIconTop}:{top:F.spacing.closeIconTop+Ee},r="rtl"===o,a=y.endsWith("left")?r?{right:F.spacing.closeIconRight}:{left:F.spacing.closeIconRight}:r?{left:F.spacing.closeIconRight}:{right:F.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?v:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:F.colors.closeIcon,color:F.colors.closeIcon}))},[v,y,m,Y,de,Ee,F.colors.closeIcon,F.spacing.closeIconRight,F.spacing.closeIconTop]),We=Ne?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!ke)return null;const qe=fe??C,Le=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,H&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,qe?{zIndex:qe}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:F.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ge,{onLayout:ve,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,be,Ce,L,Ae&&hiddenStyle]},M),Te,Le))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),EASE_OUT=_reactNative().Easing.bezier(.075,.82,.165,1),EASE_IN=_reactNative().Easing.bezier(.55,.055,.675,.19),CAPTURE=()=>!0,placementConfig={top:{container:{justifyContent:"flex-start",alignItems:"center"},axis:"y"},bottom:{container:{justifyContent:"flex-end",alignItems:"center"},axis:"y"},left:{container:{justifyContent:"center",alignItems:"flex-start"},axis:"x"},right:{container:{justifyContent:"center",alignItems:"flex-end"},axis:"x"},center:{container:{justifyContent:"center",alignItems:"center"},axis:"y"}},CONTENT_SELF={top:{alignSelf:"stretch"},bottom:{alignSelf:"stretch"},left:{alignSelf:"flex-start"},right:{alignSelf:"flex-end"},center:{alignSelf:"center"}},buildRadius=(e,t,o)=>e?"top"===t?{borderBottomLeftRadius:o,borderBottomRightRadius:o}:"bottom"===t?{borderTopLeftRadius:o,borderTopRightRadius:o}:"left"===t?{borderTopRightRadius:o,borderBottomRightRadius:o}:"right"===t?{borderTopLeftRadius:o,borderBottomLeftRadius:o}:{borderRadius:o}:void 0,hiddenStyle={opacity:0,shadowOpacity:0,shadowRadius:0,elevation:0},PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),o=(0,_useDirection.useDirection)(),{visible:r,placement:a,position:n,title:i,description:l,tokensOverride:c,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:g,closeIconPosition:v="top-right",round:y,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:R,lockScroll:I=!0,destroyOnClose:O=!1,duration:C=300,zIndex:E,closeOnBackPress:P=!1,closeOnPopstate:x=!1,children:w,beforeClose:N,onClickOverlay:k,onClose:A,onOpen:T,onOpened:z,onClosed:W,stopPropagation:L=!0,style:q,contentAnimationStyle:V,...M}=e,j=a??n??"center",D=f??p??!0,B="center"===j,F=R??!1,H=(0,_tokens.usePopupTokens)(c),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:z,onClosed:W,onOpen:T,onClose:A,beforeClose:N,onClickOverlay:k});X.current={onOpened:z,onClosed:W,onOpen:T,onClose:A,beforeClose:N,onClickOverlay:k};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(H.shadow),{colors:t,spacing:o,typography:r,layout:a}=H;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:r.fontFamily,fontSize:r.titleSize,fontWeight:r.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:r.fontFamily,fontSize:r.descriptionSize,lineHeight:r.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[H]),[G,J]=(0,_react().useState)(r),[K,Q]=(0,_react().useState)(r),Z=r||K,$=D&&(A||N),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),oe=(0,_react().useRef)(0),re=(0,_react().useRef)(r),ae=(0,_react().useRef)(!1),ne="top"===j||"bottom"===j,ie="left"===j||"right"===j,le="top"===j||"left"===j?-1:1,ce=(0,_react().useCallback)((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const r=t?0:C,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:r,easing:e?EASE_OUT:EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&o===oe.current&&(e?X.current.onOpened?.():(Q(!1),O&&J(!1),X.current.onClosed?.()))})},[O,C,ee]);(0,_react().useEffect)(()=>{r?(J(!0),Q(!0),ce(!0,U)):re.current&&ce(!1,U)},[ce,r,U]),(0,_react().useEffect)(()=>{r&&!re.current&&X.current.onOpen?.(),re.current=r},[r]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(x)return(0,_platform.addPopStateListener)(()=>{r&&se("close")})},[x,se,r]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),D&&se("overlay")},[se,D]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:P,lockScroll:I,zIndex:E,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:D,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ge,...ve}=me,ye=(0,_react().useMemo)(()=>L?{...ve,onStartShouldSetResponder:CAPTURE}:ve,[ve,L]),he=placementConfig[j],Se=buildRadius(y,j,H.radius.round),{width:be,height:Re}=(0,_reactNative().useWindowDimensions)(),Ie=ie?be:ne?Re:0,Oe=(0,_react().useMemo)(()=>{if(B)return null;const e=[Ie*le,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,le,Ie,B,ee]),Ce=(0,_react().useMemo)(()=>Oe?[Oe]:[],[Oe]),Ee=(0,_react().useMemo)(()=>{const e=V?.transform,t=Array.isArray(e)?[...Ce,...e]:Ce,o={...V,transform:t};return B?{...o,opacity:ee}:null==V?.opacity?{...o,opacity:1}:o},[Ce,V,B,ee]),[Pe,xe]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>xe(e.nativeEvent.layout.height),[]),Ne=G||r,ke=!Z,Ae=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(l),Te=(0,_react().useMemo)(()=>{if(!Ae)return null;const e=H.spacing.closeIconRight+H.spacing.closeIconSize,t=m&&v.startsWith("top-")?v.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:o},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},o(i,[S.title,Y.title],Y.titleWrap),o(l,[S.desc,Y.desc],Y.descWrap))},[m,v,l,Y,Ae,i,H.spacing.closeIconRight,H.spacing.closeIconSize]),ze=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=g,t=v.includes("bottom")?{bottom:H.spacing.closeIconTop}:{top:H.spacing.closeIconTop+Pe},r="rtl"===o,a=v.endsWith("left")?r?{right:H.spacing.closeIconRight}:{left:H.spacing.closeIconRight}:r?{left:H.spacing.closeIconRight}:{right:H.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?g:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:H.colors.closeIcon,color:H.colors.closeIcon}))},[g,v,m,Y,de,Pe,H.colors.closeIcon,H.spacing.closeIconRight,H.spacing.closeIconTop]),We=Ae?_react().default.createElement(_react().default.Fragment,null,Te,w):w;if(!Ne)return null;const Le=fe??E,qe=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,We):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),We,F&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,Le?{zIndex:Le}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:H.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&I&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ye,{onLayout:ge,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,B&&Y.center,ne&&S.popV,ie&&Y.side,CONTENT_SELF[j],Se,Ee,q,ke&&hiddenStyle]},M),ze,qe))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Selector=void 0;var _tokens=require("./tokens"),_hooks=require("../../hooks"),_utils=require("../../utils");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?a(l,t,i):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const CHECK_MARK="✓",CHECK_MARK_CORNER_HEIGHT=8,CHECK_MARK_CORNER_WIDTH=10,SelectorOptionItemImpl=({option:e,active:t,disabled:r,multiple:o,showCheckMark:a,basis:i,itemMargin:l,tokens:n,itemStyle:c,labelStyle:s,descriptionStyle:d,onToggle:u})=>{const p=e.label,_=e.description,f=null!=_,m=(0,_utils.isText)(p)?String(p):String(e.value),y=(0,_utils.isText)(_)?String(_):void 0,{interactionProps:g,states:b}=(0,_hooks.useAriaPress)({disabled:r,onPress:()=>u(e),extraProps:{accessibilityRole:o?"checkbox":"radio",accessibilityLabel:m,accessibilityHint:y,accessibilityState:o?{checked:t,disabled:r}:{selected:t,disabled:r}}});return _react().default.createElement(_reactNative().Pressable,_extends({},g,{style:[n.layout.pressable,{width:i}]}),_react().default.createElement(_reactNative().View,{style:[n.layout.item,{marginHorizontal:l,marginVertical:l,paddingHorizontal:n.spacing.paddingHorizontal,paddingVertical:n.spacing.paddingVertical,borderRadius:n.radii.item,borderColor:t?n.colors.borderActive:n.colors.border,backgroundColor:t?n.colors.backgroundActive:n.colors.background,opacity:r?n.states.disabledOpacity:1},b.pressed&&{opacity:.9},c]},(0,_utils.isText)(p)?_react().default.createElement(_reactNative().Text,{style:[n.layout.label,{color:t?n.colors.textActive:n.colors.text,fontSize:n.typography.fontSize,lineHeight:1.4*n.typography.fontSize,fontFamily:n.typography.fontFamily,fontWeight:n.typography.fontWeight},s]},p):p,f?(0,_utils.isText)(_)?_react().default.createElement(_reactNative().Text,{style:[n.layout.description,{marginTop:n.spacing.descriptionMarginTop,color:r?n.colors.disabledText:n.colors.description,fontSize:n.typography.descriptionSize,lineHeight:1.4*n.typography.descriptionSize},d]},_):_react().default.createElement(_reactNative().View,{style:{marginTop:n.spacing.descriptionMarginTop}},_):null,t&&a?_react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{style:[n.layout.checkMarkTriangle,{borderTopWidth:8,borderBottomWidth:8,borderLeftWidth:10,borderRightWidth:10,borderBottomColor:n.colors.check,borderRightColor:n.colors.check}]}),_react().default.createElement(_reactNative().Text,{style:[n.layout.checkMark,{color:n.colors.checkForeground}]},"✓")):null))},SelectorOptionItemMemo=_react().default.memo(SelectorOptionItemImpl);SelectorOptionItemMemo.displayName="SelectorOptionItem";const SelectorOptionItem=SelectorOptionItemMemo,SelectorImpl=e=>{const{tokensOverride:t,options:r,columns:o,multiple:a,showCheckMark:i,disabled:l,onChange:n,itemStyle:c,labelStyle:s,descriptionStyle:d,style:u,...p}=e,_=(0,_tokens.useSelectorTokens)(t),f=o??_.defaults.columns??1,m=a??_.defaults.multiple,y=i??_.defaults.showCheckMark,g=Boolean(l??_.defaults.disabled),[b=[],h]=(0,_hooks.useControllableValue)(e,{defaultValue:[]}),S=(0,_react().useMemo)(()=>{const e=new Map;for(const t of r)e.set(t.value,t);return e},[r]),k=100/Math.max(1,Math.floor(f))+"%",v=_.spacing.gap/2,M=(0,_react().useMemo)(()=>new Set(b),[b]),x=(0,_react().useCallback)(e=>{if(g||e.disabled)return;const t=M.has(e.value),r=m?t?b.filter(t=>t!==e.value):[...b,e.value]:t?[]:[e.value];h(r,{items:r.map(e=>S.get(e)).filter(Boolean)})},[g,m,S,M,h,b]);return _react().default.createElement(_reactNative().View,_extends({},p,{style:[_.layout.container,{marginHorizontal:-v,marginVertical:-v},u],accessibilityRole:m?void 0:"radiogroup"}),r.map(e=>_react().default.createElement(SelectorOptionItem,{key:String(e.value),option:e,active:M.has(e.value),disabled:g||Boolean(e.disabled),multiple:m,showCheckMark:y,basis:k,itemMargin:v,tokens:_,itemStyle:c,labelStyle:s,descriptionStyle:d,onToggle:x})))},Selector=exports.Selector=_react().default.memo(SelectorImpl);Selector.displayName="Selector";var _default=exports.default=Selector;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Selector=void 0;var _tokens=require("./tokens"),_hooks=require("../../hooks"),_utils=require("../../utils");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,l,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:o){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?a(i,t,l):i[t]=e[t]);return i})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}const CHECK_MARK="✓",CH=8,CW=10,SelectorOptionItemImpl=({option:e,active:t,disabled:o,multiple:r,showCheckMark:a,basis:l,containerWidth:i,columns:n,gap:c,tokens:s,itemStyle:u,labelStyle:d,descriptionStyle:p,onToggle:f})=>{const y=e.label,m=e.description,_=null!=m,g=(0,_utils.isText)(y)?String(y):String(e.value),b=(0,_utils.isText)(m)?String(m):void 0,{interactionProps:h,states:S}=(0,_hooks.useAriaPress)({disabled:o,onPress:()=>f(e),extraProps:{accessibilityRole:r?"checkbox":"radio",accessibilityLabel:g,accessibilityHint:b,accessibilityState:r?{checked:t,disabled:o}:{selected:t,disabled:o}}}),k=i>0?{width:(i-(n-1)*c)/n,flexGrow:0,flexShrink:0}:{flexBasis:l,flexShrink:1};return _react().default.createElement(_reactNative().Pressable,_extends({},h,{style:[s.layout.pressable,k]}),_react().default.createElement(_reactNative().View,{style:[s.layout.item,{paddingHorizontal:s.spacing.paddingHorizontal,paddingVertical:s.spacing.paddingVertical,borderRadius:s.radii.item,borderColor:t?s.colors.borderActive:s.colors.border,backgroundColor:t?s.colors.backgroundActive:s.colors.background,opacity:o?s.states.disabledOpacity:1},S.pressed&&{opacity:.9},u]},(0,_utils.isText)(y)?_react().default.createElement(_reactNative().Text,{style:[s.layout.label,{color:t?s.colors.textActive:s.colors.text,fontSize:s.typography.fontSize,lineHeight:1.4*s.typography.fontSize,fontFamily:s.typography.fontFamily,fontWeight:s.typography.fontWeight},d]},y):y,_?(0,_utils.isText)(m)?_react().default.createElement(_reactNative().Text,{style:[s.layout.description,{marginTop:s.spacing.descriptionMarginTop,color:o?s.colors.disabledText:s.colors.description,fontSize:s.typography.descriptionSize,lineHeight:1.4*s.typography.descriptionSize},p]},m):_react().default.createElement(_reactNative().View,{style:{marginTop:s.spacing.descriptionMarginTop}},m):null,t&&a?_react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{style:[s.layout.checkMarkTriangle,{borderTopWidth:8,borderBottomWidth:8,borderLeftWidth:10,borderRightWidth:10,borderBottomColor:s.colors.check,borderRightColor:s.colors.check}]}),_react().default.createElement(_reactNative().Text,{style:[s.layout.checkMark,{color:s.colors.checkForeground}]},"✓")):null))},SelectorOptionItemMemo=_react().default.memo(SelectorOptionItemImpl);SelectorOptionItemMemo.displayName="SelectorOptionItem";const SelectorOptionItem=SelectorOptionItemMemo,SelectorImpl=e=>{const{tokensOverride:t,options:o,columns:r,multiple:a,showCheckMark:l,disabled:i,onChange:n,itemStyle:c,labelStyle:s,descriptionStyle:u,style:d,onLayout:p,...f}=e,y=(0,_tokens.useSelectorTokens)(t),[m,_]=_react().default.useState(0),g=r??y.defaults.columns??1,b=a??y.defaults.multiple,h=l??y.defaults.showCheckMark,S=Boolean(i??y.defaults.disabled),[k=[],v]=(0,_hooks.useControllableValue)(e,{defaultValue:[]}),x=(0,_react().useMemo)(()=>{const e=new Map;for(const t of o)e.set(t.value,t);return e},[o]),M=Math.max(1,Math.floor(g)),w=100/M+"%",O=y.spacing.gap,T=(0,_react().useMemo)(()=>new Set(k),[k]),C=(0,_react().useCallback)(e=>{if(S||e.disabled)return;const t=T.has(e.value),o=b?t?k.filter(t=>t!==e.value):[...k,e.value]:t?[]:[e.value];v(o,{items:o.map(e=>x.get(e)).filter(Boolean)})},[S,b,x,T,v,k]),W=(0,_react().useCallback)(e=>{_(e.nativeEvent.layout.width),p?.(e)},[p]);return _react().default.createElement(_reactNative().View,_extends({},f,{onLayout:W,style:[y.layout.container,{columnGap:O,rowGap:O},d],accessibilityRole:b?void 0:"radiogroup"}),o.map(e=>_react().default.createElement(SelectorOptionItem,{key:String(e.value),option:e,active:T.has(e.value),disabled:S||Boolean(e.disabled),multiple:b,showCheckMark:h,basis:w,containerWidth:m,columns:M,gap:O,tokens:y,itemStyle:c,labelStyle:s,descriptionStyle:u,onToggle:C})))},Selector=exports.Selector=_react().default.memo(SelectorImpl);Selector.displayName="Selector";var _default=exports.default=Selector;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:O}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[C,I]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:C,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=O>0?Math.round(O*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(I(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&I(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||w<=0)return;const e=setTimeout(()=>{z.current?.()},w);return()=>clearTimeout(e)},[w,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),W.current&&(e=setTimeout(W.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!C&&j.current&&(j.current=!1,V.current?.())},[C]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!C)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:w}=(0,_reactNative().useWindowDimensions)(),O=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[I,C]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:I,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=w>0?Math.round(w*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(C(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&C(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||O<=0)return;const e=setTimeout(()=>{z.current?.()},O);return()=>clearTimeout(e)},[O,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),W.current&&(e=setTimeout(W.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!I&&j.current&&(j.current=!1,V.current?.())},[I]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!I)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps,{style:S.pw}),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,TextInput,View}from"react-native";import{Clear,QuestionO}from"react-native-system-icon";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:n,accessibilityRole:r="button"})=>n?e?React.createElement(Pressable,{onPress:e,accessibilityRole:r,style:t},n):React.createElement(View,{style:t},n):null,FieldClearButton=({show:e,tokens:t,clearIcon:n,onPressIn:r,onPressOut:l,onPress:i})=>{if(!e)return null;const o="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},o,{onPressIn:r,onPressOut:l,onPress:i,accessibilityRole:"button"}),React.isValidElement(n)?n:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:n,disabled:r,error:l,finalTextAlign:i,lineHeight:o,textareaHeight:a,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:g,onBlur:p,onPressIn:m,rows:f,placeholderTextColor:y,keyboardType:b,onContentSizeChange:h,describedBy:x,secureTextEntry:R,editable:T,restInputProps:w})=>{const I=[n?t.layout.textarea:t.layout.input,{color:r?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...n?{lineHeight:o,height:a,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:I,value:u,onChangeText:d,onFocus:g,onBlur:p,onPressIn:m,editable:T,secureTextEntry:R,multiline:n,numberOfLines:n?f:void 0,keyboardType:b,placeholderTextColor:y,onContentSizeChange:n?h:void 0},x?{accessibilityDescribedBy:x}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:n,controlNode:r,clearNode:l,rightIconNode:i,suffixNode:o})=>React.createElement(View,{style:e.layout.body},t,n,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},r,l),i,o),FieldImpl=(e,t)=>{const{tokensOverride:n,label:r,labelWidth:l,labelAlign:i,inputAlign:o,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:p=!1,errorMessage:m,errorMessageAlign:f="left",disabled:y=!1,readOnly:b=!1,clearable:h=!1,clearTrigger:x,clearIcon:R,leftIcon:T,rightIcon:w,prefix:I,suffix:S,button:C,extra:v,value:k,defaultValue:P="",type:z="text",rows:E,autoSize:M=!1,formatter:F,formatTrigger:H,showWordLimit:O=!1,onOverlimit:L,onClear:N,onClick:A,onClickInput:D,onClickLeftIcon:B,onClickRightIcon:V,border:G,center:W,clickable:_,isLink:j,arrowDirection:q,size:K,titleStyle:Q,contentStyle:$,inputStyle:J,labelStyle:U,introStyle:X,errorMessageStyle:Y,style:Z,androidRipple:ee,children:te,placeholderTextColor:ne,onFocus:re,onBlur:le,onPressIn:ie,onChangeText:oe,maxLength:ae,...se}=e,ce=useFieldTokens(n),ue=l??ce.defaults.labelWidth,de=i??ce.defaults.labelAlign,ge=o??ce.defaults.inputAlign,pe=a??ce.defaults.controlAlign,me=x??ce.defaults.clearTrigger,fe=E??ce.defaults.rows,ye=H??ce.defaults.formatTrigger,be=[{width:ue,minWidth:ue,maxWidth:ue,flexBasis:ue,marginRight:ce.spacing.labelGap,flexShrink:0,flexGrow:0},Q],he=S??C,xe=u??d,Re=ne??(y?ce.colors.disabled:ce.colors.placeholder),Te="textarea"===z,we=void 0!==k,[Ie,Se]=useState(P),Ce=we?k??"":Ie,[ve,ke]=useState(!1),[Pe,ze]=useState(!1),Ee=useRef(!1),Me=useRef(null),Fe=useId(),He=useId(),Oe=useMemo(()=>{const e=[isRenderable(m)?He:null,isRenderable(xe)?Fe:null].filter(Boolean);return e.length?e:void 0},[He,m,Fe,xe]),Le=ce.defaults.textareaLineHeight,Ne=M&&isObject(M)?M:void 0,Ae=Te?Ne&&isDef(Ne.minRows)?Math.max(1,Ne.minRows):Math.max(1,fe):1,De=Te&&Ne&&isDef(Ne.maxRows)?Math.max(1,Ne.maxRows):void 0,Be=useMemo(()=>Te?Math.max(ce.sizes.textareaMinHeight,Ae*Le):void 0,[Te,Le,Ae,ce.sizes.textareaMinHeight]),Ve=useMemo(()=>Te&&De?Math.max(ce.sizes.textareaMinHeight,De*Le):void 0,[Te,Le,De,ce.sizes.textareaMinHeight]),[Ge,We]=useState(Be),_e=useRef(oe);_e.current=oe;const je=useRef(L);je.current=L;const qe=useRef(re);qe.current=re;const Ke=useRef(le);Ke.current=le;const Qe=useRef(ie);Qe.current=ie;const $e=useRef(D);$e.current=D;const Je=useRef(N);Je.current=N;const Ue=useCallback((e,t="onChange")=>F&&t===ye?F(e):e,[ye,F]),Xe=useCallback((e,t="onChange")=>{const n=Ue(e,t);we||Se(n),_e.current?.(n)},[Ue,we]);useImperativeHandle(t,()=>({focus:()=>Me.current?.focus(),blur:()=>Me.current?.blur(),clear:()=>Xe(""),get nativeElement(){return Me.current}}));const Ye="left"!==pe?pe:ge,Ze=h&&!b&&""!==(Ce??"")&&("always"===me||"focus"===me&&(ve||Pe)),et=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(ae)&&ae>=0&&t.length>ae&&(je.current?.(t),t=t.slice(0,ae)),Xe(t,"onChange")},[ae,z,Xe]),tt=useCallback(e=>{ke(!0),qe.current?.(e),b&&Me.current?.blur()},[b]),nt=useCallback(e=>{if("web"!==Platform.OS&&Ee.current)return Ee.current=!1,ke(!1),void Ke.current?.(e);Xe(Ce??"","onBlur"),ke(!1),Ke.current?.(e)},[Xe,Ce]),rt=useCallback(e=>{Qe.current?.(e),$e.current?.()},[]),lt=useCallback(e=>{if(!Te)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let n=t;M?(n=Math.max(Be??t,t),Ve&&(n=Math.min(n,Ve))):Be&&(n=Math.max(Be,t)),We(n)},[M,Te,Ve,Be]),it=useCallback(()=>{"web"!==Platform.OS&&(Ee.current=!0),Xe(""),Me.current?.clear?.(),Me.current?.focus?.(),Je.current?.()},[Xe]),ot=useCallback(()=>{ze(!0),"web"!==Platform.OS&&it()},[it]),at=useCallback(()=>{ze(!1),Ee.current=!1},[]),st=isRenderable(te)?React.createElement(View,{style:[ce.layout.children,{minHeight:ce.sizes.controlMinHeight}]},te):React.createElement(FieldInput,{inputRef:Me,tokens:ce,isTextarea:Te,disabled:y,error:p,finalTextAlign:Ye,lineHeight:Le,textareaHeight:Ge,minHeight:Be,inputStyle:J,value:Ce??"",onChangeText:et,onFocus:tt,onBlur:nt,onPressIn:rt,rows:fe,keyboardType:se.keyboardType??mapKeyboardType(z),placeholderTextColor:Re,onContentSizeChange:lt,describedBy:Oe,secureTextEntry:"password"===z,editable:!y&&!b,restInputProps:se}),ct=[{width:"100%",justifyContent:alignMap[pe]},$],ut=e=>isText(e)?React.createElement(Text,{style:[ce.layout.affixText,{color:ce.colors.input,fontSize:ce.typography.inputSize}],numberOfLines:1},e):e,dt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ce.sizes.icon,fill:ce.colors.tooltip,color:ce.colors.tooltip});let t=e,n={message:g};if(!React.isValidElement(g)&&!isText(g)){const{icon:r,...l}=g;t=r??e,n=l}return React.createElement(Pressable,{style:[ce.layout.tooltip,{marginLeft:ce.spacing.rightIconGap}],onPress:()=>Dialog.show(n),accessibilityRole:"button"},t)})():null,gt=isRenderable(r)?(()=>{const e=isText(r)?React.createElement(Text,{style:[{color:y?ce.colors.disabled:ce.colors.label,fontSize:ce.typography.labelSize,textAlign:de},U],numberOfLines:1},r,c?":":""):r;return React.createElement(View,{style:ce.layout.labelRow},e,dt)})():null,pt=O&&null!=ae?(()=>{const e=(Ce??"").length,t=isFunction(O)?O({currentCount:e,maxLength:ae}):`${e}/${ae}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ce.layout.wordLimit,{color:ce.colors.wordLimit,fontSize:ce.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ce.spacing.wordLimitMarginTop}]},t):t:null})():null,mt=isRenderable(m)?isText(m)?React.createElement(Text,{nativeID:He,style:[ce.layout.message,{color:ce.colors.error,fontSize:ce.typography.messageSize,textAlign:f,marginTop:ce.spacing.messageMarginTop},Y],accessibilityLiveRegion:"polite"},m):React.createElement(View,{nativeID:He,style:[ce.layout.message,{alignSelf:alignMap[f],marginTop:ce.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},m):null,ft=isRenderable(xe)?isText(xe)?React.createElement(Text,{nativeID:Fe,style:[ce.layout.message,{color:ce.colors.intro,fontSize:ce.typography.introSize,textAlign:pe,marginTop:ce.spacing.introMarginTop},X]},xe):React.createElement(View,{nativeID:Fe,style:{marginTop:ce.spacing.introMarginTop}},xe):null,yt=I?React.createElement(View,{style:[ce.layout.prefix,{paddingRight:ce.spacing.prefixGap}]},ut(I)):null,bt=he?React.createElement(View,{style:[ce.layout.suffix,{paddingLeft:ce.spacing.suffixGap}]},ut(he)):null,ht=T?React.createElement(FieldSlot,{onPress:B,style:[ce.layout.leftIcon,{marginRight:ce.spacing.leftIconGap,minWidth:ce.sizes.icon}]},T):null,xt=w?React.createElement(FieldSlot,{onPress:V,style:[ce.layout.rightIcon,{paddingHorizontal:ce.spacing.rightIconGap}]},w):null,Rt=Ze?React.createElement(FieldClearButton,{show:Ze,tokens:ce,clearIcon:R,onPressIn:ot,onPressOut:"web"===Platform.OS?at:void 0,onPress:"web"===Platform.OS?it:void 0}):null;return React.createElement(Cell,{title:gt,icon:void 0,required:s,border:G,center:W,size:K,clickable:_,isLink:j,arrowDirection:q,extra:v,titleStyle:be,style:Z,contentStyle:ct,accessibilityState:p?{invalid:!0}:void 0,accessibilityLabel:isText(r)?String(r):void 0,onPress:A,android_ripple:ee},React.createElement(FieldControlRow,{tokens:ce,prefixNode:yt,leftIconNode:ht,controlNode:st,clearNode:Rt,rightIconNode:xt,suffixNode:bt}),pt,mt,ft)},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,TextInput,View}from"react-native";import{Clear,QuestionO}from"react-native-system-icon";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";const alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}},FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:n="button"})=>r?e?React.createElement(Pressable,{onPress:e,accessibilityRole:n,style:t},r):React.createElement(View,{style:t},r):null,FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:n,onPressOut:l,onPress:i})=>{if(!e)return null;const o="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},o,{onPressIn:n,onPressOut:l,onPress:i,accessibilityRole:"button"}),React.isValidElement(r)?r:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))},FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:n,error:l,finalTextAlign:i,lineHeight:o,textareaHeight:a,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:g,onBlur:m,onPressIn:p,rows:f,placeholderTextColor:b,keyboardType:y,onContentSizeChange:h,describedBy:x,secureTextEntry:R,editable:T,restInputProps:w})=>{const I=[r?t.layout.textarea:t.layout.input,{color:n?t.colors.disabled:l?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:i,...r?{lineHeight:o,height:a,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:I,value:u,onChangeText:d,onFocus:g,onBlur:m,onPressIn:p,editable:T,secureTextEntry:R,multiline:r,numberOfLines:r?f:void 0,keyboardType:y,placeholderTextColor:b,onContentSizeChange:r?h:void 0},x?{accessibilityDescribedBy:x}:null,{clearButtonMode:"never"},w))},FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:n,clearNode:l,rightIconNode:i,suffixNode:o})=>React.createElement(View,{style:e.layout.body},t,r,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},n,l),i,o),FieldImpl=(e,t)=>{const{tokensOverride:r,label:n,labelWidth:l,labelAlign:i,inputAlign:o,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:m=!1,errorMessage:p,errorMessageAlign:f="left",errorMessagePosition:b="inner",disabled:y=!1,readOnly:h=!1,clearable:x=!1,clearTrigger:R,clearIcon:T,leftIcon:w,rightIcon:I,prefix:S,suffix:C,button:v,extra:P,value:k,defaultValue:E="",type:z="text",rows:M,autoSize:F=!1,formatter:H,formatTrigger:O,showWordLimit:L=!1,onOverlimit:N,onClear:A,onClick:D,onClickInput:B,onClickLeftIcon:V,onClickRightIcon:G,border:W,center:_,clickable:j,isLink:q,arrowDirection:K,size:Q,titleStyle:$,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ne,onFocus:le,onBlur:ie,onPressIn:oe,onChangeText:ae,maxLength:se,...ce}=e,ue=useFieldTokens(r),de=l??ue.defaults.labelWidth,ge=i??ue.defaults.labelAlign,me=o??ue.defaults.inputAlign,pe=a??ue.defaults.controlAlign,fe=R??ue.defaults.clearTrigger,be=M??ue.defaults.rows,ye=O??ue.defaults.formatTrigger,he=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},$],xe=C??v,Re=u??d,Te=ne??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===z,Ie=void 0!==k,[Se,Ce]=useState(E),ve=Ie?k??"":Se,[Pe,ke]=useState(!1),[Ee,ze]=useState(!1),Me=useRef(!1),Fe=useRef(null),He=useId(),Oe=useId(),Le=useMemo(()=>{const e=[isRenderable(p)?Oe:null,isRenderable(Re)?He:null].filter(Boolean);return e.length?e:void 0},[Oe,p,He,Re]),Ne=ue.defaults.textareaLineHeight,Ae=F&&isObject(F)?F:void 0,De=we?Ae&&isDef(Ae.minRows)?Math.max(1,Ae.minRows):Math.max(1,be):1,Be=we&&Ae&&isDef(Ae.maxRows)?Math.max(1,Ae.maxRows):void 0,Ve=useMemo(()=>we?Math.max(ue.sizes.textareaMinHeight,De*Ne):void 0,[we,Ne,De,ue.sizes.textareaMinHeight]),Ge=useMemo(()=>we&&Be?Math.max(ue.sizes.textareaMinHeight,Be*Ne):void 0,[we,Ne,Be,ue.sizes.textareaMinHeight]),[We,_e]=useState(Ve),je=useRef(ae);je.current=ae;const qe=useRef(N);qe.current=N;const Ke=useRef(le);Ke.current=le;const Qe=useRef(ie);Qe.current=ie;const $e=useRef(oe);$e.current=oe;const Je=useRef(B);Je.current=B;const Ue=useRef(A);Ue.current=A;const Xe=useCallback((e,t="onChange")=>H&&t===ye?H(e):e,[ye,H]),Ye=useCallback((e,t="onChange")=>{const r=Xe(e,t);Ie||Ce(r),je.current?.(r)},[Xe,Ie]);useImperativeHandle(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==pe?pe:me,et=x&&!h&&""!==(ve??"")&&("always"===fe||"focus"===fe&&(Pe||Ee)),tt=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(se)&&se>=0&&t.length>se&&(qe.current?.(t),t=t.slice(0,se)),Ye(t,"onChange")},[se,z,Ye]),rt=useCallback(e=>{ke(!0),Ke.current?.(e),h&&Fe.current?.blur()},[h]),nt=useCallback(e=>{if("web"!==Platform.OS&&Me.current)return Me.current=!1,ke(!1),void Qe.current?.(e);Ye(ve??"","onBlur"),ke(!1),Qe.current?.(e)},[Ye,ve]),lt=useCallback(e=>{$e.current?.(e),Je.current?.()},[]),it=useCallback(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(Ve??t,t),Ge&&(r=Math.min(r,Ge))):Ve&&(r=Math.max(Ve,t)),_e(r)},[F,we,Ge,Ve]),ot=useCallback(()=>{"web"!==Platform.OS&&(Me.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),at=useCallback(()=>{ze(!0),"web"!==Platform.OS&&ot()},[ot]),st=useCallback(()=>{ze(!1),Me.current=!1},[]),ct=isRenderable(re)?React.createElement(View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):React.createElement(FieldInput,{inputRef:Fe,tokens:ue,isTextarea:we,disabled:y,error:m,finalTextAlign:Ze,lineHeight:Ne,textareaHeight:We,minHeight:Ve,inputStyle:U,value:ve??"",onChangeText:tt,onFocus:rt,onBlur:nt,onPressIn:lt,rows:be,keyboardType:ce.keyboardType??mapKeyboardType(z),placeholderTextColor:Te,onContentSizeChange:it,describedBy:Le,secureTextEntry:"password"===z,editable:!y&&!h,restInputProps:ce}),ut=[{width:"100%",justifyContent:alignMap[pe]},J],dt=e=>isText(e)?React.createElement(Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,gt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip});let t=e,r={message:g};if(!React.isValidElement(g)&&!isText(g)){const{icon:n,...l}=g;t=n??e,r=l}return React.createElement(Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>Dialog.show(r),accessibilityRole:"button"},t)})():null,mt=isRenderable(n)?(()=>{const e=isText(n)?React.createElement(Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:ge},X],numberOfLines:1},n,c?":":""):n;return React.createElement(View,{style:ue.layout.labelRow},e,gt)})():null,pt=L&&null!=se?(()=>{const e=(ve??"").length,t=isFunction(L)?L({currentCount:e,maxLength:se}):`${e}/${se}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,ft=isRenderable(p)?isText(p)?React.createElement(Text,{nativeID:Oe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:f,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},p):React.createElement(View,{nativeID:Oe,style:[ue.layout.message,{alignSelf:alignMap[f],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},p):null,bt=isRenderable(Re)?isText(Re)?React.createElement(Text,{nativeID:He,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:pe,marginTop:ue.spacing.introMarginTop},Y]},Re):React.createElement(View,{nativeID:He,style:{marginTop:ue.spacing.introMarginTop}},Re):null,yt=S?React.createElement(View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,ht=xe?React.createElement(View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(xe)):null,xt=w?React.createElement(FieldSlot,{onPress:V,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,Rt=I?React.createElement(FieldSlot,{onPress:G,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},I):null,Tt=et?React.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:T,onPressIn:at,onPressOut:"web"===Platform.OS?st:void 0,onPress:"web"===Platform.OS?ot:void 0}):null,wt="outer"===b,It=React.createElement(Cell,{title:mt,icon:void 0,required:s,border:W,center:_,size:Q,clickable:j,isLink:q,arrowDirection:K,extra:P,titleStyle:he,style:[ee,wt&&(m||isRenderable(p))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:m?{invalid:!0}:void 0,accessibilityLabel:isText(n)?String(n):void 0,onPress:D,android_ripple:te},React.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:xt,controlNode:ct,clearNode:Tt,rightIconNode:Rt,suffixNode:ht}),pt,wt?null:ft,bt);return wt&&ft?React.createElement(React.Fragment,null,It,ft):It},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
@@ -1 +1 @@
1
- import React,{useMemo}from"react";import{Platform,View}from"react-native";import{useFlexTokens}from"./tokens";export const FlexContext=React.createContext({horizontalGap:0,verticalGap:0,columns:24});const alignMap={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},justifyMap={start:"flex-start",end:"flex-end",center:"center",around:"space-around",between:"space-between"},FlexImpl=e=>{const{tokensOverride:t,children:a,direction:r,wrap:n,gutter:o,align:l,justify:i,style:s,columns:c}=e,m=useFlexTokens(t),u=r??m.defaults.direction,f=n??m.defaults.wrap,p=o??m.defaults.gutter,d=l??m.defaults.align,x=i??m.defaults.justify,v=Math.max(1,c??m.defaults.columns),[y,g]=Array.isArray(p)?p:[p,0],M=Math.max(0,y??0),h=Math.max(0,g??0),w="web"===Platform.OS,F=useMemo(()=>({horizontalGap:M,verticalGap:h,columns:v}),[M,h,v]);return React.createElement(FlexContext.Provider,{value:F},React.createElement(View,{style:[m.layout.container,{flexDirection:u,flexWrap:f,alignItems:alignMap[d],justifyContent:justifyMap[x],marginHorizontal:!w&&M?-M/2:void 0,marginVertical:!w&&h?-h/2:void 0,columnGap:w?M:void 0,rowGap:w?h:void 0},s]},a))};export const Flex=React.memo(FlexImpl);
1
+ import React,{useMemo}from"react";import{View}from"react-native";import{useFlexTokens}from"./tokens";export const FlexContext=React.createContext({horizontalGap:0,verticalGap:0,columns:24});const alignMap={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},justifyMap={start:"flex-start",end:"flex-end",center:"center",around:"space-around",between:"space-between"},FlexImpl=e=>{const{tokensOverride:t,children:a,direction:r,wrap:n,gutter:l,align:o,justify:s,style:i,columns:c}=e,u=useFlexTokens(t),m=r??u.defaults.direction,p=n??u.defaults.wrap,x=l??u.defaults.gutter,f=o??u.defaults.align,d=s??u.defaults.justify,y=Math.max(1,c??u.defaults.columns),[M,h]=Array.isArray(x)?x:[x,0],v=Math.max(0,M??0),g=Math.max(0,h??0),w=useMemo(()=>({horizontalGap:v,verticalGap:g,columns:y}),[v,g,y]);return React.createElement(FlexContext.Provider,{value:w},React.createElement(View,{style:[u.layout.container,{flexDirection:m,flexWrap:p,alignItems:alignMap[f],justifyContent:justifyMap[d],columnGap:v||void 0,rowGap:g||void 0},i]},a))};export const Flex=React.memo(FlexImpl);
@@ -1 +1 @@
1
- import React,{useContext}from"react";import{Platform,View}from"react-native";import{FlexContext}from"./FlexContext";import{isNumber}from"../../utils";const parseFlex=e=>{if(isNumber(e))return{flex:e};if(!e)return;const t=e.trim();if(!t)return;if("auto"===t)return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if("none"===t)return{flexGrow:0,flexShrink:0,flexBasis:"auto"};const r=Number(t);if(isNumber(r))return{flex:r};const i=t.split(/\s+/);if(i.length>=2){const[e,t]=i.map(Number);if(isNumber(e)&&isNumber(t)){const r=i.slice(2).join(" ");let l;if("auto"===r)l="auto";else if(r){const e=r.match(/^(-?\d+(?:\.\d+)?)px$/),t=Number(e?e[1]:r);isNumber(t)&&(l=t)}return{flexGrow:e,flexShrink:t,flexBasis:l}}}},FlexItemImpl=({span:e,flex:t,style:r,children:i})=>{const{horizontalGap:l,verticalGap:n,columns:o}=useContext(FlexContext),m="web"===Platform.OS;if(isNumber(e)&&e<=0)return null;const s={};if(isNumber(e)){const t=Math.max(1,o),r=Math.min(Math.max(e,0),t)/t;s.width=100*r+"%",s.flexGrow=0,s.flexShrink=0}return React.createElement(View,{style:[m?null:{paddingHorizontal:l/2,paddingVertical:n/2},s,parseFlex(t),r]},i)};export const FlexItem=React.memo(FlexItemImpl);FlexItem.displayName="FlexItem";
1
+ import React,{useContext}from"react";import{View}from"react-native";import{FlexContext}from"./FlexContext";import{isNumber}from"../../utils";const parseFlex=e=>{if(isNumber(e))return{flex:e};if(!e)return;const t=e.trim();if(!t)return;if("auto"===t)return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if("none"===t)return{flexGrow:0,flexShrink:0,flexBasis:"auto"};const r=Number(t);if(isNumber(r))return{flex:r};const i=t.split(/\s+/);if(i.length>=2){const[e,t]=i.map(Number);if(isNumber(e)&&isNumber(t)){const r=i.slice(2).join(" ");let l;if("auto"===r)l="auto";else if(r){const e=r.match(/^(-?\d+(?:\.\d+)?)px$/),t=Number(e?e[1]:r);isNumber(t)&&(l=t)}return{flexGrow:e,flexShrink:t,flexBasis:l}}}},FlexItemImpl=({span:e,flex:t,style:r,children:i})=>{const{columns:l}=useContext(FlexContext);if(isNumber(e)&&e<=0)return null;const s={};if(isNumber(e)){const t=Math.max(1,l),r=Math.min(Math.max(e,0),t)/t;s.flexBasis=100*r+"%",s.flexGrow=0,s.flexShrink=1}return React.createElement(View,{style:[s,parseFlex(t),r]},i)};export const FlexItem=React.memo(FlexItemImpl);FlexItem.displayName="FlexItem";
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";export const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];export const FORM_ALL_FIELDS_KEY="__form_all__";export const toNamePath=e=>null==e?[]:Array.isArray(e)?e:isNumber(e)?[e]:isString(e)?e.split("."):[String(e)];export const serializeNamePath=e=>toNamePath(e).join(".");export const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);export const setValueByName=(e,r,t)=>{const n=toNamePath(r);if(!n.length)return e;const a=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=a;return n.forEach((e,r)=>{const a=String(e),u=Number(a);if(r===n.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[a]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[a],l=null==s?isNumber(n[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=l:i[a]=l,i=l}),a};export const FormContext=React.createContext(null);const runRuleValidation=(e,r,t,n)=>{const a=e.message??n??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&isString(r)&&0===r.trim().length))return a;if(i)return null;if(e.pattern&&isString(r)&&!e.pattern.test(r))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=isNumber(r)?r:isString(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return a;if(void 0!==e.min&&t<e.min)return a;if(void 0!==e.max&&t>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(r,t);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,f=useLocale(),d=useRef({}),g=useRef({}),y=useRef(t??d.current),h=useRef({}),N=useRef(new Map),b=useRef(t??d.current),p=useRef({}),V=useRef(new Set),v=useRef(u),F=useRef(s);v.current=u,F.current=s;const x=t??d.current,[,R]=useState(0),_=useCallback((e,r)=>{V.current.forEach(t=>t(e,r))},[]);useEffect(()=>{shallowEqualObject(y.current,x)||(y.current=x,b.current=x,g.current={},R(e=>e+1),_({[FORM_ALL_FIELDS_KEY]:!0},x))},[x,_]);const A=useCallback((e,r)=>{const t=serializeNamePath(e),n=g.current[t];if(!r.length){if(!n)return;const r={...g.current};return delete r[t],g.current=r,void _({[t]:getValueByName(b.current,e)},b.current)}n?.[0]===r[0]&&n.length===r.length||(g.current={...g.current,[t]:r},_({[t]:getValueByName(b.current,e)},b.current))},[_]),E=useCallback((e,r)=>{const t=serializeNamePath(e),n=h.current[t];if(n?.dependencies?.length)for(const e of n.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}if(h.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n?n.add(t):N.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(y.current,e)&&(y.current=setValueByName(y.current,e,r.initialValue));if(void 0===getValueByName(b.current,e)){const n=setValueByName(b.current,e,r.initialValue);b.current=n,_({[t]:r.initialValue},n)}}return()=>{const r=h.current[t];if(delete h.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}A(e,[])}},[_,A]),P=useRef(f);P.current=f;const B=useCallback(async(e,r,t,n)=>{const a=serializeNamePath(e),i=(p.current[a]??0)+1;p.current[a]=i;const u=h.current[a],s=u?.rules??[];if(!s.length)return A(e,[]),!0;let l=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!l.length){if(!g.current[a]?.length)return!0;l=s}const c=n??b.current,o=t??getValueByName(c,e),m=P.current?.vanForm?.validationFailed;for(const r of l){const t=runRuleValidation(r,o,c,m),n=isPromiseLike(t)?await t:t;if(p.current[a]!==i)return!0;if(n)return A(e,[n]),!1}return p.current[a]!==i||A(e,[]),!0},[A]),S=useCallback(async e=>{const r=e??Object.values(h.current).map(e=>e.name);if((await Promise.all(r.map(e=>B(e)))).some(e=>!e))throw g.current;return b.current},[B]),C=useCallback((e,r,t,n,a)=>{B(r,t,n,a);const i=N.current.get(e);if(i?.size)for(const e of i){const r=h.current[e];r&&B(r.name,t,getValueByName(a,r.name),a)}},[B]),z=useCallback((e,r,t)=>{const n=serializeNamePath(e),a=b.current;if(getValueByName(a,e)===r)return;const i=setValueByName(a,e,r);b.current=i,v.current?.(i,n,r),C(n,e,t,r,i),_({[n]:r},i)},[_,C]),w=useMemo(()=>({submit:async()=>{try{const e=await S();return F.current?.(e),e}catch{return}},getFieldsValue:()=>b.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,n=b.current;let a=n;const i={};Object.keys(e).forEach(r=>{const n=e[r];getValueByName(a,r)!==n&&(i[r]=n,a=setValueByName(a,r,n),v.current?.(a,r,n),t&&C(r,r,void 0,n,a))}),a!==n&&(b.current=a,_(i,a))},resetFields:()=>{let e=y.current;Object.values(h.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),b.current=e,g.current={},_({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:S,getFieldError:e=>g.current[serializeNamePath(e)]??[]}),[S,C,_]);useImperativeHandle(r,()=>w,[w]);const L=useMemo(()=>({getFieldValue:e=>getValueByName(b.current,e),setFieldValue:z,registerField:E,getFieldError:e=>g.current[serializeNamePath(e)],validateField:(e,r)=>B(e,r),getFieldsValue:()=>b.current,subscribe:e=>(V.current.add(e),()=>V.current.delete(e)),form:w,colon:n,labelWidth:a,showValidateMessage:i}),[z,E,B,w,n,a,i]);return React.createElement(FormContext.Provider,{value:L},React.createElement(View,_extends({style:l},m),o,isText(c)?renderTextOrNode(c,[]):c))},InternalFormRef=React.forwardRef(InternalFormImpl),InternalForm=React.memo(InternalFormRef);export const useWatch=(e,r)=>{const t=useContext(FormContext),n=void 0===e?void 0:Array.isArray(e)?e.length&&isText(e[0])?[e]:e:[e],a=useCallback(e=>{const a=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!n)return a;if(1===n.length)return getValueByName(a,n[0]);const i={};for(const e of n)i[serializeNamePath(e)]=getValueByName(a,e);return i},[t,r,n]),[i,u]=useState(()=>a());return useEffect(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{"__form_all__"in e?u(a(r)):n&&!n.some(r=>serializeNamePath(r)in e)||u(a(r))})},[t,a,n]),useEffect(()=>{u(a())},[a]),i};export const FormSubscribe=({to:e,children:r})=>{const t=useContext(FormContext),[n,a]=useState({});return useEffect(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||"__form_all__"in r||Object.keys(r).some(r=>e.includes(r)))&&a(r)})},[t,e]),React.createElement(React.Fragment,null,r(n,t?.form||null))};export default InternalForm;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";export const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];export const FORM_ALL_FIELDS_KEY="__form_all__";export const toNamePath=e=>null==e?[]:Array.isArray(e)?e:isNumber(e)?[e]:isString(e)?e.split("."):[String(e)];export const serializeNamePath=e=>toNamePath(e).join(".");export const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);export const setValueByName=(e,r,t)=>{const n=toNamePath(r);if(!n.length)return e;const a=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=a;return n.forEach((e,r)=>{const a=String(e),u=Number(a);if(r===n.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[a]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[a],l=null==s?isNumber(n[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=l:i[a]=l,i=l}),a};export const FormContext=React.createContext(null);const runRuleValidation=(e,r,t,n)=>{const a=e.message??n??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&isString(r)&&0===r.trim().length))return a;if(i)return null;if(e.pattern&&isString(r)&&!e.pattern.test(r))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=isNumber(r)?r:isString(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return a;if(void 0!==e.min&&t<e.min)return a;if(void 0!==e.max&&t>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(r,t);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,f=useLocale(),d=useRef({}),g=useRef({}),y=useRef(t??d.current),h=useRef({}),N=useRef(new Map),b=useRef(t??d.current),p=useRef({}),V=useRef(new Set),v=useRef(u),F=useRef(s);v.current=u,F.current=s;const x=t??d.current,[,R]=useState(0),_=useCallback((e,r)=>{V.current.forEach(t=>t(e,r))},[]);useEffect(()=>{shallowEqualObject(y.current,x)||(y.current=x,b.current=x,g.current={},R(e=>e+1),_({[FORM_ALL_FIELDS_KEY]:!0},x))},[x,_]);const A=useCallback((e,r)=>{const t=serializeNamePath(e),n=g.current[t];if(!r.length){if(!n)return;const r={...g.current};return delete r[t],g.current=r,void _({[t]:getValueByName(b.current,e)},b.current)}n?.[0]===r[0]&&n.length===r.length||(g.current={...g.current,[t]:r},_({[t]:getValueByName(b.current,e)},b.current))},[_]),E=useCallback((e,r)=>{const t=serializeNamePath(e),n=h.current[t];if(n?.dependencies?.length)for(const e of n.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}if(h.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n?n.add(t):N.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(y.current,e)&&(y.current=setValueByName(y.current,e,r.initialValue));if(void 0===getValueByName(b.current,e)){const n=setValueByName(b.current,e,r.initialValue);b.current=n,_({[t]:r.initialValue},n)}}return()=>{const r=h.current[t];if(delete h.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}A(e,[])}},[_,A]),P=useRef(f);P.current=f;const B=useCallback(async(e,r,t,n)=>{const a=serializeNamePath(e),i=(p.current[a]??0)+1;p.current[a]=i;const u=h.current[a],s=u?.rules??[];if(!s.length)return A(e,[]),!0;const l=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!l.length)return g.current[a]?.length&&A(e,[]),!0;const c=n??b.current,o=t??getValueByName(c,e),m=P.current?.vanForm?.validationFailed;for(const r of l){const t=runRuleValidation(r,o,c,m),n=isPromiseLike(t)?await t:t;if(p.current[a]!==i)return!0;if(n)return A(e,[n]),!1}return p.current[a]!==i||A(e,[]),!0},[A]),S=useCallback(async e=>{const r=e??Object.values(h.current).map(e=>e.name);if((await Promise.all(r.map(e=>B(e)))).some(e=>!e))throw g.current;return b.current},[B]),C=useCallback((e,r,t,n,a)=>{B(r,t,n,a);const i=N.current.get(e);if(i?.size)for(const e of i){const r=h.current[e];r&&B(r.name,t,getValueByName(a,r.name),a)}},[B]),z=useCallback((e,r,t)=>{const n=serializeNamePath(e),a=b.current;if(getValueByName(a,e)===r)return;const i=setValueByName(a,e,r);b.current=i,v.current?.(i,n,r),C(n,e,t,r,i),_({[n]:r},i)},[_,C]),w=useMemo(()=>({submit:async()=>{try{const e=await S();return F.current?.(e),e}catch{return}},getFieldsValue:()=>b.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,n=b.current;let a=n;const i={};Object.keys(e).forEach(r=>{const n=e[r];getValueByName(a,r)!==n&&(i[r]=n,a=setValueByName(a,r,n),v.current?.(a,r,n),t&&C(r,r,void 0,n,a))}),a!==n&&(b.current=a,_(i,a))},resetFields:()=>{let e=y.current;Object.values(h.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),b.current=e,g.current={},_({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:S,getFieldError:e=>g.current[serializeNamePath(e)]??[]}),[S,C,_]);useImperativeHandle(r,()=>w,[w]);const L=useMemo(()=>({getFieldValue:e=>getValueByName(b.current,e),setFieldValue:z,registerField:E,getFieldError:e=>g.current[serializeNamePath(e)],validateField:(e,r)=>B(e,r),getFieldsValue:()=>b.current,subscribe:e=>(V.current.add(e),()=>V.current.delete(e)),form:w,colon:n,labelWidth:a,showValidateMessage:i}),[z,E,B,w,n,a,i]);return React.createElement(FormContext.Provider,{value:L},React.createElement(View,_extends({style:l},m),o,isText(c)?renderTextOrNode(c,[]):c))},InternalFormRef=React.forwardRef(InternalFormImpl),InternalForm=React.memo(InternalFormRef);export const useWatch=(e,r)=>{const t=useContext(FormContext),n=void 0===e?void 0:Array.isArray(e)?e.length&&isText(e[0])?[e]:e:[e],a=useCallback(e=>{const a=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!n)return a;if(1===n.length)return getValueByName(a,n[0]);const i={};for(const e of n)i[serializeNamePath(e)]=getValueByName(a,e);return i},[t,r,n]),[i,u]=useState(()=>a());return useEffect(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{"__form_all__"in e?u(a(r)):n&&!n.some(r=>serializeNamePath(r)in e)||u(a(r))})},[t,a,n]),useEffect(()=>{u(a())},[a]),i};export const FormSubscribe=({to:e,children:r})=>{const t=useContext(FormContext),[n,a]=useState({});return useEffect(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||"__form_all__"in r||Object.keys(r).some(r=>e.includes(r)))&&a(r)})},[t,e]),React.createElement(React.Fragment,null,r(n,t?.form||null))};export default InternalForm;
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}import React,{useMemo}from"react";import{Platform,View}from"react-native";import{createHairlineView}from"../../utils";import{useGridTokens}from"./tokens";export const GridContext=React.createContext(null);const GridImpl=e=>{const{tokensOverride:t,children:r,columnNum:o,gutter:i,border:l,center:n,square:a,direction:u,reverse:s,clickable:c,iconSize:d,iconColor:m,style:f,...b}=e,p=useGridTokens(t),y=useMemo(()=>{const e=o??p.defaults.columnNum;return Number.isFinite(e)&&e>0?Math.floor(e):p.defaults.columnNum},[o,p.defaults.columnNum]),g=useMemo(()=>{const e=i??p.defaults.gutter;return Number.isFinite(e)&&e>0?e:0},[i,p.defaults.gutter]),v=l??p.defaults.border,M=n??p.defaults.center,w=a??p.defaults.square,x=u??p.defaults.direction,G=s??p.defaults.reverse,R=c??p.defaults.clickable,k=useMemo(()=>{const e=d??p.defaults.iconSize;return Number.isFinite(e)&&e>0?e:p.defaults.iconSize},[d,p.defaults.iconSize]),h=useMemo(()=>React.Children.toArray(r).filter(e=>React.isValidElement(e)),[r]),N=v&&!g,V=p.colors.border,C=useMemo(()=>N?React.createElement(View,{style:[p.layout.border,p.layout.borderTop,createHairlineView({position:"top",color:V,left:0,right:0,top:0})]}):null,[V,N,p.layout.border,p.layout.borderTop]),S=useMemo(()=>N?React.createElement(View,{style:[p.layout.border,p.layout.borderBottom,createHairlineView({position:"bottom",color:V,left:0,right:0,bottom:0})]}):null,[V,N,p.layout.border,p.layout.borderBottom]),E=useMemo(()=>({columnNum:y,gutter:g,border:v,center:M,square:w,direction:x,reverse:G,clickable:R,iconSize:k,iconColor:m,count:h.length,tokens:p}),[v,M,h.length,R,y,x,g,m,k,G,w,p]),O=useMemo(()=>"web"===Platform.OS?{display:"grid",gridTemplateColumns:`repeat(${y}, minmax(0, 1fr))`,columnGap:g,rowGap:g}:void 0,[y,g]),z=useMemo(()=>[p.layout.container,"web"===Platform.OS?O:g?{paddingLeft:g}:void 0,f],[g,f,p.layout.container,O]),P=useMemo(()=>h.map((e,t)=>React.cloneElement(e,{gridItemIndex:t,key:e.key??t})),[h]);return React.createElement(GridContext.Provider,{value:E},React.createElement(View,_extends({accessibilityRole:"grid",style:z},b),C,P,S))};export const Grid=React.memo(GridImpl);Grid.displayName="Grid";
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo}from"react";import{View}from"react-native";import{createHairlineView}from"../../utils";import{useGridTokens}from"./tokens";export const GridContext=React.createContext(null);const GridImpl=e=>{const{tokensOverride:t,children:o,columnNum:r,gutter:i,border:n,center:l,square:a,direction:u,reverse:c,clickable:s,iconSize:d,iconColor:m,style:b,onLayout:f,...y}=e,p=useGridTokens(t),[g,v]=React.useState(0),k=useMemo(()=>{const e=r??p.defaults.columnNum;return Number.isFinite(e)&&e>0?Math.floor(e):p.defaults.columnNum},[r,p.defaults.columnNum]),R=useMemo(()=>{const e=i??p.defaults.gutter;return Number.isFinite(e)&&e>0?e:0},[i,p.defaults.gutter]),h=n??p.defaults.border,G=l??p.defaults.center,w=a??p.defaults.square,x=u??p.defaults.direction,M=c??p.defaults.reverse,N=s??p.defaults.clickable,C=useMemo(()=>{const e=d??p.defaults.iconSize;return Number.isFinite(e)&&e>0?e:p.defaults.iconSize},[d,p.defaults.iconSize]),V=useMemo(()=>React.Children.toArray(o).filter(e=>React.isValidElement(e)),[o]),E=h&&!R,S=p.colors.border,z=useMemo(()=>E?React.createElement(View,{style:[p.layout.border,p.layout.borderTop,createHairlineView({position:"top",color:S,left:0,right:0,top:0})]}):null,[S,E,p.layout.border,p.layout.borderTop]),I=useMemo(()=>E?React.createElement(View,{style:[p.layout.border,p.layout.borderBottom,createHairlineView({position:"bottom",color:S,left:0,right:0,bottom:0})]}):null,[S,E,p.layout.border,p.layout.borderBottom]),O=useMemo(()=>({columnNum:k,gutter:R,border:h,center:G,square:w,direction:x,reverse:M,clickable:N,iconSize:C,iconColor:m,count:V.length,containerWidth:g,tokens:p}),[h,G,V.length,N,k,g,x,R,m,C,M,w,p]),T=useMemo(()=>V.map((e,t)=>React.cloneElement(e,{gridItemIndex:t,key:e.key??t})),[V]),_=useCallback(e=>{v(e.nativeEvent.layout.width),f?.(e)},[f]);return React.createElement(GridContext.Provider,{value:O},React.createElement(View,_extends({accessibilityRole:"grid",onLayout:_,style:[p.layout.container,R?{columnGap:R,rowGap:R}:void 0,b]},y),z,T,I))};export const Grid=React.memo(GridImpl);Grid.displayName="Grid";
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{Platform,Pressable,View}from"react-native";import{Text}from"../../design-system";import Badge from"../badge";import{createHairlineView,isFunction,isRenderable,isText,renderTextOrNode}from"../../utils";import{GridContext}from"./GridContext";const GridItemImpl=e=>{const t=useContext(GridContext);if(!t)throw new Error("GridItem must be used within Grid");const{gridItemIndex:o=0,text:r,icon:i,iconColor:n,badge:a,dot:l,contentStyle:s,textStyle:c,children:m,style:d,onPress:p,...y}=e,{tokens:g,columnNum:u,gutter:f,border:h,center:x,square:b,direction:R,reverse:w,clickable:v,iconSize:S,iconColor:G,count:C}=t,O=100/u+"%",V=(o+1)%u===0,z=Math.floor(o/u),H=Math.floor((C-1)/u),E=[g.layout.itemContentBase,"horizontal"===R?g.layout.itemHorizontal:g.layout.itemVertical,x&&g.layout.itemCenter,w?"horizontal"===R?g.layout.itemReverseRow:g.layout.itemReverseColumn:null,b?g.layout.itemContentSquare:null,{paddingHorizontal:g.spacing.paddingHorizontal,paddingVertical:g.spacing.paddingVertical,backgroundColor:g.colors.background},s],I=isRenderable(r),F=n??G??g.colors.text,P=useMemo(()=>{if(m)return isText(m)?renderTextOrNode(m,[g.layout.text,{color:g.colors.text,fontSize:g.typography.fontSize,lineHeight:g.typography.lineHeight,fontFamily:g.typography.fontFamily,fontWeight:g.typography.fontWeight},c]):m;let e=null;if(i||a||l){const{style:t,...o}=a??{},r="vertical"===R?w?"marginTop":"marginBottom":w?"marginLeft":"marginRight",n=[g.layout.iconWrapper,I&&{[r]:g.spacing.iconGap}],s=isFunction(i)?i(S,F):i,c=React.createElement(View,{style:n},s);e=a||l?React.createElement(Badge,_extends({dot:l},o,{style:x?[t,{alignSelf:"center"}]:t}),c):c}const t=I&&(isText(r)?React.createElement(Text,{style:[g.layout.text,{color:g.colors.text,fontSize:g.typography.fontSize,lineHeight:g.typography.lineHeight,fontFamily:g.typography.fontFamily,fontWeight:g.typography.fontWeight},c],numberOfLines:g.defaults.textNumberOfLines},r):r);return React.createElement(React.Fragment,null,e,t)},[a,x,m,R,l,I,i,S,F,w,r,c,g.colors.text,g.defaults.textNumberOfLines,g.layout.iconWrapper,g.layout.text,g.spacing.iconGap,g.typography.fontFamily,g.typography.fontSize,g.typography.fontWeight,g.typography.lineHeight]),T=!h||f||V?null:React.createElement(View,{style:[g.layout.itemBorderRight,createHairlineView({position:"right",color:g.colors.border,top:0,bottom:0,right:0})]}),B=h&&!f&&z<H?React.createElement(View,{style:[g.layout.itemBorderBottom,createHairlineView({position:"bottom",color:g.colors.border,left:0,right:0,bottom:0})]}):null,W=React.createElement(View,{style:E},P,T,B),_={width:"web"===Platform.OS?void 0:O,flexGrow:0,flexShrink:0,paddingRight:"web"===Platform.OS?void 0:f||void 0,marginTop:"web"===Platform.OS?void 0:f&&z>0?f:void 0};return v||isFunction(p)?React.createElement(Pressable,_extends({accessibilityRole:"button",style:e=>[_,"function"==typeof d?d(e):d,{opacity:e.pressed?g.defaults.pressedOpacity:1}],android_ripple:{color:g.colors.active},onPress:p},y),W):React.createElement(View,_extends({style:[_,"function"==typeof d?d({pressed:!1}):d]},y),W)};export const GridItem=React.memo(GridItemImpl);GridItem.displayName="GridItem";
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{Pressable,View}from"react-native";import{Text}from"../../design-system";import Badge from"../badge";import{createHairlineView,isFunction,isRenderable,isText,renderTextOrNode}from"../../utils";import{GridContext}from"./GridContext";const GridItemImpl=e=>{const t=useContext(GridContext);if(!t)throw new Error("GridItem must be used within Grid");const{gridItemIndex:o=0,text:r,icon:i,iconColor:n,badge:a,dot:l,contentStyle:s,textStyle:c,children:m,style:p,onPress:y,...d}=e,{tokens:u,columnNum:g,gutter:f,border:h,center:x,square:b,direction:R,reverse:w,clickable:G,iconSize:C,iconColor:H,count:S,containerWidth:V}=t,z=(o+1)%g===0,E=Math.floor(o/g),I=Math.floor((S-1)/g),v=[u.layout.itemContentBase,"horizontal"===R?u.layout.itemHorizontal:u.layout.itemVertical,x&&u.layout.itemCenter,w?"horizontal"===R?u.layout.itemReverseRow:u.layout.itemReverseColumn:null,b?u.layout.itemContentSquare:null,{paddingHorizontal:u.spacing.paddingHorizontal,paddingVertical:u.spacing.paddingVertical,backgroundColor:u.colors.background},s],F=isRenderable(r),O=n??H??u.colors.text,W=useMemo(()=>{if(m)return isText(m)?renderTextOrNode(m,[u.layout.text,{color:u.colors.text,fontSize:u.typography.fontSize,lineHeight:u.typography.lineHeight,fontFamily:u.typography.fontFamily,fontWeight:u.typography.fontWeight},c]):m;let e=null;if(i||a||l){const{style:t,...o}=a??{},r="vertical"===R?w?"marginTop":"marginBottom":w?"marginLeft":"marginRight",n=[u.layout.iconWrapper,F&&{[r]:u.spacing.iconGap}],s=isFunction(i)?i(C,O):i,c=React.createElement(View,{style:n},s);e=a||l?React.createElement(Badge,_extends({dot:l},o,{style:x?[t,{alignSelf:"center"}]:t}),c):c}const t=F&&(isText(r)?React.createElement(Text,{style:[u.layout.text,{color:u.colors.text,fontSize:u.typography.fontSize,lineHeight:u.typography.lineHeight,fontFamily:u.typography.fontFamily,fontWeight:u.typography.fontWeight},c],numberOfLines:u.defaults.textNumberOfLines},r):r);return React.createElement(React.Fragment,null,e,t)},[a,x,m,R,l,F,i,C,O,w,r,c,u.colors.text,u.defaults.textNumberOfLines,u.layout.iconWrapper,u.layout.text,u.spacing.iconGap,u.typography.fontFamily,u.typography.fontSize,u.typography.fontWeight,u.typography.lineHeight]),B=!h||f||z?null:React.createElement(View,{style:[u.layout.itemBorderRight,createHairlineView({position:"right",color:u.colors.border,top:0,bottom:0,right:0})]}),T=h&&!f&&E<I?React.createElement(View,{style:[u.layout.itemBorderBottom,createHairlineView({position:"bottom",color:u.colors.border,left:0,right:0,bottom:0})]}):null,_=React.createElement(View,{style:v},W,B,T),k=f>0&&V>0?{width:(V-(g-1)*f)/g,flexGrow:0,flexShrink:0}:{flexBasis:100/g+"%",flexGrow:0,flexShrink:1,minWidth:0,minHeight:0};return G||isFunction(y)?React.createElement(Pressable,_extends({accessibilityRole:"button",style:e=>[k,"function"==typeof p?p(e):p,{opacity:e.pressed?u.defaults.pressedOpacity:1}],android_ripple:{color:u.colors.active},onPress:y},d),_):React.createElement(View,_extends({style:[k,"function"==typeof p?p({pressed:!1}):p]},d),_)};export const GridItem=React.memo(GridItemImpl);GridItem.displayName="GridItem";