react-native-system-ui 1.0.2 → 1.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 +42 -22
- package/dist/cjs/components/action-sheet/ActionSheet.js +1 -301
- package/dist/cjs/components/action-sheet/index.js +1 -16
- package/dist/cjs/components/action-sheet/tokens.js +1 -133
- package/dist/cjs/components/area/Area.js +1 -127
- package/dist/cjs/components/area/index.js +1 -9
- package/dist/cjs/components/area/tokens.js +1 -14
- package/dist/cjs/components/avatar/Avatar.js +1 -125
- package/dist/cjs/components/avatar/index.js +1 -18
- package/dist/cjs/components/avatar/tokens.js +1 -56
- package/dist/cjs/components/badge/Badge.js +1 -166
- package/dist/cjs/components/badge/index.js +1 -8
- package/dist/cjs/components/badge/tokens.js +1 -81
- package/dist/cjs/components/button/Button.js +1 -203
- package/dist/cjs/components/button/ButtonContext.js +1 -12
- package/dist/cjs/components/button/ButtonGroup.js +1 -65
- package/dist/cjs/components/button/index.js +1 -12
- package/dist/cjs/components/button/tokens.js +1 -176
- package/dist/cjs/components/calendar/Calendar.js +1 -452
- package/dist/cjs/components/calendar/index.js +1 -9
- package/dist/cjs/components/calendar/tokens.js +1 -129
- package/dist/cjs/components/cascader/Cascader.js +1 -482
- package/dist/cjs/components/cascader/index.js +1 -15
- package/dist/cjs/components/cascader/tokens.js +1 -138
- package/dist/cjs/components/cascader/useCascaderExtend.js +1 -39
- package/dist/cjs/components/cell/Cell.js +1 -181
- package/dist/cjs/components/cell/CellContext.js +1 -19
- package/dist/cjs/components/cell/CellGroup.js +1 -100
- package/dist/cjs/components/cell/index.js +1 -19
- package/dist/cjs/components/cell/tokens.js +1 -173
- package/dist/cjs/components/checkbox/Checkbox.js +1 -251
- package/dist/cjs/components/checkbox/CheckboxContext.js +1 -12
- package/dist/cjs/components/checkbox/CheckboxGroup.js +1 -148
- package/dist/cjs/components/checkbox/index.js +1 -16
- package/dist/cjs/components/checkbox/tokens.js +1 -97
- package/dist/cjs/components/circle/Circle.js +1 -212
- package/dist/cjs/components/circle/index.js +1 -9
- package/dist/cjs/components/circle/tokens.js +1 -55
- package/dist/cjs/components/collapse/Collapse.js +1 -311
- package/dist/cjs/components/collapse/index.js +1 -8
- package/dist/cjs/components/collapse/tokens.js +1 -81
- package/dist/cjs/components/config-provider/ConfigProvider.js +1 -44
- package/dist/cjs/components/config-provider/DirectionContext.js +1 -15
- package/dist/cjs/components/config-provider/LocaleContext.js +1 -16
- package/dist/cjs/components/config-provider/index.js +1 -40
- package/dist/cjs/components/config-provider/locale/en-US.js +1 -112
- package/dist/cjs/components/config-provider/locale/zh-CN.js +1 -112
- package/dist/cjs/components/config-provider/tokens.js +1 -11
- package/dist/cjs/components/config-provider/useDirection.js +1 -16
- package/dist/cjs/components/config-provider/useLocale.js +1 -16
- package/dist/cjs/components/count-down/CountDown.js +1 -88
- package/dist/cjs/components/count-down/index.js +1 -15
- package/dist/cjs/components/count-down/tokens.js +1 -34
- package/dist/cjs/components/datetime-picker/DatetimePicker.js +1 -319
- package/dist/cjs/components/datetime-picker/index.js +1 -9
- package/dist/cjs/components/datetime-picker/tokens.js +1 -22
- package/dist/cjs/components/dialog/Dialog.js +1 -433
- package/dist/cjs/components/dialog/imperative.js +1 -199
- package/dist/cjs/components/dialog/index.js +1 -23
- package/dist/cjs/components/dialog/tokens.js +1 -64
- package/dist/cjs/components/divider/Divider.js +1 -126
- package/dist/cjs/components/divider/index.js +1 -8
- package/dist/cjs/components/divider/tokens.js +1 -62
- package/dist/cjs/components/empty/Empty.js +1 -125
- package/dist/cjs/components/empty/index.js +1 -8
- package/dist/cjs/components/empty/tokens.js +1 -55
- package/dist/cjs/components/error-boundary/ErrorBoundary.js +1 -74
- package/dist/cjs/components/error-boundary/index.js +1 -19
- package/dist/cjs/components/field/Field.js +1 -565
- package/dist/cjs/components/field/index.js +1 -29
- package/dist/cjs/components/field/tokens.js +1 -150
- package/dist/cjs/components/flex/Flex.js +1 -85
- package/dist/cjs/components/flex/FlexContext.js +1 -12
- package/dist/cjs/components/flex/FlexItem.js +1 -95
- package/dist/cjs/components/flex/index.js +1 -19
- package/dist/cjs/components/flex/tokens.js +1 -21
- package/dist/cjs/components/form/Form.js +1 -340
- package/dist/cjs/components/form/FormContext.js +1 -12
- package/dist/cjs/components/form/FormItem.js +1 -151
- package/dist/cjs/components/form/FormList.js +1 -95
- package/dist/cjs/components/form/index.js +1 -50
- package/dist/cjs/components/form/tokens.js +1 -14
- package/dist/cjs/components/form/utils.js +1 -56
- package/dist/cjs/components/grid/Grid.js +1 -118
- package/dist/cjs/components/grid/GridContext.js +1 -12
- package/dist/cjs/components/grid/GridItem.js +1 -158
- package/dist/cjs/components/grid/index.js +1 -12
- package/dist/cjs/components/grid/tokens.js +1 -105
- package/dist/cjs/components/image/Image.js +1 -263
- package/dist/cjs/components/image/index.js +1 -16
- package/dist/cjs/components/image/tokens.js +1 -66
- package/dist/cjs/components/image-preview/ImagePreview.js +1 -408
- package/dist/cjs/components/image-preview/imperative.js +1 -72
- package/dist/cjs/components/image-preview/index.js +1 -17
- package/dist/cjs/components/image-preview/tokens.js +1 -43
- package/dist/cjs/components/index.js +1 -769
- package/dist/cjs/components/input/Input.js +1 -122
- package/dist/cjs/components/input/index.js +1 -15
- package/dist/cjs/components/input/tokens.js +1 -22
- package/dist/cjs/components/loading/Loading.js +1 -76
- package/dist/cjs/components/loading/index.js +1 -8
- package/dist/cjs/components/loading/tokens.js +1 -32
- package/dist/cjs/components/nav-bar/NavBar.js +1 -196
- package/dist/cjs/components/nav-bar/index.js +1 -16
- package/dist/cjs/components/nav-bar/tokens.js +1 -90
- package/dist/cjs/components/notice-bar/NoticeBar.js +1 -369
- package/dist/cjs/components/notice-bar/index.js +1 -8
- package/dist/cjs/components/notice-bar/tokens.js +1 -39
- package/dist/cjs/components/notify/Notify.js +1 -262
- package/dist/cjs/components/notify/imperative.js +1 -145
- package/dist/cjs/components/notify/index.js +1 -10
- package/dist/cjs/components/notify/tokens.js +1 -74
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -487
- package/dist/cjs/components/number-keyboard/index.js +1 -15
- package/dist/cjs/components/number-keyboard/tokens.js +1 -59
- package/dist/cjs/components/overlay/Overlay.js +1 -81
- package/dist/cjs/components/overlay/index.js +1 -28
- package/dist/cjs/components/overlay/tokens.js +1 -13
- package/dist/cjs/components/password-input/PasswordInput.js +1 -346
- package/dist/cjs/components/password-input/index.js +1 -13
- package/dist/cjs/components/password-input/tokens.js +1 -53
- package/dist/cjs/components/picker/Picker.js +1 -1056
- package/dist/cjs/components/picker/index.js +1 -15
- package/dist/cjs/components/picker/tokens.js +1 -53
- package/dist/cjs/components/popup/Popup.js +1 -518
- package/dist/cjs/components/popup/index.js +1 -15
- package/dist/cjs/components/popup/tokens.js +1 -62
- package/dist/cjs/components/portal/Portal.js +1 -50
- package/dist/cjs/components/portal/PortalContext.js +1 -15
- package/dist/cjs/components/portal/PortalHost.js +1 -253
- package/dist/cjs/components/portal/index.js +1 -25
- package/dist/cjs/components/portal/tokens.js +1 -11
- package/dist/cjs/components/progress/Progress.js +1 -216
- package/dist/cjs/components/progress/index.js +1 -14
- package/dist/cjs/components/progress/tokens.js +1 -52
- package/dist/cjs/components/radio/Radio.js +1 -245
- package/dist/cjs/components/radio/RadioContext.js +1 -12
- package/dist/cjs/components/radio/RadioGroup.js +1 -113
- package/dist/cjs/components/radio/index.js +1 -16
- package/dist/cjs/components/radio/tokens.js +1 -92
- package/dist/cjs/components/safe-area-view/SafeAreaView.js +1 -59
- package/dist/cjs/components/safe-area-view/index.js +1 -12
- package/dist/cjs/components/safe-area-view/tokens.js +1 -11
- package/dist/cjs/components/search/Search.js +1 -215
- package/dist/cjs/components/search/index.js +1 -15
- package/dist/cjs/components/search/tokens.js +1 -54
- package/dist/cjs/components/selector/Selector.js +1 -185
- package/dist/cjs/components/selector/index.js +1 -15
- package/dist/cjs/components/selector/tokens.js +1 -100
- package/dist/cjs/components/share-sheet/ShareSheet.js +1 -287
- package/dist/cjs/components/share-sheet/index.js +1 -16
- package/dist/cjs/components/share-sheet/tokens.js +1 -55
- package/dist/cjs/components/sidebar/Sidebar.js +1 -103
- package/dist/cjs/components/sidebar/SidebarContext.js +1 -17
- package/dist/cjs/components/sidebar/SidebarItem.js +1 -103
- package/dist/cjs/components/sidebar/index.js +1 -26
- package/dist/cjs/components/sidebar/tokens.js +1 -93
- package/dist/cjs/components/skeleton/Skeleton.js +1 -162
- package/dist/cjs/components/skeleton/index.js +1 -22
- package/dist/cjs/components/skeleton/tokens.js +1 -39
- package/dist/cjs/components/slider/Slider.js +1 -633
- package/dist/cjs/components/slider/index.js +1 -8
- package/dist/cjs/components/slider/tokens.js +1 -37
- package/dist/cjs/components/space/Space.js +1 -134
- package/dist/cjs/components/space/index.js +1 -18
- package/dist/cjs/components/space/tokens.js +1 -39
- package/dist/cjs/components/stepper/Stepper.js +1 -484
- package/dist/cjs/components/stepper/index.js +1 -15
- package/dist/cjs/components/stepper/tokens.js +1 -60
- package/dist/cjs/components/swiper/Swiper.js +1 -364
- package/dist/cjs/components/swiper/SwiperItem.js +1 -12
- package/dist/cjs/components/swiper/SwiperPagIndicator.js +1 -106
- package/dist/cjs/components/swiper/index.js +1 -40
- package/dist/cjs/components/swiper/tokens.js +1 -18
- package/dist/cjs/components/switch/Switch.js +1 -102
- package/dist/cjs/components/switch/index.js +1 -15
- package/dist/cjs/components/switch/tokens.js +1 -31
- package/dist/cjs/components/tabbar/Tabbar.js +1 -149
- package/dist/cjs/components/tabbar/TabbarContext.js +1 -17
- package/dist/cjs/components/tabbar/TabbarItem.js +1 -159
- package/dist/cjs/components/tabbar/index.js +1 -25
- package/dist/cjs/components/tabbar/tokens.js +1 -41
- package/dist/cjs/components/tabs/Tabs.js +1 -860
- package/dist/cjs/components/tabs/index.js +1 -25
- package/dist/cjs/components/tabs/tokens.js +1 -111
- package/dist/cjs/components/tag/Tag.js +1 -130
- package/dist/cjs/components/tag/index.js +1 -8
- package/dist/cjs/components/tag/tokens.js +1 -104
- package/dist/cjs/components/toast/Toast.js +1 -306
- package/dist/cjs/components/toast/imperative.js +1 -144
- package/dist/cjs/components/toast/index.js +1 -10
- package/dist/cjs/components/toast/tokens.js +1 -43
- package/dist/cjs/components/typography/Typography.js +1 -181
- package/dist/cjs/components/typography/index.js +1 -9
- package/dist/cjs/components/typography/tokens.js +1 -88
- package/dist/cjs/components/water-mark/WaterMark.js +1 -172
- package/dist/cjs/components/water-mark/index.js +1 -22
- package/dist/cjs/components/water-mark/tokens.js +1 -54
- package/dist/cjs/design-system/Text.js +1 -38
- package/dist/cjs/design-system/ThemeContext.js +1 -19
- package/dist/cjs/design-system/ThemeProvider.js +1 -31
- package/dist/cjs/design-system/createComponentTokensHook.js +1 -28
- package/dist/cjs/design-system/index.js +1 -66
- package/dist/cjs/design-system/mergeTokensOverride.js +1 -9
- package/dist/cjs/design-system/presets.js +1 -146
- package/dist/cjs/design-system/tokens.js +1 -135
- package/dist/cjs/design-system/useTheme.js +1 -16
- package/dist/cjs/hooks/animation/index.js +1 -25
- package/dist/cjs/hooks/animation/useAnimatedTransition.js +1 -72
- package/dist/cjs/hooks/animation/useReducedMotion.js +1 -75
- package/dist/cjs/hooks/aria/index.js +1 -49
- package/dist/cjs/hooks/aria/useAriaListBox.js +1 -50
- package/dist/cjs/hooks/aria/useAriaOverlay.js +1 -50
- package/dist/cjs/hooks/aria/useAriaPress.js +1 -94
- package/dist/cjs/hooks/aria/useAriaToggle.js +1 -41
- package/dist/cjs/hooks/gesture/index.js +1 -16
- package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -129
- package/dist/cjs/hooks/index.js +1 -96
- package/dist/cjs/hooks/overlay/OverlayStackStore.js +1 -106
- package/dist/cjs/hooks/overlay/index.js +1 -27
- package/dist/cjs/hooks/overlay/useOverlayStack.js +1 -53
- package/dist/cjs/hooks/useControllableValue.js +1 -41
- package/dist/cjs/hooks/useCountDown.js +1 -99
- package/dist/cjs/hooks/useHairline.js +1 -46
- package/dist/cjs/hooks/useSafeAreaPadding.js +1 -38
- package/dist/cjs/index.js +1 -104
- package/dist/cjs/nativewind.js +1 -0
- package/dist/cjs/platform/animation.js +1 -22
- package/dist/cjs/platform/history.js +1 -14
- package/dist/cjs/platform/index.js +1 -60
- package/dist/cjs/platform/measure.js +1 -39
- package/dist/cjs/platform/runtime.js +1 -19
- package/dist/cjs/platform/scrollLock.js +1 -24
- package/dist/cjs/utils/array.js +1 -12
- package/dist/cjs/utils/color.js +1 -33
- package/dist/cjs/utils/compare.js +1 -21
- package/dist/cjs/utils/createPlatformShadow.js +1 -52
- package/dist/cjs/utils/date.js +1 -45
- package/dist/cjs/utils/deepMerge.js +1 -27
- package/dist/cjs/utils/hairline.js +1 -107
- package/dist/cjs/utils/index.js +1 -148
- package/dist/cjs/utils/number.js +1 -65
- package/dist/cjs/utils/promise.js +1 -9
- package/dist/cjs/utils/render.js +1 -21
- package/dist/cjs/utils/rtl.js +1 -25
- package/dist/cjs/utils/string.js +1 -22
- package/dist/cjs/utils/validate.js +1 -39
- package/dist/es/components/action-sheet/ActionSheet.js +1 -275
- package/dist/es/components/action-sheet/index.js +1 -3
- package/dist/es/components/action-sheet/tokens.js +1 -126
- package/dist/es/components/area/Area.js +1 -113
- package/dist/es/components/area/index.js +1 -2
- package/dist/es/components/area/tokens.js +1 -8
- package/dist/es/components/avatar/Avatar.js +1 -106
- package/dist/es/components/avatar/index.js +1 -1
- package/dist/es/components/avatar/tokens.js +1 -49
- package/dist/es/components/badge/Badge.js +1 -147
- package/dist/es/components/badge/index.js +1 -2
- package/dist/es/components/badge/tokens.js +1 -75
- package/dist/es/components/button/Button.js +1 -184
- package/dist/es/components/button/ButtonContext.js +1 -1
- package/dist/es/components/button/ButtonGroup.js +1 -46
- package/dist/es/components/button/index.js +1 -7
- package/dist/es/components/button/tokens.js +1 -170
- package/dist/es/components/calendar/Calendar.js +1 -432
- package/dist/es/components/calendar/index.js +1 -2
- package/dist/es/components/calendar/tokens.js +1 -122
- package/dist/es/components/cascader/Cascader.js +1 -456
- package/dist/es/components/cascader/index.js +1 -3
- package/dist/es/components/cascader/tokens.js +1 -131
- package/dist/es/components/cascader/useCascaderExtend.js +1 -32
- package/dist/es/components/cell/Cell.js +1 -156
- package/dist/es/components/cell/CellContext.js +1 -6
- package/dist/es/components/cell/CellGroup.js +1 -81
- package/dist/es/components/cell/index.js +1 -8
- package/dist/es/components/cell/tokens.js +1 -160
- package/dist/es/components/checkbox/Checkbox.js +1 -220
- package/dist/es/components/checkbox/CheckboxContext.js +1 -1
- package/dist/es/components/checkbox/CheckboxGroup.js +1 -117
- package/dist/es/components/checkbox/index.js +1 -5
- package/dist/es/components/checkbox/tokens.js +1 -85
- package/dist/es/components/circle/Circle.js +1 -187
- package/dist/es/components/circle/index.js +1 -2
- package/dist/es/components/circle/tokens.js +1 -48
- package/dist/es/components/collapse/Collapse.js +1 -286
- package/dist/es/components/collapse/index.js +1 -2
- package/dist/es/components/collapse/tokens.js +1 -74
- package/dist/es/components/config-provider/ConfigProvider.js +1 -25
- package/dist/es/components/config-provider/DirectionContext.js +1 -2
- package/dist/es/components/config-provider/LocaleContext.js +1 -3
- package/dist/es/components/config-provider/index.js +1 -5
- package/dist/es/components/config-provider/locale/en-US.js +1 -106
- package/dist/es/components/config-provider/locale/zh-CN.js +1 -106
- package/dist/es/components/config-provider/tokens.js +1 -5
- package/dist/es/components/config-provider/useDirection.js +1 -3
- package/dist/es/components/config-provider/useLocale.js +1 -3
- package/dist/es/components/count-down/CountDown.js +1 -69
- package/dist/es/components/count-down/index.js +1 -3
- package/dist/es/components/count-down/tokens.js +1 -27
- package/dist/es/components/datetime-picker/DatetimePicker.js +1 -305
- package/dist/es/components/datetime-picker/index.js +1 -2
- package/dist/es/components/datetime-picker/tokens.js +1 -16
- package/dist/es/components/dialog/Dialog.js +1 -407
- package/dist/es/components/dialog/imperative.js +1 -185
- package/dist/es/components/dialog/index.js +1 -17
- package/dist/es/components/dialog/tokens.js +1 -57
- package/dist/es/components/divider/Divider.js +1 -107
- package/dist/es/components/divider/index.js +1 -2
- package/dist/es/components/divider/tokens.js +1 -55
- package/dist/es/components/empty/Empty.js +1 -100
- package/dist/es/components/empty/index.js +1 -2
- package/dist/es/components/empty/tokens.js +1 -48
- package/dist/es/components/error-boundary/ErrorBoundary.js +1 -62
- package/dist/es/components/error-boundary/index.js +1 -1
- package/dist/es/components/field/Field.js +1 -539
- package/dist/es/components/field/index.js +1 -6
- package/dist/es/components/field/tokens.js +1 -138
- package/dist/es/components/flex/Flex.js +1 -66
- package/dist/es/components/flex/FlexContext.js +1 -1
- package/dist/es/components/flex/FlexItem.js +1 -76
- package/dist/es/components/flex/index.js +1 -8
- package/dist/es/components/flex/tokens.js +1 -15
- package/dist/es/components/form/Form.js +1 -319
- package/dist/es/components/form/FormContext.js +1 -1
- package/dist/es/components/form/FormItem.js +1 -138
- package/dist/es/components/form/FormList.js +1 -81
- package/dist/es/components/form/index.js +1 -13
- package/dist/es/components/form/tokens.js +1 -8
- package/dist/es/components/form/utils.js +1 -45
- package/dist/es/components/grid/Grid.js +1 -99
- package/dist/es/components/grid/GridContext.js +1 -1
- package/dist/es/components/grid/GridItem.js +1 -138
- package/dist/es/components/grid/index.js +1 -6
- package/dist/es/components/grid/tokens.js +1 -98
- package/dist/es/components/image/Image.js +1 -238
- package/dist/es/components/image/index.js +1 -3
- package/dist/es/components/image/tokens.js +1 -60
- package/dist/es/components/image-preview/ImagePreview.js +1 -388
- package/dist/es/components/image-preview/imperative.js +1 -58
- package/dist/es/components/image-preview/index.js +1 -11
- package/dist/es/components/image-preview/tokens.js +1 -37
- package/dist/es/components/index.js +1 -110
- package/dist/es/components/input/Input.js +1 -109
- package/dist/es/components/input/index.js +1 -3
- package/dist/es/components/input/tokens.js +1 -16
- package/dist/es/components/loading/Loading.js +1 -57
- package/dist/es/components/loading/index.js +1 -2
- package/dist/es/components/loading/tokens.js +1 -25
- package/dist/es/components/nav-bar/NavBar.js +1 -171
- package/dist/es/components/nav-bar/index.js +1 -3
- package/dist/es/components/nav-bar/tokens.js +1 -83
- package/dist/es/components/notice-bar/NoticeBar.js +1 -344
- package/dist/es/components/notice-bar/index.js +1 -2
- package/dist/es/components/notice-bar/tokens.js +1 -32
- package/dist/es/components/notify/Notify.js +1 -242
- package/dist/es/components/notify/imperative.js +1 -131
- package/dist/es/components/notify/index.js +1 -5
- package/dist/es/components/notify/tokens.js +1 -67
- package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -467
- package/dist/es/components/number-keyboard/index.js +1 -3
- package/dist/es/components/number-keyboard/tokens.js +1 -53
- package/dist/es/components/overlay/Overlay.js +1 -50
- package/dist/es/components/overlay/index.js +1 -4
- package/dist/es/components/overlay/tokens.js +1 -7
- package/dist/es/components/password-input/PasswordInput.js +1 -327
- package/dist/es/components/password-input/index.js +1 -1
- package/dist/es/components/password-input/tokens.js +1 -41
- package/dist/es/components/picker/Picker.js +1 -1031
- package/dist/es/components/picker/index.js +1 -3
- package/dist/es/components/picker/tokens.js +1 -47
- package/dist/es/components/popup/Popup.js +1 -492
- package/dist/es/components/popup/index.js +1 -3
- package/dist/es/components/popup/tokens.js +1 -55
- package/dist/es/components/portal/Portal.js +1 -37
- package/dist/es/components/portal/PortalContext.js +1 -2
- package/dist/es/components/portal/PortalHost.js +1 -234
- package/dist/es/components/portal/index.js +1 -3
- package/dist/es/components/portal/tokens.js +1 -5
- package/dist/es/components/progress/Progress.js +1 -196
- package/dist/es/components/progress/index.js +1 -3
- package/dist/es/components/progress/tokens.js +1 -45
- package/dist/es/components/radio/Radio.js +1 -214
- package/dist/es/components/radio/RadioContext.js +1 -1
- package/dist/es/components/radio/RadioGroup.js +1 -82
- package/dist/es/components/radio/index.js +1 -5
- package/dist/es/components/radio/tokens.js +1 -80
- package/dist/es/components/safe-area-view/SafeAreaView.js +1 -40
- package/dist/es/components/safe-area-view/index.js +1 -1
- package/dist/es/components/safe-area-view/tokens.js +1 -5
- package/dist/es/components/search/Search.js +1 -189
- package/dist/es/components/search/index.js +1 -3
- package/dist/es/components/search/tokens.js +1 -48
- package/dist/es/components/selector/Selector.js +1 -166
- package/dist/es/components/selector/index.js +1 -3
- package/dist/es/components/selector/tokens.js +1 -88
- package/dist/es/components/share-sheet/ShareSheet.js +1 -267
- package/dist/es/components/share-sheet/index.js +1 -3
- package/dist/es/components/share-sheet/tokens.js +1 -49
- package/dist/es/components/sidebar/Sidebar.js +1 -84
- package/dist/es/components/sidebar/SidebarContext.js +1 -3
- package/dist/es/components/sidebar/SidebarItem.js +1 -84
- package/dist/es/components/sidebar/index.js +1 -8
- package/dist/es/components/sidebar/tokens.js +1 -80
- package/dist/es/components/skeleton/Skeleton.js +1 -143
- package/dist/es/components/skeleton/index.js +1 -4
- package/dist/es/components/skeleton/tokens.js +1 -33
- package/dist/es/components/slider/Slider.js +1 -596
- package/dist/es/components/slider/index.js +1 -2
- package/dist/es/components/slider/tokens.js +1 -31
- package/dist/es/components/space/Space.js +1 -115
- package/dist/es/components/space/index.js +1 -2
- package/dist/es/components/space/tokens.js +1 -32
- package/dist/es/components/stepper/Stepper.js +1 -465
- package/dist/es/components/stepper/index.js +1 -3
- package/dist/es/components/stepper/tokens.js +1 -54
- package/dist/es/components/swiper/Swiper.js +1 -344
- package/dist/es/components/swiper/SwiperItem.js +1 -1
- package/dist/es/components/swiper/SwiperPagIndicator.js +1 -87
- package/dist/es/components/swiper/index.js +1 -10
- package/dist/es/components/swiper/tokens.js +1 -12
- package/dist/es/components/switch/Switch.js +1 -83
- package/dist/es/components/switch/index.js +1 -3
- package/dist/es/components/switch/tokens.js +1 -25
- package/dist/es/components/tabbar/Tabbar.js +1 -130
- package/dist/es/components/tabbar/TabbarContext.js +1 -3
- package/dist/es/components/tabbar/TabbarItem.js +1 -139
- package/dist/es/components/tabbar/index.js +1 -7
- package/dist/es/components/tabbar/tokens.js +1 -35
- package/dist/es/components/tabs/Tabs.js +1 -841
- package/dist/es/components/tabs/index.js +1 -7
- package/dist/es/components/tabs/tokens.js +1 -105
- package/dist/es/components/tag/Tag.js +1 -105
- package/dist/es/components/tag/index.js +1 -2
- package/dist/es/components/tag/tokens.js +1 -97
- package/dist/es/components/toast/Toast.js +1 -280
- package/dist/es/components/toast/imperative.js +1 -130
- package/dist/es/components/toast/index.js +1 -5
- package/dist/es/components/toast/tokens.js +1 -36
- package/dist/es/components/typography/Typography.js +1 -162
- package/dist/es/components/typography/index.js +1 -2
- package/dist/es/components/typography/tokens.js +1 -82
- package/dist/es/components/water-mark/WaterMark.js +1 -153
- package/dist/es/components/water-mark/index.js +1 -4
- package/dist/es/components/water-mark/tokens.js +1 -42
- package/dist/es/design-system/Text.js +1 -19
- package/dist/es/design-system/ThemeContext.js +1 -6
- package/dist/es/design-system/ThemeProvider.js +1 -17
- package/dist/es/design-system/createComponentTokensHook.js +1 -15
- package/dist/es/design-system/index.js +1 -7
- package/dist/es/design-system/mergeTokensOverride.js +1 -2
- package/dist/es/design-system/presets.js +1 -139
- package/dist/es/design-system/tokens.js +1 -128
- package/dist/es/design-system/useTheme.js +1 -3
- package/dist/es/hooks/animation/index.js +1 -2
- package/dist/es/hooks/animation/useAnimatedTransition.js +1 -53
- package/dist/es/hooks/animation/useReducedMotion.js +1 -54
- package/dist/es/hooks/aria/index.js +1 -5
- package/dist/es/hooks/aria/useAriaListBox.js +1 -25
- package/dist/es/hooks/aria/useAriaOverlay.js +1 -25
- package/dist/es/hooks/aria/useAriaPress.js +1 -57
- package/dist/es/hooks/aria/useAriaToggle.js +1 -16
- package/dist/es/hooks/gesture/index.js +1 -2
- package/dist/es/hooks/gesture/useGestureScroll.js +1 -110
- package/dist/es/hooks/index.js +1 -8
- package/dist/es/hooks/overlay/OverlayStackStore.js +1 -93
- package/dist/es/hooks/overlay/index.js +1 -3
- package/dist/es/hooks/overlay/useOverlayStack.js +1 -40
- package/dist/es/hooks/useControllableValue.js +1 -29
- package/dist/es/hooks/useCountDown.js +1 -87
- package/dist/es/hooks/useHairline.js +1 -26
- package/dist/es/hooks/useSafeAreaPadding.js +1 -20
- package/dist/es/index.js +1 -11
- package/dist/es/nativewind.js +1 -0
- package/dist/es/platform/animation.js +1 -10
- package/dist/es/platform/history.js +1 -7
- package/dist/es/platform/index.js +1 -6
- package/dist/es/platform/measure.js +1 -32
- package/dist/es/platform/runtime.js +1 -4
- package/dist/es/platform/scrollLock.js +1 -16
- package/dist/es/types.js +1 -1
- package/dist/es/utils/array.js +1 -5
- package/dist/es/utils/color.js +1 -25
- package/dist/es/utils/compare.js +1 -13
- package/dist/es/utils/createPlatformShadow.js +1 -39
- package/dist/es/utils/date.js +1 -33
- package/dist/es/utils/deepMerge.js +1 -21
- package/dist/es/utils/hairline.js +1 -93
- package/dist/es/utils/index.js +1 -14
- package/dist/es/utils/number.js +1 -48
- package/dist/es/utils/promise.js +1 -2
- package/dist/es/utils/render.js +1 -7
- package/dist/es/utils/rtl.js +1 -17
- package/dist/es/utils/string.js +1 -13
- package/dist/es/utils/validate.js +1 -14
- package/dist/types/components/nav-bar/tokens.d.ts +1 -1
- package/dist/types/design-system/tokens.d.ts +1 -0
- package/dist/types/nativewind.d.ts +4 -0
- package/package.json +15 -3
|
@@ -1,234 +1 @@
|
|
|
1
|
-
import React, { useCallback,
|
|
2
|
-
import { DeviceEventEmitter, NativeEventEmitter, Platform, StyleSheet, View } from 'react-native';
|
|
3
|
-
import { isNumber } from '../../utils';
|
|
4
|
-
import { PortalContext } from './PortalContext';
|
|
5
|
-
const AE = 'RNSU_PORTAL_ADD';
|
|
6
|
-
const UE = 'RNSU_PORTAL_UPDATE';
|
|
7
|
-
const RE = 'RNSU_PORTAL_REMOVE';
|
|
8
|
-
const CE = 'RNSU_PORTAL_CLEAR';
|
|
9
|
-
const TVE = DeviceEventEmitter || new NativeEventEmitter();
|
|
10
|
-
const IW = Platform.OS === 'web';
|
|
11
|
-
const ao = (m, o) => {
|
|
12
|
-
if (o.type === 'mount') m.mount(o.children, o.key);else if (o.type === 'update') m.update(o.key, o.children);else if (o.type === 'clear') m.clear();else m.unmount(o.key);
|
|
13
|
-
};
|
|
14
|
-
const PortalManagerView = /*#__PURE__*/React.forwardRef((_, ref) => {
|
|
15
|
-
const [e, setE] = useState([]);
|
|
16
|
-
const ks = useRef(0);
|
|
17
|
-
const us = useCallback(en => {
|
|
18
|
-
setE(p => {
|
|
19
|
-
const i = p.findIndex(it => it.key === en.key);
|
|
20
|
-
return i === -1 ? [...p, en] : [...p.slice(0, i), en, ...p.slice(i + 1)];
|
|
21
|
-
});
|
|
22
|
-
}, []);
|
|
23
|
-
const mt = useCallback((c, k) => {
|
|
24
|
-
const rk = k ?? ++ks.current;
|
|
25
|
-
if (isNumber(k) && k >= ks.current) ks.current = k + 1;
|
|
26
|
-
us({
|
|
27
|
-
key: rk,
|
|
28
|
-
children: c
|
|
29
|
-
});
|
|
30
|
-
return rk;
|
|
31
|
-
}, [us]);
|
|
32
|
-
const up = useCallback((k, c) => {
|
|
33
|
-
us({
|
|
34
|
-
key: k,
|
|
35
|
-
children: c
|
|
36
|
-
});
|
|
37
|
-
}, [us]);
|
|
38
|
-
const um = useCallback(k => {
|
|
39
|
-
setE(p => p.filter(it => it.key !== k));
|
|
40
|
-
}, []);
|
|
41
|
-
const cl = useCallback(() => {
|
|
42
|
-
setE([]);
|
|
43
|
-
}, []);
|
|
44
|
-
React.useImperativeHandle(ref, () => ({
|
|
45
|
-
mount: mt,
|
|
46
|
-
update: up,
|
|
47
|
-
unmount: um,
|
|
48
|
-
clear: cl
|
|
49
|
-
}), [mt, up, um, cl]);
|
|
50
|
-
if (e.length === 0) return null;
|
|
51
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
52
|
-
pointerEvents: "box-none",
|
|
53
|
-
style: S.pl,
|
|
54
|
-
collapsable: false
|
|
55
|
-
}, e.map(en => /*#__PURE__*/React.createElement(View, {
|
|
56
|
-
key: en.key,
|
|
57
|
-
pointerEvents: "box-none",
|
|
58
|
-
collapsable: false,
|
|
59
|
-
style: S.pe
|
|
60
|
-
}, en.children)));
|
|
61
|
-
});
|
|
62
|
-
let ah = 0;
|
|
63
|
-
let nh = 1;
|
|
64
|
-
let ngk = 10000;
|
|
65
|
-
const gm = {
|
|
66
|
-
mount: (c, k) => {
|
|
67
|
-
if (typeof __DEV__ !== 'undefined' && __DEV__ && ah === 0) console.warn('[Portal] Please mount <PortalHost> or <ConfigProvider> at the root to enable imperative APIs.');
|
|
68
|
-
const rk = k ?? ngk++;
|
|
69
|
-
if (isNumber(k) && k >= ngk) ngk = k + 1;
|
|
70
|
-
TVE.emit(AE, {
|
|
71
|
-
key: rk,
|
|
72
|
-
children: c
|
|
73
|
-
});
|
|
74
|
-
return rk;
|
|
75
|
-
},
|
|
76
|
-
update: (k, c) => {
|
|
77
|
-
TVE.emit(UE, {
|
|
78
|
-
key: k,
|
|
79
|
-
children: c
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
unmount: k => {
|
|
83
|
-
TVE.emit(RE, {
|
|
84
|
-
key: k
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
const PortalHostImpl = ({
|
|
89
|
-
children
|
|
90
|
-
}) => {
|
|
91
|
-
const hir = useRef(nh++),
|
|
92
|
-
mr = useRef(null),
|
|
93
|
-
qr = useRef([]),
|
|
94
|
-
nkr = useRef(1);
|
|
95
|
-
const eor = useCallback(o => {
|
|
96
|
-
const m = mr.current;
|
|
97
|
-
if (m) ao(m, o);else qr.current.push(o);
|
|
98
|
-
}, []);
|
|
99
|
-
const sm = useMemo(() => ({
|
|
100
|
-
mount: (c, k) => {
|
|
101
|
-
const rk = k ?? nkr.current++;
|
|
102
|
-
if (isNumber(k) && k >= nkr.current) nkr.current = k + 1;
|
|
103
|
-
eor({
|
|
104
|
-
type: 'mount',
|
|
105
|
-
key: rk,
|
|
106
|
-
children: c
|
|
107
|
-
});
|
|
108
|
-
return rk;
|
|
109
|
-
},
|
|
110
|
-
update: (k, c) => {
|
|
111
|
-
eor({
|
|
112
|
-
type: 'update',
|
|
113
|
-
key: k,
|
|
114
|
-
children: c
|
|
115
|
-
});
|
|
116
|
-
},
|
|
117
|
-
unmount: k => {
|
|
118
|
-
eor({
|
|
119
|
-
type: 'unmount',
|
|
120
|
-
key: k
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}), [eor]);
|
|
124
|
-
const hmr = useCallback(m => {
|
|
125
|
-
mr.current = m;
|
|
126
|
-
if (m) {
|
|
127
|
-
if (qr.current.length > 0) {
|
|
128
|
-
const pd = qr.current.splice(0, qr.current.length);
|
|
129
|
-
pd.forEach(o => ao(m, o));
|
|
130
|
-
}
|
|
131
|
-
;
|
|
132
|
-
if (ah === 0 || ah === hir.current) ah = hir.current;else if (typeof __DEV__ !== 'undefined' && __DEV__) console.warn('[PortalHost] Multiple PortalHost instances detected. Imperative APIs will only use the first mounted host.');
|
|
133
|
-
}
|
|
134
|
-
}, []);
|
|
135
|
-
useEffect(() => () => {
|
|
136
|
-
if (ah === hir.current) {
|
|
137
|
-
ah = 0;
|
|
138
|
-
qr.current = [];
|
|
139
|
-
portalStore.clear();
|
|
140
|
-
}
|
|
141
|
-
}, []);
|
|
142
|
-
useEffect(() => {
|
|
143
|
-
const ha = ({
|
|
144
|
-
key: k,
|
|
145
|
-
children: c
|
|
146
|
-
}) => {
|
|
147
|
-
if (ah !== hir.current) return;
|
|
148
|
-
eor({
|
|
149
|
-
type: 'mount',
|
|
150
|
-
key: k,
|
|
151
|
-
children: c
|
|
152
|
-
});
|
|
153
|
-
};
|
|
154
|
-
const hu = ({
|
|
155
|
-
key: k,
|
|
156
|
-
children: c
|
|
157
|
-
}) => {
|
|
158
|
-
if (ah !== hir.current) return;
|
|
159
|
-
eor({
|
|
160
|
-
type: 'update',
|
|
161
|
-
key: k,
|
|
162
|
-
children: c
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
const hr = ({
|
|
166
|
-
key: k
|
|
167
|
-
}) => {
|
|
168
|
-
if (ah !== hir.current) return;
|
|
169
|
-
eor({
|
|
170
|
-
type: 'unmount',
|
|
171
|
-
key: k
|
|
172
|
-
});
|
|
173
|
-
};
|
|
174
|
-
const hc = () => {
|
|
175
|
-
if (ah !== hir.current) return;
|
|
176
|
-
qr.current = [];
|
|
177
|
-
eor({
|
|
178
|
-
type: 'clear'
|
|
179
|
-
});
|
|
180
|
-
};
|
|
181
|
-
const as = TVE.addListener(AE, ha);
|
|
182
|
-
const us = TVE.addListener(UE, hu);
|
|
183
|
-
const rs = TVE.addListener(RE, hr);
|
|
184
|
-
const cs = TVE.addListener(CE, hc);
|
|
185
|
-
return () => {
|
|
186
|
-
as.remove();
|
|
187
|
-
us.remove();
|
|
188
|
-
rs.remove();
|
|
189
|
-
cs.remove();
|
|
190
|
-
};
|
|
191
|
-
}, [eor]);
|
|
192
|
-
return /*#__PURE__*/React.createElement(PortalContext.Provider, {
|
|
193
|
-
value: sm
|
|
194
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
195
|
-
style: S.h,
|
|
196
|
-
collapsable: false
|
|
197
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
198
|
-
style: S.r,
|
|
199
|
-
collapsable: false,
|
|
200
|
-
pointerEvents: "box-none"
|
|
201
|
-
}, children), /*#__PURE__*/React.createElement(PortalManagerView, {
|
|
202
|
-
ref: hmr
|
|
203
|
-
})));
|
|
204
|
-
};
|
|
205
|
-
export const PortalHost = /*#__PURE__*/React.memo(PortalHostImpl);
|
|
206
|
-
PortalHost.displayName = 'PortalHost';
|
|
207
|
-
const S = StyleSheet.create({
|
|
208
|
-
h: {
|
|
209
|
-
position: 'relative',
|
|
210
|
-
flex: 1
|
|
211
|
-
},
|
|
212
|
-
r: {
|
|
213
|
-
flex: 1
|
|
214
|
-
},
|
|
215
|
-
pl: IW ? {
|
|
216
|
-
position: 'fixed',
|
|
217
|
-
top: 0,
|
|
218
|
-
left: 0,
|
|
219
|
-
right: 0,
|
|
220
|
-
bottom: 0
|
|
221
|
-
} : {
|
|
222
|
-
...StyleSheet.absoluteFillObject
|
|
223
|
-
},
|
|
224
|
-
pe: {
|
|
225
|
-
...StyleSheet.absoluteFillObject
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
export const portalManager = gm;
|
|
229
|
-
export const portalStore = {
|
|
230
|
-
clear: () => {
|
|
231
|
-
TVE.emit(CE);
|
|
232
|
-
},
|
|
233
|
-
hasHosts: () => ah !== 0
|
|
234
|
-
};
|
|
1
|
+
import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{DeviceEventEmitter,NativeEventEmitter,Platform,StyleSheet,View}from"react-native";import{isNumber}from"../../utils";import{PortalContext}from"./PortalContext";const AE="RNSU_PORTAL_ADD",UE="RNSU_PORTAL_UPDATE",RE="RNSU_PORTAL_REMOVE",CE="RNSU_PORTAL_CLEAR",TVE=DeviceEventEmitter||new NativeEventEmitter,IW="web"===Platform.OS,ao=(e,t)=>{"mount"===t.type?e.mount(t.children,t.key):"update"===t.type?e.update(t.key,t.children):"clear"===t.type?e.clear():e.unmount(t.key)},PortalManagerView=React.forwardRef((e,t)=>{const[r,n]=useState([]),a=useRef(0),o=useCallback(e=>{n(t=>{const r=t.findIndex(t=>t.key===e.key);return-1===r?[...t,e]:[...t.slice(0,r),e,...t.slice(r+1)]})},[]),l=useCallback((e,t)=>{const r=t??++a.current;return isNumber(t)&&t>=a.current&&(a.current=t+1),o({key:r,children:e}),r},[o]),c=useCallback((e,t)=>{o({key:e,children:t})},[o]),u=useCallback(e=>{n(t=>t.filter(t=>t.key!==e))},[]),s=useCallback(()=>{n([])},[]);return React.useImperativeHandle(t,()=>({mount:l,update:c,unmount:u,clear:s}),[l,c,u,s]),0===r.length?null:React.createElement(View,{pointerEvents:"box-none",style:S.pl,collapsable:!1},r.map(e=>React.createElement(View,{key:e.key,pointerEvents:"box-none",collapsable:!1,style:S.pe},e.children)))});let ah=0,nh=1,ngk=1e4;const gm={mount:(e,t)=>{"undefined"!=typeof __DEV__&&__DEV__&&0===ah&&console.warn("[Portal] Please mount <PortalHost> or <ConfigProvider> at the root to enable imperative APIs.");const r=t??ngk++;return isNumber(t)&&t>=ngk&&(ngk=t+1),TVE.emit(AE,{key:r,children:e}),r},update:(e,t)=>{TVE.emit(UE,{key:e,children:t})},unmount:e=>{TVE.emit(RE,{key:e})}},PortalHostImpl=({children:e})=>{const t=useRef(nh++),r=useRef(null),n=useRef([]),a=useRef(1),o=useCallback(e=>{const t=r.current;t?ao(t,e):n.current.push(e)},[]),l=useMemo(()=>({mount:(e,t)=>{const r=t??a.current++;return isNumber(t)&&t>=a.current&&(a.current=t+1),o({type:"mount",key:r,children:e}),r},update:(e,t)=>{o({type:"update",key:e,children:t})},unmount:e=>{o({type:"unmount",key:e})}}),[o]),c=useCallback(e=>{if(r.current=e,e){if(n.current.length>0){n.current.splice(0,n.current.length).forEach(t=>ao(e,t))}0===ah||ah===t.current?ah=t.current:"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[PortalHost] Multiple PortalHost instances detected. Imperative APIs will only use the first mounted host.")}},[]);return useEffect(()=>()=>{ah===t.current&&(ah=0,n.current=[],portalStore.clear())},[]),useEffect(()=>{const e=TVE.addListener(AE,({key:e,children:r})=>{ah===t.current&&o({type:"mount",key:e,children:r})}),r=TVE.addListener(UE,({key:e,children:r})=>{ah===t.current&&o({type:"update",key:e,children:r})}),a=TVE.addListener(RE,({key:e})=>{ah===t.current&&o({type:"unmount",key:e})}),l=TVE.addListener(CE,()=>{ah===t.current&&(n.current=[],o({type:"clear"}))});return()=>{e.remove(),r.remove(),a.remove(),l.remove()}},[o]),React.createElement(PortalContext.Provider,{value:l},React.createElement(View,{style:S.h,collapsable:!1},React.createElement(View,{style:S.r,collapsable:!1,pointerEvents:"box-none"},e),React.createElement(PortalManagerView,{ref:c})))};export const PortalHost=React.memo(PortalHostImpl);PortalHost.displayName="PortalHost";const S=StyleSheet.create({h:{position:"relative",flex:1},r:{flex:1},pl:IW?{position:"fixed",top:0,left:0,right:0,bottom:0}:{...StyleSheet.absoluteFillObject},pe:{...StyleSheet.absoluteFillObject}});export const portalManager=gm;export const portalStore={clear:()=>{TVE.emit(CE)},hasHosts:()=>0!==ah};
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const createPortalTokens = _foundations => {
|
|
3
|
-
return {};
|
|
4
|
-
};
|
|
5
|
-
export const usePortalTokens = createComponentTokensHook('portal', createPortalTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";const createPortalTokens=o=>({});export const usePortalTokens=createComponentTokensHook("portal",createPortalTokens);
|
|
@@ -1,196 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
-
import { Animated, Platform, Text, View } from 'react-native';
|
|
4
|
-
import { clamp, parseNumberLike, parsePercentage, isString, isText } from '../../utils';
|
|
5
|
-
import { useReducedMotion } from '../../hooks/animation';
|
|
6
|
-
import { useProgressTokens } from './tokens';
|
|
7
|
-
const GRADIENT_REGEX = /linear-gradient|radial-gradient|conic-gradient/i;
|
|
8
|
-
const ProgressContext = /*#__PURE__*/React.createContext(null);
|
|
9
|
-
export const ProgressFilledTrack = ({
|
|
10
|
-
style
|
|
11
|
-
}) => {
|
|
12
|
-
const context = useContext(ProgressContext);
|
|
13
|
-
if (!context) return null;
|
|
14
|
-
const size = useMemo(() => context.animatedValue.interpolate({
|
|
15
|
-
inputRange: [0, 100],
|
|
16
|
-
outputRange: ['0%', '100%']
|
|
17
|
-
}), [context.animatedValue]);
|
|
18
|
-
const sizeStyle = useMemo(() => context.orientation === 'vertical' ? {
|
|
19
|
-
width: context.height,
|
|
20
|
-
height: size,
|
|
21
|
-
bottom: 0,
|
|
22
|
-
left: 0,
|
|
23
|
-
position: 'absolute'
|
|
24
|
-
} : {
|
|
25
|
-
height: context.height,
|
|
26
|
-
width: size
|
|
27
|
-
}, [context.height, context.orientation, size]);
|
|
28
|
-
const baseStyle = [context.orientation === 'vertical' ? {
|
|
29
|
-
position: 'absolute',
|
|
30
|
-
left: 0,
|
|
31
|
-
bottom: 0
|
|
32
|
-
} : context.layoutIndicator, {
|
|
33
|
-
backgroundColor: context.indicatorColor,
|
|
34
|
-
borderRadius: context.height / 2,
|
|
35
|
-
...(context.isGradient && context.gradientColor ? {
|
|
36
|
-
backgroundImage: context.gradientColor
|
|
37
|
-
} : null)
|
|
38
|
-
}, sizeStyle, context.indicatorStyle, style];
|
|
39
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
40
|
-
style: baseStyle
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
export const Progress = /*#__PURE__*/memo(props => {
|
|
44
|
-
const {
|
|
45
|
-
tokensOverride,
|
|
46
|
-
percentage: pctP,
|
|
47
|
-
strokeWidth,
|
|
48
|
-
color,
|
|
49
|
-
trackColor,
|
|
50
|
-
pivotText,
|
|
51
|
-
pivotColor,
|
|
52
|
-
textColor,
|
|
53
|
-
inactive: inactP,
|
|
54
|
-
showPivot: showPivotP,
|
|
55
|
-
animated,
|
|
56
|
-
transition: transP,
|
|
57
|
-
animationDuration: durP,
|
|
58
|
-
style,
|
|
59
|
-
pivotStyle,
|
|
60
|
-
indicatorStyle,
|
|
61
|
-
orientation: oriP,
|
|
62
|
-
children,
|
|
63
|
-
...rest
|
|
64
|
-
} = props;
|
|
65
|
-
const tokens = useProgressTokens(tokensOverride);
|
|
66
|
-
const reducedMotion = useReducedMotion();
|
|
67
|
-
const pct = clamp(parsePercentage(pctP ?? tokens.defaults.percentage), 0, 100);
|
|
68
|
-
const h = parseNumberLike(strokeWidth, tokens.sizing.height) ?? tokens.sizing.height;
|
|
69
|
-
const inact = inactP ?? tokens.defaults.inactive;
|
|
70
|
-
const ori = oriP ?? 'horizontal';
|
|
71
|
-
const showPivot = ori === 'vertical' ? false : showPivotP ?? tokens.defaults.showPivot;
|
|
72
|
-
const doAnim = (animated ?? transP ?? tokens.defaults.transition) && !inact;
|
|
73
|
-
const dur = Math.max(0, durP ?? tokens.defaults.animationDuration);
|
|
74
|
-
const isGrad = Platform.OS === 'web' && isString(color) && GRADIENT_REGEX.test(color);
|
|
75
|
-
const trackClr = trackColor ?? tokens.colors.track;
|
|
76
|
-
const indClr = inact ? tokens.colors.track : !isGrad ? color ?? tokens.colors.indicator : undefined;
|
|
77
|
-
const pivotBg = pivotColor ?? (isGrad ? inact ? tokens.colors.track : tokens.colors.indicator : indClr);
|
|
78
|
-
const pivotTxtClr = textColor ?? tokens.colors.pivotText;
|
|
79
|
-
const pivotCnt = pivotText ?? `${pct}%`;
|
|
80
|
-
const hasPiv = showPivot && pivotCnt !== null && pivotCnt !== false;
|
|
81
|
-
const animVal = useRef(new Animated.Value(pct)).current;
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
if (doAnim && dur > 0 && !reducedMotion) {
|
|
84
|
-
const anim = Animated.timing(animVal, {
|
|
85
|
-
toValue: pct,
|
|
86
|
-
duration: dur,
|
|
87
|
-
useNativeDriver: false,
|
|
88
|
-
isInteraction: false
|
|
89
|
-
});
|
|
90
|
-
anim.start();
|
|
91
|
-
return () => anim.stop();
|
|
92
|
-
} else animVal.setValue(pct);
|
|
93
|
-
}, [pct, doAnim, dur, animVal, reducedMotion]);
|
|
94
|
-
const [lay, setLay] = useState({
|
|
95
|
-
track: 0,
|
|
96
|
-
pivot: 0
|
|
97
|
-
});
|
|
98
|
-
const onTrackLay = useCallback(e => {
|
|
99
|
-
const w = e.nativeEvent.layout.width;
|
|
100
|
-
setLay(prev => prev.track === w ? prev : {
|
|
101
|
-
...prev,
|
|
102
|
-
track: w
|
|
103
|
-
});
|
|
104
|
-
}, []);
|
|
105
|
-
const onPivotLay = useCallback(e => {
|
|
106
|
-
const w = e.nativeEvent.layout.width;
|
|
107
|
-
setLay(prev => prev.pivot === w ? prev : {
|
|
108
|
-
...prev,
|
|
109
|
-
pivot: w
|
|
110
|
-
});
|
|
111
|
-
}, []);
|
|
112
|
-
const trackStyle = [tokens.layout.track, ori === 'vertical' ? {
|
|
113
|
-
width: h,
|
|
114
|
-
height: '100%',
|
|
115
|
-
backgroundColor: trackClr,
|
|
116
|
-
borderRadius: h / 2
|
|
117
|
-
} : {
|
|
118
|
-
height: h,
|
|
119
|
-
backgroundColor: trackClr,
|
|
120
|
-
borderRadius: h / 2
|
|
121
|
-
}];
|
|
122
|
-
const pivotNode = useMemo(() => {
|
|
123
|
-
if (!hasPiv) return null;
|
|
124
|
-
const {
|
|
125
|
-
track: tw,
|
|
126
|
-
pivot: pw
|
|
127
|
-
} = lay;
|
|
128
|
-
const ctrStyle = [tokens.layout.pivot, {
|
|
129
|
-
bottom: h + tokens.sizing.pivotPaddingVertical * 2,
|
|
130
|
-
backgroundColor: pivotBg,
|
|
131
|
-
paddingHorizontal: tokens.sizing.pivotPaddingHorizontal,
|
|
132
|
-
paddingVertical: tokens.sizing.pivotPaddingVertical,
|
|
133
|
-
borderRadius: h,
|
|
134
|
-
opacity: tw > 0 ? 1 : 0
|
|
135
|
-
}];
|
|
136
|
-
let transStyle = null;
|
|
137
|
-
if (tw > 0 && pw > 0) {
|
|
138
|
-
const p1 = pw / 2 / tw * 100;
|
|
139
|
-
const p2 = (tw - pw / 2) / tw * 100;
|
|
140
|
-
transStyle = p1 < p2 ? {
|
|
141
|
-
transform: [{
|
|
142
|
-
translateX: animVal.interpolate({
|
|
143
|
-
inputRange: [0, p1, p2, 100],
|
|
144
|
-
outputRange: [0, 0, tw - pw, tw - pw],
|
|
145
|
-
extrapolate: 'clamp'
|
|
146
|
-
})
|
|
147
|
-
}]
|
|
148
|
-
} : {
|
|
149
|
-
transform: [{
|
|
150
|
-
translateX: (tw - pw) / 2
|
|
151
|
-
}]
|
|
152
|
-
};
|
|
153
|
-
} else transStyle = {
|
|
154
|
-
transform: [{
|
|
155
|
-
translateX: (tw - pw) / 2
|
|
156
|
-
}]
|
|
157
|
-
};
|
|
158
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
159
|
-
style: [ctrStyle, transStyle],
|
|
160
|
-
pointerEvents: "none",
|
|
161
|
-
onLayout: onPivotLay
|
|
162
|
-
}, isText(pivotCnt) ? /*#__PURE__*/React.createElement(Text, {
|
|
163
|
-
style: [tokens.layout.pivotText, {
|
|
164
|
-
color: pivotTxtClr,
|
|
165
|
-
fontFamily: tokens.typography.fontFamily,
|
|
166
|
-
fontSize: tokens.typography.pivotFontSize
|
|
167
|
-
}, pivotStyle]
|
|
168
|
-
}, pivotCnt) : pivotCnt);
|
|
169
|
-
}, [animVal, hasPiv, h, lay, onPivotLay, pivotCnt, pivotStyle, pivotBg, pivotTxtClr, tokens.layout.pivot, tokens.layout.pivotText, tokens.sizing.pivotPaddingHorizontal, tokens.sizing.pivotPaddingVertical, tokens.typography.fontFamily, tokens.typography.pivotFontSize]);
|
|
170
|
-
const ctxVal = useMemo(() => ({
|
|
171
|
-
animatedValue: animVal,
|
|
172
|
-
orientation: ori,
|
|
173
|
-
height: h,
|
|
174
|
-
indicatorColor: indClr,
|
|
175
|
-
indicatorStyle: indicatorStyle,
|
|
176
|
-
isGradient: isGrad,
|
|
177
|
-
gradientColor: isGrad ? color : undefined,
|
|
178
|
-
layoutIndicator: tokens.layout.indicator
|
|
179
|
-
}), [animVal, color, h, indicatorStyle, isGrad, ori, indClr, tokens.layout.indicator]);
|
|
180
|
-
return /*#__PURE__*/React.createElement(ProgressContext.Provider, {
|
|
181
|
-
value: ctxVal
|
|
182
|
-
}, /*#__PURE__*/React.createElement(View, _extends({
|
|
183
|
-
style: style,
|
|
184
|
-
accessibilityRole: "progressbar",
|
|
185
|
-
accessibilityValue: {
|
|
186
|
-
min: 0,
|
|
187
|
-
max: 100,
|
|
188
|
-
now: pct
|
|
189
|
-
}
|
|
190
|
-
}, rest), /*#__PURE__*/React.createElement(View, {
|
|
191
|
-
style: trackStyle,
|
|
192
|
-
onLayout: hasPiv ? onTrackLay : undefined
|
|
193
|
-
}, children ?? /*#__PURE__*/React.createElement(ProgressFilledTrack, null)), pivotNode));
|
|
194
|
-
});
|
|
195
|
-
Progress.displayName = 'Progress';
|
|
196
|
-
export default Progress;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var i in o)({}).hasOwnProperty.call(o,i)&&(t[i]=o[i])}return t},_extends.apply(null,arguments)}import React,{memo,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{Animated,Platform,Text,View}from"react-native";import{clamp,parseNumberLike,parsePercentage,isString,isText}from"../../utils";import{useReducedMotion}from"../../hooks/animation";import{useProgressTokens}from"./tokens";const GRADIENT_REGEX=/linear-gradient|radial-gradient|conic-gradient/i,ProgressContext=React.createContext(null);export const ProgressFilledTrack=({style:t})=>{const e=useContext(ProgressContext);if(!e)return null;const o=useMemo(()=>e.animatedValue.interpolate({inputRange:[0,100],outputRange:["0%","100%"]}),[e.animatedValue]),i=useMemo(()=>"vertical"===e.orientation?{width:e.height,height:o,bottom:0,left:0,position:"absolute"}:{height:e.height,width:o},[e.height,e.orientation,o]),a=["vertical"===e.orientation?{position:"absolute",left:0,bottom:0}:e.layoutIndicator,{backgroundColor:e.indicatorColor,borderRadius:e.height/2,...e.isGradient&&e.gradientColor?{backgroundImage:e.gradientColor}:null},i,e.indicatorStyle,t];return React.createElement(Animated.View,{style:a})};export const Progress=memo(t=>{const{tokensOverride:e,percentage:o,strokeWidth:i,color:a,trackColor:r,pivotText:n,pivotColor:s,textColor:l,inactive:c,showPivot:u,animated:d,transition:g,animationDuration:p,style:m,pivotStyle:v,indicatorStyle:y,orientation:h,children:f,...k}=t,b=useProgressTokens(e),R=useReducedMotion(),x=clamp(parsePercentage(o??b.defaults.percentage),0,100),P=parseNumberLike(i,b.sizing.height)??b.sizing.height,C=c??b.defaults.inactive,E=h??"horizontal",w="vertical"!==E&&(u??b.defaults.showPivot),V=(d??g??b.defaults.transition)&&!C,z=Math.max(0,p??b.defaults.animationDuration),T="web"===Platform.OS&&isString(a)&&GRADIENT_REGEX.test(a),S=r??b.colors.track,M=C?b.colors.track:T?void 0:a??b.colors.indicator,A=s??(T?C?b.colors.track:b.colors.indicator:M),F=l??b.colors.pivotText,G=n??`${x}%`,I=w&&null!==G&&!1!==G,N=useRef(new Animated.Value(x)).current;useEffect(()=>{if(V&&z>0&&!R){const t=Animated.timing(N,{toValue:x,duration:z,useNativeDriver:!1,isInteraction:!1});return t.start(),()=>t.stop()}N.setValue(x)},[x,V,z,N,R]);const[_,D]=useState({track:0,pivot:0}),O=useCallback(t=>{const e=t.nativeEvent.layout.width;D(t=>t.track===e?t:{...t,track:e})},[]),X=useCallback(t=>{const e=t.nativeEvent.layout.width;D(t=>t.pivot===e?t:{...t,pivot:e})},[]),L=[b.layout.track,"vertical"===E?{width:P,height:"100%",backgroundColor:S,borderRadius:P/2}:{height:P,backgroundColor:S,borderRadius:P/2}],H=useMemo(()=>{if(!I)return null;const{track:t,pivot:e}=_,o=[b.layout.pivot,{bottom:P+2*b.sizing.pivotPaddingVertical,backgroundColor:A,paddingHorizontal:b.sizing.pivotPaddingHorizontal,paddingVertical:b.sizing.pivotPaddingVertical,borderRadius:P,opacity:t>0?1:0}];let i=null;if(t>0&&e>0){const o=e/2/t*100,a=(t-e/2)/t*100;i=o<a?{transform:[{translateX:N.interpolate({inputRange:[0,o,a,100],outputRange:[0,0,t-e,t-e],extrapolate:"clamp"})}]}:{transform:[{translateX:(t-e)/2}]}}else i={transform:[{translateX:(t-e)/2}]};return React.createElement(Animated.View,{style:[o,i],pointerEvents:"none",onLayout:X},isText(G)?React.createElement(Text,{style:[b.layout.pivotText,{color:F,fontFamily:b.typography.fontFamily,fontSize:b.typography.pivotFontSize},v]},G):G)},[N,I,P,_,X,G,v,A,F,b.layout.pivot,b.layout.pivotText,b.sizing.pivotPaddingHorizontal,b.sizing.pivotPaddingVertical,b.typography.fontFamily,b.typography.pivotFontSize]),j=useMemo(()=>({animatedValue:N,orientation:E,height:P,indicatorColor:M,indicatorStyle:y,isGradient:T,gradientColor:T?a:void 0,layoutIndicator:b.layout.indicator}),[N,a,P,y,T,E,M,b.layout.indicator]);return React.createElement(ProgressContext.Provider,{value:j},React.createElement(View,_extends({style:m,accessibilityRole:"progressbar",accessibilityValue:{min:0,max:100,now:x}},k),React.createElement(View,{style:L,onLayout:I?O:void 0},f??React.createElement(ProgressFilledTrack,null)),H))});Progress.displayName="Progress";export default Progress;
|
|
@@ -1,45 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export const createProgressTokens = foundations => {
|
|
3
|
-
const onPrimary = foundations.palette.primary.foreground ?? '#ffffff';
|
|
4
|
-
return {
|
|
5
|
-
defaults: {
|
|
6
|
-
percentage: 0,
|
|
7
|
-
inactive: false,
|
|
8
|
-
showPivot: true,
|
|
9
|
-
transition: true,
|
|
10
|
-
animationDuration: 300
|
|
11
|
-
},
|
|
12
|
-
layout: {
|
|
13
|
-
track: {
|
|
14
|
-
overflow: 'hidden'
|
|
15
|
-
},
|
|
16
|
-
indicator: {
|
|
17
|
-
position: 'absolute',
|
|
18
|
-
left: 0,
|
|
19
|
-
top: 0
|
|
20
|
-
},
|
|
21
|
-
pivot: {
|
|
22
|
-
position: 'absolute'
|
|
23
|
-
},
|
|
24
|
-
pivotText: {
|
|
25
|
-
textAlign: 'center',
|
|
26
|
-
includeFontPadding: false
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
colors: {
|
|
30
|
-
track: foundations.palette.default[100],
|
|
31
|
-
indicator: foundations.palette.primary[500],
|
|
32
|
-
pivotText: onPrimary
|
|
33
|
-
},
|
|
34
|
-
typography: {
|
|
35
|
-
fontFamily: foundations.typography.fontFamily,
|
|
36
|
-
pivotFontSize: foundations.fontSize.xs
|
|
37
|
-
},
|
|
38
|
-
sizing: {
|
|
39
|
-
height: 4,
|
|
40
|
-
pivotPaddingHorizontal: foundations.spacing.xs,
|
|
41
|
-
pivotPaddingVertical: 2
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
export const useProgressTokens = createComponentTokensHook('progress', createProgressTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";export const createProgressTokens=t=>{const o=t.palette.primary.foreground??"#ffffff";return{defaults:{percentage:0,inactive:!1,showPivot:!0,transition:!0,animationDuration:300},layout:{track:{overflow:"hidden"},indicator:{position:"absolute",left:0,top:0},pivot:{position:"absolute"},pivotText:{textAlign:"center",includeFontPadding:!1}},colors:{track:t.palette.default[100],indicator:t.palette.primary[500],pivotText:o},typography:{fontFamily:t.typography.fontFamily,pivotFontSize:t.fontSize.xs},sizing:{height:4,pivotPaddingHorizontal:t.spacing.xs,pivotPaddingVertical:2}}};export const useProgressTokens=createComponentTokensHook("progress",createProgressTokens);
|