react-native-system-ui 0.0.2 → 0.0.3
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/{index-bar → components/index-bar}/IndexBar.js +2 -1
- package/dist/cjs/components/index.js +511 -0
- package/dist/cjs/{nav-bar → components/nav-bar}/NavBar.js +2 -1
- package/dist/cjs/{notify → components/notify}/Notify.js +35 -43
- package/dist/cjs/{notify → components/notify}/imperative.js +1 -1
- package/dist/cjs/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +3 -4
- package/dist/cjs/{popup → components/popup}/Popup.js +9 -21
- 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/{tabbar → components/tabbar}/Tabbar.js +2 -1
- package/dist/cjs/{toast → components/toast}/Toast.js +5 -8
- package/dist/cjs/components/types.js +1 -0
- 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 +60 -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/{index-bar → components/index-bar}/IndexBar.js +2 -1
- package/dist/es/components/index.js +74 -0
- package/dist/es/{nav-bar → components/nav-bar}/NavBar.js +2 -1
- package/dist/es/{notify → components/notify}/Notify.js +37 -44
- package/dist/es/{notify → components/notify}/imperative.js +1 -1
- package/dist/es/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +3 -4
- package/dist/es/{popup → components/popup}/Popup.js +8 -20
- 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/{tabbar → components/tabbar}/Tabbar.js +2 -1
- package/dist/es/{toast → components/toast}/Toast.js +4 -7
- package/dist/es/components/types.js +1 -0
- 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 +41 -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/index.d.ts +2 -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/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
- package/package.json +281 -265
- package/dist/cjs/safe-area/SafeAreaClipper.js +0 -114
- package/dist/cjs/safe-area/index.js +0 -63
- 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}/Area.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}/Avatar.js +0 -0
- /package/dist/cjs/{avatar → components/avatar}/index.js +0 -0
- /package/dist/cjs/{avatar → components/avatar}/tokens.js +0 -0
- /package/dist/cjs/{badge → components/badge}/Badge.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}/Button.js +0 -0
- /package/dist/cjs/{button → components/button}/ButtonContext.js +0 -0
- /package/dist/cjs/{button → components/button}/ButtonGroup.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}/Calendar.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}/Cascader.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}/useCascaderExtend.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}/CheckboxGroup.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}/Circle.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}/Collapse.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}/ConfigProvider.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}/DatetimePicker.js +0 -0
- /package/dist/cjs/{datetime-picker → components/datetime-picker}/index.js +0 -0
- /package/dist/cjs/{dialog → components/dialog}/Dialog.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/{dialog → components/dialog}/tokens.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}/DropdownItem.js +0 -0
- /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenu.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/{dropdown-menu → components/dropdown-menu}/tokens.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}/Field.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}/Form.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}/Grid.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}/Image.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}/ImagePreview.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/{image-preview → components/image-preview}/tokens.js +0 -0
- /package/dist/cjs/{index-bar → components/index-bar}/IndexAnchor.js +0 -0
- /package/dist/cjs/{index-bar → components/index-bar}/index.js +0 -0
- /package/dist/cjs/{index-bar → components/index-bar}/tokens.js +0 -0
- /package/dist/cjs/{input → components/input}/Input.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}/NoticeBar.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}/defaults.js +0 -0
- /package/dist/cjs/{notify → components/notify}/index.js +0 -0
- /package/dist/cjs/{notify → components/notify}/tokens.js +0 -0
- /package/dist/cjs/{number-keyboard → components/number-keyboard}/index.js +0 -0
- /package/dist/cjs/{number-keyboard → components/number-keyboard}/tokens.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/{overlay → components/overlay}/useOverlayStack.js +0 -0
- /package/dist/cjs/{pagination → components/pagination}/Pagination.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}/PasswordInput.js +0 -0
- /package/dist/cjs/{password-input → components/password-input}/index.js +0 -0
- /package/dist/cjs/{picker → components/picker}/Picker.js +0 -0
- /package/dist/cjs/{picker → components/picker}/WheelPicker.js +0 -0
- /package/dist/cjs/{picker → components/picker}/index.js +0 -0
- /package/dist/cjs/{picker → components/picker}/tokens.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/{popup → components/popup}/tokens.js +0 -0
- /package/dist/cjs/{portal → components/portal}/Portal.js +0 -0
- /package/dist/cjs/{portal → components/portal}/PortalContext.js +0 -0
- /package/dist/cjs/{portal → components/portal}/PortalHost.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}/PullRefresh.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}/RadioGroup.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}/Search.js +0 -0
- /package/dist/cjs/{search → components/search}/index.js +0 -0
- /package/dist/cjs/{search → components/search}/tokens.js +0 -0
- /package/dist/cjs/{selector → components/selector}/Selector.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}/ShareSheet.js +0 -0
- /package/dist/cjs/{share-sheet → components/share-sheet}/index.js +0 -0
- /package/dist/cjs/{share-sheet → components/share-sheet}/tokens.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/Sidebar.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/SidebarContext.js +0 -0
- /package/dist/cjs/{sidebar → components/sidebar}/SidebarItem.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}/Skeleton.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}/Slider.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}/Stepper.js +0 -0
- /package/dist/cjs/{stepper → components/stepper}/index.js +0 -0
- /package/dist/cjs/{stepper → components/stepper}/tokens.js +0 -0
- /package/dist/cjs/{swiper → components/swiper}/Swiper.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}/useSwiperWeb.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}/TabbarItem.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}/Tabs.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/index.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/tokens.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/useTabsAnimation.js +0 -0
- /package/dist/cjs/{tabs → components/tabs}/useTabsScroll.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/{toast → components/toast}/tokens.js +0 -0
- /package/dist/cjs/{typography → components/typography}/Typography.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}/Uploader.js +0 -0
- /package/dist/cjs/{uploader → components/uploader}/index.js +0 -0
- /package/dist/cjs/{uploader → components/uploader}/tokens.js +0 -0
- /package/dist/cjs/{uploader → components/uploader}/utils.js +0 -0
- /package/dist/cjs/{water-mark → components/water-mark}/WaterMark.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}/Area.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}/Avatar.js +0 -0
- /package/dist/es/{avatar → components/avatar}/index.js +0 -0
- /package/dist/es/{avatar → components/avatar}/tokens.js +0 -0
- /package/dist/es/{badge → components/badge}/Badge.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}/Button.js +0 -0
- /package/dist/es/{button → components/button}/ButtonContext.js +0 -0
- /package/dist/es/{button → components/button}/ButtonGroup.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}/Calendar.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}/Cascader.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}/useCascaderExtend.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}/CheckboxGroup.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}/Circle.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}/Collapse.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}/ConfigProvider.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}/DatetimePicker.js +0 -0
- /package/dist/es/{datetime-picker → components/datetime-picker}/index.js +0 -0
- /package/dist/es/{dialog → components/dialog}/Dialog.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/{dialog → components/dialog}/tokens.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}/DropdownItem.js +0 -0
- /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenu.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/{dropdown-menu → components/dropdown-menu}/tokens.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}/Field.js +0 -0
- /package/dist/es/{field → components/field}/index.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}/Form.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}/Grid.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}/Image.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}/ImagePreview.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/{image-preview → components/image-preview}/tokens.js +0 -0
- /package/dist/es/{index-bar → components/index-bar}/IndexAnchor.js +0 -0
- /package/dist/es/{index-bar → components/index-bar}/index.js +0 -0
- /package/dist/es/{index-bar → components/index-bar}/tokens.js +0 -0
- /package/dist/es/{input → components/input}/Input.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}/NoticeBar.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}/defaults.js +0 -0
- /package/dist/es/{notify → components/notify}/index.js +0 -0
- /package/dist/es/{notify → components/notify}/tokens.js +0 -0
- /package/dist/es/{number-keyboard → components/number-keyboard}/index.js +0 -0
- /package/dist/es/{number-keyboard → components/number-keyboard}/tokens.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/{overlay → components/overlay}/useOverlayStack.js +0 -0
- /package/dist/es/{pagination → components/pagination}/Pagination.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}/PasswordInput.js +0 -0
- /package/dist/es/{password-input → components/password-input}/index.js +0 -0
- /package/dist/es/{picker → components/picker}/Picker.js +0 -0
- /package/dist/es/{picker → components/picker}/WheelPicker.js +0 -0
- /package/dist/es/{picker → components/picker}/index.js +0 -0
- /package/dist/es/{picker → components/picker}/tokens.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/{popup → components/popup}/tokens.js +0 -0
- /package/dist/es/{portal → components/portal}/Portal.js +0 -0
- /package/dist/es/{portal → components/portal}/PortalContext.js +0 -0
- /package/dist/es/{portal → components/portal}/PortalHost.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}/PullRefresh.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}/RadioGroup.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}/Search.js +0 -0
- /package/dist/es/{search → components/search}/index.js +0 -0
- /package/dist/es/{search → components/search}/tokens.js +0 -0
- /package/dist/es/{selector → components/selector}/Selector.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}/ShareSheet.js +0 -0
- /package/dist/es/{share-sheet → components/share-sheet}/index.js +0 -0
- /package/dist/es/{share-sheet → components/share-sheet}/tokens.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/Sidebar.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/SidebarContext.js +0 -0
- /package/dist/es/{sidebar → components/sidebar}/SidebarItem.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}/Skeleton.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}/Slider.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}/Stepper.js +0 -0
- /package/dist/es/{stepper → components/stepper}/index.js +0 -0
- /package/dist/es/{stepper → components/stepper}/tokens.js +0 -0
- /package/dist/es/{swiper → components/swiper}/Swiper.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}/useSwiperWeb.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}/TabbarItem.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}/Tabs.js +0 -0
- /package/dist/es/{tabs → components/tabs}/index.js +0 -0
- /package/dist/es/{tabs → components/tabs}/tokens.js +0 -0
- /package/dist/es/{tabs → components/tabs}/useTabsAnimation.js +0 -0
- /package/dist/es/{tabs → components/tabs}/useTabsScroll.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/{toast → components/toast}/tokens.js +0 -0
- /package/dist/es/{typography → components/typography}/Typography.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}/Uploader.js +0 -0
- /package/dist/es/{uploader → components/uploader}/index.js +0 -0
- /package/dist/es/{uploader → components/uploader}/tokens.js +0 -0
- /package/dist/es/{uploader → components/uploader}/utils.js +0 -0
- /package/dist/es/{water-mark → components/water-mark}/WaterMark.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
package/dist/es/index.js
CHANGED
|
@@ -1,73 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export {
|
|
5
|
-
export { default as Space } from './space';
|
|
6
|
-
export { default as Divider } from './divider';
|
|
7
|
-
export { default as Tag } from './tag';
|
|
8
|
-
export { Checkbox } from './checkbox';
|
|
9
|
-
export { CheckboxGroup } from './checkbox';
|
|
10
|
-
export { Radio } from './radio';
|
|
11
|
-
export { RadioGroup } from './radio';
|
|
12
|
-
export { default as Field } from './field';
|
|
13
|
-
export { FieldGroup } from './field';
|
|
14
|
-
export { default as Input } from './input';
|
|
15
|
-
export { default as Form } from './form';
|
|
16
|
-
export { default as Switch } from './switch';
|
|
17
|
-
export { default as Badge } from './badge';
|
|
18
|
-
export { default as Avatar } from './avatar';
|
|
19
|
-
export { default as Grid } from './grid';
|
|
20
|
-
export { default as Typography } from './typography';
|
|
21
|
-
export { default as Loading } from './loading';
|
|
22
|
-
export { default as Empty } from './empty';
|
|
23
|
-
export { default as Image } from './image';
|
|
24
|
-
export { useImageTokens } from './image';
|
|
25
|
-
export { default as Progress } from './progress';
|
|
26
|
-
export { default as Circle } from './circle';
|
|
27
|
-
export { default as NoticeBar } from './notice-bar';
|
|
28
|
-
export { default as Slider } from './slider';
|
|
29
|
-
export { default as Stepper } from './stepper';
|
|
30
|
-
export { default as Rate } from './rate';
|
|
31
|
-
export { default as Selector } from './selector';
|
|
32
|
-
export { default as Search } from './search';
|
|
33
|
-
export { default as PasswordInput } from './password-input';
|
|
34
|
-
export { default as Picker } from './picker';
|
|
35
|
-
export { default as NumberKeyboard } from './number-keyboard';
|
|
36
|
-
export { default as Collapse } from './collapse';
|
|
37
|
-
export { default as Popup } from './popup';
|
|
38
|
-
export { default as Overlay } from './overlay';
|
|
39
|
-
export { default as Dialog } from './dialog';
|
|
40
|
-
export { default as Toast } from './toast';
|
|
41
|
-
export { default as Notify } from './notify';
|
|
42
|
-
export { Portal } from './portal';
|
|
43
|
-
export { PortalHost } from './portal';
|
|
44
|
-
export { ConfigProvider } from './config-provider';
|
|
45
|
-
export { useLocale } from './config-provider';
|
|
46
|
-
export { zhCN } from './config-provider';
|
|
47
|
-
export { enUS } from './config-provider';
|
|
48
|
-
export { default as DatetimePicker } from './datetime-picker';
|
|
49
|
-
export { default as Calendar } from './calendar';
|
|
50
|
-
export { default as Cascader } from './cascader';
|
|
51
|
-
export { default as Tabs } from './tabs';
|
|
52
|
-
export { default as Tabbar } from './tabbar';
|
|
53
|
-
export { default as NavBar } from './nav-bar';
|
|
54
|
-
export { default as Sidebar } from './sidebar';
|
|
55
|
-
export { default as IndexBar } from './index-bar';
|
|
56
|
-
export { default as ActionSheet } from './action-sheet';
|
|
57
|
-
export { default as ShareSheet } from './share-sheet';
|
|
58
|
-
export { default as DropdownMenu } from './dropdown-menu';
|
|
59
|
-
export { default as Area } from './area';
|
|
60
|
-
export { default as List } from './list';
|
|
61
|
-
export { default as PullRefresh } from './pull-refresh';
|
|
62
|
-
export { default as ImagePreview } from './image-preview';
|
|
63
|
-
export { default as Swiper } from './swiper';
|
|
64
|
-
export { SwiperItem } from './swiper';
|
|
65
|
-
export { SwiperPagIndicator } from './swiper';
|
|
66
|
-
export { useSwiperPagIndicatorTokens } from './swiper';
|
|
67
|
-
export { default as Uploader } from './uploader';
|
|
68
|
-
export { useUploaderTokens } from './uploader';
|
|
69
|
-
export { default as Skeleton } from './skeleton';
|
|
70
|
-
export { useSkeletonTokens } from './skeleton';
|
|
71
|
-
export { default as CountDown } from './count-down';
|
|
72
|
-
export { default as WaterMark } from './water-mark';
|
|
73
|
-
export { default as Pagination } from './pagination';
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './design-system';
|
|
3
|
+
export * from './hooks';
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { isFunction } from '../utils/validate';
|
|
2
|
+
export const measureInWindow = (node, callback) => {
|
|
3
|
+
if (!node) {
|
|
4
|
+
callback(null);
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
const maybeMeasureNode = node;
|
|
9
|
+
if (isFunction(maybeMeasureNode.measureInWindow)) {
|
|
10
|
+
maybeMeasureNode.measureInWindow((x, y, width, height) => {
|
|
11
|
+
if (![x, y, width, height].every(Number.isFinite)) {
|
|
12
|
+
callback(null);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
callback({
|
|
16
|
+
x,
|
|
17
|
+
y,
|
|
18
|
+
width,
|
|
19
|
+
height
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const maybeDomNode = node;
|
|
25
|
+
if (isFunction(maybeDomNode.getBoundingClientRect)) {
|
|
26
|
+
const rect = maybeDomNode.getBoundingClientRect();
|
|
27
|
+
const x = rect?.left;
|
|
28
|
+
const y = rect?.top;
|
|
29
|
+
const width = rect?.width;
|
|
30
|
+
const height = rect?.height;
|
|
31
|
+
if (![x, y, width, height].every(Number.isFinite)) {
|
|
32
|
+
callback(null);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
callback({
|
|
36
|
+
x: x,
|
|
37
|
+
y: y,
|
|
38
|
+
width: width,
|
|
39
|
+
height: height
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
} catch (_error) {
|
|
44
|
+
callback(null);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
callback(null);
|
|
48
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
let locked = false;
|
|
2
|
+
let previousOverflow = '';
|
|
3
|
+
export const setBodyScrollLocked = nextLocked => {
|
|
4
|
+
if (typeof document === 'undefined') return;
|
|
5
|
+
if (nextLocked && !locked) {
|
|
6
|
+
previousOverflow = document.body.style.overflow;
|
|
7
|
+
document.body.style.overflow = 'hidden';
|
|
8
|
+
locked = true;
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!nextLocked && locked) {
|
|
12
|
+
document.body.style.overflow = previousOverflow;
|
|
13
|
+
locked = false;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export const isBodyScrollLocked = () => locked;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { clamp01 } from './number';
|
|
2
|
+
const hexRegex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
3
|
+
export const hexToRgb = input => {
|
|
4
|
+
if (!hexRegex.test(input)) return null;
|
|
5
|
+
const normalized = input.length === 4 ? `#${input[1]}${input[1]}${input[2]}${input[2]}${input[3]}${input[3]}` : input;
|
|
6
|
+
const intVal = parseInt(normalized.slice(1), 16);
|
|
7
|
+
const r = intVal >> 16 & 255;
|
|
8
|
+
const g = intVal >> 8 & 255;
|
|
9
|
+
const b = intVal & 255;
|
|
10
|
+
return [r, g, b];
|
|
11
|
+
};
|
|
12
|
+
const parseRgbChannels = input => {
|
|
13
|
+
const match = input.match(/^rgba?\(([^)]*)\)$/i);
|
|
14
|
+
if (!match) return null;
|
|
15
|
+
const parts = match[1].split(',').map(part => part.trim()).slice(0, 3);
|
|
16
|
+
const numeric = parts.map(value => Number(value));
|
|
17
|
+
if (!numeric.every(channel => Number.isFinite(channel))) return null;
|
|
18
|
+
return [numeric[0], numeric[1], numeric[2]];
|
|
19
|
+
};
|
|
20
|
+
export const withAlpha = (color, alpha) => {
|
|
21
|
+
const clamped = clamp01(alpha);
|
|
22
|
+
const trimmed = color?.trim?.() ?? '';
|
|
23
|
+
if (!trimmed) return color;
|
|
24
|
+
if (trimmed.startsWith('#')) {
|
|
25
|
+
const rgb = hexToRgb(trimmed);
|
|
26
|
+
return rgb ? `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${clamped})` : color;
|
|
27
|
+
}
|
|
28
|
+
const rgb = parseRgbChannels(trimmed);
|
|
29
|
+
if (rgb) return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${clamped})`;
|
|
30
|
+
return trimmed;
|
|
31
|
+
};
|
|
32
|
+
export const ensureRgba = (color, alpha) => {
|
|
33
|
+
const trimmed = color.trim().toLowerCase();
|
|
34
|
+
if (trimmed.startsWith('rgba')) return color;
|
|
35
|
+
return withAlpha(color, alpha);
|
|
36
|
+
};
|
|
37
|
+
const gradientColorRegex = /(#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)|hsla?\([^)]*\))/i;
|
|
38
|
+
export const extractFirstColorToken = input => {
|
|
39
|
+
if (!input) return undefined;
|
|
40
|
+
const match = input.match(gradientColorRegex);
|
|
41
|
+
return match ? match[0] : undefined;
|
|
42
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
const hexToRgba = (hex, alpha) => {
|
|
3
|
+
const normalized = hex.replace('#', '');
|
|
4
|
+
const expand = normalized.length === 3 ? normalized.split('').map(char => char + char).join('') : normalized;
|
|
5
|
+
if (expand.length < 6) {
|
|
6
|
+
return hex;
|
|
7
|
+
}
|
|
8
|
+
const bigint = parseInt(expand.slice(0, 6), 16);
|
|
9
|
+
const r = bigint >> 16 & 255;
|
|
10
|
+
const g = bigint >> 8 & 255;
|
|
11
|
+
const b = bigint & 255;
|
|
12
|
+
const clampedAlpha = Math.max(0, Math.min(1, alpha));
|
|
13
|
+
return `rgba(${r}, ${g}, ${b}, ${clampedAlpha})`;
|
|
14
|
+
};
|
|
15
|
+
const ensureRgbaColor = (color, alpha) => {
|
|
16
|
+
const trimmed = color.trim().toLowerCase();
|
|
17
|
+
if (trimmed.startsWith('#')) {
|
|
18
|
+
return hexToRgba(trimmed, alpha);
|
|
19
|
+
}
|
|
20
|
+
if (trimmed.startsWith('rgba')) {
|
|
21
|
+
return color;
|
|
22
|
+
}
|
|
23
|
+
if (trimmed.startsWith('rgb(')) {
|
|
24
|
+
return color.replace(/rgb\(([^)]*)\)/i, (_, inner) => `rgba(${inner}, ${alpha})`);
|
|
25
|
+
}
|
|
26
|
+
return color;
|
|
27
|
+
};
|
|
28
|
+
export const createPlatformShadow = config => {
|
|
29
|
+
const nativeShadow = {
|
|
30
|
+
shadowColor: config.color,
|
|
31
|
+
shadowOpacity: config.opacity,
|
|
32
|
+
shadowRadius: config.radius,
|
|
33
|
+
shadowOffset: {
|
|
34
|
+
width: config.offsetX ?? 0,
|
|
35
|
+
height: config.offsetY
|
|
36
|
+
},
|
|
37
|
+
...(config.elevation !== undefined ? {
|
|
38
|
+
elevation: config.elevation
|
|
39
|
+
} : null)
|
|
40
|
+
};
|
|
41
|
+
if (Platform.OS !== 'web') {
|
|
42
|
+
return nativeShadow;
|
|
43
|
+
}
|
|
44
|
+
const blur = Math.max(config.radius * 1.5, config.radius);
|
|
45
|
+
const boxShadowColor = ensureRgbaColor(config.color, config.opacity);
|
|
46
|
+
return {
|
|
47
|
+
boxShadow: `${config.offsetX ?? 0}px ${config.offsetY}px ${blur}px ${boxShadowColor}`
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export default createPlatformShadow;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const padZero = (value, length = 2) => {
|
|
2
|
+
const str = String(value);
|
|
3
|
+
return str.length >= length ? str : `${'0'.repeat(length - str.length)}${str}`;
|
|
4
|
+
};
|
|
5
|
+
export const times = (count, iteratee) => {
|
|
6
|
+
return Array.from({
|
|
7
|
+
length: count
|
|
8
|
+
}, (_, index) => iteratee(index));
|
|
9
|
+
};
|
|
10
|
+
export const getTrueValue = value => {
|
|
11
|
+
if (!value) return 0;
|
|
12
|
+
const parsed = parseInt(value, 10);
|
|
13
|
+
return Number.isNaN(parsed) ? 0 : parsed;
|
|
14
|
+
};
|
|
15
|
+
export const getMonthEndDay = (year, month) => {
|
|
16
|
+
return 32 - new Date(year, month - 1, 32).getDate();
|
|
17
|
+
};
|
|
18
|
+
export const isValidDate = value => {
|
|
19
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
20
|
+
};
|
|
21
|
+
export const formatDuration = (format, currentTime) => {
|
|
22
|
+
const {
|
|
23
|
+
days
|
|
24
|
+
} = currentTime;
|
|
25
|
+
let {
|
|
26
|
+
hours,
|
|
27
|
+
minutes,
|
|
28
|
+
seconds,
|
|
29
|
+
milliseconds
|
|
30
|
+
} = currentTime;
|
|
31
|
+
let template = format;
|
|
32
|
+
if (template.includes('DD')) {
|
|
33
|
+
template = template.replace('DD', padZero(days));
|
|
34
|
+
} else {
|
|
35
|
+
hours += days * 24;
|
|
36
|
+
}
|
|
37
|
+
if (template.includes('HH')) {
|
|
38
|
+
template = template.replace('HH', padZero(hours));
|
|
39
|
+
} else {
|
|
40
|
+
minutes += hours * 60;
|
|
41
|
+
}
|
|
42
|
+
if (template.includes('mm')) {
|
|
43
|
+
template = template.replace('mm', padZero(minutes));
|
|
44
|
+
} else {
|
|
45
|
+
seconds += minutes * 60;
|
|
46
|
+
}
|
|
47
|
+
if (template.includes('ss')) {
|
|
48
|
+
template = template.replace('ss', padZero(seconds));
|
|
49
|
+
} else {
|
|
50
|
+
milliseconds += seconds * 1000;
|
|
51
|
+
}
|
|
52
|
+
if (template.includes('S')) {
|
|
53
|
+
const ms = padZero(milliseconds, 3);
|
|
54
|
+
if (template.includes('SSS')) {
|
|
55
|
+
template = template.replace('SSS', ms);
|
|
56
|
+
} else if (template.includes('SS')) {
|
|
57
|
+
template = template.replace('SS', ms.slice(0, 2));
|
|
58
|
+
} else {
|
|
59
|
+
template = template.replace('S', ms.charAt(0));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return template;
|
|
63
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const isPlainObject = value => {
|
|
2
|
+
return Object.prototype.toString.call(value) === '[object Object]';
|
|
3
|
+
};
|
|
4
|
+
export function deepMerge(target, source) {
|
|
5
|
+
if (!source) {
|
|
6
|
+
return target;
|
|
7
|
+
}
|
|
8
|
+
if (!Array.isArray(target) && !isPlainObject(target)) {
|
|
9
|
+
return source;
|
|
10
|
+
}
|
|
11
|
+
const output = Array.isArray(target) ? [...target] : {
|
|
12
|
+
...target
|
|
13
|
+
};
|
|
14
|
+
Object.keys(source).forEach(key => {
|
|
15
|
+
const sourceValue = source[key];
|
|
16
|
+
if (sourceValue === undefined) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const targetValue = target[key];
|
|
20
|
+
if (isPlainObject(targetValue) && isPlainObject(sourceValue)) {
|
|
21
|
+
;
|
|
22
|
+
output[key] = deepMerge(targetValue, sourceValue);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
;
|
|
26
|
+
output[key] = Array.isArray(sourceValue) ? [...sourceValue] : isPlainObject(sourceValue) ? {
|
|
27
|
+
...sourceValue
|
|
28
|
+
} : sourceValue;
|
|
29
|
+
});
|
|
30
|
+
return output;
|
|
31
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
2
|
+
export const getHairlineWidth = () => Platform.OS === 'web' ? 1 : StyleSheet.hairlineWidth;
|
|
3
|
+
export const createHairlineBorder = ({
|
|
4
|
+
color,
|
|
5
|
+
position = 'all',
|
|
6
|
+
enabled = true
|
|
7
|
+
} = {}) => {
|
|
8
|
+
if (!enabled) return {};
|
|
9
|
+
const width = getHairlineWidth();
|
|
10
|
+
const key = position === 'all' ? 'border' : `border${position[0].toUpperCase()}${position.slice(1)}`;
|
|
11
|
+
return {
|
|
12
|
+
[`${key}Width`]: width,
|
|
13
|
+
...(color && {
|
|
14
|
+
[`${key}Color`]: color
|
|
15
|
+
})
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export const createHairlineBorderTop = color => createHairlineBorder({
|
|
19
|
+
color,
|
|
20
|
+
position: 'top'
|
|
21
|
+
});
|
|
22
|
+
export const createHairlineBorderRight = color => createHairlineBorder({
|
|
23
|
+
color,
|
|
24
|
+
position: 'right'
|
|
25
|
+
});
|
|
26
|
+
export const createHairlineBorderBottom = color => createHairlineBorder({
|
|
27
|
+
color,
|
|
28
|
+
position: 'bottom'
|
|
29
|
+
});
|
|
30
|
+
export const createHairlineBorderLeft = color => createHairlineBorder({
|
|
31
|
+
color,
|
|
32
|
+
position: 'left'
|
|
33
|
+
});
|
|
34
|
+
export const createHairlineView = ({
|
|
35
|
+
left,
|
|
36
|
+
right,
|
|
37
|
+
top,
|
|
38
|
+
bottom,
|
|
39
|
+
width,
|
|
40
|
+
color,
|
|
41
|
+
position = 'bottom'
|
|
42
|
+
} = {}) => {
|
|
43
|
+
const isWeb = Platform.OS === 'web';
|
|
44
|
+
const borderWidth = width ?? (isWeb ? 1 : StyleSheet.hairlineWidth);
|
|
45
|
+
const style = {
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
pointerEvents: 'none',
|
|
48
|
+
left,
|
|
49
|
+
right,
|
|
50
|
+
top,
|
|
51
|
+
bottom
|
|
52
|
+
};
|
|
53
|
+
if (position !== 'all') {
|
|
54
|
+
const s = style;
|
|
55
|
+
if (s[position] === undefined) s[position] = 0;
|
|
56
|
+
}
|
|
57
|
+
const key = position === 'all' ? 'border' : `border${position[0].toUpperCase()}${position.slice(1)}`;
|
|
58
|
+
const mutableStyle = style;
|
|
59
|
+
mutableStyle[`${key}Width`] = borderWidth;
|
|
60
|
+
if (color) mutableStyle[`${key}Color`] = color;
|
|
61
|
+
if (isWeb && (!width || width === 1 || width === StyleSheet.hairlineWidth)) {
|
|
62
|
+
const scales = {
|
|
63
|
+
top: {
|
|
64
|
+
scaleY: 0.5
|
|
65
|
+
},
|
|
66
|
+
bottom: {
|
|
67
|
+
scaleY: 0.5
|
|
68
|
+
},
|
|
69
|
+
left: {
|
|
70
|
+
scaleX: 0.5
|
|
71
|
+
},
|
|
72
|
+
right: {
|
|
73
|
+
scaleX: 0.5
|
|
74
|
+
},
|
|
75
|
+
all: {
|
|
76
|
+
scale: 0.5
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
if (scales[position]) {
|
|
80
|
+
style.transform = [scales[position]];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return style;
|
|
84
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// 统一导出所有工具函数,简化导入路径
|
|
2
|
+
export * from './array';
|
|
3
|
+
export * from './color';
|
|
4
|
+
export * from './createPlatformShadow';
|
|
5
|
+
export * from './date';
|
|
6
|
+
export * from './deepMerge';
|
|
7
|
+
export * from './hairline';
|
|
8
|
+
export * from './number';
|
|
9
|
+
export * from './promise';
|
|
10
|
+
export * from './string';
|
|
11
|
+
export * from './validate';
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { isFiniteNumber, isNumber, isString } from './validate';
|
|
2
|
+
export const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
|
|
3
|
+
export const clamp01 = value => clamp(value, 0, 1);
|
|
4
|
+
export const parseNumberLike = (value, fallback) => {
|
|
5
|
+
if (isFiniteNumber(value)) return value;
|
|
6
|
+
if (isString(value)) {
|
|
7
|
+
const parsed = Number.parseFloat(value);
|
|
8
|
+
return Number.isFinite(parsed) ? parsed : fallback;
|
|
9
|
+
}
|
|
10
|
+
return fallback;
|
|
11
|
+
};
|
|
12
|
+
export const parseNumber = (value, fallback = 0) => parseNumberLike(value, fallback) ?? fallback;
|
|
13
|
+
export const parsePercentage = percentage => {
|
|
14
|
+
if (isNumber(percentage)) return percentage;
|
|
15
|
+
if (isString(percentage)) {
|
|
16
|
+
const normalized = percentage.trim().replace('%', '');
|
|
17
|
+
const parsed = Number(normalized);
|
|
18
|
+
return Number.isNaN(parsed) ? 0 : parsed;
|
|
19
|
+
}
|
|
20
|
+
return 0;
|
|
21
|
+
};
|
|
22
|
+
export const isNumericLike = value => isNumber(value) || isString(value) && value.trim() !== '' && !Number.isNaN(Number(value));
|
|
23
|
+
export const addNumber = (num1, num2) => {
|
|
24
|
+
const cardinal = 10 ** 10;
|
|
25
|
+
return Math.round((num1 + num2) * cardinal) / cardinal;
|
|
26
|
+
};
|
|
27
|
+
export const formatNumber = (value, integer, decimalLength) => {
|
|
28
|
+
let next = value;
|
|
29
|
+
if (integer) next = Math.trunc(next);
|
|
30
|
+
if (decimalLength !== undefined) {
|
|
31
|
+
const factor = 10 ** decimalLength;
|
|
32
|
+
next = Math.round(next * factor) / factor;
|
|
33
|
+
}
|
|
34
|
+
return next;
|
|
35
|
+
};
|
|
36
|
+
export const numberToString = (value, decimalLength) => {
|
|
37
|
+
if (value === null || value === undefined || !Number.isFinite(value)) return '';
|
|
38
|
+
if (decimalLength !== undefined) return value.toFixed(decimalLength);
|
|
39
|
+
return String(value);
|
|
40
|
+
};
|
|
41
|
+
export const parseDecimalLength = value => {
|
|
42
|
+
if (value === undefined) return undefined;
|
|
43
|
+
const parsed = isNumber(value) ? value : Number.parseInt(value, 10);
|
|
44
|
+
if (!Number.isFinite(parsed)) return undefined;
|
|
45
|
+
return Math.max(0, Math.floor(parsed));
|
|
46
|
+
};
|
|
47
|
+
export const clampValue = (value, min, max) => {
|
|
48
|
+
let next = value;
|
|
49
|
+
if (isFiniteNumber(min)) {
|
|
50
|
+
next = Math.max(next, min);
|
|
51
|
+
}
|
|
52
|
+
if (isFiniteNumber(max)) {
|
|
53
|
+
next = Math.min(next, max);
|
|
54
|
+
}
|
|
55
|
+
return next;
|
|
56
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isTwoCNChar } from './validate';
|
|
2
|
+
export const ensureSpace = (value, autoInsertSpace) => {
|
|
3
|
+
if (!autoInsertSpace) {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
return isTwoCNChar(value) ? value.split('').join(' ') : value;
|
|
7
|
+
};
|
|
8
|
+
export const trimExtraChar = (value, char, regExp) => {
|
|
9
|
+
const index = value.indexOf(char);
|
|
10
|
+
if (index === -1) return value;
|
|
11
|
+
if (char === '-' && index !== 0) {
|
|
12
|
+
return value.slice(0, index);
|
|
13
|
+
}
|
|
14
|
+
return value.slice(0, index + 1) + value.slice(index).replace(regExp, '');
|
|
15
|
+
};
|
|
16
|
+
export const formatNumberInput = (value, allowDot = true, allowMinus = true) => {
|
|
17
|
+
let next = value;
|
|
18
|
+
if (allowDot) {
|
|
19
|
+
next = trimExtraChar(next, '.', /\./g);
|
|
20
|
+
} else {
|
|
21
|
+
next = next.split('.')[0];
|
|
22
|
+
}
|
|
23
|
+
if (allowMinus) {
|
|
24
|
+
next = trimExtraChar(next, '-', /-/g);
|
|
25
|
+
} else {
|
|
26
|
+
next = next.replace(/-/g, '');
|
|
27
|
+
}
|
|
28
|
+
const regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;
|
|
29
|
+
return next.replace(regExp, '');
|
|
30
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isValidElement } from 'react';
|
|
2
|
+
export const isDef = val => val !== undefined && val !== null;
|
|
3
|
+
export const isRenderable = node => node != null && typeof node !== 'boolean';
|
|
4
|
+
export const isText = node => typeof node === 'string' || typeof node === 'number';
|
|
5
|
+
export const isNumber = val => typeof val === 'number' && !Number.isNaN(val);
|
|
6
|
+
export const isFiniteNumber = val => isNumber(val) && Number.isFinite(val);
|
|
7
|
+
export const isString = val => typeof val === 'string';
|
|
8
|
+
export const isBoolean = val => typeof val === 'boolean';
|
|
9
|
+
export const isFunction = val => typeof val === 'function';
|
|
10
|
+
export const isUndefined = val => typeof val === 'undefined';
|
|
11
|
+
export const isObject = val => val !== null && typeof val === 'object';
|
|
12
|
+
export const isValidNode = node => isRenderable(node) && (typeof node !== 'string' || node.length > 0);
|
|
13
|
+
export const isPlainObject = val => !!val && typeof val === 'object' && !Array.isArray(val) && ! /*#__PURE__*/isValidElement(val);
|
|
14
|
+
export const isTwoCNChar = value => /^(?:[\u4e00-\u9fa5]){2}$/.test(value);
|
|
15
|
+
export const isImageUrlString = url => /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i.test(url);
|
|
@@ -81,6 +81,8 @@ export type { NotifyProps, NotifyType, NotifyPosition } from './notify';
|
|
|
81
81
|
export { Portal } from './portal';
|
|
82
82
|
export { PortalHost } from './portal';
|
|
83
83
|
export type { PortalProps } from './portal/Portal';
|
|
84
|
+
export { SafeAreaView } from './safe-area-view';
|
|
85
|
+
export type { SafeAreaViewProps } from './safe-area-view';
|
|
84
86
|
export { ConfigProvider } from './config-provider';
|
|
85
87
|
export { useLocale } from './config-provider';
|
|
86
88
|
export { zhCN } from './config-provider';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type LayoutChangeEvent, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
export interface SafeAreaViewProps {
|
|
4
|
+
edge?: 'top' | 'bottom';
|
|
5
|
+
style?: StyleProp<ViewStyle>;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
onLayout?: (event: LayoutChangeEvent) => void;
|
|
8
|
+
pointerEvents?: 'box-none' | 'none' | 'box-only' | 'auto';
|
|
9
|
+
}
|
|
10
|
+
export declare const SafeAreaView: React.FC<SafeAreaViewProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type SafeAreaPaddingMin = {
|
|
2
|
+
top?: number;
|
|
3
|
+
bottom?: number;
|
|
4
|
+
left?: number;
|
|
5
|
+
right?: number;
|
|
6
|
+
};
|
|
7
|
+
export type SafeAreaPaddingResult = {
|
|
8
|
+
paddingTop: number | string;
|
|
9
|
+
paddingBottom: number | string;
|
|
10
|
+
paddingLeft: number | string;
|
|
11
|
+
paddingRight: number | string;
|
|
12
|
+
};
|
|
13
|
+
export declare function useSafeAreaPadding(min?: SafeAreaPaddingMin): SafeAreaPaddingResult;
|