react-native-system-ui 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -6
- package/dist/cjs/{area → components/area}/Area.js +4 -10
- package/dist/cjs/{avatar → components/avatar}/Avatar.js +3 -3
- package/dist/cjs/{avatar → components/avatar}/tokens.js +2 -1
- package/dist/cjs/{badge → components/badge}/Badge.js +30 -38
- package/dist/cjs/{button → components/button}/Button.js +13 -13
- package/dist/cjs/{button → components/button}/ButtonGroup.js +8 -8
- package/dist/cjs/{calendar → components/calendar}/Calendar.js +10 -10
- package/dist/cjs/{cascader → components/cascader}/Cascader.js +4 -4
- package/dist/cjs/{cascader → components/cascader}/useCascaderExtend.js +5 -15
- package/dist/cjs/{checkbox → components/checkbox}/CheckboxGroup.js +2 -2
- package/dist/cjs/{circle → components/circle}/Circle.js +2 -2
- package/dist/cjs/{collapse → components/collapse}/Collapse.js +13 -16
- package/dist/cjs/{config-provider → components/config-provider}/ConfigProvider.js +1 -1
- package/dist/cjs/{datetime-picker → components/datetime-picker}/DatetimePicker.js +7 -7
- package/dist/cjs/{dialog → components/dialog}/Dialog.js +4 -6
- package/dist/cjs/{dialog → components/dialog}/tokens.js +2 -1
- package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
- package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +19 -23
- package/dist/cjs/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
- package/dist/cjs/{field → components/field}/Field.js +6 -6
- package/dist/cjs/{form → components/form}/Form.js +5 -9
- package/dist/cjs/{grid → components/grid}/Grid.js +4 -4
- package/dist/cjs/{image → components/image}/Image.js +19 -15
- package/dist/cjs/{image-preview → components/image-preview}/ImagePreview.js +62 -60
- package/dist/cjs/{image-preview → components/image-preview}/tokens.js +21 -2
- package/dist/cjs/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
- package/dist/cjs/{index-bar → components/index-bar}/IndexBar.js +40 -45
- package/dist/cjs/components/index-bar/tokens.js +45 -0
- package/dist/cjs/components/index.js +854 -0
- package/dist/cjs/{input → components/input}/Input.js +7 -10
- package/dist/cjs/{nav-bar → components/nav-bar}/NavBar.js +2 -1
- package/dist/cjs/{notice-bar → components/notice-bar}/NoticeBar.js +69 -95
- package/dist/cjs/{notify → components/notify}/Notify.js +65 -49
- package/dist/cjs/{notify → components/notify}/defaults.js +2 -2
- package/dist/cjs/{notify → components/notify}/imperative.js +2 -2
- package/dist/cjs/{notify → components/notify}/tokens.js +5 -4
- package/dist/cjs/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +15 -16
- package/dist/cjs/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
- package/dist/cjs/{overlay → components/overlay}/useOverlayStack.js +5 -1
- package/dist/cjs/{pagination → components/pagination}/Pagination.js +2 -2
- package/dist/cjs/{password-input → components/password-input}/PasswordInput.js +35 -27
- package/dist/cjs/{picker → components/picker}/Picker.js +11 -12
- package/dist/cjs/{picker → components/picker}/WheelPicker.js +9 -9
- package/dist/cjs/{picker → components/picker}/tokens.js +4 -2
- package/dist/cjs/{popup → components/popup}/Popup.js +48 -75
- package/dist/cjs/{popup → components/popup}/tokens.js +2 -1
- package/dist/cjs/{portal → components/portal}/Portal.js +5 -0
- package/dist/cjs/{portal → components/portal}/PortalHost.js +1 -13
- package/dist/cjs/{pull-refresh → components/pull-refresh}/PullRefresh.js +46 -27
- package/dist/cjs/{radio → components/radio}/RadioGroup.js +2 -2
- package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
- package/dist/cjs/components/safe-area-view/index.js +12 -0
- package/dist/cjs/{search → components/search}/Search.js +52 -67
- package/dist/cjs/{search → components/search}/tokens.js +2 -1
- package/dist/cjs/{selector → components/selector}/Selector.js +3 -3
- package/dist/cjs/{share-sheet → components/share-sheet}/ShareSheet.js +64 -62
- package/dist/cjs/{share-sheet → components/share-sheet}/tokens.js +15 -2
- package/dist/cjs/{sidebar → components/sidebar}/Sidebar.js +15 -19
- package/dist/cjs/{sidebar → components/sidebar}/SidebarItem.js +0 -3
- package/dist/cjs/{skeleton → components/skeleton}/Skeleton.js +44 -56
- package/dist/cjs/{slider → components/slider}/Slider.js +55 -61
- package/dist/cjs/{stepper → components/stepper}/Stepper.js +13 -16
- package/dist/cjs/{stepper → components/stepper}/tokens.js +4 -2
- package/dist/cjs/{swiper → components/swiper}/Swiper.js +21 -42
- package/dist/cjs/{swiper → components/swiper}/useSwiperWeb.js +15 -18
- package/dist/cjs/{tabbar → components/tabbar}/Tabbar.js +10 -12
- package/dist/cjs/{tabbar → components/tabbar}/TabbarItem.js +0 -3
- package/dist/cjs/{tabs → components/tabs}/Tabs.js +33 -54
- package/dist/cjs/{tabs → components/tabs}/tokens.js +9 -1
- package/dist/cjs/{tabs → components/tabs}/useTabsScroll.js +4 -0
- package/dist/cjs/{toast → components/toast}/Toast.js +15 -16
- package/dist/cjs/{toast → components/toast}/tokens.js +5 -1
- package/dist/cjs/components/types.js +1 -0
- package/dist/cjs/{typography → components/typography}/Typography.js +17 -30
- package/dist/cjs/{uploader → components/uploader}/Uploader.js +49 -46
- package/dist/cjs/{uploader → components/uploader}/tokens.js +27 -1
- package/dist/cjs/{water-mark → components/water-mark}/WaterMark.js +16 -16
- package/dist/cjs/design-system/ThemeContext.js +19 -0
- package/dist/cjs/design-system/ThemeProvider.js +37 -0
- package/dist/cjs/design-system/createComponentTokensHook.js +30 -0
- package/dist/cjs/design-system/index.js +59 -0
- package/dist/cjs/design-system/mergeTokensOverride.js +12 -0
- package/dist/cjs/design-system/presets.js +147 -0
- package/dist/cjs/design-system/tokens.js +144 -0
- package/dist/cjs/design-system/useTheme.js +16 -0
- package/dist/cjs/hooks/aria/index.js +49 -0
- package/dist/cjs/hooks/aria/useAriaListBox.js +58 -0
- package/dist/cjs/hooks/aria/useAriaOverlay.js +50 -0
- package/dist/cjs/hooks/aria/useAriaPress.js +107 -0
- package/dist/cjs/hooks/aria/useAriaToggle.js +41 -0
- package/dist/cjs/hooks/gesture/index.js +16 -0
- package/dist/cjs/hooks/gesture/useGestureScroll.js +131 -0
- package/dist/cjs/hooks/index.js +84 -0
- package/dist/cjs/hooks/useControllableValue.js +52 -0
- package/dist/cjs/hooks/useCountDown.js +107 -0
- package/dist/cjs/hooks/useHairline.js +62 -0
- package/dist/cjs/hooks/usePresenceAnimation.js +70 -0
- package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
- package/dist/cjs/index.js +33 -499
- package/dist/cjs/platform/animation.js +14 -0
- package/dist/cjs/platform/history.js +14 -0
- package/dist/cjs/platform/index.js +60 -0
- package/dist/cjs/platform/measure.js +55 -0
- package/dist/cjs/platform/runtime.js +19 -0
- package/dist/cjs/platform/scrollLock.js +24 -0
- package/dist/cjs/utils/array.js +12 -0
- package/dist/cjs/utils/color.js +52 -0
- package/dist/cjs/utils/createPlatformShadow.js +63 -0
- package/dist/cjs/utils/date.js +75 -0
- package/dist/cjs/utils/deepMerge.js +37 -0
- package/dist/cjs/utils/hairline.js +103 -0
- package/dist/cjs/utils/index.js +115 -0
- package/dist/cjs/utils/number.js +73 -0
- package/dist/cjs/utils/promise.js +9 -0
- package/dist/cjs/utils/string.js +39 -0
- package/dist/cjs/utils/validate.js +41 -0
- package/dist/es/{area → components/area}/Area.js +5 -11
- package/dist/es/{avatar → components/avatar}/Avatar.js +3 -3
- package/dist/es/{avatar → components/avatar}/tokens.js +2 -1
- package/dist/es/{badge → components/badge}/Badge.js +31 -39
- package/dist/es/{button → components/button}/Button.js +14 -14
- package/dist/es/{button → components/button}/ButtonGroup.js +7 -7
- package/dist/es/{calendar → components/calendar}/Calendar.js +11 -11
- package/dist/es/{cascader → components/cascader}/Cascader.js +5 -5
- package/dist/es/{cascader → components/cascader}/useCascaderExtend.js +5 -9
- package/dist/es/{checkbox → components/checkbox}/CheckboxGroup.js +3 -3
- package/dist/es/{circle → components/circle}/Circle.js +3 -3
- package/dist/es/{collapse → components/collapse}/Collapse.js +14 -17
- package/dist/es/{config-provider → components/config-provider}/ConfigProvider.js +2 -2
- package/dist/es/{datetime-picker → components/datetime-picker}/DatetimePicker.js +8 -8
- package/dist/es/{dialog → components/dialog}/Dialog.js +4 -6
- package/dist/es/{dialog → components/dialog}/tokens.js +2 -1
- package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
- package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +20 -24
- package/dist/es/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
- package/dist/es/{field → components/field}/Field.js +7 -7
- package/dist/es/{field → components/field}/index.js +1 -1
- package/dist/es/{form → components/form}/Form.js +6 -10
- package/dist/es/{grid → components/grid}/Grid.js +3 -3
- package/dist/es/{image → components/image}/Image.js +20 -16
- package/dist/es/{image-preview → components/image-preview}/ImagePreview.js +63 -61
- package/dist/es/components/image-preview/tokens.js +35 -0
- package/dist/es/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
- package/dist/es/{index-bar → components/index-bar}/IndexBar.js +41 -46
- package/dist/es/components/index-bar/tokens.js +39 -0
- package/dist/es/components/index.js +123 -0
- package/dist/es/{input → components/input}/Input.js +8 -11
- package/dist/es/{nav-bar → components/nav-bar}/NavBar.js +2 -1
- package/dist/es/{notice-bar → components/notice-bar}/NoticeBar.js +70 -96
- package/dist/es/{notify → components/notify}/Notify.js +68 -52
- package/dist/es/{notify → components/notify}/defaults.js +2 -2
- package/dist/es/{notify → components/notify}/imperative.js +2 -2
- package/dist/es/{notify → components/notify}/tokens.js +5 -4
- package/dist/es/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +16 -17
- package/dist/es/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
- package/dist/es/{overlay → components/overlay}/useOverlayStack.js +6 -2
- package/dist/es/{pagination → components/pagination}/Pagination.js +3 -3
- package/dist/es/{password-input → components/password-input}/PasswordInput.js +36 -28
- package/dist/es/{picker → components/picker}/Picker.js +12 -13
- package/dist/es/{picker → components/picker}/WheelPicker.js +10 -10
- package/dist/es/{picker → components/picker}/tokens.js +4 -2
- package/dist/es/{popup → components/popup}/Popup.js +48 -75
- package/dist/es/{popup → components/popup}/tokens.js +2 -1
- package/dist/es/{portal → components/portal}/Portal.js +5 -0
- package/dist/es/{portal → components/portal}/PortalHost.js +1 -13
- package/dist/es/{pull-refresh → components/pull-refresh}/PullRefresh.js +47 -28
- package/dist/es/{radio → components/radio}/RadioGroup.js +3 -3
- package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
- package/dist/es/components/safe-area-view/index.js +1 -0
- package/dist/es/{search → components/search}/Search.js +53 -68
- package/dist/es/{search → components/search}/tokens.js +2 -1
- package/dist/es/{selector → components/selector}/Selector.js +4 -4
- package/dist/es/{share-sheet → components/share-sheet}/ShareSheet.js +65 -63
- package/dist/es/{share-sheet → components/share-sheet}/tokens.js +15 -2
- package/dist/es/{sidebar → components/sidebar}/Sidebar.js +14 -18
- package/dist/es/{sidebar → components/sidebar}/SidebarItem.js +0 -3
- package/dist/es/{skeleton → components/skeleton}/Skeleton.js +45 -57
- package/dist/es/{slider → components/slider}/Slider.js +56 -62
- package/dist/es/{stepper → components/stepper}/Stepper.js +14 -17
- package/dist/es/{stepper → components/stepper}/tokens.js +4 -2
- package/dist/es/{swiper → components/swiper}/Swiper.js +22 -43
- package/dist/es/{swiper → components/swiper}/useSwiperWeb.js +16 -19
- package/dist/es/{tabbar → components/tabbar}/Tabbar.js +11 -13
- package/dist/es/{tabbar → components/tabbar}/TabbarItem.js +0 -3
- package/dist/es/{tabs → components/tabs}/Tabs.js +34 -55
- package/dist/es/{tabs → components/tabs}/tokens.js +9 -1
- package/dist/es/{tabs → components/tabs}/useTabsScroll.js +4 -0
- package/dist/es/{toast → components/toast}/Toast.js +14 -15
- package/dist/es/{toast → components/toast}/tokens.js +5 -1
- package/dist/es/components/types.js +1 -0
- package/dist/es/{typography → components/typography}/Typography.js +18 -31
- package/dist/es/{uploader → components/uploader}/Uploader.js +49 -46
- package/dist/es/{uploader → components/uploader}/tokens.js +27 -1
- package/dist/es/{water-mark → components/water-mark}/WaterMark.js +17 -17
- package/dist/es/design-system/ThemeContext.js +6 -0
- package/dist/es/design-system/ThemeProvider.js +23 -0
- package/dist/es/design-system/createComponentTokensHook.js +17 -0
- package/dist/es/design-system/index.js +6 -0
- package/dist/es/design-system/mergeTokensOverride.js +5 -0
- package/dist/es/design-system/presets.js +140 -0
- package/dist/es/design-system/tokens.js +136 -0
- package/dist/es/design-system/useTheme.js +3 -0
- package/dist/es/hooks/aria/index.js +5 -0
- package/dist/es/hooks/aria/useAriaListBox.js +33 -0
- package/dist/es/hooks/aria/useAriaOverlay.js +25 -0
- package/dist/es/hooks/aria/useAriaPress.js +70 -0
- package/dist/es/hooks/aria/useAriaToggle.js +16 -0
- package/dist/es/hooks/gesture/index.js +2 -0
- package/dist/es/hooks/gesture/useGestureScroll.js +112 -0
- package/dist/es/hooks/index.js +7 -0
- package/dist/es/hooks/useControllableValue.js +40 -0
- package/dist/es/hooks/useCountDown.js +95 -0
- package/dist/es/hooks/useHairline.js +42 -0
- package/dist/es/hooks/usePresenceAnimation.js +51 -0
- package/dist/es/hooks/useSafeAreaPadding.js +23 -0
- package/dist/es/index.js +4 -73
- package/dist/es/platform/animation.js +2 -0
- package/dist/es/platform/history.js +7 -0
- package/dist/es/platform/index.js +6 -0
- package/dist/es/platform/measure.js +48 -0
- package/dist/es/platform/runtime.js +4 -0
- package/dist/es/platform/scrollLock.js +16 -0
- package/dist/es/utils/array.js +5 -0
- package/dist/es/utils/color.js +42 -0
- package/dist/es/utils/createPlatformShadow.js +50 -0
- package/dist/es/utils/date.js +63 -0
- package/dist/es/utils/deepMerge.js +31 -0
- package/dist/es/utils/hairline.js +84 -0
- package/dist/es/utils/index.js +12 -0
- package/dist/es/utils/number.js +56 -0
- package/dist/es/utils/promise.js +2 -0
- package/dist/es/utils/string.js +30 -0
- package/dist/es/utils/validate.js +15 -0
- package/dist/types/components/dialog/tokens.d.ts +1 -0
- package/dist/types/components/dropdown-menu/tokens.d.ts +17 -0
- package/dist/types/components/field/index.d.ts +1 -1
- package/dist/types/components/image-preview/tokens.d.ts +16 -0
- package/dist/types/components/index-bar/tokens.d.ts +13 -4
- package/dist/types/components/index.d.ts +104 -0
- package/dist/types/components/notify/defaults.d.ts +2 -2
- package/dist/types/components/number-keyboard/tokens.d.ts +1 -0
- package/dist/types/components/password-input/PasswordInput.d.ts +4 -0
- package/dist/types/components/picker/tokens.d.ts +2 -0
- package/dist/types/components/popup/tokens.d.ts +1 -0
- package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
- package/dist/types/components/safe-area-view/index.d.ts +2 -0
- package/dist/types/components/search/tokens.d.ts +1 -0
- package/dist/types/components/share-sheet/tokens.d.ts +13 -0
- package/dist/types/components/stepper/tokens.d.ts +2 -0
- package/dist/types/components/tabs/tokens.d.ts +8 -0
- package/dist/types/components/toast/tokens.d.ts +4 -0
- package/dist/types/components/uploader/tokens.d.ts +25 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/usePresenceAnimation.d.ts +6 -1
- package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
- package/package.json +290 -274
- package/dist/cjs/index-bar/tokens.js +0 -36
- package/dist/cjs/safe-area/SafeAreaClipper.js +0 -114
- package/dist/cjs/safe-area/index.js +0 -63
- package/dist/es/image-preview/tokens.js +0 -16
- package/dist/es/index-bar/tokens.js +0 -30
- package/dist/es/safe-area/SafeAreaClipper.js +0 -86
- package/dist/es/safe-area/index.js +0 -25
- package/dist/types/components/safe-area/SafeAreaClipper.d.ts +0 -47
- package/dist/types/components/safe-area/index.d.ts +0 -9
- /package/dist/cjs/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
- /package/dist/cjs/{action-sheet → components/action-sheet}/index.js +0 -0
- /package/dist/cjs/{action-sheet → components/action-sheet}/tokens.js +0 -0
- /package/dist/cjs/{area → components/area}/index.js +0 -0
- /package/dist/cjs/{area → components/area}/utils.js +0 -0
- /package/dist/cjs/{avatar → components/avatar}/index.js +0 -0
- /package/dist/cjs/{badge → components/badge}/index.js +0 -0
- /package/dist/cjs/{badge → components/badge}/tokens.js +0 -0
- /package/dist/cjs/{button → components/button}/ButtonContext.js +0 -0
- /package/dist/cjs/{button → components/button}/index.js +0 -0
- /package/dist/cjs/{button → components/button}/tokens.js +0 -0
- /package/dist/cjs/{calendar → components/calendar}/index.js +0 -0
- /package/dist/cjs/{calendar → components/calendar}/tokens.js +0 -0
- /package/dist/cjs/{cascader → components/cascader}/index.js +0 -0
- /package/dist/cjs/{cascader → components/cascader}/tokens.js +0 -0
- /package/dist/cjs/{cascader → components/cascader}/utils.js +0 -0
- /package/dist/cjs/{cell → components/cell}/Cell.js +0 -0
- /package/dist/cjs/{cell → components/cell}/CellContext.js +0 -0
- /package/dist/cjs/{cell → components/cell}/CellGroup.js +0 -0
- /package/dist/cjs/{cell → components/cell}/index.js +0 -0
- /package/dist/cjs/{cell → components/cell}/tokens.js +0 -0
- /package/dist/cjs/{checkbox → components/checkbox}/Checkbox.js +0 -0
- /package/dist/cjs/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
- /package/dist/cjs/{checkbox → components/checkbox}/index.js +0 -0
- /package/dist/cjs/{checkbox → components/checkbox}/tokens.js +0 -0
- /package/dist/cjs/{circle → components/circle}/index.js +0 -0
- /package/dist/cjs/{circle → components/circle}/tokens.js +0 -0
- /package/dist/cjs/{collapse → components/collapse}/index.js +0 -0
- /package/dist/cjs/{collapse → components/collapse}/tokens.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/LocaleContext.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/index.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/locale/base.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/locale/en-US.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
- /package/dist/cjs/{config-provider → components/config-provider}/useLocale.js +0 -0
- /package/dist/cjs/{count-down → components/count-down}/CountDown.js +0 -0
- /package/dist/cjs/{count-down → components/count-down}/index.js +0 -0
- /package/dist/cjs/{count-down → components/count-down}/tokens.js +0 -0
- /package/dist/cjs/{datetime-picker → components/datetime-picker}/index.js +0 -0
- /package/dist/cjs/{dialog → components/dialog}/imperative.js +0 -0
- /package/dist/cjs/{dialog → components/dialog}/index.js +0 -0
- /package/dist/cjs/{divider → components/divider}/Divider.js +0 -0
- /package/dist/cjs/{divider → components/divider}/index.js +0 -0
- /package/dist/cjs/{divider → components/divider}/tokens.js +0 -0
- /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
- /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
- /package/dist/cjs/{empty → components/empty}/Empty.js +0 -0
- /package/dist/cjs/{empty → components/empty}/index.js +0 -0
- /package/dist/cjs/{empty → components/empty}/tokens.js +0 -0
- /package/dist/cjs/{field → components/field}/index.js +0 -0
- /package/dist/cjs/{field → components/field}/tokens.js +0 -0
- /package/dist/cjs/{field → components/field}/utils.js +0 -0
- /package/dist/cjs/{flex → components/flex}/Flex.js +0 -0
- /package/dist/cjs/{flex → components/flex}/FlexContext.js +0 -0
- /package/dist/cjs/{flex → components/flex}/FlexItem.js +0 -0
- /package/dist/cjs/{flex → components/flex}/index.js +0 -0
- /package/dist/cjs/{flex → components/flex}/tokens.js +0 -0
- /package/dist/cjs/{form → components/form}/FormContext.js +0 -0
- /package/dist/cjs/{form → components/form}/FormItem.js +0 -0
- /package/dist/cjs/{form → components/form}/FormList.js +0 -0
- /package/dist/cjs/{form → components/form}/index.js +0 -0
- /package/dist/cjs/{form → components/form}/utils.js +0 -0
- /package/dist/cjs/{grid → components/grid}/GridContext.js +0 -0
- /package/dist/cjs/{grid → components/grid}/GridItem.js +0 -0
- /package/dist/cjs/{grid → components/grid}/index.js +0 -0
- /package/dist/cjs/{grid → components/grid}/tokens.js +0 -0
- /package/dist/cjs/{image → components/image}/index.js +0 -0
- /package/dist/cjs/{image → components/image}/tokens.js +0 -0
- /package/dist/cjs/{image-preview → components/image-preview}/imperative.js +0 -0
- /package/dist/cjs/{image-preview → components/image-preview}/index.js +0 -0
- /package/dist/cjs/{index-bar → components/index-bar}/index.js +0 -0
- /package/dist/cjs/{input → components/input}/index.js +0 -0
- /package/dist/cjs/{input → components/input}/tokens.js +0 -0
- /package/dist/cjs/{list → components/list}/List.js +0 -0
- /package/dist/cjs/{list → components/list}/index.js +0 -0
- /package/dist/cjs/{list → components/list}/tokens.js +0 -0
- /package/dist/cjs/{loading → components/loading}/Loading.js +0 -0
- /package/dist/cjs/{loading → components/loading}/index.js +0 -0
- /package/dist/cjs/{loading → components/loading}/tokens.js +0 -0
- /package/dist/cjs/{nav-bar → components/nav-bar}/index.js +0 -0
- /package/dist/cjs/{nav-bar → components/nav-bar}/tokens.js +0 -0
- /package/dist/cjs/{notice-bar → components/notice-bar}/index.js +0 -0
- /package/dist/cjs/{notice-bar → components/notice-bar}/tokens.js +0 -0
- /package/dist/cjs/{notify → components/notify}/index.js +0 -0
- /package/dist/cjs/{number-keyboard → components/number-keyboard}/index.js +0 -0
- /package/dist/cjs/{overlay → components/overlay}/Overlay.js +0 -0
- /package/dist/cjs/{overlay → components/overlay}/OverlayStackStore.js +0 -0
- /package/dist/cjs/{overlay → components/overlay}/index.js +0 -0
- /package/dist/cjs/{overlay → components/overlay}/tokens.js +0 -0
- /package/dist/cjs/{pagination → components/pagination}/index.js +0 -0
- /package/dist/cjs/{pagination → components/pagination}/tokens.js +0 -0
- /package/dist/cjs/{password-input → components/password-input}/index.js +0 -0
- /package/dist/cjs/{picker → components/picker}/index.js +0 -0
- /package/dist/cjs/{picker → components/picker}/utils.js +0 -0
- /package/dist/cjs/{popup → components/popup}/index.js +0 -0
- /package/dist/cjs/{portal → components/portal}/PortalContext.js +0 -0
- /package/dist/cjs/{portal → components/portal}/index.js +0 -0
- /package/dist/cjs/{progress → components/progress}/Progress.js +0 -0
- /package/dist/cjs/{progress → components/progress}/index.js +0 -0
- /package/dist/cjs/{progress → components/progress}/tokens.js +0 -0
- /package/dist/cjs/{pull-refresh → components/pull-refresh}/index.js +0 -0
- /package/dist/cjs/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
- /package/dist/cjs/{radio → components/radio}/Radio.js +0 -0
- /package/dist/cjs/{radio → components/radio}/RadioContext.js +0 -0
- /package/dist/cjs/{radio → components/radio}/index.js +0 -0
- /package/dist/cjs/{radio → components/radio}/tokens.js +0 -0
- /package/dist/cjs/{rate → components/rate}/Rate.js +0 -0
- /package/dist/cjs/{rate → components/rate}/index.js +0 -0
- /package/dist/cjs/{rate → components/rate}/tokens.js +0 -0
- /package/dist/cjs/{search → components/search}/index.js +0 -0
- /package/dist/cjs/{selector → components/selector}/index.js +0 -0
- /package/dist/cjs/{selector → components/selector}/tokens.js +0 -0
- /package/dist/cjs/{share-sheet → components/share-sheet}/index.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/SidebarContext.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/index.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/tokens.js +0 -0
- /package/dist/cjs/{skeleton → components/skeleton}/index.js +0 -0
- /package/dist/cjs/{skeleton → components/skeleton}/tokens.js +0 -0
- /package/dist/cjs/{slider → components/slider}/index.js +0 -0
- /package/dist/cjs/{slider → components/slider}/tokens.js +0 -0
- /package/dist/cjs/{slider → components/slider}/utils.js +0 -0
- /package/dist/cjs/{space → components/space}/Space.js +0 -0
- /package/dist/cjs/{space → components/space}/index.js +0 -0
- /package/dist/cjs/{space → components/space}/tokens.js +0 -0
- /package/dist/cjs/{stepper → components/stepper}/index.js +0 -0
- /package/dist/cjs/{swiper → components/swiper}/SwiperItem.js +0 -0
- /package/dist/cjs/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
- /package/dist/cjs/{swiper → components/swiper}/index.js +0 -0
- /package/dist/cjs/{swiper → components/swiper}/utils.js +0 -0
- /package/dist/cjs/{switch → components/switch}/Switch.js +0 -0
- /package/dist/cjs/{switch → components/switch}/index.js +0 -0
- /package/dist/cjs/{switch → components/switch}/tokens.js +0 -0
- /package/dist/cjs/{tabbar → components/tabbar}/TabbarContext.js +0 -0
- /package/dist/cjs/{tabbar → components/tabbar}/index.js +0 -0
- /package/dist/cjs/{tabbar → components/tabbar}/tokens.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/TabPane.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/index.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/useTabsAnimation.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/utils.js +0 -0
- /package/dist/cjs/{tag → components/tag}/Tag.js +0 -0
- /package/dist/cjs/{tag → components/tag}/index.js +0 -0
- /package/dist/cjs/{tag → components/tag}/tokens.js +0 -0
- /package/dist/cjs/{toast → components/toast}/imperative.js +0 -0
- /package/dist/cjs/{toast → components/toast}/index.js +0 -0
- /package/dist/cjs/{typography → components/typography}/index.js +0 -0
- /package/dist/cjs/{typography → components/typography}/tokens.js +0 -0
- /package/dist/cjs/{uploader → components/uploader}/index.js +0 -0
- /package/dist/cjs/{uploader → components/uploader}/utils.js +0 -0
- /package/dist/cjs/{water-mark → components/water-mark}/index.js +0 -0
- /package/dist/cjs/{water-mark → components/water-mark}/tokens.js +0 -0
- /package/dist/es/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
- /package/dist/es/{action-sheet → components/action-sheet}/index.js +0 -0
- /package/dist/es/{action-sheet → components/action-sheet}/tokens.js +0 -0
- /package/dist/es/{area → components/area}/index.js +0 -0
- /package/dist/es/{area → components/area}/utils.js +0 -0
- /package/dist/es/{avatar → components/avatar}/index.js +0 -0
- /package/dist/es/{badge → components/badge}/index.js +0 -0
- /package/dist/es/{badge → components/badge}/tokens.js +0 -0
- /package/dist/es/{button → components/button}/ButtonContext.js +0 -0
- /package/dist/es/{button → components/button}/index.js +0 -0
- /package/dist/es/{button → components/button}/tokens.js +0 -0
- /package/dist/es/{calendar → components/calendar}/index.js +0 -0
- /package/dist/es/{calendar → components/calendar}/tokens.js +0 -0
- /package/dist/es/{cascader → components/cascader}/index.js +0 -0
- /package/dist/es/{cascader → components/cascader}/tokens.js +0 -0
- /package/dist/es/{cascader → components/cascader}/utils.js +0 -0
- /package/dist/es/{cell → components/cell}/Cell.js +0 -0
- /package/dist/es/{cell → components/cell}/CellContext.js +0 -0
- /package/dist/es/{cell → components/cell}/CellGroup.js +0 -0
- /package/dist/es/{cell → components/cell}/index.js +0 -0
- /package/dist/es/{cell → components/cell}/tokens.js +0 -0
- /package/dist/es/{checkbox → components/checkbox}/Checkbox.js +0 -0
- /package/dist/es/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
- /package/dist/es/{checkbox → components/checkbox}/index.js +0 -0
- /package/dist/es/{checkbox → components/checkbox}/tokens.js +0 -0
- /package/dist/es/{circle → components/circle}/index.js +0 -0
- /package/dist/es/{circle → components/circle}/tokens.js +0 -0
- /package/dist/es/{collapse → components/collapse}/index.js +0 -0
- /package/dist/es/{collapse → components/collapse}/tokens.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/LocaleContext.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/index.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/locale/base.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/locale/en-US.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
- /package/dist/es/{config-provider → components/config-provider}/useLocale.js +0 -0
- /package/dist/es/{count-down → components/count-down}/CountDown.js +0 -0
- /package/dist/es/{count-down → components/count-down}/index.js +0 -0
- /package/dist/es/{count-down → components/count-down}/tokens.js +0 -0
- /package/dist/es/{datetime-picker → components/datetime-picker}/index.js +0 -0
- /package/dist/es/{dialog → components/dialog}/imperative.js +0 -0
- /package/dist/es/{dialog → components/dialog}/index.js +0 -0
- /package/dist/es/{divider → components/divider}/Divider.js +0 -0
- /package/dist/es/{divider → components/divider}/index.js +0 -0
- /package/dist/es/{divider → components/divider}/tokens.js +0 -0
- /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
- /package/dist/es/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
- /package/dist/es/{empty → components/empty}/Empty.js +0 -0
- /package/dist/es/{empty → components/empty}/index.js +0 -0
- /package/dist/es/{empty → components/empty}/tokens.js +0 -0
- /package/dist/es/{field → components/field}/tokens.js +0 -0
- /package/dist/es/{field → components/field}/utils.js +0 -0
- /package/dist/es/{flex → components/flex}/Flex.js +0 -0
- /package/dist/es/{flex → components/flex}/FlexContext.js +0 -0
- /package/dist/es/{flex → components/flex}/FlexItem.js +0 -0
- /package/dist/es/{flex → components/flex}/index.js +0 -0
- /package/dist/es/{flex → components/flex}/tokens.js +0 -0
- /package/dist/es/{form → components/form}/FormContext.js +0 -0
- /package/dist/es/{form → components/form}/FormItem.js +0 -0
- /package/dist/es/{form → components/form}/FormList.js +0 -0
- /package/dist/es/{form → components/form}/index.js +0 -0
- /package/dist/es/{form → components/form}/utils.js +0 -0
- /package/dist/es/{grid → components/grid}/GridContext.js +0 -0
- /package/dist/es/{grid → components/grid}/GridItem.js +0 -0
- /package/dist/es/{grid → components/grid}/index.js +0 -0
- /package/dist/es/{grid → components/grid}/tokens.js +0 -0
- /package/dist/es/{image → components/image}/index.js +0 -0
- /package/dist/es/{image → components/image}/tokens.js +0 -0
- /package/dist/es/{image-preview → components/image-preview}/imperative.js +0 -0
- /package/dist/es/{image-preview → components/image-preview}/index.js +0 -0
- /package/dist/es/{index-bar → components/index-bar}/index.js +0 -0
- /package/dist/es/{input → components/input}/index.js +0 -0
- /package/dist/es/{input → components/input}/tokens.js +0 -0
- /package/dist/es/{list → components/list}/List.js +0 -0
- /package/dist/es/{list → components/list}/index.js +0 -0
- /package/dist/es/{list → components/list}/tokens.js +0 -0
- /package/dist/es/{loading → components/loading}/Loading.js +0 -0
- /package/dist/es/{loading → components/loading}/index.js +0 -0
- /package/dist/es/{loading → components/loading}/tokens.js +0 -0
- /package/dist/es/{nav-bar → components/nav-bar}/index.js +0 -0
- /package/dist/es/{nav-bar → components/nav-bar}/tokens.js +0 -0
- /package/dist/es/{notice-bar → components/notice-bar}/index.js +0 -0
- /package/dist/es/{notice-bar → components/notice-bar}/tokens.js +0 -0
- /package/dist/es/{notify → components/notify}/index.js +0 -0
- /package/dist/es/{number-keyboard → components/number-keyboard}/index.js +0 -0
- /package/dist/es/{overlay → components/overlay}/Overlay.js +0 -0
- /package/dist/es/{overlay → components/overlay}/OverlayStackStore.js +0 -0
- /package/dist/es/{overlay → components/overlay}/index.js +0 -0
- /package/dist/es/{overlay → components/overlay}/tokens.js +0 -0
- /package/dist/es/{pagination → components/pagination}/index.js +0 -0
- /package/dist/es/{pagination → components/pagination}/tokens.js +0 -0
- /package/dist/es/{password-input → components/password-input}/index.js +0 -0
- /package/dist/es/{picker → components/picker}/index.js +0 -0
- /package/dist/es/{picker → components/picker}/utils.js +0 -0
- /package/dist/es/{popup → components/popup}/index.js +0 -0
- /package/dist/es/{portal → components/portal}/PortalContext.js +0 -0
- /package/dist/es/{portal → components/portal}/index.js +0 -0
- /package/dist/es/{progress → components/progress}/Progress.js +0 -0
- /package/dist/es/{progress → components/progress}/index.js +0 -0
- /package/dist/es/{progress → components/progress}/tokens.js +0 -0
- /package/dist/es/{pull-refresh → components/pull-refresh}/index.js +0 -0
- /package/dist/es/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
- /package/dist/es/{radio → components/radio}/Radio.js +0 -0
- /package/dist/es/{radio → components/radio}/RadioContext.js +0 -0
- /package/dist/es/{radio → components/radio}/index.js +0 -0
- /package/dist/es/{radio → components/radio}/tokens.js +0 -0
- /package/dist/es/{rate → components/rate}/Rate.js +0 -0
- /package/dist/es/{rate → components/rate}/index.js +0 -0
- /package/dist/es/{rate → components/rate}/tokens.js +0 -0
- /package/dist/es/{search → components/search}/index.js +0 -0
- /package/dist/es/{selector → components/selector}/index.js +0 -0
- /package/dist/es/{selector → components/selector}/tokens.js +0 -0
- /package/dist/es/{share-sheet → components/share-sheet}/index.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/SidebarContext.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/index.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/tokens.js +0 -0
- /package/dist/es/{skeleton → components/skeleton}/index.js +0 -0
- /package/dist/es/{skeleton → components/skeleton}/tokens.js +0 -0
- /package/dist/es/{slider → components/slider}/index.js +0 -0
- /package/dist/es/{slider → components/slider}/tokens.js +0 -0
- /package/dist/es/{slider → components/slider}/utils.js +0 -0
- /package/dist/es/{space → components/space}/Space.js +0 -0
- /package/dist/es/{space → components/space}/index.js +0 -0
- /package/dist/es/{space → components/space}/tokens.js +0 -0
- /package/dist/es/{stepper → components/stepper}/index.js +0 -0
- /package/dist/es/{swiper → components/swiper}/SwiperItem.js +0 -0
- /package/dist/es/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
- /package/dist/es/{swiper → components/swiper}/index.js +0 -0
- /package/dist/es/{swiper → components/swiper}/utils.js +0 -0
- /package/dist/es/{switch → components/switch}/Switch.js +0 -0
- /package/dist/es/{switch → components/switch}/index.js +0 -0
- /package/dist/es/{switch → components/switch}/tokens.js +0 -0
- /package/dist/es/{tabbar → components/tabbar}/TabbarContext.js +0 -0
- /package/dist/es/{tabbar → components/tabbar}/index.js +0 -0
- /package/dist/es/{tabbar → components/tabbar}/tokens.js +0 -0
- /package/dist/es/{tabs → components/tabs}/TabPane.js +0 -0
- /package/dist/es/{tabs → components/tabs}/index.js +0 -0
- /package/dist/es/{tabs → components/tabs}/useTabsAnimation.js +0 -0
- /package/dist/es/{tabs → components/tabs}/utils.js +0 -0
- /package/dist/es/{tag → components/tag}/Tag.js +0 -0
- /package/dist/es/{tag → components/tag}/index.js +0 -0
- /package/dist/es/{tag → components/tag}/tokens.js +0 -0
- /package/dist/es/{toast → components/toast}/imperative.js +0 -0
- /package/dist/es/{toast → components/toast}/index.js +0 -0
- /package/dist/es/{typography → components/typography}/index.js +0 -0
- /package/dist/es/{typography → components/typography}/tokens.js +0 -0
- /package/dist/es/{uploader → components/uploader}/index.js +0 -0
- /package/dist/es/{uploader → components/uploader}/utils.js +0 -0
- /package/dist/es/{water-mark → components/water-mark}/index.js +0 -0
- /package/dist/es/{water-mark → components/water-mark}/tokens.js +0 -0
|
@@ -18,7 +18,19 @@ const createTokens = foundations => {
|
|
|
18
18
|
spacing: {
|
|
19
19
|
horizontal: spacing.md,
|
|
20
20
|
vertical: spacing.sm,
|
|
21
|
-
gap: spacing.xs
|
|
21
|
+
gap: spacing.xs,
|
|
22
|
+
popupPadding: 0,
|
|
23
|
+
headerPaddingTop: spacing.sm,
|
|
24
|
+
headerPaddingHorizontal: spacing.lg,
|
|
25
|
+
headerPaddingBottom: spacing.md,
|
|
26
|
+
titleMarginTop: spacing.xs,
|
|
27
|
+
descriptionMarginTop: spacing.xs,
|
|
28
|
+
nodeMarginTop: spacing.xs,
|
|
29
|
+
iconMarginHorizontal: spacing.md,
|
|
30
|
+
optionTextPaddingHorizontal: spacing.xs,
|
|
31
|
+
optionDescPaddingHorizontal: spacing.lg,
|
|
32
|
+
cancelPaddingVertical: 14,
|
|
33
|
+
cancelMarginTop: spacing.sm
|
|
22
34
|
},
|
|
23
35
|
sizing: {
|
|
24
36
|
icon: 48
|
|
@@ -27,7 +39,8 @@ const createTokens = foundations => {
|
|
|
27
39
|
title: fontSize.md,
|
|
28
40
|
description: fontSize.xs,
|
|
29
41
|
option: fontSize.xs,
|
|
30
|
-
optionDesc: fontSize.xxs
|
|
42
|
+
optionDesc: fontSize.xxs,
|
|
43
|
+
cancel: fontSize.md
|
|
31
44
|
}
|
|
32
45
|
};
|
|
33
46
|
};
|
|
@@ -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
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import { Text, View } from 'react-native';
|
|
4
4
|
import { mergeTokensOverride } from '../../design-system';
|
|
5
5
|
import { useControllableValue } from '../../hooks';
|
|
@@ -15,7 +15,7 @@ const SidebarBase = props => {
|
|
|
15
15
|
...rest
|
|
16
16
|
} = props;
|
|
17
17
|
const tokens = useSidebarTokens(tokensOverride);
|
|
18
|
-
const items =
|
|
18
|
+
const items = (() => {
|
|
19
19
|
const out = [];
|
|
20
20
|
const list = React.Children.toArray(children);
|
|
21
21
|
for (let i = 0; i < list.length; i++) {
|
|
@@ -27,7 +27,7 @@ const SidebarBase = props => {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
return out;
|
|
30
|
-
}
|
|
30
|
+
})();
|
|
31
31
|
const firstIndex = items[0]?.index ?? 0;
|
|
32
32
|
const [activeIndex, setActiveIndex] = useControllableValue(props, {
|
|
33
33
|
defaultValue: firstIndex,
|
|
@@ -42,24 +42,20 @@ const SidebarBase = props => {
|
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
const contextValue =
|
|
45
|
+
const contextValue = {
|
|
46
46
|
activeIndex: currentIndex,
|
|
47
47
|
onSelect: setActiveIndex
|
|
48
|
-
}
|
|
49
|
-
const clonedItems =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
tokensOverride: merged
|
|
57
|
-
});
|
|
48
|
+
};
|
|
49
|
+
const clonedItems = items.map(item => {
|
|
50
|
+
const key = item.element.key ?? item.index;
|
|
51
|
+
const merged = mergeTokensOverride(tokensOverride, item.element.props.tokensOverride);
|
|
52
|
+
return /*#__PURE__*/React.cloneElement(item.element, {
|
|
53
|
+
key,
|
|
54
|
+
index: item.index,
|
|
55
|
+
tokensOverride: merged
|
|
58
56
|
});
|
|
59
|
-
}
|
|
60
|
-
const activeItem =
|
|
61
|
-
return items.find(item => item.index === currentIndex)?.element;
|
|
62
|
-
}, [currentIndex, items]);
|
|
57
|
+
});
|
|
58
|
+
const activeItem = items.find(item => item.index === currentIndex)?.element;
|
|
63
59
|
const activeContentStyle = activeItem?.props?.contentStyle;
|
|
64
60
|
const activeContent = activeItem?.props?.children;
|
|
65
61
|
const activeContentNode = activeContent == null || activeContent === false ? null : isText(activeContent) ? /*#__PURE__*/React.createElement(Text, null, activeContent) : activeContent;
|
|
@@ -25,9 +25,6 @@ const SidebarItem = props => {
|
|
|
25
25
|
const tokens = useSidebarTokens(tokensOverride);
|
|
26
26
|
const context = useSidebarContext();
|
|
27
27
|
if (!context) {
|
|
28
|
-
if (typeof __DEV__ !== 'undefined' && __DEV__) {
|
|
29
|
-
console.warn('[SidebarItem] 需要作为 Sidebar 子节点使用。');
|
|
30
|
-
}
|
|
31
28
|
return null;
|
|
32
29
|
}
|
|
33
30
|
const disabled = disabledProp ?? tokens.defaults.disabled;
|
|
@@ -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, { useEffect,
|
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
|
3
3
|
import { Animated, StyleSheet, View } from 'react-native';
|
|
4
4
|
import { nativeDriverEnabled } from '../../platform';
|
|
5
5
|
import { isFiniteNumber, isString } from '../../utils';
|
|
@@ -39,18 +39,18 @@ const Skeleton = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
39
39
|
const row = rowProp ?? tokens.defaults.rowCount;
|
|
40
40
|
const rowWidth = rowWidthProp ?? tokens.defaults.rowWidth;
|
|
41
41
|
const round = roundProp ?? false;
|
|
42
|
-
const rows =
|
|
43
|
-
const rowWidths =
|
|
42
|
+
const rows = isFiniteNumber(row) ? Math.max(0, Math.floor(row)) : 0;
|
|
43
|
+
const rowWidths = (() => {
|
|
44
44
|
const widths = resolveSeries(rows, rowWidth, tokens.defaults.rowWidth);
|
|
45
45
|
if (!Array.isArray(rowWidth) && rows > 1 && (props.rowWidth === undefined || isString(props.rowWidth) && props.rowWidth.trim() === '100%')) {
|
|
46
46
|
widths[rows - 1] = tokens.defaults.lastRowWidth;
|
|
47
47
|
}
|
|
48
48
|
return widths;
|
|
49
|
-
}
|
|
50
|
-
const rowHeights =
|
|
51
|
-
const titleHeight =
|
|
52
|
-
const resolvedAvatarSize =
|
|
53
|
-
const resolvedTitleWidth =
|
|
49
|
+
})();
|
|
50
|
+
const rowHeights = resolveSeries(rows, rowHeight, tokens.defaults.rowHeight);
|
|
51
|
+
const titleHeight = rowHeights[0] ?? tokens.defaults.rowHeight;
|
|
52
|
+
const resolvedAvatarSize = normalize(avatarSize, tokens.defaults.avatarSize);
|
|
53
|
+
const resolvedTitleWidth = normalize(titleWidth, tokens.defaults.titleWidth);
|
|
54
54
|
const animated = useRef(new Animated.Value(0)).current;
|
|
55
55
|
useEffect(() => {
|
|
56
56
|
if (!loading || !animate || tokens.animation.duration <= 0) {
|
|
@@ -69,56 +69,44 @@ const Skeleton = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
69
69
|
loop.start();
|
|
70
70
|
return () => loop.stop();
|
|
71
71
|
}, [animate, animated, loading, tokens.animation.duration]);
|
|
72
|
-
const animatedStyle =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
};
|
|
80
|
-
}, [animate, animated, loading, tokens.animation.maxOpacity, tokens.animation.minOpacity]);
|
|
81
|
-
const containerStyles = useMemo(() => [styles.container, {
|
|
72
|
+
const animatedStyle = !loading || !animate ? undefined : {
|
|
73
|
+
opacity: animated.interpolate({
|
|
74
|
+
inputRange: [0, 1],
|
|
75
|
+
outputRange: [tokens.animation.minOpacity, tokens.animation.maxOpacity]
|
|
76
|
+
})
|
|
77
|
+
};
|
|
78
|
+
const containerStyles = [styles.container, {
|
|
82
79
|
gap: tokens.spacing.containerGap
|
|
83
|
-
}, style]
|
|
84
|
-
const avatarNode =
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
style: [{
|
|
114
|
-
width: width,
|
|
115
|
-
height: rowHeights[index],
|
|
116
|
-
marginTop: index === 0 && !title ? 0 : tokens.spacing.rowGap,
|
|
117
|
-
backgroundColor: tokens.colors.block,
|
|
118
|
-
borderRadius: round ? tokens.radius : 0
|
|
119
|
-
}, animatedStyle]
|
|
120
|
-
})));
|
|
121
|
-
}, [animatedStyle, rowHeights, rowWidths, round, rows, title, tokens.colors.block, tokens.radius, tokens.spacing.rowGap]);
|
|
80
|
+
}, style];
|
|
81
|
+
const avatarNode = !avatar ? null : /*#__PURE__*/React.createElement(Animated.View, {
|
|
82
|
+
style: [{
|
|
83
|
+
width: resolvedAvatarSize,
|
|
84
|
+
height: resolvedAvatarSize,
|
|
85
|
+
borderRadius: avatarShape === 'round' ? 999 : tokens.radius,
|
|
86
|
+
backgroundColor: tokens.colors.block
|
|
87
|
+
}, animatedStyle]
|
|
88
|
+
});
|
|
89
|
+
const titleNode = !title ? null : /*#__PURE__*/React.createElement(Animated.View, {
|
|
90
|
+
style: [{
|
|
91
|
+
width: resolvedTitleWidth,
|
|
92
|
+
height: titleHeight,
|
|
93
|
+
backgroundColor: tokens.colors.block,
|
|
94
|
+
borderRadius: round ? tokens.radius : 0
|
|
95
|
+
}, animatedStyle]
|
|
96
|
+
});
|
|
97
|
+
const rowNodes = rows <= 0 ? null : /*#__PURE__*/React.createElement(View, {
|
|
98
|
+
style: styles.rows
|
|
99
|
+
}, rowWidths.map((width, index) => /*#__PURE__*/React.createElement(Animated.View, {
|
|
100
|
+
key: index,
|
|
101
|
+
testID: `rv-skeleton-row-${index}`,
|
|
102
|
+
style: [{
|
|
103
|
+
width: width,
|
|
104
|
+
height: rowHeights[index],
|
|
105
|
+
marginTop: index === 0 && !title ? 0 : tokens.spacing.rowGap,
|
|
106
|
+
backgroundColor: tokens.colors.block,
|
|
107
|
+
borderRadius: round ? tokens.radius : 0
|
|
108
|
+
}, animatedStyle]
|
|
109
|
+
})));
|
|
122
110
|
if (!loading) {
|
|
123
111
|
return /*#__PURE__*/React.createElement(View, _extends({
|
|
124
112
|
ref: ref,
|
|
@@ -2,7 +2,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
2
2
|
import { useSlider, useSliderThumb } from '@react-native-aria/slider';
|
|
3
3
|
import { isRTL } from '@react-native-aria/utils';
|
|
4
4
|
import { useSliderState } from '@react-stately/slider';
|
|
5
|
-
import React, { useCallback, useEffect,
|
|
5
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
6
6
|
import { Platform, Pressable, StyleSheet, View } from 'react-native';
|
|
7
7
|
import { useSliderTokens } from './tokens';
|
|
8
8
|
import { parseNumber } from '../../utils/number';
|
|
@@ -43,38 +43,35 @@ const ThumbNode = /*#__PURE__*/React.memo(({
|
|
|
43
43
|
}, state, ariaReverse);
|
|
44
44
|
const rawThumbViewProps = thumbProps;
|
|
45
45
|
const handlers = enhanceHandlers(rawThumbViewProps, index) ?? rawThumbViewProps ?? {};
|
|
46
|
-
const translate =
|
|
47
|
-
const thumbStyle =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return next;
|
|
71
|
-
}, [activeColor, content, orientation, size, thumbBackgroundColor, thumbElevation, translate, visualPercent]);
|
|
72
|
-
const indicatorStyle = useMemo(() => ({
|
|
46
|
+
const translate = -size / 2;
|
|
47
|
+
const thumbStyle = {
|
|
48
|
+
width: size,
|
|
49
|
+
height: size,
|
|
50
|
+
borderRadius: size / 2,
|
|
51
|
+
borderColor: activeColor,
|
|
52
|
+
transform: [{
|
|
53
|
+
translateX: translate
|
|
54
|
+
}, {
|
|
55
|
+
translateY: translate
|
|
56
|
+
}]
|
|
57
|
+
};
|
|
58
|
+
if (orientation === 'vertical') {
|
|
59
|
+
thumbStyle.top = `${visualPercent}%`;
|
|
60
|
+
thumbStyle.left = '50%';
|
|
61
|
+
} else {
|
|
62
|
+
thumbStyle.left = `${visualPercent}%`;
|
|
63
|
+
thumbStyle.top = '50%';
|
|
64
|
+
}
|
|
65
|
+
if (!content) {
|
|
66
|
+
thumbStyle.backgroundColor = thumbBackgroundColor;
|
|
67
|
+
thumbStyle.elevation = thumbElevation;
|
|
68
|
+
}
|
|
69
|
+
const indicatorStyle = {
|
|
73
70
|
width: indicatorSize,
|
|
74
71
|
height: indicatorSize,
|
|
75
72
|
borderRadius: indicatorSize / 2,
|
|
76
73
|
backgroundColor: indicatorColor
|
|
77
|
-
}
|
|
74
|
+
};
|
|
78
75
|
const accessibilityProps = createAccessibilityProps(inputProps);
|
|
79
76
|
return /*#__PURE__*/React.createElement(View, _extends({}, handlers, accessibilityProps, {
|
|
80
77
|
pointerEvents: isDisabled ? 'none' : 'auto',
|
|
@@ -131,7 +128,7 @@ export const Slider = props => {
|
|
|
131
128
|
const resolvedActiveColor = activeColor ?? tokens.colors.active;
|
|
132
129
|
const resolvedInactiveColor = inactiveColor ?? tokens.colors.inactive;
|
|
133
130
|
const scope = Math.max(resolvedMax - resolvedMin, 0.00001);
|
|
134
|
-
const normalized =
|
|
131
|
+
const normalized = normalizeValue(valueProp, range, resolvedMin, resolvedMax);
|
|
135
132
|
const isControlled = valueProp !== undefined;
|
|
136
133
|
const formatOutput = useCallback(values => toSliderValue(values, range, resolvedMin), [range, resolvedMin]);
|
|
137
134
|
const handleStateChange = useCallback(values => {
|
|
@@ -140,7 +137,7 @@ export const Slider = props => {
|
|
|
140
137
|
const handleStateChangeEnd = useCallback(values => {
|
|
141
138
|
onChangeAfter?.(formatOutput(values));
|
|
142
139
|
}, [formatOutput, onChangeAfter]);
|
|
143
|
-
const sliderStateOptions =
|
|
140
|
+
const sliderStateOptions = {
|
|
144
141
|
minValue: resolvedMin,
|
|
145
142
|
maxValue: resolvedMax,
|
|
146
143
|
step: resolvedStep,
|
|
@@ -151,7 +148,7 @@ export const Slider = props => {
|
|
|
151
148
|
defaultValue: !isControlled ? normalized : undefined,
|
|
152
149
|
onChange: handleStateChange,
|
|
153
150
|
onChangeEnd: handleStateChangeEnd
|
|
154
|
-
}
|
|
151
|
+
};
|
|
155
152
|
const state = useSliderState(sliderStateOptions);
|
|
156
153
|
const [trackLayout, setTrackLayout] = useState({
|
|
157
154
|
width: 0,
|
|
@@ -360,9 +357,9 @@ export const Slider = props => {
|
|
|
360
357
|
return wrapped;
|
|
361
358
|
}, [onDragStart, onDragEnd]);
|
|
362
359
|
const values = state.values;
|
|
363
|
-
const thumbPercents =
|
|
364
|
-
const thumbVisualPercents =
|
|
365
|
-
const activeRange =
|
|
360
|
+
const thumbPercents = values.map(value => ((value ?? resolvedMin) - resolvedMin) / scope * 100);
|
|
361
|
+
const thumbVisualPercents = thumbPercents.map(percent => orientation === 'vertical' ? reverse ? percent : 100 - percent : reverseX ? 100 - percent : percent);
|
|
362
|
+
const activeRange = (() => {
|
|
366
363
|
const first = thumbVisualPercents[0] ?? 0;
|
|
367
364
|
const second = thumbVisualPercents[1] ?? first;
|
|
368
365
|
return range && thumbVisualPercents.length > 1 ? {
|
|
@@ -375,33 +372,30 @@ export const Slider = props => {
|
|
|
375
372
|
offset: first,
|
|
376
373
|
size: 100 - first
|
|
377
374
|
};
|
|
378
|
-
}
|
|
379
|
-
const activeTrackStyle =
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
return next;
|
|
396
|
-
}, [activeRange.offset, activeRange.size, orientation, resolvedActiveColor, tokens.track.radius]);
|
|
397
|
-
const trackBaseStyle = useMemo(() => orientation === 'vertical' ? [styles.trackVertical, {
|
|
375
|
+
})();
|
|
376
|
+
const activeTrackStyle = {
|
|
377
|
+
backgroundColor: resolvedActiveColor,
|
|
378
|
+
borderRadius: tokens.track.radius
|
|
379
|
+
};
|
|
380
|
+
if (orientation === 'vertical') {
|
|
381
|
+
activeTrackStyle.left = 0;
|
|
382
|
+
activeTrackStyle.width = '100%';
|
|
383
|
+
activeTrackStyle.height = `${Math.max(activeRange.size, 0)}%`;
|
|
384
|
+
activeTrackStyle.top = `${Math.max(activeRange.offset, 0)}%`;
|
|
385
|
+
} else {
|
|
386
|
+
activeTrackStyle.top = 0;
|
|
387
|
+
activeTrackStyle.height = '100%';
|
|
388
|
+
activeTrackStyle.width = `${Math.max(activeRange.size, 0)}%`;
|
|
389
|
+
activeTrackStyle.left = `${Math.max(activeRange.offset, 0)}%`;
|
|
390
|
+
}
|
|
391
|
+
const trackBaseStyle = orientation === 'vertical' ? [styles.trackVertical, {
|
|
398
392
|
width: resolvedTrackHeight,
|
|
399
393
|
backgroundColor: resolvedInactiveColor,
|
|
400
394
|
alignSelf: 'center'
|
|
401
395
|
}] : [styles.trackHorizontal, {
|
|
402
396
|
height: resolvedTrackHeight,
|
|
403
397
|
backgroundColor: resolvedInactiveColor
|
|
404
|
-
}]
|
|
398
|
+
}];
|
|
405
399
|
const isButtonFunction = isFunction(button);
|
|
406
400
|
const sharedThumb = isButtonFunction ? button({
|
|
407
401
|
value: currentValue
|
|
@@ -409,21 +403,21 @@ export const Slider = props => {
|
|
|
409
403
|
const leftThumbContent = leftButton ?? leftThumb ?? sharedThumb;
|
|
410
404
|
const rightThumbContent = rightButton ?? rightThumb ?? sharedThumb;
|
|
411
405
|
const resolveThumbContent = useCallback((index, total) => total > 1 ? index === 0 ? leftThumbContent : rightThumbContent : sharedThumb, [leftThumbContent, rightThumbContent, sharedThumb]);
|
|
412
|
-
const webGestureStyle =
|
|
406
|
+
const webGestureStyle = Platform.OS === 'web' ? {
|
|
413
407
|
touchAction: orientation === 'horizontal' ? 'pan-y' : 'none',
|
|
414
408
|
userSelect: 'none'
|
|
415
|
-
} : undefined
|
|
416
|
-
const baseTrackPressableStyle =
|
|
409
|
+
} : undefined;
|
|
410
|
+
const baseTrackPressableStyle = [styles.trackPressable, orientation === 'vertical' ? styles.trackPressableVertical : null, webGestureStyle];
|
|
417
411
|
const trackPressableStyleFn = useCallback(pressableState => [baseTrackPressableStyle, trackAriaStyle(pressableState)], [baseTrackPressableStyle, trackAriaStyle]);
|
|
418
|
-
const trackPressableStyle =
|
|
419
|
-
const containerStyles =
|
|
412
|
+
const trackPressableStyle = trackAriaStyle && isFunction(trackAriaStyle) ? trackPressableStyleFn : [baseTrackPressableStyle, trackAriaStyle];
|
|
413
|
+
const containerStyles = [styles.container, {
|
|
420
414
|
paddingVertical: tokens.spacing.containerPaddingVertical
|
|
421
415
|
}, orientation === 'vertical' && [styles.verticalContainer, {
|
|
422
416
|
minHeight: tokens.layout.verticalMinHeight,
|
|
423
417
|
width: tokens.layout.verticalWidth
|
|
424
418
|
}], disabled && {
|
|
425
419
|
opacity: tokens.states.disabledOpacity
|
|
426
|
-
}, style]
|
|
420
|
+
}, style];
|
|
427
421
|
return /*#__PURE__*/React.createElement(View, _extends({
|
|
428
422
|
style: containerStyles,
|
|
429
423
|
onLayout: containerOnLayout
|
|
@@ -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,
|
|
2
|
+
import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
3
3
|
import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
|
|
4
4
|
import { useControllableValue } from '../../hooks';
|
|
5
5
|
import { parseNumber, addNumber as add, clampValue, formatNumber as formatValue, numberToString as valueToString, parseDecimalLength, isFiniteNumber, isPromiseLike } from '../../utils';
|
|
@@ -139,8 +139,7 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
141
|
commit();
|
|
142
|
-
}).catch(
|
|
143
|
-
if (typeof __DEV__ !== 'undefined' && __DEV__) console.error(error);
|
|
142
|
+
}).catch(() => {
|
|
144
143
|
commit();
|
|
145
144
|
}).finally(() => {
|
|
146
145
|
changingRef.current = false;
|
|
@@ -153,8 +152,7 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
153
152
|
return 'noop';
|
|
154
153
|
}
|
|
155
154
|
return commit();
|
|
156
|
-
} catch
|
|
157
|
-
if (typeof __DEV__ !== 'undefined' && __DEV__) console.error(error);
|
|
155
|
+
} catch {
|
|
158
156
|
return commit();
|
|
159
157
|
}
|
|
160
158
|
}, [beforeChange, decimalLength, setInputText, setValue]);
|
|
@@ -247,15 +245,15 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
247
245
|
const minusDisabled = disabledForAll || disableMinus || minNumber !== undefined && currentForCompare <= minNumber;
|
|
248
246
|
const plusDisabled = disabledForAll || disablePlus || maxNumber !== undefined && currentForCompare >= maxNumber;
|
|
249
247
|
const radius = tokens.radii.default;
|
|
250
|
-
const buttonBaseStyle =
|
|
248
|
+
const buttonBaseStyle = {
|
|
251
249
|
width: resolvedButtonSize,
|
|
252
250
|
height: resolvedButtonSize
|
|
253
|
-
}
|
|
254
|
-
const inputBoxStyle =
|
|
251
|
+
};
|
|
252
|
+
const inputBoxStyle = {
|
|
255
253
|
width: resolvedInputWidth,
|
|
256
254
|
height: resolvedButtonSize,
|
|
257
255
|
marginHorizontal: tokens.spacing.gap
|
|
258
|
-
}
|
|
256
|
+
};
|
|
259
257
|
const getButtonStyle = useCallback((type, state) => {
|
|
260
258
|
const isPlus = type === 'plus';
|
|
261
259
|
const disabledState = isPlus ? plusDisabled : minusDisabled;
|
|
@@ -394,11 +392,10 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
394
392
|
style: getButtonTextStyle('plus')
|
|
395
393
|
}, "+"));
|
|
396
394
|
}, [getButtonTextStyle, getPlusButtonStyle, handlePlusPress, handlePlusPressIn, handlePressOut, plusDisabled, showPlus]);
|
|
397
|
-
const inputNode =
|
|
398
|
-
if (!showInput) return null;
|
|
395
|
+
const inputNode = !showInput ? null : (() => {
|
|
399
396
|
const editable = !disabledForAll && !disableInput;
|
|
400
397
|
const inputDisabled = disabledForAll || disableInput;
|
|
401
|
-
const inputBackground = theme === 'round' ?
|
|
398
|
+
const inputBackground = theme === 'round' ? tokens.colors.transparent : inputDisabled ? tokens.colors.inputDisabledBackground : tokens.colors.background;
|
|
402
399
|
const inputTextColor = inputDisabled ? tokens.colors.inputDisabledText : tokens.colors.inputText;
|
|
403
400
|
const keyboardType = integer ? 'number-pad' : 'decimal-pad';
|
|
404
401
|
return /*#__PURE__*/React.createElement(TextInput, _extends({
|
|
@@ -406,7 +403,9 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
406
403
|
}, inputProps, {
|
|
407
404
|
style: [styles.input, inputBoxStyle, {
|
|
408
405
|
backgroundColor: inputBackground,
|
|
409
|
-
color: inputTextColor
|
|
406
|
+
color: inputTextColor,
|
|
407
|
+
paddingHorizontal: tokens.spacing.none,
|
|
408
|
+
paddingVertical: tokens.spacing.none
|
|
410
409
|
}, inputStyle],
|
|
411
410
|
value: inputValue,
|
|
412
411
|
placeholder: placeholder,
|
|
@@ -417,7 +416,7 @@ export const Stepper = /*#__PURE__*/React.forwardRef((p, ref) => {
|
|
|
417
416
|
onBlur: handleBlur,
|
|
418
417
|
onPressIn: handleInputPressIn
|
|
419
418
|
}));
|
|
420
|
-
}
|
|
419
|
+
})();
|
|
421
420
|
return /*#__PURE__*/React.createElement(View, _extends({}, rest, {
|
|
422
421
|
style: [styles.container, style]
|
|
423
422
|
}), renderMinusButton(), inputNode, renderPlusButton());
|
|
@@ -433,9 +432,7 @@ const styles = StyleSheet.create({
|
|
|
433
432
|
},
|
|
434
433
|
buttonText: {},
|
|
435
434
|
input: {
|
|
436
|
-
textAlign: 'center'
|
|
437
|
-
paddingHorizontal: 0,
|
|
438
|
-
paddingVertical: 0
|
|
435
|
+
textAlign: 'center'
|
|
439
436
|
}
|
|
440
437
|
});
|
|
441
438
|
Stepper.displayName = 'Stepper';
|
|
@@ -29,7 +29,8 @@ const createStepperTokens = foundations => {
|
|
|
29
29
|
roundThemeBackground: '#ffffff',
|
|
30
30
|
inputText: palette.default[900],
|
|
31
31
|
inputDisabledText: palette.default[400],
|
|
32
|
-
inputDisabledBackground: palette.default[100]
|
|
32
|
+
inputDisabledBackground: palette.default[100],
|
|
33
|
+
transparent: 'transparent'
|
|
33
34
|
},
|
|
34
35
|
radii: {
|
|
35
36
|
default: radii.md
|
|
@@ -44,7 +45,8 @@ const createStepperTokens = foundations => {
|
|
|
44
45
|
pressed: opacity.pressed
|
|
45
46
|
},
|
|
46
47
|
spacing: {
|
|
47
|
-
gap: 2
|
|
48
|
+
gap: 2,
|
|
49
|
+
none: foundations.spacing.none
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
52
|
};
|
|
@@ -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, { useRef, useState, useCallback, useEffect,
|
|
2
|
+
import React, { useRef, useState, useCallback, useEffect, useImperativeHandle, forwardRef, cloneElement, Children, isValidElement } from 'react';
|
|
3
3
|
import { FlatList, View, StyleSheet, Platform, Animated, Easing, useWindowDimensions } from 'react-native';
|
|
4
4
|
import { clamp } from '../../utils/number';
|
|
5
5
|
import { isFiniteNumber } from '../../utils/validate';
|
|
@@ -71,39 +71,21 @@ const SwiperImpl = (props, ref) => {
|
|
|
71
71
|
nativeScrollEndTimerRef.current = null;
|
|
72
72
|
}
|
|
73
73
|
}, []);
|
|
74
|
-
const validChildren =
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}, [children]);
|
|
85
|
-
const itemsData = useMemo(() => {
|
|
86
|
-
if (data) {
|
|
87
|
-
return data;
|
|
88
|
-
}
|
|
89
|
-
if (validChildren.length > 0) {
|
|
90
|
-
return validChildren.map((_, idx) => ({
|
|
91
|
-
type: 'child',
|
|
92
|
-
index: idx
|
|
93
|
-
}));
|
|
94
|
-
}
|
|
95
|
-
return [];
|
|
96
|
-
}, [data, validChildren]);
|
|
74
|
+
const validChildren = children ? Children.toArray(children).filter(child => {
|
|
75
|
+
if (! /*#__PURE__*/isValidElement(child)) return false;
|
|
76
|
+
if (child.type === SwiperItem) return true;
|
|
77
|
+
const type = child.type;
|
|
78
|
+
return type.displayName === 'SwiperItem';
|
|
79
|
+
}) : [];
|
|
80
|
+
const itemsData = data ? data : validChildren.length > 0 ? validChildren.map((_, idx) => ({
|
|
81
|
+
type: 'child',
|
|
82
|
+
index: idx
|
|
83
|
+
})) : [];
|
|
97
84
|
const count = itemsData.length;
|
|
98
85
|
const slideRatio = slideSizePct / 100;
|
|
99
86
|
const offsetRatio = trackOffsetPct / 100;
|
|
100
87
|
const shouldLoop = loop && count > 1 && slideRatio * (count - 1) >= 1;
|
|
101
|
-
const loopData =
|
|
102
|
-
if (!shouldLoop || count <= 1) {
|
|
103
|
-
return itemsData;
|
|
104
|
-
}
|
|
105
|
-
return [...itemsData.slice(-1), ...itemsData, ...itemsData.slice(0, 1)];
|
|
106
|
-
}, [shouldLoop, itemsData, count]);
|
|
88
|
+
const loopData = !shouldLoop || count <= 1 ? itemsData : [...itemsData.slice(-1), ...itemsData, ...itemsData.slice(0, 1)];
|
|
107
89
|
const displayData = shouldLoop ? loopData : itemsData;
|
|
108
90
|
const displayCount = displayData.length;
|
|
109
91
|
const getDisplayIndex = useCallback(index => {
|
|
@@ -127,15 +109,12 @@ const SwiperImpl = (props, ref) => {
|
|
|
127
109
|
const crossAxisMeasured = vertical ? containerLayout.width : containerLayout.height;
|
|
128
110
|
const crossAxisSize = crossAxisMeasured > 0 ? crossAxisMeasured : undefined;
|
|
129
111
|
const slideSizeValue = (vertical ? containerHeight : containerWidth) * slideRatio;
|
|
130
|
-
const itemSizeStyle =
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
return style;
|
|
138
|
-
}, [vertical, slideSizeValue, crossAxisSize, autoHeight]);
|
|
112
|
+
const itemSizeStyle = {
|
|
113
|
+
[vertical ? 'height' : 'width']: slideSizeValue
|
|
114
|
+
};
|
|
115
|
+
if (crossAxisSize != null && !(autoHeight && !vertical)) {
|
|
116
|
+
itemSizeStyle[vertical ? 'width' : 'height'] = crossAxisSize;
|
|
117
|
+
}
|
|
139
118
|
const mainAxisMeasured = vertical ? containerLayout.height : containerLayout.width;
|
|
140
119
|
const trackOffsetPx = mainAxisMeasured > 0 ? mainAxisMeasured * offsetRatio : 0;
|
|
141
120
|
const nativeTrackContentPaddingStyle = !trackOffsetPx ? undefined : vertical ? {
|
|
@@ -149,12 +128,12 @@ const SwiperImpl = (props, ref) => {
|
|
|
149
128
|
const mainAxisSize = vertical ? containerHeight : containerWidth;
|
|
150
129
|
const nonLoopMinOffset = stuckAtBoundaryEnabled ? trackOffsetPx : 0;
|
|
151
130
|
const nonLoopMaxOffset = stuckAtBoundaryEnabled ? Math.max(nonLoopMinOffset, trackOffsetPx + count * slideSizeValue - mainAxisSize, 0) : Math.max(0, (count - 1) * slideSizeValue);
|
|
152
|
-
const nonLoopSnapOffsets =
|
|
131
|
+
const nonLoopSnapOffsets = (() => {
|
|
153
132
|
if (!stuckAtBoundaryEnabled || count <= 1) return null;
|
|
154
133
|
const offsets = new Array(count);
|
|
155
134
|
for (let i = 0; i < count; i += 1) offsets[i] = i === 0 ? nonLoopMinOffset : i === count - 1 ? nonLoopMaxOffset : slideSizeValue * i;
|
|
156
135
|
return offsets;
|
|
157
|
-
}
|
|
136
|
+
})();
|
|
158
137
|
const getInitialIndex = useCallback(() => {
|
|
159
138
|
const initial = clamp(initialSwipeValue, 0, count - 1);
|
|
160
139
|
return shouldLoop ? initial + 1 : initial;
|
|
@@ -672,11 +651,11 @@ const SwiperImpl = (props, ref) => {
|
|
|
672
651
|
index
|
|
673
652
|
};
|
|
674
653
|
}, [nonLoopSnapOffsets, shouldLoop, slideSizeValue]);
|
|
675
|
-
const snapToOffsets =
|
|
654
|
+
const snapToOffsets = (() => {
|
|
676
655
|
if (slideSizePct === 100 && trackOffsetPct === 0) return undefined;
|
|
677
656
|
if (!shouldLoop && nonLoopSnapOffsets) return nonLoopSnapOffsets;
|
|
678
657
|
return displayData.map((_, index) => slideSizeValue * index);
|
|
679
|
-
}
|
|
658
|
+
})();
|
|
680
659
|
useEffect(() => {
|
|
681
660
|
if (!isWeb) return;
|
|
682
661
|
const initialIndex = getInitialIndex();
|