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
|
@@ -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);
|
|
@@ -9,17 +9,34 @@ export interface DropdownMenuTokens {
|
|
|
9
9
|
mask: string;
|
|
10
10
|
divider: string;
|
|
11
11
|
barBackground: string;
|
|
12
|
+
transparent: string;
|
|
12
13
|
};
|
|
13
14
|
spacing: {
|
|
14
15
|
horizontal: number;
|
|
15
16
|
vertical: number;
|
|
16
17
|
titlePadding: number;
|
|
18
|
+
customPanelPadding: number;
|
|
19
|
+
optionRowPaddingHorizontal: number;
|
|
20
|
+
optionRowPaddingVertical: number;
|
|
21
|
+
itemScrollablePaddingHorizontal: number;
|
|
22
|
+
arrowMarginLeft: number;
|
|
23
|
+
optionIconMarginRight: number;
|
|
24
|
+
indicatorMarginLeft: number;
|
|
25
|
+
panelPaddingHorizontal: number;
|
|
17
26
|
};
|
|
18
27
|
sizing: {
|
|
19
28
|
barHeight: number;
|
|
20
29
|
titleFontSize: number;
|
|
21
30
|
titleLineHeight: number;
|
|
22
31
|
panelMaxHeight: number;
|
|
32
|
+
optionFontSize: number;
|
|
33
|
+
arrowSize: number;
|
|
34
|
+
arrowBorderWidth: number;
|
|
35
|
+
arrowBorderHeight: number;
|
|
36
|
+
};
|
|
37
|
+
opacity: {
|
|
38
|
+
arrowInactive: number;
|
|
39
|
+
arrowActive: number;
|
|
23
40
|
};
|
|
24
41
|
shadow: {
|
|
25
42
|
shadowColor: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Field from './Field';
|
|
2
2
|
import { CellGroup as FieldGroup } from '../cell';
|
|
3
|
-
export { useFieldTokens } from './tokens';
|
|
4
3
|
export { FieldGroup };
|
|
5
4
|
export type { FieldProps, FieldInstance, FieldType, FieldClearTrigger, FieldFormatTrigger, FieldAutosizeConfig, FieldTooltipProps, FieldShowWordLimit, FieldInputAlign, FieldControlAlign, FieldGroupProps, } from './types';
|
|
5
|
+
export { useFieldTokens } from './tokens';
|
|
6
6
|
export default Field;
|
|
7
7
|
export { Field };
|
|
@@ -5,6 +5,22 @@ export interface ImagePreviewTokens {
|
|
|
5
5
|
indexText: string;
|
|
6
6
|
indicatorActive: string;
|
|
7
7
|
indicatorInactive: string;
|
|
8
|
+
transparent: string;
|
|
9
|
+
};
|
|
10
|
+
spacing: {
|
|
11
|
+
indexTop: number;
|
|
12
|
+
indexPaddingHorizontal: number;
|
|
13
|
+
indexPaddingVertical: number;
|
|
14
|
+
};
|
|
15
|
+
layout: {
|
|
16
|
+
popupPadding: number;
|
|
17
|
+
popupRadius: number;
|
|
18
|
+
};
|
|
19
|
+
radii: {
|
|
20
|
+
indexBadge: number;
|
|
21
|
+
};
|
|
22
|
+
typography: {
|
|
23
|
+
indexTextSize: number;
|
|
8
24
|
};
|
|
9
25
|
}
|
|
10
26
|
export declare const useImagePreviewTokens: (overrides?: import("../..").DeepPartial<ImagePreviewTokens> | undefined) => ImagePreviewTokens;
|
|
@@ -5,18 +5,27 @@ export interface IndexBarTokens {
|
|
|
5
5
|
indicatorBackground: string;
|
|
6
6
|
indicatorText: string;
|
|
7
7
|
stickyBackground: string;
|
|
8
|
-
stickyText: string;
|
|
9
8
|
anchorBackground: string;
|
|
10
9
|
anchorText: string;
|
|
11
|
-
border: string;
|
|
12
10
|
};
|
|
13
11
|
layout: {
|
|
14
12
|
indexWidth: number;
|
|
15
|
-
indicatorSize: number;
|
|
16
|
-
stickyHeight: number;
|
|
17
13
|
paddingVertical: number;
|
|
14
|
+
indexListPaddingHorizontal: number;
|
|
15
|
+
indexItemPaddingVertical: number;
|
|
16
|
+
indexItemPaddingHorizontal: number;
|
|
18
17
|
spacing: number;
|
|
18
|
+
indicatorSize: number;
|
|
19
|
+
stickyHeight: number;
|
|
20
|
+
stickyPaddingHorizontal: number;
|
|
19
21
|
anchorHeight: number;
|
|
22
|
+
anchorPaddingHorizontal: number;
|
|
23
|
+
};
|
|
24
|
+
typography: {
|
|
25
|
+
indexTextSize: number;
|
|
26
|
+
indicatorTextSize: number;
|
|
27
|
+
stickyTextSize: number;
|
|
28
|
+
anchorTitleSize: number;
|
|
20
29
|
};
|
|
21
30
|
}
|
|
22
31
|
export declare const useIndexBarTokens: (overrides?: import("../..").DeepPartial<IndexBarTokens> | undefined) => IndexBarTokens;
|