react-native-system-ui 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/README.md +42 -22
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +1 -301
  3. package/dist/cjs/components/action-sheet/index.js +1 -16
  4. package/dist/cjs/components/action-sheet/tokens.js +1 -133
  5. package/dist/cjs/components/area/Area.js +1 -127
  6. package/dist/cjs/components/area/index.js +1 -9
  7. package/dist/cjs/components/area/tokens.js +1 -14
  8. package/dist/cjs/components/avatar/Avatar.js +1 -125
  9. package/dist/cjs/components/avatar/index.js +1 -18
  10. package/dist/cjs/components/avatar/tokens.js +1 -56
  11. package/dist/cjs/components/badge/Badge.js +1 -166
  12. package/dist/cjs/components/badge/index.js +1 -8
  13. package/dist/cjs/components/badge/tokens.js +1 -81
  14. package/dist/cjs/components/button/Button.js +1 -203
  15. package/dist/cjs/components/button/ButtonContext.js +1 -12
  16. package/dist/cjs/components/button/ButtonGroup.js +1 -65
  17. package/dist/cjs/components/button/index.js +1 -12
  18. package/dist/cjs/components/button/tokens.js +1 -176
  19. package/dist/cjs/components/calendar/Calendar.js +1 -452
  20. package/dist/cjs/components/calendar/index.js +1 -9
  21. package/dist/cjs/components/calendar/tokens.js +1 -129
  22. package/dist/cjs/components/cascader/Cascader.js +1 -482
  23. package/dist/cjs/components/cascader/index.js +1 -15
  24. package/dist/cjs/components/cascader/tokens.js +1 -138
  25. package/dist/cjs/components/cascader/useCascaderExtend.js +1 -39
  26. package/dist/cjs/components/cell/Cell.js +1 -181
  27. package/dist/cjs/components/cell/CellContext.js +1 -19
  28. package/dist/cjs/components/cell/CellGroup.js +1 -100
  29. package/dist/cjs/components/cell/index.js +1 -19
  30. package/dist/cjs/components/cell/tokens.js +1 -173
  31. package/dist/cjs/components/checkbox/Checkbox.js +1 -251
  32. package/dist/cjs/components/checkbox/CheckboxContext.js +1 -12
  33. package/dist/cjs/components/checkbox/CheckboxGroup.js +1 -148
  34. package/dist/cjs/components/checkbox/index.js +1 -16
  35. package/dist/cjs/components/checkbox/tokens.js +1 -97
  36. package/dist/cjs/components/circle/Circle.js +1 -212
  37. package/dist/cjs/components/circle/index.js +1 -9
  38. package/dist/cjs/components/circle/tokens.js +1 -55
  39. package/dist/cjs/components/collapse/Collapse.js +1 -311
  40. package/dist/cjs/components/collapse/index.js +1 -8
  41. package/dist/cjs/components/collapse/tokens.js +1 -81
  42. package/dist/cjs/components/config-provider/ConfigProvider.js +1 -44
  43. package/dist/cjs/components/config-provider/DirectionContext.js +1 -15
  44. package/dist/cjs/components/config-provider/LocaleContext.js +1 -16
  45. package/dist/cjs/components/config-provider/index.js +1 -40
  46. package/dist/cjs/components/config-provider/locale/en-US.js +1 -112
  47. package/dist/cjs/components/config-provider/locale/zh-CN.js +1 -112
  48. package/dist/cjs/components/config-provider/tokens.js +1 -11
  49. package/dist/cjs/components/config-provider/useDirection.js +1 -16
  50. package/dist/cjs/components/config-provider/useLocale.js +1 -16
  51. package/dist/cjs/components/count-down/CountDown.js +1 -88
  52. package/dist/cjs/components/count-down/index.js +1 -15
  53. package/dist/cjs/components/count-down/tokens.js +1 -34
  54. package/dist/cjs/components/datetime-picker/DatetimePicker.js +1 -319
  55. package/dist/cjs/components/datetime-picker/index.js +1 -9
  56. package/dist/cjs/components/datetime-picker/tokens.js +1 -22
  57. package/dist/cjs/components/dialog/Dialog.js +1 -433
  58. package/dist/cjs/components/dialog/imperative.js +1 -199
  59. package/dist/cjs/components/dialog/index.js +1 -23
  60. package/dist/cjs/components/dialog/tokens.js +1 -64
  61. package/dist/cjs/components/divider/Divider.js +1 -126
  62. package/dist/cjs/components/divider/index.js +1 -8
  63. package/dist/cjs/components/divider/tokens.js +1 -62
  64. package/dist/cjs/components/empty/Empty.js +1 -125
  65. package/dist/cjs/components/empty/index.js +1 -8
  66. package/dist/cjs/components/empty/tokens.js +1 -55
  67. package/dist/cjs/components/error-boundary/ErrorBoundary.js +1 -74
  68. package/dist/cjs/components/error-boundary/index.js +1 -19
  69. package/dist/cjs/components/field/Field.js +1 -565
  70. package/dist/cjs/components/field/index.js +1 -29
  71. package/dist/cjs/components/field/tokens.js +1 -150
  72. package/dist/cjs/components/flex/Flex.js +1 -85
  73. package/dist/cjs/components/flex/FlexContext.js +1 -12
  74. package/dist/cjs/components/flex/FlexItem.js +1 -95
  75. package/dist/cjs/components/flex/index.js +1 -19
  76. package/dist/cjs/components/flex/tokens.js +1 -21
  77. package/dist/cjs/components/form/Form.js +1 -340
  78. package/dist/cjs/components/form/FormContext.js +1 -12
  79. package/dist/cjs/components/form/FormItem.js +1 -151
  80. package/dist/cjs/components/form/FormList.js +1 -95
  81. package/dist/cjs/components/form/index.js +1 -50
  82. package/dist/cjs/components/form/tokens.js +1 -14
  83. package/dist/cjs/components/form/utils.js +1 -56
  84. package/dist/cjs/components/grid/Grid.js +1 -118
  85. package/dist/cjs/components/grid/GridContext.js +1 -12
  86. package/dist/cjs/components/grid/GridItem.js +1 -158
  87. package/dist/cjs/components/grid/index.js +1 -12
  88. package/dist/cjs/components/grid/tokens.js +1 -105
  89. package/dist/cjs/components/image/Image.js +1 -263
  90. package/dist/cjs/components/image/index.js +1 -16
  91. package/dist/cjs/components/image/tokens.js +1 -66
  92. package/dist/cjs/components/image-preview/ImagePreview.js +1 -408
  93. package/dist/cjs/components/image-preview/imperative.js +1 -72
  94. package/dist/cjs/components/image-preview/index.js +1 -17
  95. package/dist/cjs/components/image-preview/tokens.js +1 -43
  96. package/dist/cjs/components/index.js +1 -769
  97. package/dist/cjs/components/input/Input.js +1 -122
  98. package/dist/cjs/components/input/index.js +1 -15
  99. package/dist/cjs/components/input/tokens.js +1 -22
  100. package/dist/cjs/components/loading/Loading.js +1 -76
  101. package/dist/cjs/components/loading/index.js +1 -8
  102. package/dist/cjs/components/loading/tokens.js +1 -32
  103. package/dist/cjs/components/nav-bar/NavBar.js +1 -196
  104. package/dist/cjs/components/nav-bar/index.js +1 -16
  105. package/dist/cjs/components/nav-bar/tokens.js +1 -90
  106. package/dist/cjs/components/notice-bar/NoticeBar.js +1 -369
  107. package/dist/cjs/components/notice-bar/index.js +1 -8
  108. package/dist/cjs/components/notice-bar/tokens.js +1 -39
  109. package/dist/cjs/components/notify/Notify.js +1 -262
  110. package/dist/cjs/components/notify/imperative.js +1 -145
  111. package/dist/cjs/components/notify/index.js +1 -10
  112. package/dist/cjs/components/notify/tokens.js +1 -74
  113. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -487
  114. package/dist/cjs/components/number-keyboard/index.js +1 -15
  115. package/dist/cjs/components/number-keyboard/tokens.js +1 -59
  116. package/dist/cjs/components/overlay/Overlay.js +1 -81
  117. package/dist/cjs/components/overlay/index.js +1 -28
  118. package/dist/cjs/components/overlay/tokens.js +1 -13
  119. package/dist/cjs/components/password-input/PasswordInput.js +1 -346
  120. package/dist/cjs/components/password-input/index.js +1 -13
  121. package/dist/cjs/components/password-input/tokens.js +1 -53
  122. package/dist/cjs/components/picker/Picker.js +1 -1056
  123. package/dist/cjs/components/picker/index.js +1 -15
  124. package/dist/cjs/components/picker/tokens.js +1 -53
  125. package/dist/cjs/components/popup/Popup.js +1 -518
  126. package/dist/cjs/components/popup/index.js +1 -15
  127. package/dist/cjs/components/popup/tokens.js +1 -62
  128. package/dist/cjs/components/portal/Portal.js +1 -50
  129. package/dist/cjs/components/portal/PortalContext.js +1 -15
  130. package/dist/cjs/components/portal/PortalHost.js +1 -253
  131. package/dist/cjs/components/portal/index.js +1 -25
  132. package/dist/cjs/components/portal/tokens.js +1 -11
  133. package/dist/cjs/components/progress/Progress.js +1 -216
  134. package/dist/cjs/components/progress/index.js +1 -14
  135. package/dist/cjs/components/progress/tokens.js +1 -52
  136. package/dist/cjs/components/radio/Radio.js +1 -245
  137. package/dist/cjs/components/radio/RadioContext.js +1 -12
  138. package/dist/cjs/components/radio/RadioGroup.js +1 -113
  139. package/dist/cjs/components/radio/index.js +1 -16
  140. package/dist/cjs/components/radio/tokens.js +1 -92
  141. package/dist/cjs/components/safe-area-view/SafeAreaView.js +1 -59
  142. package/dist/cjs/components/safe-area-view/index.js +1 -12
  143. package/dist/cjs/components/safe-area-view/tokens.js +1 -11
  144. package/dist/cjs/components/search/Search.js +1 -215
  145. package/dist/cjs/components/search/index.js +1 -15
  146. package/dist/cjs/components/search/tokens.js +1 -54
  147. package/dist/cjs/components/selector/Selector.js +1 -185
  148. package/dist/cjs/components/selector/index.js +1 -15
  149. package/dist/cjs/components/selector/tokens.js +1 -100
  150. package/dist/cjs/components/share-sheet/ShareSheet.js +1 -287
  151. package/dist/cjs/components/share-sheet/index.js +1 -16
  152. package/dist/cjs/components/share-sheet/tokens.js +1 -55
  153. package/dist/cjs/components/sidebar/Sidebar.js +1 -103
  154. package/dist/cjs/components/sidebar/SidebarContext.js +1 -17
  155. package/dist/cjs/components/sidebar/SidebarItem.js +1 -103
  156. package/dist/cjs/components/sidebar/index.js +1 -26
  157. package/dist/cjs/components/sidebar/tokens.js +1 -93
  158. package/dist/cjs/components/skeleton/Skeleton.js +1 -162
  159. package/dist/cjs/components/skeleton/index.js +1 -22
  160. package/dist/cjs/components/skeleton/tokens.js +1 -39
  161. package/dist/cjs/components/slider/Slider.js +1 -633
  162. package/dist/cjs/components/slider/index.js +1 -8
  163. package/dist/cjs/components/slider/tokens.js +1 -37
  164. package/dist/cjs/components/space/Space.js +1 -134
  165. package/dist/cjs/components/space/index.js +1 -18
  166. package/dist/cjs/components/space/tokens.js +1 -39
  167. package/dist/cjs/components/stepper/Stepper.js +1 -484
  168. package/dist/cjs/components/stepper/index.js +1 -15
  169. package/dist/cjs/components/stepper/tokens.js +1 -60
  170. package/dist/cjs/components/swiper/Swiper.js +1 -364
  171. package/dist/cjs/components/swiper/SwiperItem.js +1 -12
  172. package/dist/cjs/components/swiper/SwiperPagIndicator.js +1 -106
  173. package/dist/cjs/components/swiper/index.js +1 -40
  174. package/dist/cjs/components/swiper/tokens.js +1 -18
  175. package/dist/cjs/components/switch/Switch.js +1 -102
  176. package/dist/cjs/components/switch/index.js +1 -15
  177. package/dist/cjs/components/switch/tokens.js +1 -31
  178. package/dist/cjs/components/tabbar/Tabbar.js +1 -149
  179. package/dist/cjs/components/tabbar/TabbarContext.js +1 -17
  180. package/dist/cjs/components/tabbar/TabbarItem.js +1 -159
  181. package/dist/cjs/components/tabbar/index.js +1 -25
  182. package/dist/cjs/components/tabbar/tokens.js +1 -41
  183. package/dist/cjs/components/tabs/Tabs.js +1 -860
  184. package/dist/cjs/components/tabs/index.js +1 -25
  185. package/dist/cjs/components/tabs/tokens.js +1 -111
  186. package/dist/cjs/components/tag/Tag.js +1 -130
  187. package/dist/cjs/components/tag/index.js +1 -8
  188. package/dist/cjs/components/tag/tokens.js +1 -104
  189. package/dist/cjs/components/toast/Toast.js +1 -306
  190. package/dist/cjs/components/toast/imperative.js +1 -144
  191. package/dist/cjs/components/toast/index.js +1 -10
  192. package/dist/cjs/components/toast/tokens.js +1 -43
  193. package/dist/cjs/components/typography/Typography.js +1 -181
  194. package/dist/cjs/components/typography/index.js +1 -9
  195. package/dist/cjs/components/typography/tokens.js +1 -88
  196. package/dist/cjs/components/water-mark/WaterMark.js +1 -172
  197. package/dist/cjs/components/water-mark/index.js +1 -22
  198. package/dist/cjs/components/water-mark/tokens.js +1 -54
  199. package/dist/cjs/design-system/Text.js +1 -38
  200. package/dist/cjs/design-system/ThemeContext.js +1 -19
  201. package/dist/cjs/design-system/ThemeProvider.js +1 -31
  202. package/dist/cjs/design-system/createComponentTokensHook.js +1 -28
  203. package/dist/cjs/design-system/index.js +1 -66
  204. package/dist/cjs/design-system/mergeTokensOverride.js +1 -9
  205. package/dist/cjs/design-system/presets.js +1 -146
  206. package/dist/cjs/design-system/tokens.js +1 -135
  207. package/dist/cjs/design-system/useTheme.js +1 -16
  208. package/dist/cjs/hooks/animation/index.js +1 -25
  209. package/dist/cjs/hooks/animation/useAnimatedTransition.js +1 -72
  210. package/dist/cjs/hooks/animation/useReducedMotion.js +1 -75
  211. package/dist/cjs/hooks/aria/index.js +1 -49
  212. package/dist/cjs/hooks/aria/useAriaListBox.js +1 -50
  213. package/dist/cjs/hooks/aria/useAriaOverlay.js +1 -50
  214. package/dist/cjs/hooks/aria/useAriaPress.js +1 -94
  215. package/dist/cjs/hooks/aria/useAriaToggle.js +1 -41
  216. package/dist/cjs/hooks/gesture/index.js +1 -16
  217. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -129
  218. package/dist/cjs/hooks/index.js +1 -96
  219. package/dist/cjs/hooks/overlay/OverlayStackStore.js +1 -106
  220. package/dist/cjs/hooks/overlay/index.js +1 -27
  221. package/dist/cjs/hooks/overlay/useOverlayStack.js +1 -53
  222. package/dist/cjs/hooks/useControllableValue.js +1 -41
  223. package/dist/cjs/hooks/useCountDown.js +1 -99
  224. package/dist/cjs/hooks/useHairline.js +1 -46
  225. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -38
  226. package/dist/cjs/index.js +1 -104
  227. package/dist/cjs/nativewind.js +1 -0
  228. package/dist/cjs/platform/animation.js +1 -22
  229. package/dist/cjs/platform/history.js +1 -14
  230. package/dist/cjs/platform/index.js +1 -60
  231. package/dist/cjs/platform/measure.js +1 -39
  232. package/dist/cjs/platform/runtime.js +1 -19
  233. package/dist/cjs/platform/scrollLock.js +1 -24
  234. package/dist/cjs/utils/array.js +1 -12
  235. package/dist/cjs/utils/color.js +1 -33
  236. package/dist/cjs/utils/compare.js +1 -21
  237. package/dist/cjs/utils/createPlatformShadow.js +1 -52
  238. package/dist/cjs/utils/date.js +1 -45
  239. package/dist/cjs/utils/deepMerge.js +1 -27
  240. package/dist/cjs/utils/hairline.js +1 -107
  241. package/dist/cjs/utils/index.js +1 -148
  242. package/dist/cjs/utils/number.js +1 -65
  243. package/dist/cjs/utils/promise.js +1 -9
  244. package/dist/cjs/utils/render.js +1 -21
  245. package/dist/cjs/utils/rtl.js +1 -25
  246. package/dist/cjs/utils/string.js +1 -22
  247. package/dist/cjs/utils/validate.js +1 -39
  248. package/dist/es/components/action-sheet/ActionSheet.js +1 -275
  249. package/dist/es/components/action-sheet/index.js +1 -3
  250. package/dist/es/components/action-sheet/tokens.js +1 -126
  251. package/dist/es/components/area/Area.js +1 -113
  252. package/dist/es/components/area/index.js +1 -2
  253. package/dist/es/components/area/tokens.js +1 -8
  254. package/dist/es/components/avatar/Avatar.js +1 -106
  255. package/dist/es/components/avatar/index.js +1 -1
  256. package/dist/es/components/avatar/tokens.js +1 -49
  257. package/dist/es/components/badge/Badge.js +1 -147
  258. package/dist/es/components/badge/index.js +1 -2
  259. package/dist/es/components/badge/tokens.js +1 -75
  260. package/dist/es/components/button/Button.js +1 -184
  261. package/dist/es/components/button/ButtonContext.js +1 -1
  262. package/dist/es/components/button/ButtonGroup.js +1 -46
  263. package/dist/es/components/button/index.js +1 -7
  264. package/dist/es/components/button/tokens.js +1 -170
  265. package/dist/es/components/calendar/Calendar.js +1 -432
  266. package/dist/es/components/calendar/index.js +1 -2
  267. package/dist/es/components/calendar/tokens.js +1 -122
  268. package/dist/es/components/cascader/Cascader.js +1 -456
  269. package/dist/es/components/cascader/index.js +1 -3
  270. package/dist/es/components/cascader/tokens.js +1 -131
  271. package/dist/es/components/cascader/useCascaderExtend.js +1 -32
  272. package/dist/es/components/cell/Cell.js +1 -156
  273. package/dist/es/components/cell/CellContext.js +1 -6
  274. package/dist/es/components/cell/CellGroup.js +1 -81
  275. package/dist/es/components/cell/index.js +1 -8
  276. package/dist/es/components/cell/tokens.js +1 -160
  277. package/dist/es/components/checkbox/Checkbox.js +1 -220
  278. package/dist/es/components/checkbox/CheckboxContext.js +1 -1
  279. package/dist/es/components/checkbox/CheckboxGroup.js +1 -117
  280. package/dist/es/components/checkbox/index.js +1 -5
  281. package/dist/es/components/checkbox/tokens.js +1 -85
  282. package/dist/es/components/circle/Circle.js +1 -187
  283. package/dist/es/components/circle/index.js +1 -2
  284. package/dist/es/components/circle/tokens.js +1 -48
  285. package/dist/es/components/collapse/Collapse.js +1 -286
  286. package/dist/es/components/collapse/index.js +1 -2
  287. package/dist/es/components/collapse/tokens.js +1 -74
  288. package/dist/es/components/config-provider/ConfigProvider.js +1 -25
  289. package/dist/es/components/config-provider/DirectionContext.js +1 -2
  290. package/dist/es/components/config-provider/LocaleContext.js +1 -3
  291. package/dist/es/components/config-provider/index.js +1 -5
  292. package/dist/es/components/config-provider/locale/en-US.js +1 -106
  293. package/dist/es/components/config-provider/locale/zh-CN.js +1 -106
  294. package/dist/es/components/config-provider/tokens.js +1 -5
  295. package/dist/es/components/config-provider/useDirection.js +1 -3
  296. package/dist/es/components/config-provider/useLocale.js +1 -3
  297. package/dist/es/components/count-down/CountDown.js +1 -69
  298. package/dist/es/components/count-down/index.js +1 -3
  299. package/dist/es/components/count-down/tokens.js +1 -27
  300. package/dist/es/components/datetime-picker/DatetimePicker.js +1 -305
  301. package/dist/es/components/datetime-picker/index.js +1 -2
  302. package/dist/es/components/datetime-picker/tokens.js +1 -16
  303. package/dist/es/components/dialog/Dialog.js +1 -407
  304. package/dist/es/components/dialog/imperative.js +1 -185
  305. package/dist/es/components/dialog/index.js +1 -17
  306. package/dist/es/components/dialog/tokens.js +1 -57
  307. package/dist/es/components/divider/Divider.js +1 -107
  308. package/dist/es/components/divider/index.js +1 -2
  309. package/dist/es/components/divider/tokens.js +1 -55
  310. package/dist/es/components/empty/Empty.js +1 -100
  311. package/dist/es/components/empty/index.js +1 -2
  312. package/dist/es/components/empty/tokens.js +1 -48
  313. package/dist/es/components/error-boundary/ErrorBoundary.js +1 -62
  314. package/dist/es/components/error-boundary/index.js +1 -1
  315. package/dist/es/components/field/Field.js +1 -539
  316. package/dist/es/components/field/index.js +1 -6
  317. package/dist/es/components/field/tokens.js +1 -138
  318. package/dist/es/components/flex/Flex.js +1 -66
  319. package/dist/es/components/flex/FlexContext.js +1 -1
  320. package/dist/es/components/flex/FlexItem.js +1 -76
  321. package/dist/es/components/flex/index.js +1 -8
  322. package/dist/es/components/flex/tokens.js +1 -15
  323. package/dist/es/components/form/Form.js +1 -319
  324. package/dist/es/components/form/FormContext.js +1 -1
  325. package/dist/es/components/form/FormItem.js +1 -138
  326. package/dist/es/components/form/FormList.js +1 -81
  327. package/dist/es/components/form/index.js +1 -13
  328. package/dist/es/components/form/tokens.js +1 -8
  329. package/dist/es/components/form/utils.js +1 -45
  330. package/dist/es/components/grid/Grid.js +1 -99
  331. package/dist/es/components/grid/GridContext.js +1 -1
  332. package/dist/es/components/grid/GridItem.js +1 -138
  333. package/dist/es/components/grid/index.js +1 -6
  334. package/dist/es/components/grid/tokens.js +1 -98
  335. package/dist/es/components/image/Image.js +1 -238
  336. package/dist/es/components/image/index.js +1 -3
  337. package/dist/es/components/image/tokens.js +1 -60
  338. package/dist/es/components/image-preview/ImagePreview.js +1 -388
  339. package/dist/es/components/image-preview/imperative.js +1 -58
  340. package/dist/es/components/image-preview/index.js +1 -11
  341. package/dist/es/components/image-preview/tokens.js +1 -37
  342. package/dist/es/components/index.js +1 -110
  343. package/dist/es/components/input/Input.js +1 -109
  344. package/dist/es/components/input/index.js +1 -3
  345. package/dist/es/components/input/tokens.js +1 -16
  346. package/dist/es/components/loading/Loading.js +1 -57
  347. package/dist/es/components/loading/index.js +1 -2
  348. package/dist/es/components/loading/tokens.js +1 -25
  349. package/dist/es/components/nav-bar/NavBar.js +1 -171
  350. package/dist/es/components/nav-bar/index.js +1 -3
  351. package/dist/es/components/nav-bar/tokens.js +1 -83
  352. package/dist/es/components/notice-bar/NoticeBar.js +1 -344
  353. package/dist/es/components/notice-bar/index.js +1 -2
  354. package/dist/es/components/notice-bar/tokens.js +1 -32
  355. package/dist/es/components/notify/Notify.js +1 -242
  356. package/dist/es/components/notify/imperative.js +1 -131
  357. package/dist/es/components/notify/index.js +1 -5
  358. package/dist/es/components/notify/tokens.js +1 -67
  359. package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -467
  360. package/dist/es/components/number-keyboard/index.js +1 -3
  361. package/dist/es/components/number-keyboard/tokens.js +1 -53
  362. package/dist/es/components/overlay/Overlay.js +1 -50
  363. package/dist/es/components/overlay/index.js +1 -4
  364. package/dist/es/components/overlay/tokens.js +1 -7
  365. package/dist/es/components/password-input/PasswordInput.js +1 -327
  366. package/dist/es/components/password-input/index.js +1 -1
  367. package/dist/es/components/password-input/tokens.js +1 -41
  368. package/dist/es/components/picker/Picker.js +1 -1031
  369. package/dist/es/components/picker/index.js +1 -3
  370. package/dist/es/components/picker/tokens.js +1 -47
  371. package/dist/es/components/popup/Popup.js +1 -492
  372. package/dist/es/components/popup/index.js +1 -3
  373. package/dist/es/components/popup/tokens.js +1 -55
  374. package/dist/es/components/portal/Portal.js +1 -37
  375. package/dist/es/components/portal/PortalContext.js +1 -2
  376. package/dist/es/components/portal/PortalHost.js +1 -234
  377. package/dist/es/components/portal/index.js +1 -3
  378. package/dist/es/components/portal/tokens.js +1 -5
  379. package/dist/es/components/progress/Progress.js +1 -196
  380. package/dist/es/components/progress/index.js +1 -3
  381. package/dist/es/components/progress/tokens.js +1 -45
  382. package/dist/es/components/radio/Radio.js +1 -214
  383. package/dist/es/components/radio/RadioContext.js +1 -1
  384. package/dist/es/components/radio/RadioGroup.js +1 -82
  385. package/dist/es/components/radio/index.js +1 -5
  386. package/dist/es/components/radio/tokens.js +1 -80
  387. package/dist/es/components/safe-area-view/SafeAreaView.js +1 -40
  388. package/dist/es/components/safe-area-view/index.js +1 -1
  389. package/dist/es/components/safe-area-view/tokens.js +1 -5
  390. package/dist/es/components/search/Search.js +1 -189
  391. package/dist/es/components/search/index.js +1 -3
  392. package/dist/es/components/search/tokens.js +1 -48
  393. package/dist/es/components/selector/Selector.js +1 -166
  394. package/dist/es/components/selector/index.js +1 -3
  395. package/dist/es/components/selector/tokens.js +1 -88
  396. package/dist/es/components/share-sheet/ShareSheet.js +1 -267
  397. package/dist/es/components/share-sheet/index.js +1 -3
  398. package/dist/es/components/share-sheet/tokens.js +1 -49
  399. package/dist/es/components/sidebar/Sidebar.js +1 -84
  400. package/dist/es/components/sidebar/SidebarContext.js +1 -3
  401. package/dist/es/components/sidebar/SidebarItem.js +1 -84
  402. package/dist/es/components/sidebar/index.js +1 -8
  403. package/dist/es/components/sidebar/tokens.js +1 -80
  404. package/dist/es/components/skeleton/Skeleton.js +1 -143
  405. package/dist/es/components/skeleton/index.js +1 -4
  406. package/dist/es/components/skeleton/tokens.js +1 -33
  407. package/dist/es/components/slider/Slider.js +1 -596
  408. package/dist/es/components/slider/index.js +1 -2
  409. package/dist/es/components/slider/tokens.js +1 -31
  410. package/dist/es/components/space/Space.js +1 -115
  411. package/dist/es/components/space/index.js +1 -2
  412. package/dist/es/components/space/tokens.js +1 -32
  413. package/dist/es/components/stepper/Stepper.js +1 -465
  414. package/dist/es/components/stepper/index.js +1 -3
  415. package/dist/es/components/stepper/tokens.js +1 -54
  416. package/dist/es/components/swiper/Swiper.js +1 -344
  417. package/dist/es/components/swiper/SwiperItem.js +1 -1
  418. package/dist/es/components/swiper/SwiperPagIndicator.js +1 -87
  419. package/dist/es/components/swiper/index.js +1 -10
  420. package/dist/es/components/swiper/tokens.js +1 -12
  421. package/dist/es/components/switch/Switch.js +1 -83
  422. package/dist/es/components/switch/index.js +1 -3
  423. package/dist/es/components/switch/tokens.js +1 -25
  424. package/dist/es/components/tabbar/Tabbar.js +1 -130
  425. package/dist/es/components/tabbar/TabbarContext.js +1 -3
  426. package/dist/es/components/tabbar/TabbarItem.js +1 -139
  427. package/dist/es/components/tabbar/index.js +1 -7
  428. package/dist/es/components/tabbar/tokens.js +1 -35
  429. package/dist/es/components/tabs/Tabs.js +1 -841
  430. package/dist/es/components/tabs/index.js +1 -7
  431. package/dist/es/components/tabs/tokens.js +1 -105
  432. package/dist/es/components/tag/Tag.js +1 -105
  433. package/dist/es/components/tag/index.js +1 -2
  434. package/dist/es/components/tag/tokens.js +1 -97
  435. package/dist/es/components/toast/Toast.js +1 -280
  436. package/dist/es/components/toast/imperative.js +1 -130
  437. package/dist/es/components/toast/index.js +1 -5
  438. package/dist/es/components/toast/tokens.js +1 -36
  439. package/dist/es/components/typography/Typography.js +1 -162
  440. package/dist/es/components/typography/index.js +1 -2
  441. package/dist/es/components/typography/tokens.js +1 -82
  442. package/dist/es/components/water-mark/WaterMark.js +1 -153
  443. package/dist/es/components/water-mark/index.js +1 -4
  444. package/dist/es/components/water-mark/tokens.js +1 -42
  445. package/dist/es/design-system/Text.js +1 -19
  446. package/dist/es/design-system/ThemeContext.js +1 -6
  447. package/dist/es/design-system/ThemeProvider.js +1 -17
  448. package/dist/es/design-system/createComponentTokensHook.js +1 -15
  449. package/dist/es/design-system/index.js +1 -7
  450. package/dist/es/design-system/mergeTokensOverride.js +1 -2
  451. package/dist/es/design-system/presets.js +1 -139
  452. package/dist/es/design-system/tokens.js +1 -128
  453. package/dist/es/design-system/useTheme.js +1 -3
  454. package/dist/es/hooks/animation/index.js +1 -2
  455. package/dist/es/hooks/animation/useAnimatedTransition.js +1 -53
  456. package/dist/es/hooks/animation/useReducedMotion.js +1 -54
  457. package/dist/es/hooks/aria/index.js +1 -5
  458. package/dist/es/hooks/aria/useAriaListBox.js +1 -25
  459. package/dist/es/hooks/aria/useAriaOverlay.js +1 -25
  460. package/dist/es/hooks/aria/useAriaPress.js +1 -57
  461. package/dist/es/hooks/aria/useAriaToggle.js +1 -16
  462. package/dist/es/hooks/gesture/index.js +1 -2
  463. package/dist/es/hooks/gesture/useGestureScroll.js +1 -110
  464. package/dist/es/hooks/index.js +1 -8
  465. package/dist/es/hooks/overlay/OverlayStackStore.js +1 -93
  466. package/dist/es/hooks/overlay/index.js +1 -3
  467. package/dist/es/hooks/overlay/useOverlayStack.js +1 -40
  468. package/dist/es/hooks/useControllableValue.js +1 -29
  469. package/dist/es/hooks/useCountDown.js +1 -87
  470. package/dist/es/hooks/useHairline.js +1 -26
  471. package/dist/es/hooks/useSafeAreaPadding.js +1 -20
  472. package/dist/es/index.js +1 -11
  473. package/dist/es/nativewind.js +1 -0
  474. package/dist/es/platform/animation.js +1 -10
  475. package/dist/es/platform/history.js +1 -7
  476. package/dist/es/platform/index.js +1 -6
  477. package/dist/es/platform/measure.js +1 -32
  478. package/dist/es/platform/runtime.js +1 -4
  479. package/dist/es/platform/scrollLock.js +1 -16
  480. package/dist/es/types.js +1 -1
  481. package/dist/es/utils/array.js +1 -5
  482. package/dist/es/utils/color.js +1 -25
  483. package/dist/es/utils/compare.js +1 -13
  484. package/dist/es/utils/createPlatformShadow.js +1 -39
  485. package/dist/es/utils/date.js +1 -33
  486. package/dist/es/utils/deepMerge.js +1 -21
  487. package/dist/es/utils/hairline.js +1 -93
  488. package/dist/es/utils/index.js +1 -14
  489. package/dist/es/utils/number.js +1 -48
  490. package/dist/es/utils/promise.js +1 -2
  491. package/dist/es/utils/render.js +1 -7
  492. package/dist/es/utils/rtl.js +1 -17
  493. package/dist/es/utils/string.js +1 -13
  494. package/dist/es/utils/validate.js +1 -14
  495. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  496. package/dist/types/design-system/tokens.d.ts +1 -0
  497. package/dist/types/nativewind.d.ts +4 -0
  498. package/package.json +15 -3
