react-native-system-ui 0.0.5 → 0.0.6
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/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
- package/dist/cjs/components/area/Area.js +72 -6
- package/dist/cjs/components/area/tokens.js +11 -0
- package/dist/cjs/components/avatar/Avatar.js +42 -10
- package/dist/cjs/components/badge/Badge.js +10 -10
- package/dist/cjs/components/badge/tokens.js +4 -0
- package/dist/cjs/components/button/Button.js +16 -65
- package/dist/cjs/components/button/ButtonContext.js +7 -10
- package/dist/cjs/components/button/ButtonGroup.js +13 -15
- package/dist/cjs/components/button/tokens.js +1 -5
- package/dist/cjs/components/calendar/Calendar.js +23 -12
- package/dist/cjs/components/cascader/Cascader.js +18 -13
- package/dist/cjs/components/cell/Cell.js +3 -3
- package/dist/cjs/components/cell/CellGroup.js +26 -21
- package/dist/cjs/components/checkbox/Checkbox.js +5 -4
- package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
- package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
- package/dist/cjs/components/circle/Circle.js +6 -6
- package/dist/cjs/components/collapse/Collapse.js +10 -10
- package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
- package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
- package/dist/cjs/components/config-provider/tokens.js +11 -0
- package/dist/cjs/components/count-down/CountDown.js +6 -6
- package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
- package/dist/cjs/components/datetime-picker/tokens.js +11 -0
- package/dist/cjs/components/dialog/Dialog.js +39 -34
- package/dist/cjs/components/dialog/tokens.js +1 -4
- package/dist/cjs/components/divider/Divider.js +36 -1
- package/dist/cjs/components/field/Field.js +303 -201
- package/dist/cjs/components/flex/Flex.js +7 -3
- package/dist/cjs/components/flex/FlexContext.js +7 -14
- package/dist/cjs/components/form/Form.js +112 -122
- package/dist/cjs/components/form/FormContext.js +7 -10
- package/dist/cjs/components/form/FormItem.js +30 -4
- package/dist/cjs/components/form/FormList.js +16 -3
- package/dist/cjs/components/form/tokens.js +11 -0
- package/dist/cjs/components/form/utils.js +2 -1
- package/dist/cjs/components/grid/Grid.js +45 -31
- package/dist/cjs/components/grid/GridContext.js +7 -10
- package/dist/cjs/components/grid/GridItem.js +22 -22
- package/dist/cjs/components/image/Image.js +17 -13
- package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
- package/dist/cjs/components/index.js +43 -141
- package/dist/cjs/components/input/Input.js +19 -5
- package/dist/cjs/components/loading/Loading.js +10 -139
- package/dist/cjs/components/loading/tokens.js +0 -24
- package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
- package/dist/cjs/components/notify/Notify.js +63 -22
- package/dist/cjs/components/notify/imperative.js +2 -2
- package/dist/cjs/components/notify/tokens.js +11 -1
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
- package/dist/cjs/components/overlay/Overlay.js +70 -77
- package/dist/cjs/components/overlay/index.js +13 -27
- package/dist/cjs/components/overlay/tokens.js +4 -31
- package/dist/cjs/components/password-input/PasswordInput.js +2 -41
- package/dist/cjs/components/password-input/tokens.js +53 -0
- package/dist/cjs/components/picker/Picker.js +618 -38
- package/dist/cjs/components/popup/Popup.js +60 -47
- package/dist/cjs/components/portal/Portal.js +39 -31
- package/dist/cjs/components/portal/PortalHost.js +258 -213
- package/dist/cjs/components/portal/tokens.js +11 -0
- package/dist/cjs/components/progress/Progress.js +77 -36
- package/dist/cjs/components/progress/index.js +6 -0
- package/dist/cjs/components/radio/Radio.js +35 -12
- package/dist/cjs/components/radio/RadioContext.js +7 -10
- package/dist/cjs/components/radio/RadioGroup.js +23 -20
- package/dist/cjs/components/safe-area-view/tokens.js +11 -0
- package/dist/cjs/components/search/Search.js +16 -16
- package/dist/cjs/components/selector/Selector.js +6 -6
- package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
- package/dist/cjs/components/sidebar/Sidebar.js +27 -22
- package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
- package/dist/cjs/components/skeleton/Skeleton.js +34 -21
- package/dist/cjs/components/slider/Slider.js +135 -78
- package/dist/cjs/components/stepper/Stepper.js +12 -10
- package/dist/cjs/components/swiper/Swiper.js +247 -710
- package/dist/cjs/components/swiper/SwiperItem.js +5 -33
- package/dist/cjs/components/swiper/tokens.js +11 -0
- package/dist/cjs/components/switch/Switch.js +46 -98
- package/dist/cjs/components/switch/tokens.js +1 -55
- package/dist/cjs/components/tabbar/Tabbar.js +26 -22
- package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
- package/dist/cjs/components/tabbar/tokens.js +0 -2
- package/dist/cjs/components/tabs/Tabs.js +268 -94
- package/dist/cjs/components/tabs/index.js +4 -5
- package/dist/cjs/components/toast/Toast.js +72 -27
- package/dist/cjs/components/toast/imperative.js +2 -2
- package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
- package/dist/cjs/hooks/index.js +12 -12
- package/dist/cjs/hooks/overlay/index.js +27 -0
- package/dist/cjs/hooks/useHairline.js +0 -4
- package/dist/cjs/platform/scrollLock.js +1 -1
- package/dist/cjs/utils/compare.js +26 -0
- package/dist/cjs/utils/index.js +11 -0
- package/dist/es/components/action-sheet/ActionSheet.js +29 -23
- package/dist/es/components/area/Area.js +73 -7
- package/dist/es/components/area/tokens.js +5 -0
- package/dist/es/components/avatar/Avatar.js +42 -10
- package/dist/es/components/badge/Badge.js +11 -11
- package/dist/es/components/badge/tokens.js +4 -0
- package/dist/es/components/button/Button.js +17 -65
- package/dist/es/components/button/ButtonContext.js +1 -2
- package/dist/es/components/button/ButtonGroup.js +10 -12
- package/dist/es/components/button/tokens.js +1 -5
- package/dist/es/components/calendar/Calendar.js +24 -13
- package/dist/es/components/cascader/Cascader.js +16 -11
- package/dist/es/components/cell/Cell.js +4 -4
- package/dist/es/components/cell/CellGroup.js +25 -20
- package/dist/es/components/checkbox/Checkbox.js +5 -4
- package/dist/es/components/checkbox/CheckboxContext.js +1 -2
- package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
- package/dist/es/components/circle/Circle.js +7 -7
- package/dist/es/components/collapse/Collapse.js +11 -11
- package/dist/es/components/config-provider/locale/en-US.js +66 -4
- package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
- package/dist/es/components/config-provider/tokens.js +5 -0
- package/dist/es/components/count-down/CountDown.js +7 -7
- package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
- package/dist/es/components/datetime-picker/tokens.js +5 -0
- package/dist/es/components/dialog/Dialog.js +40 -35
- package/dist/es/components/dialog/tokens.js +1 -4
- package/dist/es/components/divider/Divider.js +36 -1
- package/dist/es/components/field/Field.js +304 -202
- package/dist/es/components/flex/Flex.js +5 -1
- package/dist/es/components/flex/FlexContext.js +1 -6
- package/dist/es/components/form/Form.js +89 -99
- package/dist/es/components/form/FormContext.js +1 -2
- package/dist/es/components/form/FormItem.js +32 -6
- package/dist/es/components/form/FormList.js +18 -5
- package/dist/es/components/form/tokens.js +5 -0
- package/dist/es/components/form/utils.js +1 -0
- package/dist/es/components/grid/Grid.js +43 -29
- package/dist/es/components/grid/GridContext.js +1 -2
- package/dist/es/components/grid/GridItem.js +24 -24
- package/dist/es/components/image/Image.js +18 -14
- package/dist/es/components/image-preview/ImagePreview.js +44 -42
- package/dist/es/components/index.js +2 -17
- package/dist/es/components/input/Input.js +20 -6
- package/dist/es/components/loading/Loading.js +10 -139
- package/dist/es/components/loading/tokens.js +0 -24
- package/dist/es/components/notice-bar/NoticeBar.js +46 -42
- package/dist/es/components/notify/Notify.js +63 -22
- package/dist/es/components/notify/imperative.js +2 -2
- package/dist/es/components/notify/tokens.js +5 -1
- package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
- package/dist/es/components/overlay/Overlay.js +58 -75
- package/dist/es/components/overlay/index.js +3 -4
- package/dist/es/components/overlay/tokens.js +3 -29
- package/dist/es/components/password-input/PasswordInput.js +1 -40
- package/dist/es/components/password-input/tokens.js +41 -0
- package/dist/es/components/picker/Picker.js +610 -34
- package/dist/es/components/popup/Popup.js +62 -49
- package/dist/es/components/portal/Portal.js +37 -31
- package/dist/es/components/portal/PortalHost.js +257 -211
- package/dist/es/components/portal/tokens.js +5 -0
- package/dist/es/components/progress/Progress.js +76 -36
- package/dist/es/components/progress/index.js +2 -1
- package/dist/es/components/radio/Radio.js +37 -14
- package/dist/es/components/radio/RadioContext.js +1 -2
- package/dist/es/components/radio/RadioGroup.js +23 -20
- package/dist/es/components/safe-area-view/tokens.js +5 -0
- package/dist/es/components/search/Search.js +17 -17
- package/dist/es/components/selector/Selector.js +7 -7
- package/dist/es/components/share-sheet/ShareSheet.js +51 -47
- package/dist/es/components/sidebar/Sidebar.js +26 -21
- package/dist/es/components/sidebar/SidebarItem.js +26 -22
- package/dist/es/components/skeleton/Skeleton.js +35 -22
- package/dist/es/components/slider/Slider.js +132 -75
- package/dist/es/components/stepper/Stepper.js +13 -11
- package/dist/es/components/swiper/Swiper.js +248 -711
- package/dist/es/components/swiper/SwiperItem.js +1 -21
- package/dist/es/components/swiper/tokens.js +5 -0
- package/dist/es/components/switch/Switch.js +49 -101
- package/dist/es/components/switch/tokens.js +1 -49
- package/dist/es/components/tabbar/Tabbar.js +27 -23
- package/dist/es/components/tabbar/TabbarItem.js +22 -22
- package/dist/es/components/tabbar/tokens.js +0 -2
- package/dist/es/components/tabs/Tabs.js +264 -90
- package/dist/es/components/tabs/index.js +1 -2
- package/dist/es/components/toast/Toast.js +72 -28
- package/dist/es/components/toast/imperative.js +2 -2
- package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
- package/dist/es/hooks/index.js +1 -1
- package/dist/es/hooks/overlay/index.js +3 -0
- package/dist/es/hooks/useHairline.js +0 -4
- package/dist/es/platform/scrollLock.js +1 -1
- package/dist/es/utils/compare.js +18 -0
- package/dist/es/utils/index.js +1 -1
- package/dist/types/components/area/tokens.d.ts +3 -0
- package/dist/types/components/avatar/Avatar.d.ts +4 -2
- package/dist/types/components/button/ButtonContext.d.ts +2 -16
- package/dist/types/components/button/ButtonGroup.d.ts +14 -1
- package/dist/types/components/button/index.d.ts +1 -1
- package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
- package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
- package/dist/types/components/collapse/Collapse.d.ts +0 -1
- package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
- package/dist/types/components/config-provider/tokens.d.ts +3 -0
- package/dist/types/components/config-provider/useLocale.d.ts +1 -74
- package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
- package/dist/types/components/flex/Flex.d.ts +6 -0
- package/dist/types/components/flex/FlexContext.d.ts +2 -8
- package/dist/types/components/form/Form.d.ts +15 -1
- package/dist/types/components/form/FormContext.d.ts +2 -17
- package/dist/types/components/form/tokens.d.ts +3 -0
- package/dist/types/components/form/utils.d.ts +1 -0
- package/dist/types/components/grid/Grid.d.ts +16 -1
- package/dist/types/components/grid/GridContext.d.ts +2 -17
- package/dist/types/components/index.d.ts +3 -33
- package/dist/types/components/loading/index.d.ts +1 -1
- package/dist/types/components/notify/Notify.d.ts +1 -0
- package/dist/types/components/overlay/Overlay.d.ts +6 -1
- package/dist/types/components/overlay/index.d.ts +2 -3
- package/dist/types/components/overlay/tokens.d.ts +2 -3
- package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
- package/dist/types/components/password-input/tokens.d.ts +40 -0
- package/dist/types/components/picker/Picker.d.ts +18 -2
- package/dist/types/components/picker/index.d.ts +1 -1
- package/dist/types/components/portal/Portal.d.ts +4 -6
- package/dist/types/components/portal/PortalHost.d.ts +1 -15
- package/dist/types/components/portal/tokens.d.ts +3 -0
- package/dist/types/components/progress/Progress.d.ts +4 -0
- package/dist/types/components/progress/index.d.ts +2 -1
- package/dist/types/components/radio/RadioContext.d.ts +2 -13
- package/dist/types/components/radio/RadioGroup.d.ts +12 -1
- package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
- package/dist/types/components/swiper/Swiper.d.ts +4 -2
- package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
- package/dist/types/components/swiper/tokens.d.ts +3 -0
- package/dist/types/components/tabs/Tabs.d.ts +8 -4
- package/dist/types/components/tabs/index.d.ts +3 -1
- package/dist/types/components/toast/Toast.d.ts +1 -4
- package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
- package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
- package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
- package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
- package/dist/types/hooks/index.d.ts +1 -1
- package/dist/types/hooks/overlay/index.d.ts +2 -0
- package/dist/types/hooks/useHairline.d.ts +0 -21
- package/dist/types/utils/compare.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +10 -48
- package/dist/cjs/components/area/utils.js +0 -74
- package/dist/cjs/components/cascader/utils.js +0 -20
- package/dist/cjs/components/config-provider/locale/base.js +0 -80
- package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
- package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
- package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
- package/dist/cjs/components/dropdown-menu/index.js +0 -25
- package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
- package/dist/cjs/components/field/utils.js +0 -24
- package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
- package/dist/cjs/components/index-bar/IndexBar.js +0 -436
- package/dist/cjs/components/index-bar/index.js +0 -25
- package/dist/cjs/components/index-bar/tokens.js +0 -45
- package/dist/cjs/components/list/List.js +0 -165
- package/dist/cjs/components/list/index.js +0 -9
- package/dist/cjs/components/list/tokens.js +0 -39
- package/dist/cjs/components/notify/defaults.js +0 -15
- package/dist/cjs/components/pagination/Pagination.js +0 -160
- package/dist/cjs/components/pagination/index.js +0 -22
- package/dist/cjs/components/pagination/tokens.js +0 -103
- package/dist/cjs/components/picker/WheelPicker.js +0 -492
- package/dist/cjs/components/picker/utils.js +0 -138
- package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
- package/dist/cjs/components/pull-refresh/index.js +0 -16
- package/dist/cjs/components/pull-refresh/tokens.js +0 -22
- package/dist/cjs/components/rate/Rate.js +0 -269
- package/dist/cjs/components/rate/index.js +0 -15
- package/dist/cjs/components/rate/tokens.js +0 -60
- package/dist/cjs/components/slider/utils.js +0 -60
- package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
- package/dist/cjs/components/swiper/utils.js +0 -49
- package/dist/cjs/components/tabs/TabPane.js +0 -9
- package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
- package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
- package/dist/cjs/components/tabs/utils.js +0 -34
- package/dist/cjs/components/types.js +0 -1
- package/dist/cjs/components/uploader/Uploader.js +0 -557
- package/dist/cjs/components/uploader/index.js +0 -22
- package/dist/cjs/components/uploader/tokens.js +0 -58
- package/dist/cjs/components/uploader/utils.js +0 -72
- package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
- package/dist/es/components/area/utils.js +0 -67
- package/dist/es/components/cascader/utils.js +0 -13
- package/dist/es/components/config-provider/locale/base.js +0 -74
- package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
- package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
- package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
- package/dist/es/components/dropdown-menu/index.js +0 -7
- package/dist/es/components/dropdown-menu/tokens.js +0 -61
- package/dist/es/components/field/utils.js +0 -17
- package/dist/es/components/index-bar/IndexAnchor.js +0 -55
- package/dist/es/components/index-bar/IndexBar.js +0 -417
- package/dist/es/components/index-bar/index.js +0 -7
- package/dist/es/components/index-bar/tokens.js +0 -39
- package/dist/es/components/list/List.js +0 -145
- package/dist/es/components/list/index.js +0 -2
- package/dist/es/components/list/tokens.js +0 -32
- package/dist/es/components/notify/defaults.js +0 -9
- package/dist/es/components/pagination/Pagination.js +0 -141
- package/dist/es/components/pagination/index.js +0 -4
- package/dist/es/components/pagination/tokens.js +0 -91
- package/dist/es/components/picker/WheelPicker.js +0 -473
- package/dist/es/components/picker/utils.js +0 -127
- package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
- package/dist/es/components/pull-refresh/index.js +0 -3
- package/dist/es/components/pull-refresh/tokens.js +0 -16
- package/dist/es/components/rate/Rate.js +0 -250
- package/dist/es/components/rate/index.js +0 -3
- package/dist/es/components/rate/tokens.js +0 -53
- package/dist/es/components/slider/utils.js +0 -49
- package/dist/es/components/swiper/useSwiperWeb.js +0 -190
- package/dist/es/components/swiper/utils.js +0 -37
- package/dist/es/components/tabs/TabPane.js +0 -3
- package/dist/es/components/tabs/useTabsAnimation.js +0 -55
- package/dist/es/components/tabs/useTabsScroll.js +0 -114
- package/dist/es/components/tabs/utils.js +0 -19
- package/dist/es/components/types.js +0 -1
- package/dist/es/components/uploader/Uploader.js +0 -537
- package/dist/es/components/uploader/index.js +0 -4
- package/dist/es/components/uploader/tokens.js +0 -52
- package/dist/es/components/uploader/utils.js +0 -60
- package/dist/es/hooks/usePresenceAnimation.js +0 -51
- package/dist/types/components/area/utils.d.ts +0 -2
- package/dist/types/components/cascader/utils.d.ts +0 -6
- package/dist/types/components/config-provider/locale/base.d.ts +0 -74
- package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
- package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
- package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
- package/dist/types/components/dropdown-menu/index.d.ts +0 -8
- package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
- package/dist/types/components/field/utils.d.ts +0 -4
- package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
- package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
- package/dist/types/components/index-bar/index.d.ts +0 -9
- package/dist/types/components/index-bar/tokens.d.ts +0 -31
- package/dist/types/components/list/List.d.ts +0 -4
- package/dist/types/components/list/index.d.ts +0 -3
- package/dist/types/components/list/tokens.d.ts +0 -4
- package/dist/types/components/notify/defaults.d.ts +0 -10
- package/dist/types/components/pagination/Pagination.d.ts +0 -5
- package/dist/types/components/pagination/index.d.ts +0 -5
- package/dist/types/components/pagination/tokens.d.ts +0 -2
- package/dist/types/components/picker/WheelPicker.d.ts +0 -21
- package/dist/types/components/picker/utils.d.ts +0 -17
- package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
- package/dist/types/components/pull-refresh/index.d.ts +0 -4
- package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
- package/dist/types/components/rate/Rate.d.ts +0 -4
- package/dist/types/components/rate/index.d.ts +0 -4
- package/dist/types/components/rate/tokens.d.ts +0 -4
- package/dist/types/components/slider/utils.d.ts +0 -42
- package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
- package/dist/types/components/swiper/utils.d.ts +0 -17
- package/dist/types/components/tabs/TabPane.d.ts +0 -4
- package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
- package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
- package/dist/types/components/tabs/utils.d.ts +0 -5
- package/dist/types/components/types.d.ts +0 -59
- package/dist/types/components/uploader/Uploader.d.ts +0 -4
- package/dist/types/components/uploader/index.d.ts +0 -5
- package/dist/types/components/uploader/tokens.d.ts +0 -42
- package/dist/types/components/uploader/utils.d.ts +0 -11
- package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
- /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
- /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
- /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
- /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
- /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
- /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import { ActivityIndicator, Image as RNImage, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
4
|
import { SvgUri } from 'react-native-svg';
|
|
5
5
|
import { isNumber, isString, isText } from '../../utils';
|
|
@@ -105,11 +105,11 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
105
105
|
const {
|
|
106
106
|
container: containerLayoutStyle,
|
|
107
107
|
image: imageStyleWithoutLayout
|
|
108
|
-
} = splitImageStyle(style);
|
|
109
|
-
const actualSource = source ? source : src ? {
|
|
108
|
+
} = useMemo(() => splitImageStyle(style), [style]);
|
|
109
|
+
const actualSource = useMemo(() => source ? source : src ? {
|
|
110
110
|
uri: src
|
|
111
|
-
} : undefined;
|
|
112
|
-
const sourceKey = (() => {
|
|
111
|
+
} : undefined, [source, src]);
|
|
112
|
+
const sourceKey = useMemo(() => {
|
|
113
113
|
if (source) {
|
|
114
114
|
if (typeof source === 'number') return `res:${source}`;
|
|
115
115
|
const uri = resolveSourceUri(source);
|
|
@@ -118,7 +118,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
118
118
|
}
|
|
119
119
|
if (src) return `src:${src}`;
|
|
120
120
|
return 'none';
|
|
121
|
-
})
|
|
121
|
+
}, [source, src]);
|
|
122
122
|
const resolvedAccessibilityLabel = alt ?? accessibilityLabel ?? ariaLabel;
|
|
123
123
|
const [status, setStatus] = useState(() => actualSource ? 'loading' : 'idle');
|
|
124
124
|
useEffect(() => {
|
|
@@ -144,11 +144,11 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
}, [handleError]);
|
|
147
|
-
const uri = resolveSourceUri(actualSource);
|
|
148
|
-
const normalizedUri = isString(uri) ? uri.toLowerCase() : undefined;
|
|
149
|
-
const isSvg = !!normalizedUri && (normalizedUri.endsWith('.svg') || normalizedUri.includes('.svg?') || normalizedUri.includes('/svg?'));
|
|
150
|
-
const resolvedLoadingSize = isNumber(loadingSize) ? loadingSize : tokens.defaults.loadingIndicatorBaseSize;
|
|
151
|
-
const resolvedErrorIconSize = iconSizeProp ?? tokens.defaults.iconSize;
|
|
147
|
+
const uri = useMemo(() => resolveSourceUri(actualSource), [actualSource]);
|
|
148
|
+
const normalizedUri = useMemo(() => isString(uri) ? uri.toLowerCase() : undefined, [uri]);
|
|
149
|
+
const isSvg = useMemo(() => !!normalizedUri && (normalizedUri.endsWith('.svg') || normalizedUri.includes('.svg?') || normalizedUri.includes('/svg?')), [normalizedUri]);
|
|
150
|
+
const resolvedLoadingSize = useMemo(() => isNumber(loadingSize) ? loadingSize : tokens.defaults.loadingIndicatorBaseSize, [loadingSize, tokens.defaults.loadingIndicatorBaseSize]);
|
|
151
|
+
const resolvedErrorIconSize = useMemo(() => iconSizeProp ?? tokens.defaults.iconSize, [iconSizeProp, tokens.defaults.iconSize]);
|
|
152
152
|
const containerRole = onPress ? 'button' : undefined;
|
|
153
153
|
const pressableProps = onPress ? {
|
|
154
154
|
onPress
|
|
@@ -170,7 +170,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
170
170
|
}
|
|
171
171
|
}, node) : node;
|
|
172
172
|
};
|
|
173
|
-
const containerStyles = [tokens.layout.container, {
|
|
173
|
+
const containerStyles = useMemo(() => [tokens.layout.container, {
|
|
174
174
|
width: width,
|
|
175
175
|
height: height,
|
|
176
176
|
backgroundColor: tokens.colors.background
|
|
@@ -178,8 +178,12 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
178
178
|
borderRadius: tokens.defaults.roundRadius
|
|
179
179
|
} : isNumber(radius) ? {
|
|
180
180
|
borderRadius: radius
|
|
181
|
-
} : undefined, containerStyle, containerLayoutStyle];
|
|
181
|
+
} : undefined, containerStyle, containerLayoutStyle], [containerLayoutStyle, containerStyle, height, radius, round, tokens.colors.background, tokens.defaults.roundRadius, tokens.layout.container, width]);
|
|
182
182
|
const imageAccessibilityLabel = !onPress ? resolvedAccessibilityLabel : undefined;
|
|
183
|
+
const webImageStyle = Platform.OS === 'web' ? {
|
|
184
|
+
height: 'revert-layer',
|
|
185
|
+
width: 'revert-layer'
|
|
186
|
+
} : undefined;
|
|
183
187
|
const imageNode = actualSource ? isSvg && Platform.OS !== 'web' && uri ? /*#__PURE__*/React.createElement(SvgUri, _extends({
|
|
184
188
|
width: "100%",
|
|
185
189
|
height: "100%",
|
|
@@ -197,7 +201,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
197
201
|
accessibilityLabel: imageAccessibilityLabel
|
|
198
202
|
}, rest, {
|
|
199
203
|
source: actualSource,
|
|
200
|
-
style: [tokens.layout.absoluteFill, imageStyleWithoutLayout],
|
|
204
|
+
style: [tokens.layout.absoluteFill, imageStyleWithoutLayout, webImageStyle],
|
|
201
205
|
resizeMode: resolveFitMode(fit),
|
|
202
206
|
onLoad: handleLoad,
|
|
203
207
|
onError: handleError
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { Image as RNImage, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
4
|
import Popup from '../popup';
|
|
5
5
|
import Swiper from '../swiper';
|
|
@@ -80,9 +80,9 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
80
80
|
beforeClose,
|
|
81
81
|
onClose
|
|
82
82
|
};
|
|
83
|
-
const resolvedImages = images.map(img => isString(img) ? {
|
|
83
|
+
const resolvedImages = useMemo(() => images.map(img => isString(img) ? {
|
|
84
84
|
uri: img
|
|
85
|
-
} : img);
|
|
85
|
+
} : img), [images]);
|
|
86
86
|
useEffect(() => {
|
|
87
87
|
setActive(current => clampIndex(current, imagesLen));
|
|
88
88
|
}, [imagesLen]);
|
|
@@ -180,45 +180,48 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
180
180
|
if (dx * dx + dy * dy >= TAP_MOVE_THRESHOLD_SQ) return;
|
|
181
181
|
handleImagePress();
|
|
182
182
|
}, [handleImagePress, resetTap]);
|
|
183
|
-
const pressableHandlers = {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (IS_WEB) {
|
|
208
|
-
pressableHandlers.onMouseDown = e => {
|
|
209
|
-
const ne = e.nativeEvent;
|
|
210
|
-
if (ne?.pageX != null && ne?.pageY != null) markTapStart(ne.pageX, ne.pageY);
|
|
211
|
-
};
|
|
212
|
-
pressableHandlers.onMouseMove = e => {
|
|
213
|
-
const ne = e.nativeEvent;
|
|
214
|
-
if (ne?.buttons !== 1) return;
|
|
215
|
-
if (ne?.pageX != null && ne?.pageY != null) markTapMove(ne.pageX, ne.pageY);
|
|
216
|
-
};
|
|
217
|
-
pressableHandlers.onMouseUp = e => {
|
|
218
|
-
const ne = e.nativeEvent;
|
|
219
|
-
if (ne?.pageX != null && ne?.pageY != null) tryTapEnd(ne.pageX, ne.pageY);
|
|
183
|
+
const pressableHandlers = useMemo(() => {
|
|
184
|
+
const handlers = {
|
|
185
|
+
onTouchStart: e => {
|
|
186
|
+
const {
|
|
187
|
+
pageX,
|
|
188
|
+
pageY
|
|
189
|
+
} = e.nativeEvent;
|
|
190
|
+
if (pageX != null && pageY != null) markTapStart(pageX, pageY);
|
|
191
|
+
},
|
|
192
|
+
onTouchMove: e => {
|
|
193
|
+
const {
|
|
194
|
+
pageX,
|
|
195
|
+
pageY
|
|
196
|
+
} = e.nativeEvent;
|
|
197
|
+
if (pageX != null && pageY != null) markTapMove(pageX, pageY);
|
|
198
|
+
},
|
|
199
|
+
onTouchEnd: e => {
|
|
200
|
+
const {
|
|
201
|
+
pageX,
|
|
202
|
+
pageY
|
|
203
|
+
} = e.nativeEvent;
|
|
204
|
+
if (pageX != null && pageY != null) tryTapEnd(pageX, pageY);
|
|
205
|
+
},
|
|
206
|
+
onTouchCancel: resetTap
|
|
220
207
|
};
|
|
221
|
-
|
|
208
|
+
if (IS_WEB) {
|
|
209
|
+
handlers.onMouseDown = e => {
|
|
210
|
+
const ne = e.nativeEvent;
|
|
211
|
+
if (ne?.pageX != null && ne?.pageY != null) markTapStart(ne.pageX, ne.pageY);
|
|
212
|
+
};
|
|
213
|
+
handlers.onMouseMove = e => {
|
|
214
|
+
const ne = e.nativeEvent;
|
|
215
|
+
if (ne?.buttons !== 1) return;
|
|
216
|
+
if (ne?.pageX != null && ne?.pageY != null) markTapMove(ne.pageX, ne.pageY);
|
|
217
|
+
};
|
|
218
|
+
handlers.onMouseUp = e => {
|
|
219
|
+
const ne = e.nativeEvent;
|
|
220
|
+
if (ne?.pageX != null && ne?.pageY != null) tryTapEnd(ne.pageX, ne.pageY);
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
return handlers;
|
|
224
|
+
}, [markTapMove, markTapStart, resetTap, tryTapEnd]);
|
|
222
225
|
const renderIndex = useCallback((current, total) => {
|
|
223
226
|
if (!showIndex || total === 0) return null;
|
|
224
227
|
const indexText = `${current + 1} / ${total}`;
|
|
@@ -283,7 +286,6 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
283
286
|
initialSwipe: clampIndex(startPosition, imagesLen),
|
|
284
287
|
loop: false,
|
|
285
288
|
autoplay: false,
|
|
286
|
-
duration: swipeDuration,
|
|
287
289
|
touchable: imagesLen > 1,
|
|
288
290
|
indicator: (total, current) => /*#__PURE__*/React.createElement(React.Fragment, null, renderIndex(current, total), showIndicators && total > 1 && /*#__PURE__*/React.createElement(Swiper.PagIndicator, {
|
|
289
291
|
total: total,
|
|
@@ -49,8 +49,6 @@ export { default as Slider } from './slider';
|
|
|
49
49
|
export { useSliderTokens } from './slider/tokens';
|
|
50
50
|
export { default as Stepper } from './stepper';
|
|
51
51
|
export { useStepperTokens } from './stepper/tokens';
|
|
52
|
-
export { default as Rate } from './rate';
|
|
53
|
-
export { useRateTokens } from './rate/tokens';
|
|
54
52
|
export { default as Selector } from './selector';
|
|
55
53
|
export { useSelectorTokens } from './selector/tokens';
|
|
56
54
|
export { default as Search } from './search';
|
|
@@ -64,8 +62,7 @@ export { default as Collapse } from './collapse';
|
|
|
64
62
|
export { useCollapseTokens } from './collapse/tokens';
|
|
65
63
|
export { default as Popup } from './popup';
|
|
66
64
|
export { usePopupTokens } from './popup/tokens';
|
|
67
|
-
export { default as Overlay } from './overlay';
|
|
68
|
-
export { useOverlayTokens } from './overlay/tokens';
|
|
65
|
+
export { default as Overlay, OverlayProvider } from './overlay';
|
|
69
66
|
export { default as Dialog } from './dialog';
|
|
70
67
|
export { useDialogTokens } from './dialog/tokens';
|
|
71
68
|
export { default as Toast } from './toast';
|
|
@@ -92,32 +89,20 @@ export { default as NavBar } from './nav-bar';
|
|
|
92
89
|
export { useNavBarTokens } from './nav-bar/tokens';
|
|
93
90
|
export { default as Sidebar } from './sidebar';
|
|
94
91
|
export { useSidebarTokens } from './sidebar/tokens';
|
|
95
|
-
export { default as IndexBar } from './index-bar';
|
|
96
|
-
export { useIndexBarTokens } from './index-bar/tokens';
|
|
97
92
|
export { default as ActionSheet } from './action-sheet';
|
|
98
93
|
export { useActionSheetTokens } from './action-sheet/tokens';
|
|
99
94
|
export { default as ShareSheet } from './share-sheet';
|
|
100
95
|
export { useShareSheetTokens } from './share-sheet/tokens';
|
|
101
|
-
export { default as DropdownMenu } from './dropdown-menu';
|
|
102
|
-
export { useDropdownMenuTokens } from './dropdown-menu/tokens';
|
|
103
96
|
export { default as Area } from './area';
|
|
104
|
-
export { default as List } from './list';
|
|
105
|
-
export { useListTokens } from './list/tokens';
|
|
106
|
-
export { default as PullRefresh } from './pull-refresh';
|
|
107
|
-
export { usePullRefreshTokens } from './pull-refresh/tokens';
|
|
108
97
|
export { default as ImagePreview } from './image-preview';
|
|
109
98
|
export { useImagePreviewTokens } from './image-preview/tokens';
|
|
110
99
|
export { default as Swiper } from './swiper';
|
|
111
100
|
export { SwiperItem } from './swiper';
|
|
112
101
|
export { SwiperPagIndicator } from './swiper';
|
|
113
102
|
export { useSwiperPagIndicatorTokens } from './swiper';
|
|
114
|
-
export { default as Uploader } from './uploader';
|
|
115
|
-
export { useUploaderTokens } from './uploader';
|
|
116
103
|
export { default as Skeleton } from './skeleton';
|
|
117
104
|
export { useSkeletonTokens } from './skeleton';
|
|
118
105
|
export { default as CountDown } from './count-down';
|
|
119
106
|
export { useCountDownTokens } from './count-down/tokens';
|
|
120
107
|
export { default as WaterMark } from './water-mark';
|
|
121
|
-
export { useWaterMarkTokens } from './water-mark/tokens';
|
|
122
|
-
export { default as Pagination } from './pagination';
|
|
123
|
-
export { usePaginationTokens } from './pagination/tokens';
|
|
108
|
+
export { useWaterMarkTokens } from './water-mark/tokens';
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useCallback, useImperativeHandle, useRef } from 'react';
|
|
2
|
+
import React, { useCallback, useImperativeHandle, useRef, useMemo } from 'react';
|
|
3
3
|
import { isBoolean, isFiniteNumber } from '../../utils/validate';
|
|
4
4
|
import Field from '../field';
|
|
5
5
|
import { useFieldTokens } from '../field/tokens';
|
|
6
6
|
import { useInputTokens } from './tokens';
|
|
7
|
+
const mapKeyboardType = type => {
|
|
8
|
+
switch (type) {
|
|
9
|
+
case 'number':
|
|
10
|
+
return 'decimal-pad';
|
|
11
|
+
case 'digit':
|
|
12
|
+
return 'number-pad';
|
|
13
|
+
case 'tel':
|
|
14
|
+
return 'phone-pad';
|
|
15
|
+
default:
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
7
19
|
const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
8
20
|
const {
|
|
9
21
|
type,
|
|
@@ -15,6 +27,7 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
15
27
|
onChangeText,
|
|
16
28
|
showWordLimit,
|
|
17
29
|
style,
|
|
30
|
+
inputStyle,
|
|
18
31
|
fieldTokensOverride,
|
|
19
32
|
tokensOverride,
|
|
20
33
|
...rest
|
|
@@ -35,12 +48,12 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
35
48
|
}), []);
|
|
36
49
|
const resolvedInputAlign = align ?? inputAlignProp ?? tokens.defaults.inputAlign;
|
|
37
50
|
const resolvedClearTrigger = clearTriggerOverride ?? tokens.defaults.clearTrigger;
|
|
38
|
-
const resolvedKeyboardType = keyboardTypeProp ?? (type
|
|
39
|
-
const fieldStyle = [{
|
|
51
|
+
const resolvedKeyboardType = keyboardTypeProp ?? mapKeyboardType(type);
|
|
52
|
+
const fieldStyle = useMemo(() => [{
|
|
40
53
|
paddingHorizontal: tokens.spacing.paddingHorizontal,
|
|
41
54
|
paddingVertical: tokens.spacing.paddingVertical,
|
|
42
55
|
backgroundColor: tokens.colors.background
|
|
43
|
-
}, style];
|
|
56
|
+
}, style], [style, tokens.colors.background, tokens.spacing.paddingHorizontal, tokens.spacing.paddingVertical]);
|
|
44
57
|
return /*#__PURE__*/React.createElement(Field, _extends({
|
|
45
58
|
ref: inputRef
|
|
46
59
|
}, rest, {
|
|
@@ -51,6 +64,7 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
51
64
|
inputAlign: resolvedInputAlign,
|
|
52
65
|
clearTrigger: resolvedClearTrigger,
|
|
53
66
|
style: fieldStyle,
|
|
67
|
+
inputStyle: inputStyle,
|
|
54
68
|
showWordLimit: showWordLimit,
|
|
55
69
|
onChangeText: handleChangeText
|
|
56
70
|
}));
|
|
@@ -67,14 +81,14 @@ const TextArea = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
67
81
|
if (!isFiniteNumber(height) || height <= 0) return undefined;
|
|
68
82
|
return Math.max(1, Math.round(height / lineHeight));
|
|
69
83
|
}, [lineHeight]);
|
|
70
|
-
const resolvedAutoSize = !autoSize || isBoolean(autoSize) ? autoSize : (() => {
|
|
84
|
+
const resolvedAutoSize = useMemo(() => !autoSize || isBoolean(autoSize) ? autoSize : (() => {
|
|
71
85
|
const minRows = toRows(autoSize.minHeight);
|
|
72
86
|
const maxRows = toRows(autoSize.maxHeight);
|
|
73
87
|
return minRows || maxRows ? {
|
|
74
88
|
minRows,
|
|
75
89
|
maxRows
|
|
76
90
|
} : undefined;
|
|
77
|
-
})();
|
|
91
|
+
})(), [autoSize, toRows]);
|
|
78
92
|
return /*#__PURE__*/React.createElement(InputComponent, _extends({
|
|
79
93
|
ref: ref
|
|
80
94
|
}, rest, {
|
|
@@ -1,8 +1,6 @@
|
|
|
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
|
|
3
|
-
import {
|
|
4
|
-
import { nativeDriverEnabled } from '../../platform';
|
|
5
|
-
import { withAlpha } from '../../utils/color';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ActivityIndicator, Text, View } from 'react-native';
|
|
6
4
|
import { isText } from '../../utils/validate';
|
|
7
5
|
import { useLoadingTokens } from './tokens';
|
|
8
6
|
export const Loading = props => {
|
|
@@ -12,8 +10,9 @@ export const Loading = props => {
|
|
|
12
10
|
size: sizeProp,
|
|
13
11
|
textSize: textSizeProp,
|
|
14
12
|
textColor: textColorProp,
|
|
15
|
-
type: typeProp,
|
|
16
13
|
vertical: verticalProp,
|
|
14
|
+
accessibilityLabel,
|
|
15
|
+
['aria-label']: ariaLabel,
|
|
17
16
|
style,
|
|
18
17
|
textStyle,
|
|
19
18
|
contentStyle,
|
|
@@ -25,142 +24,14 @@ export const Loading = props => {
|
|
|
25
24
|
const size = sizeProp ?? tokens.defaults.size;
|
|
26
25
|
const textSize = textSizeProp ?? tokens.defaults.textSize;
|
|
27
26
|
const textColor = textColorProp ?? tokens.colors.text;
|
|
28
|
-
const type = typeProp ?? tokens.defaults.type;
|
|
29
27
|
const vertical = verticalProp ?? tokens.defaults.vertical;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
duration: 1000,
|
|
37
|
-
easing: Easing.linear,
|
|
38
|
-
useNativeDriver: nativeDriverEnabled
|
|
39
|
-
}));
|
|
40
|
-
animation.start();
|
|
41
|
-
return () => animation.stop();
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
}, [type]);
|
|
45
|
-
const rotateValue = spinValue.interpolate({
|
|
46
|
-
inputRange: [0, 1],
|
|
47
|
-
outputRange: ['0deg', '360deg']
|
|
28
|
+
const resolvedAccessibilityLabel = ariaLabel ?? accessibilityLabel ?? 'loading';
|
|
29
|
+
const indicator = /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
30
|
+
testID: "rv-loading-spinner",
|
|
31
|
+
size: size,
|
|
32
|
+
color: color,
|
|
33
|
+
accessibilityLabel: resolvedAccessibilityLabel
|
|
48
34
|
});
|
|
49
|
-
const renderCircular = () => {
|
|
50
|
-
const thickness = Math.max(2, Math.min(size / 8, 6));
|
|
51
|
-
const trackColor = withAlpha(color, 0.2);
|
|
52
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
53
|
-
testID: "rv-loading-circular",
|
|
54
|
-
style: {
|
|
55
|
-
width: size,
|
|
56
|
-
height: size,
|
|
57
|
-
transform: [{
|
|
58
|
-
rotate: rotateValue
|
|
59
|
-
}]
|
|
60
|
-
}
|
|
61
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
62
|
-
pointerEvents: "none",
|
|
63
|
-
style: {
|
|
64
|
-
width: size,
|
|
65
|
-
height: size,
|
|
66
|
-
borderRadius: size / 2,
|
|
67
|
-
borderWidth: thickness,
|
|
68
|
-
borderColor: trackColor,
|
|
69
|
-
borderTopColor: color
|
|
70
|
-
}
|
|
71
|
-
}));
|
|
72
|
-
};
|
|
73
|
-
const renderSpinner = () => {
|
|
74
|
-
const innerGap = Math.min(size / 2 - 1, Math.max(0, tokens.sizing.spinner.innerGapRatio * size));
|
|
75
|
-
const lineWidth = Math.max(1, Math.min(size / 3, size / tokens.defaults.size * tokens.sizing.spinner.lineWidth));
|
|
76
|
-
const scaledLength = size / tokens.defaults.size * tokens.sizing.spinner.lineLength;
|
|
77
|
-
const maxLength = Math.max(2, size / 2 - innerGap);
|
|
78
|
-
const lineLength = Math.max(2, Math.min(maxLength, Math.max(tokens.sizing.spinner.lineLength, scaledLength)));
|
|
79
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
80
|
-
testID: "rv-loading-spinner",
|
|
81
|
-
style: {
|
|
82
|
-
width: size,
|
|
83
|
-
height: size,
|
|
84
|
-
transform: [{
|
|
85
|
-
rotate: rotateValue
|
|
86
|
-
}]
|
|
87
|
-
}
|
|
88
|
-
}, Array.from({
|
|
89
|
-
length: tokens.sizing.spinner.itemCount
|
|
90
|
-
}, (_, index) => {
|
|
91
|
-
const angle = index * 360 / tokens.sizing.spinner.itemCount;
|
|
92
|
-
const opacity = 0.2 + index / tokens.sizing.spinner.itemCount * 0.8;
|
|
93
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
94
|
-
key: index,
|
|
95
|
-
pointerEvents: "none",
|
|
96
|
-
style: [tokens.layout.spinnerItem, {
|
|
97
|
-
transform: [{
|
|
98
|
-
rotate: `${angle}deg`
|
|
99
|
-
}]
|
|
100
|
-
}]
|
|
101
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
102
|
-
style: [{
|
|
103
|
-
width: lineWidth,
|
|
104
|
-
height: lineLength,
|
|
105
|
-
borderRadius: lineWidth / 2,
|
|
106
|
-
backgroundColor: color,
|
|
107
|
-
opacity,
|
|
108
|
-
marginTop: size / 2 - lineLength - innerGap
|
|
109
|
-
}]
|
|
110
|
-
}));
|
|
111
|
-
}));
|
|
112
|
-
};
|
|
113
|
-
const renderBall = () => {
|
|
114
|
-
const itemCount = tokens.sizing.ball.itemCount;
|
|
115
|
-
const dotSize = Math.max(2, Math.round(size * tokens.sizing.ball.dotSizeRatio));
|
|
116
|
-
const gap = Math.max(1, Math.round(size * tokens.sizing.ball.gapRatio));
|
|
117
|
-
const totalWidth = dotSize * itemCount + gap * (itemCount - 1);
|
|
118
|
-
const pulseWidth = 0.4 / itemCount;
|
|
119
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
120
|
-
testID: "rv-loading-ball",
|
|
121
|
-
style: {
|
|
122
|
-
width: totalWidth,
|
|
123
|
-
height: size,
|
|
124
|
-
alignItems: 'center',
|
|
125
|
-
justifyContent: 'center'
|
|
126
|
-
}
|
|
127
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
128
|
-
style: {
|
|
129
|
-
flexDirection: 'row',
|
|
130
|
-
alignItems: 'center'
|
|
131
|
-
}
|
|
132
|
-
}, Array.from({
|
|
133
|
-
length: itemCount
|
|
134
|
-
}, (_, index) => {
|
|
135
|
-
const center = (index + 0.5) / itemCount;
|
|
136
|
-
const left = Math.max(0, center - pulseWidth);
|
|
137
|
-
const right = Math.min(1, center + pulseWidth);
|
|
138
|
-
const scale = spinValue.interpolate({
|
|
139
|
-
inputRange: [0, left, center, right, 1],
|
|
140
|
-
outputRange: [tokens.sizing.ball.dotScaleMin, tokens.sizing.ball.dotScaleMin, 1, tokens.sizing.ball.dotScaleMin, tokens.sizing.ball.dotScaleMin]
|
|
141
|
-
});
|
|
142
|
-
const opacity = spinValue.interpolate({
|
|
143
|
-
inputRange: [0, left, center, right, 1],
|
|
144
|
-
outputRange: [0.4, 0.4, 1, 0.4, 0.4]
|
|
145
|
-
});
|
|
146
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
147
|
-
key: index,
|
|
148
|
-
pointerEvents: "none",
|
|
149
|
-
style: {
|
|
150
|
-
width: dotSize,
|
|
151
|
-
height: dotSize,
|
|
152
|
-
borderRadius: dotSize / 2,
|
|
153
|
-
backgroundColor: color,
|
|
154
|
-
marginRight: index === itemCount - 1 ? 0 : gap,
|
|
155
|
-
opacity,
|
|
156
|
-
transform: [{
|
|
157
|
-
scale
|
|
158
|
-
}]
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
})));
|
|
162
|
-
};
|
|
163
|
-
const indicator = type === 'spinner' ? renderSpinner() : type === 'ball' ? renderBall() : renderCircular();
|
|
164
35
|
const hasChildren = children !== undefined && children !== null && children !== false;
|
|
165
36
|
const textSpacingStyle = {
|
|
166
37
|
marginLeft: vertical ? 0 : tokens.spacing.gap,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createComponentTokensHook } from '../../design-system';
|
|
2
2
|
export const createLoadingTokens = foundations => ({
|
|
3
3
|
defaults: {
|
|
4
|
-
type: 'circular',
|
|
5
4
|
size: 30,
|
|
6
5
|
textSize: foundations.fontSize.sm,
|
|
7
6
|
vertical: false
|
|
@@ -10,15 +9,6 @@ export const createLoadingTokens = foundations => ({
|
|
|
10
9
|
container: {
|
|
11
10
|
alignItems: 'center'
|
|
12
11
|
},
|
|
13
|
-
spinnerItem: {
|
|
14
|
-
position: 'absolute',
|
|
15
|
-
top: 0,
|
|
16
|
-
right: 0,
|
|
17
|
-
bottom: 0,
|
|
18
|
-
left: 0,
|
|
19
|
-
alignItems: 'center',
|
|
20
|
-
justifyContent: 'flex-start'
|
|
21
|
-
},
|
|
22
12
|
text: {
|
|
23
13
|
includeFontPadding: false,
|
|
24
14
|
textAlignVertical: 'center'
|
|
@@ -28,20 +18,6 @@ export const createLoadingTokens = foundations => ({
|
|
|
28
18
|
indicator: foundations.palette.default[400],
|
|
29
19
|
text: foundations.palette.default[500]
|
|
30
20
|
},
|
|
31
|
-
sizing: {
|
|
32
|
-
spinner: {
|
|
33
|
-
lineWidth: 2,
|
|
34
|
-
lineLength: 8,
|
|
35
|
-
itemCount: 12,
|
|
36
|
-
innerGapRatio: 0.25
|
|
37
|
-
},
|
|
38
|
-
ball: {
|
|
39
|
-
itemCount: 3,
|
|
40
|
-
dotSizeRatio: 0.2,
|
|
41
|
-
dotScaleMin: 0.4,
|
|
42
|
-
gapRatio: 0.25
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
21
|
spacing: {
|
|
46
22
|
gap: foundations.spacing.sm
|
|
47
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { Animated, Easing, Pressable, StyleSheet, Text, View, Platform } from 'react-native';
|
|
4
4
|
import { Arrow, Close } from 'react-native-system-icon';
|
|
5
5
|
import { useAriaPress } from '../../hooks';
|
|
@@ -58,15 +58,15 @@ export const NoticeBar = props => {
|
|
|
58
58
|
const resolvedSpeed = parseNumber(speed, 60);
|
|
59
59
|
const resolvedVerticalInterval = Math.max(0, parseNumber(verticalInterval, 3000));
|
|
60
60
|
const resolvedVerticalDuration = Math.max(0, parseNumber(verticalDuration, 300));
|
|
61
|
-
const verticalItems = (() => {
|
|
61
|
+
const verticalItems = useMemo(() => {
|
|
62
62
|
if (!isVertical) return [];
|
|
63
63
|
if (items && items.length) return items;
|
|
64
64
|
const childArray = React.Children.toArray(children);
|
|
65
65
|
if (childArray.length) return childArray;
|
|
66
66
|
return text !== undefined ? [text] : [];
|
|
67
|
-
})
|
|
67
|
+
}, [children, isVertical, items, text]);
|
|
68
68
|
const hasVerticalLoop = isVertical && verticalItems.length > 1;
|
|
69
|
-
const verticalTrackItems = hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems;
|
|
69
|
+
const verticalTrackItems = useMemo(() => hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems, [hasVerticalLoop, verticalItems]);
|
|
70
70
|
const verticalTranslateY = useRef(new Animated.Value(0)).current;
|
|
71
71
|
const [itemHeight, setItemHeight] = useState(0);
|
|
72
72
|
const setContentWidthSafe = useCallback(next => {
|
|
@@ -94,7 +94,7 @@ export const NoticeBar = props => {
|
|
|
94
94
|
accessibilityRole: 'button'
|
|
95
95
|
} : undefined
|
|
96
96
|
});
|
|
97
|
-
const rightNode = mode === 'closeable' ? /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
97
|
+
const rightNode = useMemo(() => mode === 'closeable' ? /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
98
98
|
hitSlop: 8
|
|
99
99
|
}, closePress.interactionProps), /*#__PURE__*/React.createElement(Close, {
|
|
100
100
|
size: 16,
|
|
@@ -104,7 +104,7 @@ export const NoticeBar = props => {
|
|
|
104
104
|
size: 16,
|
|
105
105
|
fill: resolvedColor,
|
|
106
106
|
color: resolvedColor
|
|
107
|
-
}) : rightIcon || null;
|
|
107
|
+
}) : rightIcon || null, [closePress.interactionProps, mode, resolvedColor, rightIcon]);
|
|
108
108
|
const hasLeft = isRenderable(leftIcon);
|
|
109
109
|
const hasRight = Boolean(rightNode);
|
|
110
110
|
const effectiveContainerWidth = Math.max(0, containerWidth - (hasLeft ? tokens.spacing.sidePadding : 0) - (hasRight ? tokens.spacing.sidePadding : 0));
|
|
@@ -185,44 +185,48 @@ export const NoticeBar = props => {
|
|
|
185
185
|
if (!height) return;
|
|
186
186
|
setItemHeight(prev => prev === 0 || Math.abs(prev - height) >= 0.5 ? height : prev);
|
|
187
187
|
}, []);
|
|
188
|
-
const verticalContentNode =
|
|
189
|
-
|
|
190
|
-
if (
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
188
|
+
const verticalContentNode = useMemo(() => {
|
|
189
|
+
if (!isVertical || verticalTrackItems.length === 0) return null;
|
|
190
|
+
if (!hasVerticalLoop) {
|
|
191
|
+
const single = verticalTrackItems[0];
|
|
192
|
+
if (isText(single)) {
|
|
193
|
+
return /*#__PURE__*/React.createElement(Text, _extends({
|
|
194
|
+
onLayout: textOnLayout,
|
|
195
|
+
style: [styles.text, {
|
|
196
|
+
color: resolvedColor,
|
|
197
|
+
fontSize: tokens.typography.fontSize
|
|
198
|
+
}],
|
|
199
|
+
numberOfLines: 1,
|
|
200
|
+
ellipsizeMode: "tail"
|
|
201
|
+
}, restTextProps), single);
|
|
202
|
+
}
|
|
203
|
+
return single;
|
|
200
204
|
}
|
|
201
|
-
return
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
206
|
+
style: [styles.verticalViewport, itemHeight ? {
|
|
207
|
+
height: itemHeight
|
|
208
|
+
} : undefined],
|
|
209
|
+
pointerEvents: "none"
|
|
210
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
211
|
+
style: [styles.verticalTrack, {
|
|
212
|
+
transform: [{
|
|
213
|
+
translateY: verticalTranslateY
|
|
214
|
+
}]
|
|
211
215
|
}]
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}, restTextProps
|
|
216
|
+
}, verticalTrackItems.map((item, index) => /*#__PURE__*/React.createElement(View, {
|
|
217
|
+
key: index,
|
|
218
|
+
onLayout: index === 0 ? handleItemLayout : undefined,
|
|
219
|
+
style: styles.verticalItem
|
|
220
|
+
}, isText(item) ? /*#__PURE__*/React.createElement(Text, _extends({
|
|
221
|
+
onLayout: textOnLayout,
|
|
222
|
+
style: [styles.text, {
|
|
223
|
+
color: resolvedColor,
|
|
224
|
+
fontSize: tokens.typography.fontSize
|
|
225
|
+
}],
|
|
226
|
+
numberOfLines: 1,
|
|
227
|
+
ellipsizeMode: "tail"
|
|
228
|
+
}, restTextProps), item) : item))));
|
|
229
|
+
}, [handleItemLayout, hasVerticalLoop, isVertical, itemHeight, resolvedColor, restTextProps, textOnLayout, tokens.typography.fontSize, verticalTrackItems, verticalTranslateY]);
|
|
226
230
|
const handleContainerLayout = useCallback(event => {
|
|
227
231
|
setContainerWidthSafe(event.nativeEvent.layout.width);
|
|
228
232
|
}, [setContainerWidthSafe]);
|