react-native-system-ui 0.0.7 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -31
- package/dist/cjs/components/action-sheet/ActionSheet.js +128 -142
- package/dist/cjs/components/action-sheet/tokens.js +16 -27
- package/dist/cjs/components/area/Area.js +57 -70
- package/dist/cjs/components/area/tokens.js +6 -3
- package/dist/cjs/components/avatar/Avatar.js +38 -36
- package/dist/cjs/components/badge/Badge.js +68 -73
- package/dist/cjs/components/badge/tokens.js +6 -8
- package/dist/cjs/components/button/Button.js +135 -176
- package/dist/cjs/components/button/ButtonGroup.js +11 -45
- package/dist/cjs/components/button/tokens.js +1 -8
- package/dist/cjs/components/calendar/Calendar.js +212 -223
- package/dist/cjs/components/calendar/tokens.js +3 -3
- package/dist/cjs/components/cascader/Cascader.js +257 -267
- package/dist/cjs/components/cascader/tokens.js +2 -2
- package/dist/cjs/components/cascader/useCascaderExtend.js +25 -29
- package/dist/cjs/components/cell/Cell.js +94 -104
- package/dist/cjs/components/cell/CellGroup.js +37 -49
- package/dist/cjs/components/checkbox/Checkbox.js +140 -132
- package/dist/cjs/components/checkbox/CheckboxGroup.js +21 -51
- package/dist/cjs/components/checkbox/tokens.js +7 -10
- package/dist/cjs/components/circle/Circle.js +87 -74
- package/dist/cjs/components/collapse/Collapse.js +88 -104
- package/dist/cjs/components/config-provider/ConfigProvider.js +17 -4
- package/dist/cjs/components/config-provider/DirectionContext.js +15 -0
- package/dist/cjs/components/config-provider/index.js +7 -0
- package/dist/cjs/components/config-provider/locale/en-US.js +32 -0
- package/dist/cjs/components/config-provider/locale/zh-CN.js +32 -0
- package/dist/cjs/components/config-provider/useDirection.js +16 -0
- package/dist/cjs/components/count-down/CountDown.js +32 -27
- package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -104
- package/dist/cjs/components/datetime-picker/tokens.js +14 -3
- package/dist/cjs/components/dialog/Dialog.js +159 -121
- package/dist/cjs/components/dialog/imperative.js +24 -43
- package/dist/cjs/components/dialog/tokens.js +1 -0
- package/dist/cjs/components/divider/Divider.js +57 -62
- package/dist/cjs/components/empty/Empty.js +53 -52
- package/dist/cjs/components/error-boundary/ErrorBoundary.js +74 -0
- package/dist/cjs/components/error-boundary/index.js +19 -0
- package/dist/cjs/components/field/Field.js +109 -106
- package/dist/cjs/components/flex/Flex.js +32 -32
- package/dist/cjs/components/flex/FlexItem.js +27 -27
- package/dist/cjs/components/form/Form.js +178 -196
- package/dist/cjs/components/form/FormItem.js +87 -109
- package/dist/cjs/components/form/FormList.js +57 -45
- package/dist/cjs/components/form/tokens.js +6 -3
- package/dist/cjs/components/form/utils.js +15 -34
- package/dist/cjs/components/grid/Grid.js +44 -43
- package/dist/cjs/components/grid/GridItem.js +92 -86
- package/dist/cjs/components/image/Image.js +76 -79
- package/dist/cjs/components/image/tokens.js +5 -3
- package/dist/cjs/components/image-preview/ImagePreview.js +125 -113
- package/dist/cjs/components/image-preview/imperative.js +4 -13
- package/dist/cjs/components/image-preview/tokens.js +3 -1
- package/dist/cjs/components/index.js +13 -0
- package/dist/cjs/components/input/Input.js +40 -35
- package/dist/cjs/components/loading/Loading.js +32 -33
- package/dist/cjs/components/nav-bar/NavBar.js +88 -100
- package/dist/cjs/components/nav-bar/tokens.js +4 -10
- package/dist/cjs/components/notice-bar/NoticeBar.js +81 -80
- package/dist/cjs/components/notice-bar/tokens.js +3 -1
- package/dist/cjs/components/notify/Notify.js +89 -84
- package/dist/cjs/components/notify/imperative.js +32 -55
- package/dist/cjs/components/notify/tokens.js +2 -11
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +277 -283
- package/dist/cjs/components/number-keyboard/tokens.js +7 -1
- package/dist/cjs/components/overlay/Overlay.js +37 -52
- package/dist/cjs/components/overlay/tokens.js +5 -3
- package/dist/cjs/components/password-input/PasswordInput.js +114 -95
- package/dist/cjs/components/picker/Picker.js +465 -454
- package/dist/cjs/components/picker/tokens.js +1 -1
- package/dist/cjs/components/popup/Popup.js +269 -299
- package/dist/cjs/components/popup/tokens.js +1 -0
- package/dist/cjs/components/portal/Portal.js +12 -30
- package/dist/cjs/components/portal/PortalHost.js +151 -234
- package/dist/cjs/components/progress/Progress.js +103 -101
- package/dist/cjs/components/progress/tokens.js +1 -0
- package/dist/cjs/components/radio/Radio.js +98 -91
- package/dist/cjs/components/radio/RadioGroup.js +13 -45
- package/dist/cjs/components/radio/tokens.js +7 -10
- package/dist/cjs/components/safe-area-view/SafeAreaView.js +22 -26
- package/dist/cjs/components/search/Search.js +65 -57
- package/dist/cjs/components/selector/Selector.js +21 -27
- package/dist/cjs/components/share-sheet/ShareSheet.js +165 -161
- package/dist/cjs/components/share-sheet/tokens.js +3 -1
- package/dist/cjs/components/sidebar/Sidebar.js +51 -51
- package/dist/cjs/components/sidebar/SidebarContext.js +1 -2
- package/dist/cjs/components/sidebar/SidebarItem.js +19 -21
- package/dist/cjs/components/sidebar/tokens.js +4 -4
- package/dist/cjs/components/skeleton/Skeleton.js +71 -77
- package/dist/cjs/components/skeleton/tokens.js +1 -2
- package/dist/cjs/components/slider/Slider.js +156 -135
- package/dist/cjs/components/space/Space.js +57 -76
- package/dist/cjs/components/space/tokens.js +7 -1
- package/dist/cjs/components/stepper/Stepper.js +182 -158
- package/dist/cjs/components/stepper/tokens.js +1 -0
- package/dist/cjs/components/swiper/Swiper.js +256 -255
- package/dist/cjs/components/swiper/SwiperPagIndicator.js +26 -27
- package/dist/cjs/components/swiper/tokens.js +10 -3
- package/dist/cjs/components/switch/Switch.js +23 -25
- package/dist/cjs/components/tabbar/Tabbar.js +48 -40
- package/dist/cjs/components/tabbar/TabbarContext.js +1 -2
- package/dist/cjs/components/tabbar/TabbarItem.js +65 -68
- package/dist/cjs/components/tabs/Tabs.js +402 -439
- package/dist/cjs/components/tabs/tokens.js +3 -1
- package/dist/cjs/components/tag/Tag.js +68 -59
- package/dist/cjs/components/toast/Toast.js +91 -90
- package/dist/cjs/components/toast/imperative.js +16 -41
- package/dist/cjs/components/toast/tokens.js +1 -0
- package/dist/cjs/components/typography/Typography.js +25 -25
- package/dist/cjs/components/water-mark/WaterMark.js +80 -78
- package/dist/cjs/design-system/Text.js +38 -0
- package/dist/cjs/design-system/ThemeProvider.js +5 -11
- package/dist/cjs/design-system/createComponentTokensHook.js +11 -13
- package/dist/cjs/design-system/index.js +7 -0
- package/dist/cjs/design-system/mergeTokensOverride.js +1 -4
- package/dist/cjs/design-system/presets.js +2 -3
- package/dist/cjs/design-system/tokens.js +2 -11
- package/dist/cjs/hooks/animation/index.js +25 -0
- package/dist/cjs/hooks/animation/useAnimatedTransition.js +72 -0
- package/dist/cjs/hooks/animation/useReducedMotion.js +75 -0
- package/dist/cjs/hooks/aria/useAriaListBox.js +8 -16
- package/dist/cjs/hooks/aria/useAriaOverlay.js +3 -3
- package/dist/cjs/hooks/aria/useAriaPress.js +8 -21
- package/dist/cjs/hooks/aria/useAriaToggle.js +3 -3
- package/dist/cjs/hooks/gesture/useGestureScroll.js +60 -61
- package/dist/cjs/hooks/index.js +12 -0
- package/dist/cjs/hooks/overlay/OverlayStackStore.js +49 -69
- package/dist/cjs/hooks/overlay/useOverlayStack.js +13 -19
- package/dist/cjs/hooks/useControllableValue.js +13 -24
- package/dist/cjs/hooks/useCountDown.js +30 -38
- package/dist/cjs/hooks/useHairline.js +17 -29
- package/dist/cjs/hooks/useSafeAreaPadding.js +1 -4
- package/dist/cjs/index.js +67 -1
- package/dist/cjs/platform/animation.js +10 -2
- package/dist/cjs/platform/measure.js +21 -37
- package/dist/cjs/utils/color.js +20 -39
- package/dist/cjs/utils/compare.js +7 -12
- package/dist/cjs/utils/createPlatformShadow.js +28 -39
- package/dist/cjs/utils/date.js +20 -50
- package/dist/cjs/utils/deepMerge.js +16 -26
- package/dist/cjs/utils/hairline.js +75 -71
- package/dist/cjs/utils/index.js +22 -0
- package/dist/cjs/utils/number.js +21 -29
- package/dist/cjs/utils/render.js +21 -0
- package/dist/cjs/utils/rtl.js +25 -0
- package/dist/cjs/utils/string.js +8 -25
- package/dist/cjs/utils/validate.js +2 -4
- package/dist/es/components/action-sheet/ActionSheet.js +130 -144
- package/dist/es/components/action-sheet/tokens.js +16 -27
- package/dist/es/components/area/Area.js +58 -71
- package/dist/es/components/area/tokens.js +6 -3
- package/dist/es/components/avatar/Avatar.js +38 -36
- package/dist/es/components/avatar/index.js +1 -2
- package/dist/es/components/badge/Badge.js +70 -75
- package/dist/es/components/badge/tokens.js +6 -8
- package/dist/es/components/button/Button.js +136 -177
- package/dist/es/components/button/ButtonGroup.js +12 -46
- package/dist/es/components/button/tokens.js +2 -3
- package/dist/es/components/calendar/Calendar.js +214 -225
- package/dist/es/components/calendar/tokens.js +3 -3
- package/dist/es/components/cascader/Cascader.js +260 -270
- package/dist/es/components/cascader/tokens.js +2 -2
- package/dist/es/components/cascader/useCascaderExtend.js +25 -29
- package/dist/es/components/cell/Cell.js +95 -105
- package/dist/es/components/cell/CellGroup.js +37 -48
- package/dist/es/components/checkbox/Checkbox.js +141 -133
- package/dist/es/components/checkbox/CheckboxGroup.js +22 -52
- package/dist/es/components/checkbox/tokens.js +7 -10
- package/dist/es/components/circle/Circle.js +87 -73
- package/dist/es/components/collapse/Collapse.js +90 -105
- package/dist/es/components/config-provider/ConfigProvider.js +11 -4
- package/dist/es/components/config-provider/DirectionContext.js +2 -0
- package/dist/es/components/config-provider/index.js +1 -0
- package/dist/es/components/config-provider/locale/en-US.js +32 -0
- package/dist/es/components/config-provider/locale/zh-CN.js +32 -0
- package/dist/es/components/config-provider/useDirection.js +3 -0
- package/dist/es/components/count-down/CountDown.js +35 -30
- package/dist/es/components/datetime-picker/DatetimePicker.js +80 -104
- package/dist/es/components/datetime-picker/tokens.js +14 -3
- package/dist/es/components/dialog/Dialog.js +160 -121
- package/dist/es/components/dialog/imperative.js +24 -43
- package/dist/es/components/dialog/tokens.js +1 -0
- package/dist/es/components/divider/Divider.js +59 -63
- package/dist/es/components/empty/Empty.js +54 -52
- package/dist/es/components/error-boundary/ErrorBoundary.js +62 -0
- package/dist/es/components/error-boundary/index.js +1 -0
- package/dist/es/components/field/Field.js +109 -106
- package/dist/es/components/flex/Flex.js +32 -31
- package/dist/es/components/flex/FlexItem.js +28 -27
- package/dist/es/components/form/Form.js +179 -197
- package/dist/es/components/form/FormItem.js +86 -107
- package/dist/es/components/form/FormList.js +57 -45
- package/dist/es/components/form/tokens.js +6 -3
- package/dist/es/components/form/utils.js +15 -34
- package/dist/es/components/grid/Grid.js +44 -42
- package/dist/es/components/grid/GridItem.js +94 -87
- package/dist/es/components/image/Image.js +79 -82
- package/dist/es/components/image/tokens.js +5 -3
- package/dist/es/components/image-preview/ImagePreview.js +125 -113
- package/dist/es/components/image-preview/imperative.js +4 -13
- package/dist/es/components/image-preview/tokens.js +3 -1
- package/dist/es/components/index.js +3 -1
- package/dist/es/components/input/Input.js +41 -36
- package/dist/es/components/loading/Loading.js +34 -34
- package/dist/es/components/nav-bar/NavBar.js +88 -100
- package/dist/es/components/nav-bar/tokens.js +4 -4
- package/dist/es/components/notice-bar/NoticeBar.js +81 -79
- package/dist/es/components/notice-bar/tokens.js +3 -1
- package/dist/es/components/notify/Notify.js +93 -87
- package/dist/es/components/notify/imperative.js +33 -56
- package/dist/es/components/notify/tokens.js +2 -5
- package/dist/es/components/number-keyboard/NumberKeyboard.js +277 -283
- package/dist/es/components/number-keyboard/tokens.js +7 -1
- package/dist/es/components/overlay/Overlay.js +36 -51
- package/dist/es/components/overlay/tokens.js +5 -3
- package/dist/es/components/password-input/PasswordInput.js +114 -95
- package/dist/es/components/picker/Picker.js +465 -454
- package/dist/es/components/picker/tokens.js +1 -1
- package/dist/es/components/popup/Popup.js +269 -298
- package/dist/es/components/popup/tokens.js +1 -0
- package/dist/es/components/portal/Portal.js +13 -30
- package/dist/es/components/portal/PortalHost.js +152 -234
- package/dist/es/components/progress/Progress.js +103 -101
- package/dist/es/components/progress/tokens.js +1 -0
- package/dist/es/components/radio/Radio.js +100 -93
- package/dist/es/components/radio/RadioGroup.js +15 -46
- package/dist/es/components/radio/tokens.js +7 -10
- package/dist/es/components/safe-area-view/SafeAreaView.js +22 -25
- package/dist/es/components/search/Search.js +66 -58
- package/dist/es/components/selector/Selector.js +21 -27
- package/dist/es/components/share-sheet/ShareSheet.js +167 -163
- package/dist/es/components/share-sheet/tokens.js +3 -1
- package/dist/es/components/sidebar/Sidebar.js +53 -53
- package/dist/es/components/sidebar/SidebarContext.js +1 -2
- package/dist/es/components/sidebar/SidebarItem.js +19 -20
- package/dist/es/components/sidebar/tokens.js +4 -4
- package/dist/es/components/skeleton/Skeleton.js +71 -77
- package/dist/es/components/skeleton/tokens.js +1 -2
- package/dist/es/components/slider/Slider.js +156 -134
- package/dist/es/components/space/Space.js +59 -78
- package/dist/es/components/space/tokens.js +7 -1
- package/dist/es/components/stepper/Stepper.js +183 -159
- package/dist/es/components/stepper/tokens.js +1 -0
- package/dist/es/components/swiper/Swiper.js +258 -257
- package/dist/es/components/swiper/SwiperPagIndicator.js +26 -27
- package/dist/es/components/swiper/tokens.js +10 -3
- package/dist/es/components/switch/Switch.js +23 -25
- package/dist/es/components/tabbar/Tabbar.js +49 -41
- package/dist/es/components/tabbar/TabbarContext.js +1 -2
- package/dist/es/components/tabbar/TabbarItem.js +66 -69
- package/dist/es/components/tabs/Tabs.js +403 -440
- package/dist/es/components/tabs/tokens.js +3 -1
- package/dist/es/components/tag/Tag.js +71 -61
- package/dist/es/components/toast/Toast.js +94 -91
- package/dist/es/components/toast/imperative.js +16 -41
- package/dist/es/components/toast/tokens.js +1 -0
- package/dist/es/components/typography/Typography.js +25 -25
- package/dist/es/components/water-mark/WaterMark.js +81 -79
- package/dist/es/design-system/Text.js +19 -0
- package/dist/es/design-system/ThemeProvider.js +5 -11
- package/dist/es/design-system/createComponentTokensHook.js +11 -13
- package/dist/es/design-system/index.js +1 -0
- package/dist/es/design-system/mergeTokensOverride.js +1 -4
- package/dist/es/design-system/presets.js +2 -3
- package/dist/es/design-system/tokens.js +1 -9
- package/dist/es/hooks/animation/index.js +2 -0
- package/dist/es/hooks/animation/useAnimatedTransition.js +53 -0
- package/dist/es/hooks/animation/useReducedMotion.js +54 -0
- package/dist/es/hooks/aria/useAriaListBox.js +8 -16
- package/dist/es/hooks/aria/useAriaOverlay.js +3 -3
- package/dist/es/hooks/aria/useAriaPress.js +8 -21
- package/dist/es/hooks/aria/useAriaToggle.js +3 -3
- package/dist/es/hooks/gesture/useGestureScroll.js +60 -61
- package/dist/es/hooks/index.js +1 -0
- package/dist/es/hooks/overlay/OverlayStackStore.js +49 -69
- package/dist/es/hooks/overlay/useOverlayStack.js +13 -19
- package/dist/es/hooks/useControllableValue.js +13 -24
- package/dist/es/hooks/useCountDown.js +30 -38
- package/dist/es/hooks/useHairline.js +16 -28
- package/dist/es/hooks/useSafeAreaPadding.js +1 -4
- package/dist/es/index.js +8 -1
- package/dist/es/platform/animation.js +9 -1
- package/dist/es/platform/measure.js +21 -37
- package/dist/es/utils/color.js +18 -35
- package/dist/es/utils/compare.js +7 -12
- package/dist/es/utils/createPlatformShadow.js +28 -39
- package/dist/es/utils/date.js +20 -50
- package/dist/es/utils/deepMerge.js +16 -26
- package/dist/es/utils/hairline.js +74 -65
- package/dist/es/utils/index.js +2 -0
- package/dist/es/utils/number.js +21 -29
- package/dist/es/utils/render.js +7 -0
- package/dist/es/utils/rtl.js +17 -0
- package/dist/es/utils/string.js +8 -25
- package/dist/es/utils/validate.js +1 -2
- package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -1
- package/dist/types/components/area/Area.d.ts +1 -1
- package/dist/types/components/area/tokens.d.ts +4 -0
- package/dist/types/components/avatar/Avatar.d.ts +1 -1
- package/dist/types/components/avatar/index.d.ts +1 -2
- package/dist/types/components/badge/Badge.d.ts +1 -1
- package/dist/types/components/button/Button.d.ts +1 -1
- package/dist/types/components/button/index.d.ts +1 -1
- package/dist/types/components/calendar/Calendar.d.ts +1 -1
- package/dist/types/components/cascader/Cascader.d.ts +1 -1
- package/dist/types/components/cell/Cell.d.ts +1 -1
- package/dist/types/components/cell/CellGroup.d.ts +1 -1
- package/dist/types/components/cell/index.d.ts +2 -2
- package/dist/types/components/checkbox/Checkbox.d.ts +1 -1
- package/dist/types/components/circle/Circle.d.ts +1 -1
- package/dist/types/components/collapse/Collapse.d.ts +1 -2
- package/dist/types/components/config-provider/DirectionContext.d.ts +3 -0
- package/dist/types/components/config-provider/index.d.ts +2 -1
- package/dist/types/components/config-provider/locale/en-US.d.ts +32 -0
- package/dist/types/components/config-provider/locale/zh-CN.d.ts +32 -0
- package/dist/types/components/config-provider/useDirection.d.ts +1 -0
- package/dist/types/components/count-down/CountDown.d.ts +1 -1
- package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -1
- package/dist/types/components/datetime-picker/tokens.d.ts +12 -0
- package/dist/types/components/dialog/Dialog.d.ts +1 -1
- package/dist/types/components/dialog/tokens.d.ts +1 -0
- package/dist/types/components/divider/Divider.d.ts +1 -1
- package/dist/types/components/empty/Empty.d.ts +1 -1
- package/dist/types/components/error-boundary/ErrorBoundary.d.ts +6 -0
- package/dist/types/components/error-boundary/index.d.ts +2 -0
- package/dist/types/components/field/Field.d.ts +1 -1
- package/dist/types/components/flex/Flex.d.ts +1 -1
- package/dist/types/components/flex/FlexItem.d.ts +1 -1
- package/dist/types/components/flex/index.d.ts +2 -2
- package/dist/types/components/form/Form.d.ts +1 -1
- package/dist/types/components/form/FormItem.d.ts +2 -1
- package/dist/types/components/form/index.d.ts +2 -2
- package/dist/types/components/form/tokens.d.ts +4 -0
- package/dist/types/components/grid/Grid.d.ts +1 -1
- package/dist/types/components/grid/GridItem.d.ts +1 -1
- package/dist/types/components/grid/index.d.ts +2 -2
- package/dist/types/components/image/Image.d.ts +1 -1
- package/dist/types/components/image-preview/ImagePreview.d.ts +1 -1
- package/dist/types/components/image-preview/tokens.d.ts +1 -0
- package/dist/types/components/index.d.ts +4 -1
- package/dist/types/components/input/Input.d.ts +3 -3
- package/dist/types/components/loading/Loading.d.ts +1 -1
- package/dist/types/components/nav-bar/NavBar.d.ts +1 -1
- package/dist/types/components/nav-bar/tokens.d.ts +1 -1
- package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -1
- package/dist/types/components/notice-bar/tokens.d.ts +1 -0
- package/dist/types/components/notify/Notify.d.ts +2 -2
- package/dist/types/components/notify/index.d.ts +1 -1
- package/dist/types/components/number-keyboard/tokens.d.ts +5 -0
- package/dist/types/components/overlay/Overlay.d.ts +1 -5
- package/dist/types/components/overlay/tokens.d.ts +3 -0
- package/dist/types/components/password-input/PasswordInput.d.ts +1 -1
- package/dist/types/components/picker/Picker.d.ts +6 -6
- package/dist/types/components/popup/Popup.d.ts +3 -42
- package/dist/types/components/popup/tokens.d.ts +1 -0
- package/dist/types/components/portal/Portal.d.ts +9 -6
- package/dist/types/components/portal/PortalHost.d.ts +1 -1
- package/dist/types/components/radio/RadioGroup.d.ts +1 -1
- package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -1
- package/dist/types/components/search/Search.d.ts +1 -1
- package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -1
- package/dist/types/components/share-sheet/tokens.d.ts +1 -0
- package/dist/types/components/sidebar/Sidebar.d.ts +1 -1
- package/dist/types/components/sidebar/SidebarContext.d.ts +1 -1
- package/dist/types/components/sidebar/SidebarItem.d.ts +1 -1
- package/dist/types/components/sidebar/index.d.ts +2 -2
- package/dist/types/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/types/components/slider/Slider.d.ts +1 -1
- package/dist/types/components/stepper/Stepper.d.ts +1 -1
- package/dist/types/components/stepper/tokens.d.ts +1 -0
- package/dist/types/components/swiper/Swiper.d.ts +1 -1
- package/dist/types/components/swiper/index.d.ts +1 -1
- package/dist/types/components/swiper/tokens.d.ts +8 -0
- package/dist/types/components/tabbar/Tabbar.d.ts +2 -2
- package/dist/types/components/tabbar/TabbarContext.d.ts +1 -1
- package/dist/types/components/tabbar/TabbarItem.d.ts +2 -2
- package/dist/types/components/tabs/Tabs.d.ts +1 -1
- package/dist/types/components/tabs/index.d.ts +1 -1
- package/dist/types/components/tabs/tokens.d.ts +1 -0
- package/dist/types/components/tag/Tag.d.ts +1 -1
- package/dist/types/components/toast/Toast.d.ts +2 -2
- package/dist/types/components/toast/index.d.ts +1 -1
- package/dist/types/components/toast/tokens.d.ts +1 -0
- package/dist/types/components/water-mark/WaterMark.d.ts +1 -1
- package/dist/types/design-system/Text.d.ts +3 -0
- package/dist/types/design-system/index.d.ts +1 -0
- package/dist/types/design-system/tokens.d.ts +0 -1
- package/dist/types/hooks/animation/index.d.ts +3 -0
- package/dist/types/hooks/animation/useAnimatedTransition.d.ts +13 -0
- package/dist/types/hooks/animation/useReducedMotion.d.ts +3 -0
- package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -1
- package/dist/types/hooks/gesture/useGestureScroll.d.ts +11 -10
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/overlay/OverlayStackStore.d.ts +8 -8
- package/dist/types/hooks/useCountDown.d.ts +1 -1
- package/dist/types/hooks/useHairline.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/platform/animation.d.ts +8 -0
- package/dist/types/platform/measure.d.ts +1 -1
- package/dist/types/utils/color.d.ts +0 -2
- package/dist/types/utils/compare.d.ts +1 -1
- package/dist/types/utils/createPlatformShadow.d.ts +2 -2
- package/dist/types/utils/date.d.ts +2 -2
- package/dist/types/utils/hairline.d.ts +5 -10
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/number.d.ts +2 -2
- package/dist/types/utils/render.d.ts +5 -0
- package/dist/types/utils/rtl.d.ts +5 -0
- package/dist/types/utils/validate.d.ts +0 -1
- package/package.json +25 -4
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "enUS", {
|
|
|
15
15
|
return _enUS.enUS;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "useDirection", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _useDirection.useDirection;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "useLocale", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function () {
|
|
@@ -29,5 +35,6 @@ Object.defineProperty(exports, "zhCN", {
|
|
|
29
35
|
});
|
|
30
36
|
var _ConfigProvider = require("./ConfigProvider");
|
|
31
37
|
var _useLocale = require("./useLocale");
|
|
38
|
+
var _useDirection = require("./useDirection");
|
|
32
39
|
var _zhCN = require("./locale/zh-CN");
|
|
33
40
|
var _enUS = require("./locale/en-US");
|
|
@@ -76,5 +76,37 @@ const enUS = exports.enUS = {
|
|
|
76
76
|
},
|
|
77
77
|
vanAddressList: {
|
|
78
78
|
add: 'Add address'
|
|
79
|
+
},
|
|
80
|
+
vanForm: {
|
|
81
|
+
validationFailed: 'Validation failed'
|
|
82
|
+
},
|
|
83
|
+
vanPopup: {
|
|
84
|
+
closeOverlay: 'Close overlay',
|
|
85
|
+
closeHint: 'Double-tap to close'
|
|
86
|
+
},
|
|
87
|
+
vanToast: {
|
|
88
|
+
closeHint: 'Double-tap to dismiss'
|
|
89
|
+
},
|
|
90
|
+
vanShareSheet: {
|
|
91
|
+
cancel: 'Cancel'
|
|
92
|
+
},
|
|
93
|
+
vanNumberKeyboard: {
|
|
94
|
+
close: 'Done'
|
|
95
|
+
},
|
|
96
|
+
vanNoticeBar: {
|
|
97
|
+
close: 'Close'
|
|
98
|
+
},
|
|
99
|
+
vanNavBar: {
|
|
100
|
+
back: 'Back',
|
|
101
|
+
action: 'Actions'
|
|
102
|
+
},
|
|
103
|
+
vanImage: {
|
|
104
|
+
loading: 'Loading...',
|
|
105
|
+
error: 'Failed to load'
|
|
106
|
+
},
|
|
107
|
+
vanCascader: {
|
|
108
|
+
placeholder: 'Select',
|
|
109
|
+
loading: 'Loading...',
|
|
110
|
+
close: 'Close'
|
|
79
111
|
}
|
|
80
112
|
};
|
|
@@ -76,5 +76,37 @@ const zhCN = exports.zhCN = {
|
|
|
76
76
|
},
|
|
77
77
|
vanAddressList: {
|
|
78
78
|
add: '新增地址'
|
|
79
|
+
},
|
|
80
|
+
vanForm: {
|
|
81
|
+
validationFailed: '表单验证未通过'
|
|
82
|
+
},
|
|
83
|
+
vanPopup: {
|
|
84
|
+
closeOverlay: '关闭弹层',
|
|
85
|
+
closeHint: '双击即可关闭弹层'
|
|
86
|
+
},
|
|
87
|
+
vanToast: {
|
|
88
|
+
closeHint: '双击关闭提示'
|
|
89
|
+
},
|
|
90
|
+
vanShareSheet: {
|
|
91
|
+
cancel: '取消'
|
|
92
|
+
},
|
|
93
|
+
vanNumberKeyboard: {
|
|
94
|
+
close: '完成'
|
|
95
|
+
},
|
|
96
|
+
vanNoticeBar: {
|
|
97
|
+
close: '关闭'
|
|
98
|
+
},
|
|
99
|
+
vanNavBar: {
|
|
100
|
+
back: '返回',
|
|
101
|
+
action: '操作'
|
|
102
|
+
},
|
|
103
|
+
vanImage: {
|
|
104
|
+
loading: '加载中…',
|
|
105
|
+
error: '加载失败'
|
|
106
|
+
},
|
|
107
|
+
vanCascader: {
|
|
108
|
+
placeholder: '请选择',
|
|
109
|
+
loading: '加载中...',
|
|
110
|
+
close: '关闭'
|
|
79
111
|
}
|
|
80
112
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useDirection = void 0;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = require("react");
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
var _DirectionContext = require("./DirectionContext");
|
|
15
|
+
const useDirection = () => (0, _react().useContext)(_DirectionContext.DirectionContext);
|
|
16
|
+
exports.useDirection = useDirection;
|
|
@@ -20,16 +20,17 @@ function _reactNative() {
|
|
|
20
20
|
}
|
|
21
21
|
var _hooks = require("../../hooks");
|
|
22
22
|
var _utils = require("../../utils");
|
|
23
|
+
var _validate = require("../../utils/validate");
|
|
23
24
|
var _tokens = require("./tokens");
|
|
24
25
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
25
26
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
26
|
-
const
|
|
27
|
+
const CountDownImpl = (props, ref) => {
|
|
27
28
|
const {
|
|
28
29
|
tokensOverride,
|
|
29
|
-
autoStart:
|
|
30
|
-
millisecond:
|
|
31
|
-
time:
|
|
32
|
-
format:
|
|
30
|
+
autoStart: autoStartP,
|
|
31
|
+
millisecond: msP,
|
|
32
|
+
time: timeP,
|
|
33
|
+
format: fmtP,
|
|
33
34
|
children,
|
|
34
35
|
onChange,
|
|
35
36
|
onFinish,
|
|
@@ -37,47 +38,51 @@ const CountDown = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
|
|
|
37
38
|
...rest
|
|
38
39
|
} = props;
|
|
39
40
|
const tokens = (0, _tokens.useCountDownTokens)(tokensOverride);
|
|
40
|
-
const autoStart =
|
|
41
|
-
const millisecond =
|
|
42
|
-
const time =
|
|
43
|
-
const format =
|
|
44
|
-
const
|
|
41
|
+
const autoStart = autoStartP ?? tokens.defaults.autoStart;
|
|
42
|
+
const millisecond = msP ?? tokens.defaults.millisecond;
|
|
43
|
+
const time = timeP ?? tokens.defaults.time;
|
|
44
|
+
const format = fmtP ?? tokens.defaults.format;
|
|
45
|
+
const normTime = Math.max(0, Number(time) || 0);
|
|
45
46
|
const {
|
|
46
47
|
start,
|
|
47
48
|
pause,
|
|
48
49
|
reset,
|
|
49
50
|
current
|
|
50
51
|
} = (0, _hooks.useCountDown)({
|
|
51
|
-
time:
|
|
52
|
+
time: normTime,
|
|
52
53
|
millisecond,
|
|
53
54
|
onChange,
|
|
54
55
|
onFinish
|
|
55
56
|
});
|
|
56
|
-
const
|
|
57
|
-
reset(
|
|
58
|
-
if (autoStart &&
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
}, [autoStart, normalizedTime, reset, start]);
|
|
57
|
+
const resetTimer = (0, _react().useCallback)(() => {
|
|
58
|
+
reset(normTime);
|
|
59
|
+
if (autoStart && normTime > 0) start();
|
|
60
|
+
}, [autoStart, normTime, reset, start]);
|
|
62
61
|
(0, _react().useEffect)(() => {
|
|
63
|
-
|
|
62
|
+
resetTimer();
|
|
64
63
|
return () => {
|
|
65
64
|
pause();
|
|
66
65
|
};
|
|
67
|
-
}, [autoStart,
|
|
66
|
+
}, [autoStart, normTime, pause, reset, start]);
|
|
68
67
|
(0, _react().useImperativeHandle)(ref, () => ({
|
|
69
68
|
start,
|
|
70
69
|
pause,
|
|
71
|
-
reset:
|
|
70
|
+
reset: resetTimer
|
|
72
71
|
}));
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
style: defaultTextStyle
|
|
77
|
-
}, content) : content, [content, defaultTextStyle]);
|
|
72
|
+
const content = (0, _utils.isFunction)(children) ? children(current) : (0, _utils.formatDuration)(format, current);
|
|
73
|
+
const contentNode = (0, _utils.renderTextOrNode)(content, tokens.layout.text);
|
|
74
|
+
const accLabel = (0, _validate.isText)(content) ? String(content) : `${current.hours}h ${current.minutes}m ${current.seconds}s`;
|
|
78
75
|
return /*#__PURE__*/_react().default.createElement(_reactNative().View, _extends({
|
|
76
|
+
accessibilityRole: "timer",
|
|
77
|
+
accessibilityLiveRegion: "polite",
|
|
78
|
+
accessibilityLabel: accLabel,
|
|
79
|
+
accessibilityValue: {
|
|
80
|
+
text: accLabel
|
|
81
|
+
},
|
|
79
82
|
style: style
|
|
80
83
|
}, rest), contentNode);
|
|
81
|
-
}
|
|
82
|
-
|
|
84
|
+
};
|
|
85
|
+
const CountDownForwardRef = /*#__PURE__*/_react().default.forwardRef(CountDownImpl);
|
|
86
|
+
CountDownForwardRef.displayName = 'CountDown';
|
|
87
|
+
const CountDown = /*#__PURE__*/_react().default.memo(CountDownForwardRef);
|
|
83
88
|
var _default = exports.default = CountDown;
|
|
@@ -15,55 +15,30 @@ var _picker = _interopRequireDefault(require("../picker"));
|
|
|
15
15
|
var _Popup = require("../popup/Popup");
|
|
16
16
|
var _hooks = require("../../hooks");
|
|
17
17
|
var _utils = require("../../utils");
|
|
18
|
+
var _tokens = require("./tokens");
|
|
18
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
20
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
21
|
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); }
|
|
21
22
|
const currentYear = new Date().getFullYear();
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
23
|
+
const DEFAULT_YEAR_RANGE_OFFSET = 10;
|
|
24
|
+
const DEFAULT_MIN_DATE = new Date(currentYear - DEFAULT_YEAR_RANGE_OFFSET, 0, 1);
|
|
25
|
+
const DEFAULT_MAX_DATE = new Date(currentYear + DEFAULT_YEAR_RANGE_OFFSET, 11, 31);
|
|
26
|
+
const DatetimePickerImpl = props => {
|
|
27
|
+
const tokens = (0, _tokens.useDatetimePickerTokens)();
|
|
25
28
|
const [popupVisible, setPopupVisible] = (0, _hooks.useControllableValue)(props, {
|
|
26
29
|
defaultValue: false,
|
|
27
30
|
valuePropName: 'popupVisible',
|
|
28
31
|
defaultValuePropName: 'defaultPopupVisible',
|
|
29
32
|
trigger: 'onPopupVisibleChange'
|
|
30
33
|
});
|
|
31
|
-
const
|
|
32
|
-
const renderPopup = (0, _react().useCallback)((node, popup, popupProps) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
safeAreaInsetBottom: true
|
|
40
|
-
}, popupProps), node);
|
|
41
|
-
}, [close, popupVisible]);
|
|
42
|
-
if (props.type === 'time') {
|
|
43
|
-
const {
|
|
44
|
-
popup,
|
|
45
|
-
popupVisible: _popupVisible,
|
|
46
|
-
defaultPopupVisible: _defaultPopupVisible,
|
|
47
|
-
popupProps,
|
|
48
|
-
onPopupVisibleChange: _onPopupVisibleChange,
|
|
49
|
-
onConfirm,
|
|
50
|
-
onCancel,
|
|
51
|
-
...pickerProps
|
|
52
|
-
} = props;
|
|
53
|
-
const handleConfirm = (0, _react().useCallback)(value => {
|
|
54
|
-
onConfirm?.(value);
|
|
55
|
-
if (popup) close();
|
|
56
|
-
}, [close, onConfirm, popup]);
|
|
57
|
-
const handleCancel = (0, _react().useCallback)(() => {
|
|
58
|
-
onCancel?.();
|
|
59
|
-
if (popup) close();
|
|
60
|
-
}, [close, onCancel, popup]);
|
|
61
|
-
const pickerNode = /*#__PURE__*/_react().default.createElement(TimePicker, _extends({}, pickerProps, {
|
|
62
|
-
onConfirm: handleConfirm,
|
|
63
|
-
onCancel: handleCancel
|
|
64
|
-
}));
|
|
65
|
-
return renderPopup(pickerNode, popup, popupProps);
|
|
66
|
-
}
|
|
34
|
+
const handleClose = (0, _react().useCallback)(() => setPopupVisible(false), [setPopupVisible]);
|
|
35
|
+
const renderPopup = (0, _react().useCallback)((node, popup, popupProps) => !popup ? node : /*#__PURE__*/_react().default.createElement(_Popup.Popup, _extends({
|
|
36
|
+
visible: popupVisible,
|
|
37
|
+
onClose: handleClose,
|
|
38
|
+
placement: tokens.defaults.popupPlacement,
|
|
39
|
+
round: tokens.defaults.popupRound,
|
|
40
|
+
safeAreaInsetBottom: tokens.defaults.popupSafeAreaInsetBottom
|
|
41
|
+
}, popupProps), node), [handleClose, popupVisible, tokens.defaults.popupPlacement, tokens.defaults.popupRound, tokens.defaults.popupSafeAreaInsetBottom]);
|
|
67
42
|
const {
|
|
68
43
|
popup,
|
|
69
44
|
popupVisible: _popupVisible,
|
|
@@ -74,15 +49,22 @@ const DatetimePicker = props => {
|
|
|
74
49
|
onCancel,
|
|
75
50
|
...pickerProps
|
|
76
51
|
} = props;
|
|
52
|
+
const onConfirmRef = (0, _react().useRef)(onConfirm);
|
|
53
|
+
const onCancelRef = (0, _react().useRef)(onCancel);
|
|
54
|
+
onConfirmRef.current = onConfirm;
|
|
55
|
+
onCancelRef.current = onCancel;
|
|
77
56
|
const handleConfirm = (0, _react().useCallback)(value => {
|
|
78
|
-
|
|
79
|
-
if (popup)
|
|
80
|
-
}, [
|
|
57
|
+
onConfirmRef.current?.(value);
|
|
58
|
+
if (popup) handleClose();
|
|
59
|
+
}, [handleClose, popup]);
|
|
81
60
|
const handleCancel = (0, _react().useCallback)(() => {
|
|
82
|
-
|
|
83
|
-
if (popup)
|
|
84
|
-
}, [
|
|
85
|
-
const pickerNode = /*#__PURE__*/_react().default.createElement(
|
|
61
|
+
onCancelRef.current?.();
|
|
62
|
+
if (popup) handleClose();
|
|
63
|
+
}, [handleClose, popup]);
|
|
64
|
+
const pickerNode = props.type === 'time' ? /*#__PURE__*/_react().default.createElement(TimePicker, _extends({}, pickerProps, {
|
|
65
|
+
onConfirm: handleConfirm,
|
|
66
|
+
onCancel: handleCancel
|
|
67
|
+
})) : /*#__PURE__*/_react().default.createElement(DatePicker, _extends({}, pickerProps, {
|
|
86
68
|
onConfirm: handleConfirm,
|
|
87
69
|
onCancel: handleCancel
|
|
88
70
|
}));
|
|
@@ -104,9 +86,8 @@ const DatePicker = props => {
|
|
|
104
86
|
...pickerProps
|
|
105
87
|
} = props;
|
|
106
88
|
const formatValue = (0, _react().useCallback)(dateValue => {
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
const date = new Date(time);
|
|
89
|
+
const fb = (0, _utils.isValidDate)(dateValue) ? dateValue : new Date();
|
|
90
|
+
const date = new Date((0, _utils.clamp)(fb.getTime(), minDate.getTime(), maxDate.getTime()));
|
|
110
91
|
if (type === 'year-month') {
|
|
111
92
|
date.setDate(1);
|
|
112
93
|
date.setHours(0, 0, 0, 0);
|
|
@@ -115,6 +96,7 @@ const DatePicker = props => {
|
|
|
115
96
|
} else if (type === 'datehour') {
|
|
116
97
|
date.setMinutes(0, 0, 0);
|
|
117
98
|
}
|
|
99
|
+
;
|
|
118
100
|
return date;
|
|
119
101
|
}, [maxDate, minDate, type]);
|
|
120
102
|
const [currentDate, setCurrentDate] = (0, _react().useState)(() => formatValue(value ?? defaultValue));
|
|
@@ -141,16 +123,14 @@ const DatePicker = props => {
|
|
|
141
123
|
boundary.day = boundaryDate.getDate();
|
|
142
124
|
if (date.getDate() === boundary.day) {
|
|
143
125
|
boundary.hour = boundaryDate.getHours();
|
|
144
|
-
if (date.getHours() === boundary.hour)
|
|
145
|
-
boundary.minute = boundaryDate.getMinutes();
|
|
146
|
-
}
|
|
126
|
+
if (date.getHours() === boundary.hour) boundary.minute = boundaryDate.getMinutes();
|
|
147
127
|
}
|
|
148
128
|
}
|
|
149
129
|
}
|
|
150
130
|
return boundary;
|
|
151
131
|
};
|
|
152
|
-
const maxBoundary = getBoundary('max', currentDate)
|
|
153
|
-
|
|
132
|
+
const maxBoundary = getBoundary('max', currentDate),
|
|
133
|
+
minBoundary = getBoundary('min', currentDate);
|
|
154
134
|
const baseColumns = [{
|
|
155
135
|
type: 'year',
|
|
156
136
|
range: [minBoundary.year, maxBoundary.year]
|
|
@@ -189,13 +169,8 @@ const DatePicker = props => {
|
|
|
189
169
|
result = [...result].sort((a, b) => order.indexOf(a.type) - order.indexOf(b.type));
|
|
190
170
|
}
|
|
191
171
|
const originColumns = result.map(column => {
|
|
192
|
-
let values = (0, _utils.times)(column.range[1] - column.range[0] + 1, index =>
|
|
193
|
-
|
|
194
|
-
return column.type === 'year' ? String(value) : (0, _utils.padZero)(value);
|
|
195
|
-
});
|
|
196
|
-
if (filter) {
|
|
197
|
-
values = filter(column.type, values);
|
|
198
|
-
}
|
|
172
|
+
let values = (0, _utils.times)(column.range[1] - column.range[0] + 1, index => column.type === 'year' ? String(column.range[0] + index) : (0, _utils.padZero)(column.range[0] + index));
|
|
173
|
+
if (filter) values = filter(column.type, values);
|
|
199
174
|
return {
|
|
200
175
|
type: column.type,
|
|
201
176
|
values
|
|
@@ -230,12 +205,11 @@ const DatePicker = props => {
|
|
|
230
205
|
const buildDateFromValues = (0, _react().useCallback)(values => {
|
|
231
206
|
const getValue = columnType => {
|
|
232
207
|
const index = originColumns.findIndex(column => column.type === columnType);
|
|
233
|
-
|
|
234
|
-
return (0, _utils.getTrueValue)(values[index] ?? originColumns[index].values[0]);
|
|
208
|
+
return index === -1 ? undefined : (0, _utils.getTrueValue)(values[index] ?? originColumns[index].values[0]);
|
|
235
209
|
};
|
|
236
|
-
let year = currentDate.getFullYear()
|
|
237
|
-
|
|
238
|
-
|
|
210
|
+
let year = currentDate.getFullYear(),
|
|
211
|
+
month = currentDate.getMonth() + 1,
|
|
212
|
+
day = currentDate.getDate();
|
|
239
213
|
if (type === 'month-day') {
|
|
240
214
|
month = getValue('month') || month;
|
|
241
215
|
day = getValue('day') || day;
|
|
@@ -244,24 +218,25 @@ const DatePicker = props => {
|
|
|
244
218
|
month = getValue('month') || month;
|
|
245
219
|
day = type === 'year-month' ? 1 : getValue('day') || day;
|
|
246
220
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (type === '
|
|
252
|
-
hour = getValue('hour') || 0;
|
|
253
|
-
}
|
|
254
|
-
if (type === 'datetime') {
|
|
255
|
-
minute = getValue('minute') || 0;
|
|
256
|
-
}
|
|
221
|
+
day = Math.min(day, (0, _utils.getMonthEndDay)(year, month));
|
|
222
|
+
let hour = 0,
|
|
223
|
+
minute = 0;
|
|
224
|
+
if (type === 'datehour' || type === 'datetime') hour = getValue('hour') || 0;
|
|
225
|
+
if (type === 'datetime') minute = getValue('minute') || 0;
|
|
257
226
|
return formatValue(new Date(year, month - 1, day, hour, minute));
|
|
258
227
|
}, [currentDate, formatValue, originColumns, type]);
|
|
228
|
+
const onChangeRef = (0, _react().useRef)(onChange);
|
|
229
|
+
const onConfirmRef = (0, _react().useRef)(onConfirm);
|
|
230
|
+
onChangeRef.current = onChange;
|
|
231
|
+
onConfirmRef.current = onConfirm;
|
|
259
232
|
const handleChange = (0, _react().useCallback)(values => {
|
|
260
233
|
const next = buildDateFromValues(values.map(String));
|
|
261
234
|
setCurrentDate(next);
|
|
262
|
-
|
|
263
|
-
}, [buildDateFromValues
|
|
264
|
-
const
|
|
235
|
+
onChangeRef.current?.(next);
|
|
236
|
+
}, [buildDateFromValues]);
|
|
237
|
+
const curDateRef = (0, _react().useRef)(currentDate);
|
|
238
|
+
curDateRef.current = currentDate;
|
|
239
|
+
const handleConfirm = (0, _react().useCallback)(() => onConfirmRef.current?.(curDateRef.current), []);
|
|
265
240
|
return /*#__PURE__*/_react().default.createElement(_picker.default, _extends({}, pickerProps, {
|
|
266
241
|
columns: columns,
|
|
267
242
|
interactionMode: interactionMode,
|
|
@@ -290,14 +265,12 @@ const TimePicker = props => {
|
|
|
290
265
|
const timeRef = (0, _react().useRef)('');
|
|
291
266
|
const formatTime = (0, _react().useCallback)(timeValue => {
|
|
292
267
|
const [hour = 0, minute = 0] = (timeValue ?? '').split(':').map(num => parseInt(num, 10));
|
|
293
|
-
|
|
294
|
-
const nextMinute = (0, _utils.clamp)(Number.isNaN(minute) ? minMinute : minute, minMinute, maxMinute);
|
|
295
|
-
return `${(0, _utils.padZero)(nextHour)}:${(0, _utils.padZero)(nextMinute)}`;
|
|
268
|
+
return `${(0, _utils.padZero)((0, _utils.clamp)(Number.isNaN(hour) ? minHour : hour, minHour, maxHour))}:${(0, _utils.padZero)((0, _utils.clamp)(Number.isNaN(minute) ? minMinute : minute, minMinute, maxMinute))}`;
|
|
296
269
|
}, [maxHour, maxMinute, minHour, minMinute]);
|
|
297
270
|
const [currentTime, setCurrentTime] = (0, _react().useState)(() => {
|
|
298
|
-
const
|
|
299
|
-
timeRef.current =
|
|
300
|
-
return
|
|
271
|
+
const init = formatTime(value ?? defaultValue);
|
|
272
|
+
timeRef.current = init;
|
|
273
|
+
return init;
|
|
301
274
|
});
|
|
302
275
|
(0, _react().useEffect)(() => {
|
|
303
276
|
const next = (0, _utils.isString)(value) ? formatTime(value) : formatTime(timeRef.current);
|
|
@@ -307,37 +280,40 @@ const TimePicker = props => {
|
|
|
307
280
|
}
|
|
308
281
|
}, [formatTime, value]);
|
|
309
282
|
const [hourValues, minuteValues] = (0, _react().useMemo)(() => {
|
|
310
|
-
let
|
|
311
|
-
let
|
|
283
|
+
let h = (0, _utils.times)(maxHour - minHour + 1, i => (0, _utils.padZero)(minHour + i));
|
|
284
|
+
let m = (0, _utils.times)(maxMinute - minMinute + 1, i => (0, _utils.padZero)(minMinute + i));
|
|
312
285
|
if (filter) {
|
|
313
|
-
|
|
314
|
-
|
|
286
|
+
h = filter('hour', h);
|
|
287
|
+
m = filter('minute', m);
|
|
315
288
|
}
|
|
316
|
-
|
|
289
|
+
;
|
|
290
|
+
return [h, m];
|
|
317
291
|
}, [filter, maxHour, maxMinute, minHour, minMinute]);
|
|
318
|
-
const columns = (0, _react().useMemo)(() => [hourValues.map(
|
|
319
|
-
label: formatter('hour',
|
|
320
|
-
value
|
|
321
|
-
})), minuteValues.map(
|
|
322
|
-
label: formatter('minute',
|
|
323
|
-
value
|
|
292
|
+
const columns = (0, _react().useMemo)(() => [hourValues.map(v => ({
|
|
293
|
+
label: formatter('hour', v),
|
|
294
|
+
value: v
|
|
295
|
+
})), minuteValues.map(v => ({
|
|
296
|
+
label: formatter('minute', v),
|
|
297
|
+
value: v
|
|
324
298
|
}))], [formatter, hourValues, minuteValues]);
|
|
299
|
+
const onChangeRef = (0, _react().useRef)(onChange);
|
|
300
|
+
const onConfirmRef = (0, _react().useRef)(onConfirm);
|
|
301
|
+
onChangeRef.current = onChange;
|
|
302
|
+
onConfirmRef.current = onConfirm;
|
|
325
303
|
const handleChange = (0, _react().useCallback)(values => {
|
|
326
|
-
const
|
|
327
|
-
const nextMinute = values[1] ?? minuteValues[0];
|
|
328
|
-
const next = `${String(nextHour)}:${String(nextMinute)}`;
|
|
304
|
+
const next = `${String(values[0] ?? hourValues[0])}:${String(values[1] ?? minuteValues[0])}`;
|
|
329
305
|
timeRef.current = next;
|
|
330
306
|
setCurrentTime(next);
|
|
331
|
-
|
|
332
|
-
}, [hourValues, minuteValues
|
|
333
|
-
const handleConfirm = (0, _react().useCallback)(() =>
|
|
334
|
-
const pickerValue = currentTime.split(':');
|
|
307
|
+
onChangeRef.current?.(next);
|
|
308
|
+
}, [hourValues, minuteValues]);
|
|
309
|
+
const handleConfirm = (0, _react().useCallback)(() => onConfirmRef.current?.(timeRef.current), []);
|
|
335
310
|
return /*#__PURE__*/_react().default.createElement(_picker.default, _extends({}, pickerProps, {
|
|
336
311
|
columns: columns,
|
|
337
312
|
interactionMode: interactionMode,
|
|
338
|
-
value:
|
|
313
|
+
value: currentTime.split(':'),
|
|
339
314
|
onChange: handleChange,
|
|
340
315
|
onConfirm: handleConfirm
|
|
341
316
|
}));
|
|
342
317
|
};
|
|
318
|
+
const DatetimePicker = /*#__PURE__*/_react().default.memo(DatetimePickerImpl);
|
|
343
319
|
var _default = exports.default = DatetimePicker;
|
|
@@ -5,7 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useDatetimePickerTokens = void 0;
|
|
7
7
|
var _designSystem = require("../../design-system");
|
|
8
|
-
const createDatetimePickerTokens = _foundations => {
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const createDatetimePickerTokens = _foundations => ({
|
|
9
|
+
defaults: {
|
|
10
|
+
yearRangeOffset: 10,
|
|
11
|
+
dateInteractionMode: 'freeze',
|
|
12
|
+
timeInteractionMode: 'freeze',
|
|
13
|
+
minHour: 0,
|
|
14
|
+
maxHour: 23,
|
|
15
|
+
minMinute: 0,
|
|
16
|
+
maxMinute: 59,
|
|
17
|
+
popupPlacement: 'bottom',
|
|
18
|
+
popupRound: true,
|
|
19
|
+
popupSafeAreaInsetBottom: true
|
|
20
|
+
}
|
|
21
|
+
});
|
|
11
22
|
const useDatetimePickerTokens = exports.useDatetimePickerTokens = (0, _designSystem.createComponentTokensHook)('datetimePicker', createDatetimePickerTokens);
|