@@ -1,170 +1 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- import { getHairlineWidth, hexToRgb } from '../../utils';
3
- const isDarkThemeBackground = color => {
4
- const rgb = hexToRgb(color);
5
- return !!rgb && (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000 < 140;
6
- };
7
- const createButtonTokens = foundations => {
8
- const {
9
- palette,
10
- spacing,
11
- radii,
12
- fontSize,
13
- typography,
14
- opacity
15
- } = foundations;
16
- const buildTone = (tone, text) => {
17
- const ramp = palette[tone];
18
- const baseBackground = ramp[500];
19
- return {
20
- background: baseBackground,
21
- border: baseBackground,
22
- text: text ?? ramp.foreground ?? '#ffffff',
23
- tonalBackground: ramp[100],
24
- tonalBorder: ramp[200],
25
- tonalText: ramp[700] ?? ramp[800] ?? '#111111'
26
- };
27
- };
28
- const darkTheme = isDarkThemeBackground(palette.default[50]);
29
- const baseRadius = Math.max(0, Math.round(radii.xs / 2));
30
- const defaultBackground = darkTheme ? palette.default[100] : '#ffffff';
31
- const defaultBorder = darkTheme ? palette.default[300] : '#ebedf0';
32
- const defaultText = darkTheme ? palette.default.foreground ?? '#f4f6fb' : '#323233';
33
- return {
34
- defaults: {
35
- type: 'default',
36
- size: 'normal',
37
- plain: false,
38
- block: false,
39
- round: false,
40
- square: false,
41
- hairline: false,
42
- iconPosition: 'left',
43
- loading: false,
44
- loadingSize: 'small',
45
- disabled: false,
46
- allowFontScaling: true
47
- },
48
- layout: {
49
- base: {
50
- borderStyle: 'solid',
51
- alignItems: 'center',
52
- justifyContent: 'center',
53
- flexDirection: 'row',
54
- alignSelf: 'flex-start'
55
- },
56
- block: {
57
- alignSelf: 'stretch',
58
- width: '100%'
59
- },
60
- content: {
61
- flexDirection: 'row',
62
- alignItems: 'center',
63
- justifyContent: 'center'
64
- },
65
- iconWrapper: {
66
- alignItems: 'center',
67
- justifyContent: 'center'
68
- },
69
- text: {
70
- fontWeight: '400'
71
- }
72
- },
73
- colors: {
74
- ripple: 'rgba(255,255,255,0.35)',
75
- backgroundTransparent: 'transparent',
76
- backgroundPlain: defaultBackground,
77
- textDark: '#ffffff',
78
- textLight: '#111111',
79
- tones: {
80
- default: {
81
- background: defaultBackground,
82
- border: defaultBorder,
83
- text: defaultText,
84
- tonalBackground: darkTheme ? palette.default[200] : palette.default[100],
85
- tonalBorder: defaultBorder,
86
- tonalText: defaultText
87
- },
88
- primary: buildTone('primary'),
89
- info: buildTone('info'),
90
- success: buildTone('success'),
91
- warning: buildTone('warning', palette.warning.foreground ?? '#ffffff'),
92
- danger: buildTone('danger')
93
- }
94
- },
95
- typography: {
96
- fontFamily: typography.fontFamily,
97
- lineHeightMultiplier: typography.lineHeightMultiplier,
98
- fontWeight: typography.weight.medium
99
- },
100
- sizing: {
101
- sizes: {
102
- large: {
103
- height: 50,
104
- fontSize: fontSize.lg,
105
- paddingHorizontal: fontSize.lg,
106
- iconSize: fontSize.lg,
107
- radius: baseRadius
108
- },
109
- normal: {
110
- height: 44,
111
- fontSize: fontSize.sm,
112
- paddingHorizontal: fontSize.md,
113
- iconSize: fontSize.sm,
114
- radius: baseRadius
115
- },
116
- small: {
117
- height: 32,
118
- fontSize: fontSize.xs,
119
- paddingHorizontal: fontSize.xs,
120
- iconSize: fontSize.xs,
121
- radius: baseRadius
122
- },
123
- mini: {
124
- height: 24,
125
- fontSize: fontSize.xxs,
126
- paddingHorizontal: fontSize.xxs,
127
- iconSize: fontSize.xxs,
128
- radius: baseRadius
129
- }
130
- }
131
- },
132
- borders: {
133
- width: 1,
134
- hairlineWidth: getHairlineWidth()
135
- },
136
- spacing: {
137
- iconGap: spacing.sm,
138
- groupGap: spacing.xs
139
- },
140
- states: {
141
- disabledOpacity: opacity.disabled,
142
- loadingOpacity: opacity.loading,
143
- pressedOpacity: 0.7
144
- },
145
- shadows: {
146
- 1: {
147
- color: '#0f1a38',
148
- opacity: 0.12,
149
- radius: 2,
150
- offsetY: 2,
151
- elevation: 2
152
- },
153
- 2: {
154
- color: '#0f1a38',
155
- opacity: 0.15,
156
- radius: 4,
157
- offsetY: 3,
158
- elevation: 3
159
- },
160
- 3: {
161
- color: '#0f1a38',
162
- opacity: 0.2,
163
- radius: 6,
164
- offsetY: 4,
165
- elevation: 5
166
- }
167
- }
168
- };
169
- };
170
- export const useButtonTokens = createComponentTokensHook('button', createButtonTokens);
1
+ import{createComponentTokensHook}from"../../design-system";import{getHairlineWidth,hexToRgb}from"../../utils";const isDarkThemeBackground=e=>{const t=hexToRgb(e);return!!t&&(299*t[0]+587*t[1]+114*t[2])/1e3<140},createButtonTokens=e=>{const{palette:t,spacing:o,radii:n,fontSize:i,typography:a,opacity:r}=e,l=(e,o)=>{const n=t[e],i=n[500];return{background:i,border:i,text:o??n.foreground??"#ffffff",tonalBackground:n[100],tonalBorder:n[200],tonalText:n[700]??n[800]??"#111111"}},s=isDarkThemeBackground(t.default[50]),f=Math.max(0,Math.round(n.xs/2)),d=s?t.default[100]:"#ffffff",g=s?t.default[300]:"#ebedf0",c=s?t.default.foreground??"#f4f6fb":"#323233";return{defaults:{type:"default",size:"normal",plain:!1,block:!1,round:!1,square:!1,hairline:!1,iconPosition:"left",loading:!1,loadingSize:"small",disabled:!1,allowFontScaling:!0},layout:{base:{borderStyle:"solid",alignItems:"center",justifyContent:"center",flexDirection:"row",alignSelf:"flex-start"},block:{alignSelf:"stretch",width:"100%"},content:{flexDirection:"row",alignItems:"center",justifyContent:"center"},iconWrapper:{alignItems:"center",justifyContent:"center"},text:{fontWeight:"400"}},colors:{ripple:"rgba(255,255,255,0.35)",backgroundTransparent:"transparent",backgroundPlain:d,textDark:"#ffffff",textLight:"#111111",tones:{default:{background:d,border:g,text:c,tonalBackground:s?t.default[200]:t.default[100],tonalBorder:g,tonalText:c},primary:l("primary"),info:l("info"),success:l("success"),warning:l("warning",t.warning.foreground??"#ffffff"),danger:l("danger")}},typography:{fontFamily:a.fontFamily,lineHeightMultiplier:a.lineHeightMultiplier,fontWeight:a.weight.medium},sizing:{sizes:{large:{height:50,fontSize:i.lg,paddingHorizontal:i.lg,iconSize:i.lg,radius:f},normal:{height:44,fontSize:i.sm,paddingHorizontal:i.md,iconSize:i.sm,radius:f},small:{height:32,fontSize:i.xs,paddingHorizontal:i.xs,iconSize:i.xs,radius:f},mini:{height:24,fontSize:i.xxs,paddingHorizontal:i.xxs,iconSize:i.xxs,radius:f}}},borders:{width:1,hairlineWidth:getHairlineWidth()},spacing:{iconGap:o.sm,groupGap:o.xs},states:{disabledOpacity:r.disabled,loadingOpacity:r.loading,pressedOpacity:.7},shadows:{1:{color:"#0f1a38",opacity:.12,radius:2,offsetY:2,elevation:2},2:{color:"#0f1a38",opacity:.15,radius:4,offsetY:3,elevation:3},3:{color:"#0f1a38",opacity:.2,radius:6,offsetY:4,elevation:5}}}};export const useButtonTokens=createComponentTokensHook("button",createButtonTokens);
@@ -1,432 +1 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { Pressable, Text, View } from 'react-native';
4
- import { useControllableValue } from '../../hooks';
5
- import { renderTextOrNode } from '../../utils';
6
- import { isRenderable } from '../../utils/validate';
7
- import Popup from '../popup';
8
- import { useLocale } from '../config-provider/useLocale';
9
- import { useCalendarTokens } from './tokens';
10
- const DAY_MS = 24 * 60 * 60 * 1000;
11
- const isSameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
12
- const startOfDay = date => {
13
- const newDate = new Date(date);
14
- newDate.setHours(0, 0, 0, 0);
15
- return newDate;
16
- };
17
- const daysBetween = (a, b) => Math.round(Math.abs(startOfDay(a).getTime() - startOfDay(b).getTime()) / DAY_MS);
18
- const toArrayValue = value => !value ? [] : Array.isArray(value) ? value.filter(Boolean).map(d => new Date(d)) : [new Date(value)];
19
- const DEFAULT_MIN = new Date(new Date().getFullYear() - 10, 0, 1);
20
- const DEFAULT_MAX = new Date(new Date().getFullYear() + 10, 11, 31);
21
- const CalendarImpl = props => {
22
- const {
23
- tokensOverride,
24
- value: _value,
25
- defaultValue: _defaultValue,
26
- minDate = DEFAULT_MIN,
27
- maxDate = DEFAULT_MAX,
28
- type,
29
- title,
30
- showSubtitle,
31
- showHeader,
32
- showConfirm,
33
- confirmText,
34
- weekStartsOn,
35
- weekdays,
36
- formatMonthTitle,
37
- allowSameDay,
38
- maxRange,
39
- onOverRange,
40
- poppable,
41
- visible: _visible,
42
- defaultVisible: _defaultVisible,
43
- onVisibleChange: _onVisibleChange,
44
- closeOnClickOverlay,
45
- closeOnConfirm,
46
- popupPlacement,
47
- popupRound,
48
- popupProps,
49
- onOpen,
50
- onOpened,
51
- onClose,
52
- onClosed,
53
- color,
54
- onConfirm,
55
- onSelect: _onSelect,
56
- style,
57
- ...rest
58
- } = props;
59
- const locale = useLocale();
60
- const calLoc = locale?.vanCalendar;
61
- const tokens = useCalendarTokens(tokensOverride);
62
- const resolvedTitle = title ?? calLoc?.title ?? tokens.defaults.title;
63
- const resolvedShowSubtitle = showSubtitle ?? tokens.defaults.showSubtitle;
64
- const resolvedShowHeader = showHeader ?? tokens.defaults.showHeader;
65
- const resolvedConfirmText = confirmText ?? calLoc?.confirm ?? tokens.defaults.confirmText;
66
- const resolvedWeekStartsOn = weekStartsOn ?? tokens.defaults.weekStartsOn;
67
- const resolvedAllowSameDay = allowSameDay ?? tokens.defaults.allowSameDay;
68
- const resolvedPoppable = poppable ?? tokens.defaults.poppable;
69
- const resolvedCloseOnClickOverlay = closeOnClickOverlay ?? tokens.defaults.closeOnClickOverlay;
70
- const resolvedCloseOnConfirm = closeOnConfirm ?? tokens.defaults.closeOnConfirm;
71
- const resolvedPopupPlacement = popupPlacement ?? tokens.defaults.popupPlacement;
72
- const resolvedPopupRound = popupRound ?? tokens.defaults.popupRound;
73
- const resolvedType = type ?? tokens.defaults.type;
74
- const resolvedShowConfirm = showConfirm ?? tokens.defaults.showConfirm[resolvedType];
75
- const [popupVisible, setPopupVisible] = useControllableValue(props, {
76
- defaultValue: false,
77
- valuePropName: 'visible',
78
- defaultValuePropName: 'defaultVisible',
79
- trigger: 'onVisibleChange'
80
- });
81
- const {
82
- onClose: popupOnClose,
83
- onClosed: popupOnClosed,
84
- onOpen: popupOnOpen,
85
- onOpened: popupOnOpened,
86
- closeOnOverlayPress: overlayCloseOnPress,
87
- overlay: popupOverlay,
88
- ...popupRestProps
89
- } = popupProps ?? {};
90
- const cbRef = useRef({
91
- onConfirm,
92
- onOverRange,
93
- popupOnOpen,
94
- onOpen,
95
- popupOnOpened,
96
- onOpened,
97
- popupOnClose,
98
- onClose,
99
- popupOnClosed,
100
- onClosed
101
- });
102
- cbRef.current.onConfirm = onConfirm;
103
- cbRef.current.onOverRange = onOverRange;
104
- cbRef.current.popupOnOpen = popupOnOpen;
105
- cbRef.current.onOpen = onOpen;
106
- cbRef.current.popupOnOpened = popupOnOpened;
107
- cbRef.current.onOpened = onOpened;
108
- cbRef.current.popupOnClose = popupOnClose;
109
- cbRef.current.onClose = onClose;
110
- cbRef.current.popupOnClosed = popupOnClosed;
111
- cbRef.current.onClosed = onClosed;
112
- const closePopup = useCallback(() => {
113
- if (!resolvedPoppable) return;
114
- setPopupVisible(false);
115
- }, [resolvedPoppable, setPopupVisible]);
116
- const handlePopupOpen = useCallback(() => {
117
- cbRef.current.popupOnOpen?.();
118
- cbRef.current.onOpen?.();
119
- }, []);
120
- const handlePopupOpened = useCallback(() => {
121
- cbRef.current.popupOnOpened?.();
122
- cbRef.current.onOpened?.();
123
- }, []);
124
- const handlePopupClose = useCallback(() => {
125
- closePopup();
126
- cbRef.current.popupOnClose?.();
127
- cbRef.current.onClose?.();
128
- }, [closePopup]);
129
- const handlePopupClosed = useCallback(() => {
130
- cbRef.current.popupOnClosed?.();
131
- cbRef.current.onClosed?.();
132
- }, []);
133
- const overlayCloseOnPressResolved = overlayCloseOnPress ?? resolvedCloseOnClickOverlay;
134
- const overlayResolved = popupOverlay ?? true;
135
- const [selectedValue, setSelectedValue] = useControllableValue(props, {
136
- defaultValue: null,
137
- valuePropName: 'value',
138
- defaultValuePropName: 'defaultValue',
139
- trigger: 'onSelect'
140
- });
141
- const value = normalizeValue(toArrayValue(selectedValue), resolvedType);
142
- const [currentMonth, setCurrentMonth] = useState(() => clampMonth(value.length ? value[0] : new Date(), minDate, maxDate));
143
- const firstValueTime = value.length ? value[0].getTime() : null;
144
- const minDateTime = minDate.getTime();
145
- const maxDateTime = maxDate.getTime();
146
- useEffect(() => {
147
- if (!value.length) return;
148
- const first = clampMonth(value[0], minDate, maxDate);
149
- setCurrentMonth(prev => isSameMonth(first, prev) ? prev : first);
150
- }, [firstValueTime, minDateTime, maxDateTime]);
151
- const monthDays = useMemo(() => buildMonth(currentMonth, resolvedWeekStartsOn), [currentMonth, resolvedWeekStartsOn]);
152
- const monthDaysMapped = useMemo(() => monthDays.map(day => day ? {
153
- day,
154
- key: day.toISOString(),
155
- timeValue: startOfDay(day).getTime(),
156
- dateValue: day.getDate()
157
- } : null), [monthDays]);
158
- const minDayTime = startOfDay(minDate).getTime();
159
- const maxDayTime = startOfDay(maxDate).getTime();
160
- const resolvedWeekdays = weekdays ?? calLoc?.weekdays ?? tokens.defaults.weekdays;
161
- const weekLabels = useMemo(() => reorderWeekdays(resolvedWeekdays, resolvedWeekStartsOn, tokens.defaults.weekdays), [resolvedWeekdays, tokens.defaults.weekdays, resolvedWeekStartsOn]);
162
- const monthLabel = useMemo(() => formatMonthTitle ? formatMonthTitle(currentMonth) : calLoc?.monthTitle ? calLoc.monthTitle(currentMonth.getFullYear(), currentMonth.getMonth() + 1) : formatMonth(currentMonth), [currentMonth, formatMonthTitle, calLoc]);
163
- const minMonthStart = startOfMonth(minDate);
164
- const maxMonthStart = startOfMonth(maxDate);
165
- const canGoPrev = currentMonth.getTime() > minMonthStart.getTime();
166
- const canGoNext = currentMonth.getTime() < maxMonthStart.getTime();
167
- const goToMonth = useCallback(delta => setCurrentMonth(prev => clampMonth(new Date(prev.getFullYear(), prev.getMonth() + delta, 1), minDate, maxDate)), [minDate, maxDate]);
168
- const goPrev = useCallback(() => goToMonth(-1), [goToMonth]);
169
- const goNext = useCallback(() => goToMonth(1), [goToMonth]);
170
- const confirmDisabled = resolvedType === 'range' ? value.length < 2 : value.length === 0;
171
- const columnPadding = tokens.spacing.column / 2;
172
- const maybeAutoConfirm = useCallback(next => {
173
- if (resolvedShowConfirm) return;
174
- if (resolvedType === 'range' && next.length < 2) return;
175
- if (resolvedType === 'multiple' && next.length === 0) return;
176
- if (!next.length) return;
177
- cbRef.current.onConfirm?.(mapValue(next, resolvedType));
178
- if (resolvedPoppable && resolvedCloseOnConfirm) closePopup();
179
- }, [resolvedShowConfirm, resolvedType, resolvedPoppable, resolvedCloseOnConfirm, closePopup]);
180
- const handleConfirm = useCallback(() => {
181
- if (resolvedShowConfirm && confirmDisabled) return;
182
- cbRef.current.onConfirm?.(mapValue(value, resolvedType));
183
- if (resolvedPoppable && resolvedCloseOnConfirm) closePopup();
184
- }, [resolvedShowConfirm, confirmDisabled, value, resolvedType, resolvedPoppable, resolvedCloseOnConfirm, closePopup]);
185
- const isSelectionAllowed = useCallback(next => {
186
- if (resolvedType === 'range' && next.length === 2) {
187
- const [start, end] = next;
188
- if (!resolvedAllowSameDay && isSameDay(start, end)) return false;
189
- if (maxRange && daysBetween(start, end) + 1 > maxRange) {
190
- cbRef.current.onOverRange?.(maxRange);
191
- return false;
192
- }
193
- }
194
- if (resolvedType === 'multiple' && maxRange && next.length > maxRange) {
195
- cbRef.current.onOverRange?.(maxRange);
196
- return false;
197
- }
198
- ;
199
- return true;
200
- }, [resolvedType, resolvedAllowSameDay, maxRange]);
201
- const handleSelectDayRef = useRef(undefined);
202
- const handleSelectDay = useCallback(date => {
203
- const dateTime = startOfDay(date).getTime();
204
- if (dateTime < minDayTime || dateTime > maxDayTime) return;
205
- let next = [];
206
- const nextValue = value;
207
- switch (resolvedType) {
208
- case 'single':
209
- next = [date];
210
- break;
211
- case 'multiple':
212
- {
213
- const existing = nextValue.find(item => isSameDay(item, date));
214
- next = existing ? nextValue.filter(item => !isSameDay(item, date)) : [...nextValue, date];
215
- break;
216
- }
217
- case 'range':
218
- {
219
- if (nextValue.length < 1 || nextValue.length > 1) {
220
- next = [date];
221
- } else {
222
- const first = nextValue[0];
223
- if (isSameDay(first, date)) {
224
- next = resolvedAllowSameDay ? [first, date] : [date];
225
- } else {
226
- next = [first, date].sort((a, b) => a.getTime() - b.getTime());
227
- }
228
- }
229
- break;
230
- }
231
- default:
232
- next = [date];
233
- }
234
- ;
235
- const normalizedNextValue = normalizeValue(next, resolvedType);
236
- if (!isSelectionAllowed(normalizedNextValue)) return;
237
- setSelectedValue(mapValue(normalizedNextValue, resolvedType));
238
- if (!resolvedShowConfirm) maybeAutoConfirm(normalizedNextValue);
239
- }, [value, resolvedType, minDayTime, maxDayTime, resolvedAllowSameDay, isSelectionAllowed, setSelectedValue, resolvedShowConfirm, maybeAutoConfirm]);
240
- handleSelectDayRef.current = handleSelectDay;
241
- const selectDayPress = useCallback(date => handleSelectDayRef.current?.(date), []);
242
- const valueTimes = useMemo(() => value.map(item => startOfDay(item).getTime()), [value]);
243
- const selected = useMemo(() => new Set(valueTimes), [valueTimes]);
244
- const rangeBounds = resolvedType === 'range' && valueTimes.length === 2 ? [valueTimes[0], valueTimes[1]] : null;
245
- const renderDay = useCallback((mapped, index) => {
246
- if (!mapped) return /*#__PURE__*/React.createElement(View, {
247
- key: `p-${index}`,
248
- style: [tokens.layout.dayPlaceholder, {
249
- paddingVertical: tokens.spacing.dayPaddingVertical,
250
- paddingHorizontal: columnPadding
251
- }]
252
- });
253
- const {
254
- day,
255
- key,
256
- timeValue,
257
- dateValue
258
- } = mapped;
259
- const isDisabled = timeValue < minDayTime || timeValue > maxDayTime;
260
- const isSelected = selected.has(timeValue);
261
- const inRange = resolvedType === 'range' && rangeBounds && timeValue > rangeBounds[0] && timeValue < rangeBounds[1];
262
- const dayStyles = [tokens.layout.dayText, {
263
- borderRadius: tokens.radii.day,
264
- color: tokens.colors.text,
265
- minWidth: tokens.sizing.dayMinWidth
266
- }];
267
- if (isDisabled) dayStyles.push({
268
- color: tokens.colors.disabled
269
- });else if (inRange) dayStyles.push({
270
- backgroundColor: tokens.colors.rangeBackground
271
- });else if (isSelected) dayStyles.push({
272
- backgroundColor: color ?? tokens.colors.selectedBackground,
273
- color: tokens.colors.selectedText
274
- });
275
- const accessibility = `${day.getFullYear()}-${String(day.getMonth() + 1).padStart(2, '0')}-${String(day.getDate()).padStart(2, '0')}${isSelected ? ', selected' : ''}${isDisabled ? ', disabled' : ''}`;
276
- return /*#__PURE__*/React.createElement(Pressable, {
277
- key: key,
278
- accessibilityRole: "button",
279
- accessibilityLabel: accessibility,
280
- accessibilityState: {
281
- selected: isSelected,
282
- disabled: isDisabled
283
- },
284
- style: [tokens.layout.dayButton, {
285
- paddingVertical: tokens.spacing.dayPaddingVertical,
286
- paddingHorizontal: columnPadding
287
- }],
288
- disabled: isDisabled,
289
- onPress: () => selectDayPress(day),
290
- testID: getCalendarDayTestId(day)
291
- }, /*#__PURE__*/React.createElement(Text, {
292
- style: dayStyles
293
- }, dateValue));
294
- }, [selected, resolvedType, rangeBounds, minDayTime, maxDayTime, tokens, color, selectDayPress, columnPadding]);
295
- const content = /*#__PURE__*/React.createElement(View, _extends({
296
- style: [{
297
- backgroundColor: tokens.colors.background,
298
- padding: tokens.spacing.containerPadding,
299
- borderRadius: tokens.radii.container
300
- }, style]
301
- }, rest), resolvedShowHeader ? /*#__PURE__*/React.createElement(View, {
302
- style: [tokens.layout.header, {
303
- marginBottom: tokens.spacing.headerMarginBottom
304
- }]
305
- }, /*#__PURE__*/React.createElement(Pressable, {
306
- testID: "calendar-nav-prev",
307
- accessibilityRole: "button",
308
- accessibilityLabel: "previous month",
309
- onPress: goPrev,
310
- disabled: !canGoPrev
311
- }, /*#__PURE__*/React.createElement(Text, {
312
- style: [tokens.layout.navText, {
313
- fontSize: tokens.sizing.navButtonSize,
314
- paddingHorizontal: tokens.spacing.navPaddingHorizontal
315
- }, !canGoPrev && {
316
- opacity: 0.3
317
- }]
318
- }, '<')), /*#__PURE__*/React.createElement(View, {
319
- style: tokens.layout.headerCenter
320
- }, isRenderable(resolvedTitle) ? renderTextOrNode(resolvedTitle, [tokens.layout.headerTitle, {
321
- color: tokens.colors.text,
322
- fontSize: tokens.typography.headerTitleSize,
323
- fontWeight: tokens.typography.headerTitleWeight
324
- }]) : null, resolvedShowSubtitle ? renderTextOrNode(monthLabel, [tokens.layout.headerSubtitle, {
325
- color: tokens.colors.headerSubtitle,
326
- fontSize: tokens.typography.headerSubtitleSize
327
- }]) : null), /*#__PURE__*/React.createElement(Pressable, {
328
- testID: "calendar-nav-next",
329
- accessibilityRole: "button",
330
- accessibilityLabel: "next month",
331
- onPress: goNext,
332
- disabled: !canGoNext
333
- }, /*#__PURE__*/React.createElement(Text, {
334
- style: [tokens.layout.navText, {
335
- fontSize: tokens.sizing.navButtonSize,
336
- paddingHorizontal: tokens.spacing.navPaddingHorizontal
337
- }, !canGoNext && {
338
- opacity: 0.3
339
- }]
340
- }, '>'))) : null, /*#__PURE__*/React.createElement(View, {
341
- style: [tokens.layout.weekRow, {
342
- marginBottom: tokens.spacing.weekRowMarginBottom
343
- }]
344
- }, weekLabels.map((label, i) => /*#__PURE__*/React.createElement(View, {
345
- key: `w-${i}`,
346
- style: [tokens.layout.weekLabelItem, {
347
- paddingHorizontal: columnPadding
348
- }]
349
- }, renderTextOrNode(label, [tokens.layout.weekLabel, {
350
- color: tokens.colors.text
351
- }])))), /*#__PURE__*/React.createElement(View, {
352
- style: [tokens.layout.days, {
353
- rowGap: tokens.spacing.row
354
- }]
355
- }, monthDaysMapped.map((mapped, i) => renderDay(mapped, i))), resolvedShowConfirm ? /*#__PURE__*/React.createElement(Pressable, {
356
- style: [tokens.layout.confirmButton, {
357
- backgroundColor: color ?? tokens.colors.selectedBackground,
358
- opacity: confirmDisabled ? 0.5 : 1,
359
- marginTop: tokens.spacing.confirmMarginTop,
360
- paddingVertical: tokens.spacing.confirmPaddingVertical,
361
- borderRadius: tokens.radii.confirmButton
362
- }],
363
- onPress: handleConfirm,
364
- disabled: confirmDisabled
365
- }, renderTextOrNode(resolvedConfirmText, [tokens.layout.confirmText, {
366
- color: tokens.colors.confirmText,
367
- fontWeight: tokens.typography.confirmTextWeight
368
- }])) : null);
369
- if (!resolvedPoppable) return content;
370
- return /*#__PURE__*/React.createElement(Popup, _extends({
371
- visible: popupVisible,
372
- placement: resolvedPopupPlacement,
373
- round: resolvedPopupRound,
374
- closeOnOverlayPress: overlayCloseOnPressResolved,
375
- overlay: overlayResolved,
376
- safeAreaInsetTop: popupRestProps?.safeAreaInsetTop != null ? popupRestProps.safeAreaInsetTop : resolvedShowHeader,
377
- safeAreaInsetBottom: popupRestProps?.safeAreaInsetBottom != null ? popupRestProps.safeAreaInsetBottom : resolvedPopupPlacement === 'bottom',
378
- onOpen: handlePopupOpen,
379
- onOpened: handlePopupOpened,
380
- onClose: handlePopupClose,
381
- onClosed: handlePopupClosed
382
- }, popupRestProps), content);
383
- };
384
- function mapValue(value, type) {
385
- if (type === 'single') return value[0] ?? new Date();
386
- if (type === 'range' && value.length === 2) return value;
387
- return value;
388
- }
389
- function normalizeValue(value, type) {
390
- if (type === 'single') return value.slice(0, 1);
391
- if (type === 'range') return value.slice(0, 2).sort((a, b) => a.getTime() - b.getTime());
392
- return value;
393
- }
394
- function formatMonth(date) {
395
- return `${date.getFullYear()}/${date.getMonth() + 1}`;
396
- }
397
- function reorderWeekdays(labels, start, fallback) {
398
- const normalizedStart = (start % 7 + 7) % 7;
399
- const source = labels.length === 7 ? [...labels] : fallback;
400
- return [...source.slice(normalizedStart), ...source.slice(0, normalizedStart)];
401
- }
402
- function buildMonth(month, weekStartsOn) {
403
- const normalizedStart = (weekStartsOn % 7 + 7) % 7;
404
- const firstDay = startOfMonth(month);
405
- const startOffset = (firstDay.getDay() - normalizedStart + 7) % 7;
406
- const daysInMonth = new Date(month.getFullYear(), month.getMonth() + 1, 0).getDate();
407
- const calendar = [];
408
- for (let i = 0; i < startOffset; i += 1) calendar.push(null);
409
- for (let day = 1; day <= daysInMonth; day += 1) calendar.push(new Date(month.getFullYear(), month.getMonth(), day));
410
- while (calendar.length < 42) calendar.push(null);
411
- return calendar;
412
- }
413
- function getCalendarDayTestId(date) {
414
- return `calendar-day-${date.getFullYear()}-${`${date.getMonth() + 1}`.padStart(2, '0')}-${`${date.getDate()}`.padStart(2, '0')}`;
415
- }
416
- function startOfMonth(date) {
417
- return new Date(date.getFullYear(), date.getMonth(), 1);
418
- }
419
- function clampMonth(date, min, max) {
420
- const month = startOfMonth(date);
421
- const minMonth = startOfMonth(min);
422
- const maxMonth = startOfMonth(max);
423
- if (month.getTime() < minMonth.getTime()) return minMonth;
424
- if (month.getTime() > maxMonth.getTime()) return max;
425
- return month;
426
- }
427
- function isSameMonth(a, b) {
428
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
429
- }
430
- const Calendar = /*#__PURE__*/React.memo(CalendarImpl);
431
- Calendar.displayName = 'Calendar';
432
- export default Calendar;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Pressable,Text,View}from"react-native";import{useControllableValue}from"../../hooks";import{renderTextOrNode}from"../../utils";import{isRenderable}from"../../utils/validate";import Popup from"../popup";import{useLocale}from"../config-provider/useLocale";import{useCalendarTokens}from"./tokens";const DAY_MS=864e5,isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),startOfDay=e=>{const t=new Date(e);return t.setHours(0,0,0,0),t},daysBetween=(e,t)=>Math.round(Math.abs(startOfDay(e).getTime()-startOfDay(t).getTime())/DAY_MS),toArrayValue=e=>e?Array.isArray(e)?e.filter(Boolean).map(e=>new Date(e)):[new Date(e)]:[],DEFAULT_MIN=new Date((new Date).getFullYear()-10,0,1),DEFAULT_MAX=new Date((new Date).getFullYear()+10,11,31),CalendarImpl=e=>{const{tokensOverride:t,value:a,defaultValue:n,minDate:o=DEFAULT_MIN,maxDate:l=DEFAULT_MAX,type:r,title:s,showSubtitle:i,showHeader:u,showConfirm:c,confirmText:d,weekStartsOn:p,weekdays:g,formatMonthTitle:m,allowSameDay:f,maxRange:y,onOverRange:h,poppable:b,visible:O,defaultVisible:C,onVisibleChange:T,closeOnClickOverlay:k,closeOnConfirm:w,popupPlacement:M,popupRound:D,popupProps:S,onOpen:V,onOpened:R,onClose:v,onClosed:x,color:P,onConfirm:z,onSelect:E,style:A,...B}=e,F=useLocale(),I=F?.vanCalendar,Y=useCalendarTokens(t),$=s??I?.title??Y.defaults.title,L=i??Y.defaults.showSubtitle,N=u??Y.defaults.showHeader,_=d??I?.confirm??Y.defaults.confirmText,H=p??Y.defaults.weekStartsOn,W=f??Y.defaults.allowSameDay,U=b??Y.defaults.poppable,j=k??Y.defaults.closeOnClickOverlay,X=w??Y.defaults.closeOnConfirm,G=M??Y.defaults.popupPlacement,q=D??Y.defaults.popupRound,J=r??Y.defaults.type,K=c??Y.defaults.showConfirm[J],[Q,Z]=useControllableValue(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),{onClose:ee,onClosed:te,onOpen:ae,onOpened:ne,closeOnOverlayPress:oe,overlay:le,...re}=S??{},se=useRef({onConfirm:z,onOverRange:h,popupOnOpen:ae,onOpen:V,popupOnOpened:ne,onOpened:R,popupOnClose:ee,onClose:v,popupOnClosed:te,onClosed:x});se.current.onConfirm=z,se.current.onOverRange=h,se.current.popupOnOpen=ae,se.current.onOpen=V,se.current.popupOnOpened=ne,se.current.onOpened=R,se.current.popupOnClose=ee,se.current.onClose=v,se.current.popupOnClosed=te,se.current.onClosed=x;const ie=useCallback(()=>{U&&Z(!1)},[U,Z]),ue=useCallback(()=>{se.current.popupOnOpen?.(),se.current.onOpen?.()},[]),ce=useCallback(()=>{se.current.popupOnOpened?.(),se.current.onOpened?.()},[]),de=useCallback(()=>{ie(),se.current.popupOnClose?.(),se.current.onClose?.()},[ie]),pe=useCallback(()=>{se.current.popupOnClosed?.(),se.current.onClosed?.()},[]),ge=oe??j,me=le??!0,[fe,ye]=useControllableValue(e,{defaultValue:null,valuePropName:"value",defaultValuePropName:"defaultValue",trigger:"onSelect"}),he=normalizeValue(toArrayValue(fe),J),[be,Oe]=useState(()=>clampMonth(he.length?he[0]:new Date,o,l)),Ce=he.length?he[0].getTime():null,Te=o.getTime(),ke=l.getTime();useEffect(()=>{if(!he.length)return;const e=clampMonth(he[0],o,l);Oe(t=>isSameMonth(e,t)?t:e)},[Ce,Te,ke]);const we=useMemo(()=>buildMonth(be,H),[be,H]),Me=useMemo(()=>we.map(e=>e?{day:e,key:e.toISOString(),timeValue:startOfDay(e).getTime(),dateValue:e.getDate()}:null),[we]),De=startOfDay(o).getTime(),Se=startOfDay(l).getTime(),Ve=g??I?.weekdays??Y.defaults.weekdays,Re=useMemo(()=>reorderWeekdays(Ve,H,Y.defaults.weekdays),[Ve,Y.defaults.weekdays,H]),ve=useMemo(()=>m?m(be):I?.monthTitle?I.monthTitle(be.getFullYear(),be.getMonth()+1):formatMonth(be),[be,m,I]),xe=startOfMonth(o),Pe=startOfMonth(l),ze=be.getTime()>xe.getTime(),Ee=be.getTime()<Pe.getTime(),Ae=useCallback(e=>Oe(t=>clampMonth(new Date(t.getFullYear(),t.getMonth()+e,1),o,l)),[o,l]),Be=useCallback(()=>Ae(-1),[Ae]),Fe=useCallback(()=>Ae(1),[Ae]),Ie="range"===J?he.length<2:0===he.length,Ye=Y.spacing.column/2,$e=useCallback(e=>{K||"range"===J&&e.length<2||"multiple"===J&&0===e.length||e.length&&(se.current.onConfirm?.(mapValue(e,J)),U&&X&&ie())},[K,J,U,X,ie]),Le=useCallback(()=>{K&&Ie||(se.current.onConfirm?.(mapValue(he,J)),U&&X&&ie())},[K,Ie,he,J,U,X,ie]),Ne=useCallback(e=>{if("range"===J&&2===e.length){const[t,a]=e;if(!W&&isSameDay(t,a))return!1;if(y&&daysBetween(t,a)+1>y)return se.current.onOverRange?.(y),!1}return!("multiple"===J&&y&&e.length>y)||(se.current.onOverRange?.(y),!1)},[J,W,y]),_e=useRef(void 0),He=useCallback(e=>{const t=startOfDay(e).getTime();if(t<De||t>Se)return;let a=[];const n=he;switch(J){case"single":default:a=[e];break;case"multiple":a=n.find(t=>isSameDay(t,e))?n.filter(t=>!isSameDay(t,e)):[...n,e];break;case"range":if(n.length<1||n.length>1)a=[e];else{const t=n[0];a=isSameDay(t,e)?W?[t,e]:[e]:[t,e].sort((e,t)=>e.getTime()-t.getTime())}}const o=normalizeValue(a,J);Ne(o)&&(ye(mapValue(o,J)),K||$e(o))},[he,J,De,Se,W,Ne,ye,K,$e]);_e.current=He;const We=useCallback(e=>_e.current?.(e),[]),Ue=useMemo(()=>he.map(e=>startOfDay(e).getTime()),[he]),je=useMemo(()=>new Set(Ue),[Ue]),Xe="range"===J&&2===Ue.length?[Ue[0],Ue[1]]:null,Ge=useCallback((e,t)=>{if(!e)return React.createElement(View,{key:`p-${t}`,style:[Y.layout.dayPlaceholder,{paddingVertical:Y.spacing.dayPaddingVertical,paddingHorizontal:Ye}]});const{day:a,key:n,timeValue:o,dateValue:l}=e,r=o<De||o>Se,s=je.has(o),i="range"===J&&Xe&&o>Xe[0]&&o<Xe[1],u=[Y.layout.dayText,{borderRadius:Y.radii.day,color:Y.colors.text,minWidth:Y.sizing.dayMinWidth}];r?u.push({color:Y.colors.disabled}):i?u.push({backgroundColor:Y.colors.rangeBackground}):s&&u.push({backgroundColor:P??Y.colors.selectedBackground,color:Y.colors.selectedText});const c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}${s?", selected":""}${r?", disabled":""}`;return React.createElement(Pressable,{key:n,accessibilityRole:"button",accessibilityLabel:c,accessibilityState:{selected:s,disabled:r},style:[Y.layout.dayButton,{paddingVertical:Y.spacing.dayPaddingVertical,paddingHorizontal:Ye}],disabled:r,onPress:()=>We(a),testID:getCalendarDayTestId(a)},React.createElement(Text,{style:u},l))},[je,J,Xe,De,Se,Y,P,We,Ye]),qe=React.createElement(View,_extends({style:[{backgroundColor:Y.colors.background,padding:Y.spacing.containerPadding,borderRadius:Y.radii.container},A]},B),N?React.createElement(View,{style:[Y.layout.header,{marginBottom:Y.spacing.headerMarginBottom}]},React.createElement(Pressable,{testID:"calendar-nav-prev",accessibilityRole:"button",accessibilityLabel:"previous month",onPress:Be,disabled:!ze},React.createElement(Text,{style:[Y.layout.navText,{fontSize:Y.sizing.navButtonSize,paddingHorizontal:Y.spacing.navPaddingHorizontal},!ze&&{opacity:.3}]},"<")),React.createElement(View,{style:Y.layout.headerCenter},isRenderable($)?renderTextOrNode($,[Y.layout.headerTitle,{color:Y.colors.text,fontSize:Y.typography.headerTitleSize,fontWeight:Y.typography.headerTitleWeight}]):null,L?renderTextOrNode(ve,[Y.layout.headerSubtitle,{color:Y.colors.headerSubtitle,fontSize:Y.typography.headerSubtitleSize}]):null),React.createElement(Pressable,{testID:"calendar-nav-next",accessibilityRole:"button",accessibilityLabel:"next month",onPress:Fe,disabled:!Ee},React.createElement(Text,{style:[Y.layout.navText,{fontSize:Y.sizing.navButtonSize,paddingHorizontal:Y.spacing.navPaddingHorizontal},!Ee&&{opacity:.3}]},">"))):null,React.createElement(View,{style:[Y.layout.weekRow,{marginBottom:Y.spacing.weekRowMarginBottom}]},Re.map((e,t)=>React.createElement(View,{key:`w-${t}`,style:[Y.layout.weekLabelItem,{paddingHorizontal:Ye}]},renderTextOrNode(e,[Y.layout.weekLabel,{color:Y.colors.text}])))),React.createElement(View,{style:[Y.layout.days,{rowGap:Y.spacing.row}]},Me.map((e,t)=>Ge(e,t))),K?React.createElement(Pressable,{style:[Y.layout.confirmButton,{backgroundColor:P??Y.colors.selectedBackground,opacity:Ie?.5:1,marginTop:Y.spacing.confirmMarginTop,paddingVertical:Y.spacing.confirmPaddingVertical,borderRadius:Y.radii.confirmButton}],onPress:Le,disabled:Ie},renderTextOrNode(_,[Y.layout.confirmText,{color:Y.colors.confirmText,fontWeight:Y.typography.confirmTextWeight}])):null);return U?React.createElement(Popup,_extends({visible:Q,placement:G,round:q,closeOnOverlayPress:ge,overlay:me,safeAreaInsetTop:null!=re?.safeAreaInsetTop?re.safeAreaInsetTop:N,safeAreaInsetBottom:null!=re?.safeAreaInsetBottom?re.safeAreaInsetBottom:"bottom"===G,onOpen:ue,onOpened:ce,onClose:de,onClosed:pe},re),qe):qe};function mapValue(e,t){return"single"===t?e[0]??new Date:("range"===t&&e.length,e)}function normalizeValue(e,t){return"single"===t?e.slice(0,1):"range"===t?e.slice(0,2).sort((e,t)=>e.getTime()-t.getTime()):e}function formatMonth(e){return`${e.getFullYear()}/${e.getMonth()+1}`}function reorderWeekdays(e,t,a){const n=(t%7+7)%7,o=7===e.length?[...e]:a;return[...o.slice(n),...o.slice(0,n)]}function buildMonth(e,t){const a=(t%7+7)%7,n=(startOfMonth(e).getDay()-a+7)%7,o=new Date(e.getFullYear(),e.getMonth()+1,0).getDate(),l=[];for(let e=0;e<n;e+=1)l.push(null);for(let t=1;t<=o;t+=1)l.push(new Date(e.getFullYear(),e.getMonth(),t));for(;l.length<42;)l.push(null);return l}function getCalendarDayTestId(e){return`calendar-day-${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`}function startOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}function clampMonth(e,t,a){const n=startOfMonth(e),o=startOfMonth(t),l=startOfMonth(a);return n.getTime()<o.getTime()?o:n.getTime()>l.getTime()?a:n}function isSameMonth(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}const Calendar=React.memo(CalendarImpl);Calendar.displayName="Calendar";export default Calendar;
@@ -1,2 +1 @@
1
- import Calendar from './Calendar';
2
- export default Calendar;
1
+ import Calendar from"./Calendar";export default Calendar;