react-native-system-ui 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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/nativewind.d.ts +4 -0
- package/package.json +15 -3
|
@@ -1,275 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useMemo, useRef } from 'react';
|
|
3
|
-
import { Pressable, View } from 'react-native';
|
|
4
|
-
import { Close } from 'react-native-system-icon';
|
|
5
|
-
import { useAriaPress } from '../../hooks';
|
|
6
|
-
import { createHairlineView, isRenderable, isText, renderTextOrNode } from '../../utils';
|
|
7
|
-
import Loading from '../loading';
|
|
8
|
-
import Popup from '../popup';
|
|
9
|
-
import { useActionSheetTokens } from './tokens';
|
|
10
|
-
const defaultCloseIcon = /*#__PURE__*/React.createElement(Close, {
|
|
11
|
-
size: 18
|
|
12
|
-
});
|
|
13
|
-
const ActionSheetHeader = /*#__PURE__*/React.memo(({
|
|
14
|
-
title,
|
|
15
|
-
closeable,
|
|
16
|
-
closeIcon,
|
|
17
|
-
tokens,
|
|
18
|
-
onClose
|
|
19
|
-
}) => {
|
|
20
|
-
const closePress = useAriaPress({
|
|
21
|
-
onPress: onClose
|
|
22
|
-
});
|
|
23
|
-
const {
|
|
24
|
-
colors,
|
|
25
|
-
typography
|
|
26
|
-
} = tokens;
|
|
27
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
28
|
-
style: tokens.layout.header
|
|
29
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
30
|
-
style: tokens.layout.titleContainer
|
|
31
|
-
}, isText(title) ? renderTextOrNode(title, [tokens.layout.title, {
|
|
32
|
-
color: colors.title,
|
|
33
|
-
fontSize: typography.title
|
|
34
|
-
}]) : /*#__PURE__*/React.createElement(View, {
|
|
35
|
-
style: tokens.layout.titleNode
|
|
36
|
-
}, title)), closeable && /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
37
|
-
style: tokens.layout.closeButton,
|
|
38
|
-
accessibilityRole: "button",
|
|
39
|
-
hitSlop: 8
|
|
40
|
-
}, closePress.interactionProps), /*#__PURE__*/React.isValidElement(closeIcon) ? /*#__PURE__*/React.cloneElement(closeIcon, {
|
|
41
|
-
fill: colors.description,
|
|
42
|
-
color: colors.description
|
|
43
|
-
}) : renderTextOrNode(closeIcon, [{
|
|
44
|
-
color: colors.description
|
|
45
|
-
}])));
|
|
46
|
-
});
|
|
47
|
-
const ActionSheetItem = /*#__PURE__*/React.memo(({
|
|
48
|
-
action,
|
|
49
|
-
index,
|
|
50
|
-
tokens,
|
|
51
|
-
onActionPress
|
|
52
|
-
}) => {
|
|
53
|
-
const {
|
|
54
|
-
disabled,
|
|
55
|
-
loading,
|
|
56
|
-
name,
|
|
57
|
-
subname,
|
|
58
|
-
icon
|
|
59
|
-
} = action;
|
|
60
|
-
const {
|
|
61
|
-
colors,
|
|
62
|
-
spacing,
|
|
63
|
-
typography
|
|
64
|
-
} = tokens;
|
|
65
|
-
const actionPress = useAriaPress({
|
|
66
|
-
disabled: !!disabled || !!loading,
|
|
67
|
-
onPress: useCallback(() => onActionPress(action, index), [action, index, onActionPress]),
|
|
68
|
-
extraProps: {
|
|
69
|
-
accessibilityRole: 'menuitem',
|
|
70
|
-
accessibilityLabel: isText(name) ? String(name) : undefined,
|
|
71
|
-
accessibilityState: {
|
|
72
|
-
disabled: !!disabled,
|
|
73
|
-
busy: !!loading
|
|
74
|
-
},
|
|
75
|
-
testID: `rv-action-sheet-item-${index}`
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
79
|
-
style: ({
|
|
80
|
-
pressed
|
|
81
|
-
}) => [tokens.layout.item, !!icon && tokens.layout.itemWithIcon, {
|
|
82
|
-
paddingVertical: spacing.vertical,
|
|
83
|
-
paddingHorizontal: spacing.horizontal,
|
|
84
|
-
backgroundColor: pressed && !action.disabled && !action.loading ? colors.itemPressedBackground : colors.itemBackground
|
|
85
|
-
}, action.style]
|
|
86
|
-
}, actionPress.interactionProps), !!icon && /*#__PURE__*/React.createElement(View, {
|
|
87
|
-
style: tokens.layout.icon
|
|
88
|
-
}, isText(icon) ? renderTextOrNode(icon, [{
|
|
89
|
-
color: colors.item
|
|
90
|
-
}]) : icon), loading ? /*#__PURE__*/React.createElement(Loading, {
|
|
91
|
-
size: 20
|
|
92
|
-
}) : isRenderable(name) ? /*#__PURE__*/React.createElement(View, {
|
|
93
|
-
style: tokens.layout.itemTextWrapper
|
|
94
|
-
}, renderTextOrNode(name, [tokens.layout.itemText, {
|
|
95
|
-
color: action.disabled ? colors.disabled : action.color ?? colors.item,
|
|
96
|
-
fontSize: typography.item
|
|
97
|
-
}]), isRenderable(subname) && (isText(subname) ? renderTextOrNode(subname, [tokens.layout.subname, {
|
|
98
|
-
color: colors.subitem
|
|
99
|
-
}]) : /*#__PURE__*/React.createElement(View, {
|
|
100
|
-
style: tokens.layout.subnameNode
|
|
101
|
-
}, subname))) : null);
|
|
102
|
-
});
|
|
103
|
-
const ActionSheetCancel = /*#__PURE__*/React.memo(({
|
|
104
|
-
cancelText,
|
|
105
|
-
tokens,
|
|
106
|
-
onPress
|
|
107
|
-
}) => {
|
|
108
|
-
const {
|
|
109
|
-
colors,
|
|
110
|
-
spacing,
|
|
111
|
-
typography
|
|
112
|
-
} = tokens;
|
|
113
|
-
const cancelPress = useAriaPress({
|
|
114
|
-
onPress,
|
|
115
|
-
extraProps: {
|
|
116
|
-
accessibilityRole: 'button',
|
|
117
|
-
testID: 'rv-action-sheet-cancel'
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
|
|
121
|
-
style: [tokens.layout.cancelGap, {
|
|
122
|
-
height: spacing.cancelGap,
|
|
123
|
-
backgroundColor: colors.cancelGapBackground
|
|
124
|
-
}]
|
|
125
|
-
}), /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
126
|
-
style: [tokens.layout.cancel, {
|
|
127
|
-
paddingVertical: spacing.vertical,
|
|
128
|
-
paddingHorizontal: spacing.horizontal,
|
|
129
|
-
backgroundColor: colors.cancelBackground
|
|
130
|
-
}]
|
|
131
|
-
}, cancelPress.interactionProps), renderTextOrNode(cancelText, [tokens.layout.cancelText, {
|
|
132
|
-
color: colors.cancel,
|
|
133
|
-
fontSize: typography.item
|
|
134
|
-
}])));
|
|
135
|
-
});
|
|
136
|
-
const ActionSheetImpl = props => {
|
|
137
|
-
const {
|
|
138
|
-
tokensOverride,
|
|
139
|
-
visible,
|
|
140
|
-
title,
|
|
141
|
-
description,
|
|
142
|
-
cancelText,
|
|
143
|
-
actions = [],
|
|
144
|
-
closeOnClickAction: closeOnActP,
|
|
145
|
-
closeOnSelect,
|
|
146
|
-
closeable: closeableP,
|
|
147
|
-
closeIcon = defaultCloseIcon,
|
|
148
|
-
beforeClose,
|
|
149
|
-
onSelect,
|
|
150
|
-
onCancel,
|
|
151
|
-
onClose,
|
|
152
|
-
children,
|
|
153
|
-
round: roundP,
|
|
154
|
-
safeAreaInsetBottom: safeP,
|
|
155
|
-
overlay: ovP,
|
|
156
|
-
lockScroll: lockP,
|
|
157
|
-
style: popStyle,
|
|
158
|
-
...popProps
|
|
159
|
-
} = props;
|
|
160
|
-
const tokens = useActionSheetTokens(tokensOverride);
|
|
161
|
-
const closeable = closeableP ?? tokens.defaults.closeable;
|
|
162
|
-
const round = roundP ?? tokens.defaults.round;
|
|
163
|
-
const safeBottom = safeP ?? tokens.defaults.safeAreaInsetBottom;
|
|
164
|
-
const overlay = ovP ?? tokens.defaults.overlay;
|
|
165
|
-
const lockScroll = lockP ?? tokens.defaults.lockScroll;
|
|
166
|
-
const closeOnAct = closeOnActP ?? closeOnSelect ?? tokens.defaults.closeOnClickAction;
|
|
167
|
-
const hasT = isRenderable(title);
|
|
168
|
-
const hasD = isRenderable(description);
|
|
169
|
-
const hasC = isRenderable(cancelText);
|
|
170
|
-
const lastReasonRef = useRef('close');
|
|
171
|
-
const closingRef = useRef(false);
|
|
172
|
-
const beforeCloseRef = useRef(beforeClose);
|
|
173
|
-
beforeCloseRef.current = beforeClose;
|
|
174
|
-
const onCloseRef = useRef(onClose);
|
|
175
|
-
onCloseRef.current = onClose;
|
|
176
|
-
const onCancelRef = useRef(onCancel);
|
|
177
|
-
onCancelRef.current = onCancel;
|
|
178
|
-
const onSelectRef = useRef(onSelect);
|
|
179
|
-
onSelectRef.current = onSelect;
|
|
180
|
-
const runBefore = useCallback(async action => {
|
|
181
|
-
if (!beforeCloseRef.current) return true;
|
|
182
|
-
try {
|
|
183
|
-
return (await beforeCloseRef.current(action)) !== false;
|
|
184
|
-
} catch {
|
|
185
|
-
return true;
|
|
186
|
-
}
|
|
187
|
-
}, []);
|
|
188
|
-
const emitClose = useCallback(reason => {
|
|
189
|
-
if (onCloseRef.current) {
|
|
190
|
-
if (reason === 'cancel') onCancelRef.current?.();
|
|
191
|
-
onCloseRef.current();
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
;
|
|
195
|
-
onCancelRef.current?.();
|
|
196
|
-
}, []);
|
|
197
|
-
const reqClose = useCallback(async action => {
|
|
198
|
-
if (closingRef.current) return;
|
|
199
|
-
closingRef.current = true;
|
|
200
|
-
try {
|
|
201
|
-
const ok = await runBefore(action);
|
|
202
|
-
if (!ok) return;
|
|
203
|
-
emitClose(action);
|
|
204
|
-
} finally {
|
|
205
|
-
closingRef.current = false;
|
|
206
|
-
}
|
|
207
|
-
}, [emitClose, runBefore]);
|
|
208
|
-
const onPopupBefore = useCallback(reason => {
|
|
209
|
-
lastReasonRef.current = reason;
|
|
210
|
-
return runBefore(reason);
|
|
211
|
-
}, [runBefore]);
|
|
212
|
-
const onPopupClose = useCallback(() => {
|
|
213
|
-
emitClose(lastReasonRef.current);
|
|
214
|
-
}, [emitClose]);
|
|
215
|
-
const onActPress = useCallback((action, index) => {
|
|
216
|
-
if (action.disabled || action.loading) return;
|
|
217
|
-
action.onPress?.(action);
|
|
218
|
-
action.callback?.(action);
|
|
219
|
-
onSelectRef.current?.(action, index);
|
|
220
|
-
if (closeOnAct) void reqClose('action');
|
|
221
|
-
}, [reqClose, closeOnAct]);
|
|
222
|
-
const popStyleMemo = useMemo(() => [tokens.layout.popup, popStyle], [tokens.layout.popup, popStyle]);
|
|
223
|
-
return /*#__PURE__*/React.createElement(Popup, _extends({
|
|
224
|
-
visible: visible,
|
|
225
|
-
placement: "bottom",
|
|
226
|
-
round: round,
|
|
227
|
-
safeAreaInsetTop: hasT && closeable,
|
|
228
|
-
safeAreaInsetBottom: safeBottom,
|
|
229
|
-
overlay: overlay,
|
|
230
|
-
lockScroll: lockScroll,
|
|
231
|
-
beforeClose: onPopupBefore,
|
|
232
|
-
onClose: onPopupClose,
|
|
233
|
-
style: popStyleMemo
|
|
234
|
-
}, popProps), /*#__PURE__*/React.createElement(View, {
|
|
235
|
-
accessibilityRole: "menu",
|
|
236
|
-
style: [tokens.layout.panel, {
|
|
237
|
-
backgroundColor: tokens.colors.background
|
|
238
|
-
}]
|
|
239
|
-
}, hasT && /*#__PURE__*/React.createElement(ActionSheetHeader, {
|
|
240
|
-
title: title,
|
|
241
|
-
closeable: closeable,
|
|
242
|
-
closeIcon: closeIcon,
|
|
243
|
-
tokens: tokens,
|
|
244
|
-
onClose: () => void reqClose('close-icon')
|
|
245
|
-
}), hasD && /*#__PURE__*/React.createElement(View, {
|
|
246
|
-
style: tokens.layout.descriptionContainer
|
|
247
|
-
}, isText(description) ? renderTextOrNode(description, [tokens.layout.description, {
|
|
248
|
-
color: tokens.colors.description,
|
|
249
|
-
fontSize: tokens.typography.description
|
|
250
|
-
}]) : /*#__PURE__*/React.createElement(View, {
|
|
251
|
-
style: tokens.layout.descriptionNode
|
|
252
|
-
}, description), /*#__PURE__*/React.createElement(View, {
|
|
253
|
-
style: createHairlineView({
|
|
254
|
-
position: 'bottom',
|
|
255
|
-
color: tokens.colors.border,
|
|
256
|
-
left: 0,
|
|
257
|
-
right: 0
|
|
258
|
-
})
|
|
259
|
-
})), /*#__PURE__*/React.createElement(View, {
|
|
260
|
-
style: tokens.layout.actions
|
|
261
|
-
}, actions.map((action, index) => /*#__PURE__*/React.createElement(ActionSheetItem, {
|
|
262
|
-
key: action.key ?? index,
|
|
263
|
-
action: action,
|
|
264
|
-
index: index,
|
|
265
|
-
tokens: tokens,
|
|
266
|
-
onActionPress: onActPress
|
|
267
|
-
}))), children, hasC && /*#__PURE__*/React.createElement(ActionSheetCancel, {
|
|
268
|
-
cancelText: cancelText,
|
|
269
|
-
tokens: tokens,
|
|
270
|
-
onPress: () => void reqClose('cancel')
|
|
271
|
-
})));
|
|
272
|
-
};
|
|
273
|
-
const ActionSheet = /*#__PURE__*/React.memo(ActionSheetImpl);
|
|
274
|
-
ActionSheet.displayName = 'ActionSheet';
|
|
275
|
-
export default ActionSheet;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import{Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{createHairlineView,isRenderable,isText,renderTextOrNode}from"../../utils";import Loading from"../loading";import Popup from"../popup";import{useActionSheetTokens}from"./tokens";const defaultCloseIcon=React.createElement(Close,{size:18}),ActionSheetHeader=React.memo(({title:e,closeable:t,closeIcon:o,tokens:r,onClose:n})=>{const a=useAriaPress({onPress:n}),{colors:l,typography:c}=r;return React.createElement(View,{style:r.layout.header},React.createElement(View,{style:r.layout.titleContainer},isText(e)?renderTextOrNode(e,[r.layout.title,{color:l.title,fontSize:c.title}]):React.createElement(View,{style:r.layout.titleNode},e)),t&&React.createElement(Pressable,_extends({style:r.layout.closeButton,accessibilityRole:"button",hitSlop:8},a.interactionProps),React.isValidElement(o)?React.cloneElement(o,{fill:l.description,color:l.description}):renderTextOrNode(o,[{color:l.description}])))}),ActionSheetItem=React.memo(({action:e,index:t,tokens:o,onActionPress:r})=>{const{disabled:n,loading:a,name:l,subname:c,icon:s}=e,{colors:i,spacing:u,typography:d}=o,m=useAriaPress({disabled:!!n||!!a,onPress:useCallback(()=>r(e,t),[e,t,r]),extraProps:{accessibilityRole:"menuitem",accessibilityLabel:isText(l)?String(l):void 0,accessibilityState:{disabled:!!n,busy:!!a},testID:`rv-action-sheet-item-${t}`}});return React.createElement(Pressable,_extends({style:({pressed:t})=>[o.layout.item,!!s&&o.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?i.itemBackground:i.itemPressedBackground},e.style]},m.interactionProps),!!s&&React.createElement(View,{style:o.layout.icon},isText(s)?renderTextOrNode(s,[{color:i.item}]):s),a?React.createElement(Loading,{size:20}):isRenderable(l)?React.createElement(View,{style:o.layout.itemTextWrapper},renderTextOrNode(l,[o.layout.itemText,{color:e.disabled?i.disabled:e.color??i.item,fontSize:d.item}]),isRenderable(c)&&(isText(c)?renderTextOrNode(c,[o.layout.subname,{color:i.subitem}]):React.createElement(View,{style:o.layout.subnameNode},c))):null)}),ActionSheetCancel=React.memo(({cancelText:e,tokens:t,onPress:o})=>{const{colors:r,spacing:n,typography:a}=t,l=useAriaPress({onPress:o,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return React.createElement(React.Fragment,null,React.createElement(View,{style:[t.layout.cancelGap,{height:n.cancelGap,backgroundColor:r.cancelGapBackground}]}),React.createElement(Pressable,_extends({style:[t.layout.cancel,{paddingVertical:n.vertical,paddingHorizontal:n.horizontal,backgroundColor:r.cancelBackground}]},l.interactionProps),renderTextOrNode(e,[t.layout.cancelText,{color:r.cancel,fontSize:a.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:o,title:r,description:n,cancelText:a,actions:l=[],closeOnClickAction:c,closeOnSelect:s,closeable:i,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:m,onCancel:y,onClose:p,children:b,round:R,safeAreaInsetBottom:f,overlay:k,lockScroll:h,style:g,...x}=e,C=useActionSheetTokens(t),A=i??C.defaults.closeable,S=R??C.defaults.round,P=f??C.defaults.safeAreaInsetBottom,E=k??C.defaults.overlay,T=h??C.defaults.lockScroll,w=c??s??C.defaults.closeOnClickAction,V=isRenderable(r),v=isRenderable(n),I=isRenderable(a),O=useRef("close"),N=useRef(!1),z=useRef(d);z.current=d;const B=useRef(p);B.current=p;const _=useRef(y);_.current=y;const H=useRef(m);H.current=m;const G=useCallback(async e=>{if(!z.current)return!0;try{return!1!==await z.current(e)}catch{return!0}},[]),L=useCallback(e=>{if(B.current)return"cancel"===e&&_.current?.(),void B.current();_.current?.()},[]),j=useCallback(async e=>{if(!N.current){N.current=!0;try{if(!await G(e))return;L(e)}finally{N.current=!1}}},[L,G]),D=useCallback(e=>(O.current=e,G(e)),[G]),M=useCallback(()=>{L(O.current)},[L]),W=useCallback((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),H.current?.(e,t),w&&j("action"))},[j,w]),F=useMemo(()=>[C.layout.popup,g],[C.layout.popup,g]);return React.createElement(Popup,_extends({visible:o,placement:"bottom",round:S,safeAreaInsetTop:V&&A,safeAreaInsetBottom:P,overlay:E,lockScroll:T,beforeClose:D,onClose:M,style:F},x),React.createElement(View,{accessibilityRole:"menu",style:[C.layout.panel,{backgroundColor:C.colors.background}]},V&&React.createElement(ActionSheetHeader,{title:r,closeable:A,closeIcon:u,tokens:C,onClose:()=>{j("close-icon")}}),v&&React.createElement(View,{style:C.layout.descriptionContainer},isText(n)?renderTextOrNode(n,[C.layout.description,{color:C.colors.description,fontSize:C.typography.description}]):React.createElement(View,{style:C.layout.descriptionNode},n),React.createElement(View,{style:createHairlineView({position:"bottom",color:C.colors.border,left:0,right:0})})),React.createElement(View,{style:C.layout.actions},l.map((e,t)=>React.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:C,onActionPress:W}))),b,I&&React.createElement(ActionSheetCancel,{cancelText:a,tokens:C,onPress:()=>{j("cancel")}})))},ActionSheet=React.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";export default ActionSheet;
|
|
@@ -1,126 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const centered = {
|
|
3
|
-
alignItems: 'center',
|
|
4
|
-
justifyContent: 'center'
|
|
5
|
-
};
|
|
6
|
-
export const createActionSheetTokens = foundations => {
|
|
7
|
-
const {
|
|
8
|
-
palette,
|
|
9
|
-
spacing,
|
|
10
|
-
fontSize
|
|
11
|
-
} = foundations;
|
|
12
|
-
const white = '#ffffff';
|
|
13
|
-
return {
|
|
14
|
-
defaults: {
|
|
15
|
-
closeOnClickAction: false,
|
|
16
|
-
closeable: true,
|
|
17
|
-
round: true,
|
|
18
|
-
safeAreaInsetBottom: true,
|
|
19
|
-
overlay: true,
|
|
20
|
-
lockScroll: true
|
|
21
|
-
},
|
|
22
|
-
layout: {
|
|
23
|
-
popup: {
|
|
24
|
-
paddingLeft: 0,
|
|
25
|
-
paddingRight: 0,
|
|
26
|
-
paddingBottom: 0
|
|
27
|
-
},
|
|
28
|
-
panel: {
|
|
29
|
-
width: '100%',
|
|
30
|
-
maxHeight: '80%'
|
|
31
|
-
},
|
|
32
|
-
header: {
|
|
33
|
-
position: 'relative',
|
|
34
|
-
flexDirection: 'row',
|
|
35
|
-
...centered,
|
|
36
|
-
paddingHorizontal: 16
|
|
37
|
-
},
|
|
38
|
-
titleContainer: {
|
|
39
|
-
flex: 1,
|
|
40
|
-
...centered
|
|
41
|
-
},
|
|
42
|
-
title: {
|
|
43
|
-
fontWeight: '600',
|
|
44
|
-
textAlign: 'center'
|
|
45
|
-
},
|
|
46
|
-
titleNode: centered,
|
|
47
|
-
closeButton: {
|
|
48
|
-
position: 'absolute',
|
|
49
|
-
top: 0,
|
|
50
|
-
right: 0,
|
|
51
|
-
width: 48,
|
|
52
|
-
height: 48,
|
|
53
|
-
...centered
|
|
54
|
-
},
|
|
55
|
-
descriptionContainer: {
|
|
56
|
-
paddingTop: 12,
|
|
57
|
-
paddingBottom: 20,
|
|
58
|
-
paddingHorizontal: 16
|
|
59
|
-
},
|
|
60
|
-
description: {
|
|
61
|
-
textAlign: 'center',
|
|
62
|
-
lineHeight: 20
|
|
63
|
-
},
|
|
64
|
-
descriptionNode: centered,
|
|
65
|
-
actions: {
|
|
66
|
-
width: '100%'
|
|
67
|
-
},
|
|
68
|
-
item: {
|
|
69
|
-
...centered,
|
|
70
|
-
width: '100%'
|
|
71
|
-
},
|
|
72
|
-
itemWithIcon: {
|
|
73
|
-
flexDirection: 'row',
|
|
74
|
-
justifyContent: 'center'
|
|
75
|
-
},
|
|
76
|
-
itemTextWrapper: centered,
|
|
77
|
-
itemText: {
|
|
78
|
-
lineHeight: 24
|
|
79
|
-
},
|
|
80
|
-
subname: {
|
|
81
|
-
marginTop: 4,
|
|
82
|
-
fontSize: 12,
|
|
83
|
-
lineHeight: 18
|
|
84
|
-
},
|
|
85
|
-
subnameNode: {
|
|
86
|
-
marginTop: 4
|
|
87
|
-
},
|
|
88
|
-
icon: {
|
|
89
|
-
marginRight: 12
|
|
90
|
-
},
|
|
91
|
-
cancelGap: {
|
|
92
|
-
width: '100%',
|
|
93
|
-
marginBottom: 0
|
|
94
|
-
},
|
|
95
|
-
cancel: centered,
|
|
96
|
-
cancelText: {
|
|
97
|
-
lineHeight: 24
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
colors: {
|
|
101
|
-
background: white,
|
|
102
|
-
title: palette.default[900],
|
|
103
|
-
description: palette.default[500],
|
|
104
|
-
item: palette.default[900],
|
|
105
|
-
subitem: palette.default[500],
|
|
106
|
-
cancel: palette.default[900],
|
|
107
|
-
disabled: palette.default[400],
|
|
108
|
-
border: palette.default[200],
|
|
109
|
-
itemBackground: white,
|
|
110
|
-
itemPressedBackground: palette.default[100],
|
|
111
|
-
cancelBackground: white,
|
|
112
|
-
cancelGapBackground: palette.default[100] ?? '#f1f2f5'
|
|
113
|
-
},
|
|
114
|
-
typography: {
|
|
115
|
-
title: fontSize.lg,
|
|
116
|
-
item: fontSize.md,
|
|
117
|
-
description: fontSize.sm
|
|
118
|
-
},
|
|
119
|
-
spacing: {
|
|
120
|
-
horizontal: spacing.md,
|
|
121
|
-
vertical: 14,
|
|
122
|
-
cancelGap: 8
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
|
-
export const useActionSheetTokens = createComponentTokensHook('actionSheet', createActionSheetTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";const centered={alignItems:"center",justifyContent:"center"};export const createActionSheetTokens=e=>{const{palette:t,spacing:n,fontSize:i}=e,o="#ffffff";return{defaults:{closeOnClickAction:!1,closeable:!0,round:!0,safeAreaInsetBottom:!0,overlay:!0,lockScroll:!0},layout:{popup:{paddingLeft:0,paddingRight:0,paddingBottom:0},panel:{width:"100%",maxHeight:"80%"},header:{position:"relative",flexDirection:"row",...centered,paddingHorizontal:16},titleContainer:{flex:1,...centered},title:{fontWeight:"600",textAlign:"center"},titleNode:centered,closeButton:{position:"absolute",top:0,right:0,width:48,height:48,...centered},descriptionContainer:{paddingTop:12,paddingBottom:20,paddingHorizontal:16},description:{textAlign:"center",lineHeight:20},descriptionNode:centered,actions:{width:"100%"},item:{...centered,width:"100%"},itemWithIcon:{flexDirection:"row",justifyContent:"center"},itemTextWrapper:centered,itemText:{lineHeight:24},subname:{marginTop:4,fontSize:12,lineHeight:18},subnameNode:{marginTop:4},icon:{marginRight:12},cancelGap:{width:"100%",marginBottom:0},cancel:centered,cancelText:{lineHeight:24}},colors:{background:o,title:t.default[900],description:t.default[500],item:t.default[900],subitem:t.default[500],cancel:t.default[900],disabled:t.default[400],border:t.default[200],itemBackground:o,itemPressedBackground:t.default[100],cancelBackground:o,cancelGapBackground:t.default[100]??"#f1f2f5"},typography:{title:i.lg,item:i.md,description:i.sm},spacing:{horizontal:n.md,vertical:14,cancelGap:8}}};export const useActionSheetTokens=createComponentTokensHook("actionSheet",createActionSheetTokens);
|
|
@@ -1,113 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useMemo, useRef } from 'react';
|
|
3
|
-
import Picker from '../picker';
|
|
4
|
-
import { useAreaTokens } from './tokens';
|
|
5
|
-
const sortEntries = record => record ? Object.entries(record).sort(([a], [b]) => a.localeCompare(b)) : [];
|
|
6
|
-
const getProvinceCode = code => code.slice(0, 2);
|
|
7
|
-
const getCityCode = code => code.slice(0, 4);
|
|
8
|
-
const groupBy = (list, getKey) => {
|
|
9
|
-
const m = new Map();
|
|
10
|
-
sortEntries(list).forEach(([code, name]) => {
|
|
11
|
-
const k = getKey(code);
|
|
12
|
-
const arr = m.get(k);
|
|
13
|
-
if (arr) arr.push({
|
|
14
|
-
label: name,
|
|
15
|
-
value: code
|
|
16
|
-
});else m.set(k, [{
|
|
17
|
-
label: name,
|
|
18
|
-
value: code
|
|
19
|
-
}]);
|
|
20
|
-
});
|
|
21
|
-
return m;
|
|
22
|
-
};
|
|
23
|
-
const buildAreaColumns = (areaList, columnsNum = 3) => {
|
|
24
|
-
const provinces = sortEntries(areaList.province_list);
|
|
25
|
-
if (columnsNum === 1) return provinces.map(([code, name]) => ({
|
|
26
|
-
label: name,
|
|
27
|
-
value: code
|
|
28
|
-
}));
|
|
29
|
-
const citiesByProvince = groupBy(areaList.city_list, getProvinceCode);
|
|
30
|
-
if (columnsNum === 3) {
|
|
31
|
-
const countiesByCity = groupBy(areaList.county_list, getCityCode);
|
|
32
|
-
citiesByProvince.forEach(cityOption => {
|
|
33
|
-
cityOption.forEach(cityOption2 => {
|
|
34
|
-
const cityKey = getCityCode(cityOption2.value);
|
|
35
|
-
const counties = countiesByCity.get(cityKey);
|
|
36
|
-
if (counties && counties.length) cityOption2.children = counties;
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return provinces.map(([code, name]) => {
|
|
41
|
-
const provinceOption = {
|
|
42
|
-
label: name,
|
|
43
|
-
value: code
|
|
44
|
-
};
|
|
45
|
-
const provinceKey = getProvinceCode(code);
|
|
46
|
-
const cities = citiesByProvince.get(provinceKey);
|
|
47
|
-
if (cities && cities.length) provinceOption.children = cities;
|
|
48
|
-
return provinceOption;
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
const normalizeCascadeValue = (root, rawValue, depth) => {
|
|
52
|
-
if (!rawValue) return rawValue;
|
|
53
|
-
const inputArray = Array.isArray(rawValue) ? rawValue.map(String) : [String(rawValue)];
|
|
54
|
-
const result = [];
|
|
55
|
-
let options = root;
|
|
56
|
-
for (let i = 0; i < depth; i += 1) {
|
|
57
|
-
if (!options?.length) break;
|
|
58
|
-
const wantedValue = inputArray[i];
|
|
59
|
-
const nextOption = options.find(option => String(option.value) === wantedValue) ?? options[0];
|
|
60
|
-
if (!nextOption) break;
|
|
61
|
-
result.push(String(nextOption.value));
|
|
62
|
-
options = nextOption.children;
|
|
63
|
-
}
|
|
64
|
-
return result;
|
|
65
|
-
};
|
|
66
|
-
const AreaImpl = props => {
|
|
67
|
-
const tokens = useAreaTokens();
|
|
68
|
-
const {
|
|
69
|
-
areaList,
|
|
70
|
-
columnsNum: colP = tokens.defaults.columnsNum,
|
|
71
|
-
value,
|
|
72
|
-
defaultValue,
|
|
73
|
-
onChange,
|
|
74
|
-
onConfirm,
|
|
75
|
-
interactionMode: modeP = tokens.defaults.interactionMode,
|
|
76
|
-
...rest
|
|
77
|
-
} = props;
|
|
78
|
-
const cols = useMemo(() => colP >= 1 && colP <= 3 ? colP : tokens.defaults.columnsNum, [colP]);
|
|
79
|
-
const {
|
|
80
|
-
province_list,
|
|
81
|
-
city_list,
|
|
82
|
-
county_list
|
|
83
|
-
} = areaList;
|
|
84
|
-
const columns = useMemo(() => buildAreaColumns({
|
|
85
|
-
province_list,
|
|
86
|
-
city_list,
|
|
87
|
-
county_list
|
|
88
|
-
}, cols), [city_list, county_list, province_list, cols]);
|
|
89
|
-
const norm = useCallback(val => val === undefined ? undefined : normalizeCascadeValue(columns, val, cols), [columns, cols]);
|
|
90
|
-
const normVal = useMemo(() => norm(value), [norm, value]);
|
|
91
|
-
const normDef = useMemo(() => norm(defaultValue), [norm, defaultValue]);
|
|
92
|
-
const onChangeRef = useRef(onChange);
|
|
93
|
-
onChangeRef.current = onChange;
|
|
94
|
-
const onConfirmRef = useRef(onConfirm);
|
|
95
|
-
onConfirmRef.current = onConfirm;
|
|
96
|
-
const onCh = useCallback((values, opts) => {
|
|
97
|
-
onChangeRef.current?.(values.map(String), opts);
|
|
98
|
-
}, []);
|
|
99
|
-
const onConf = useCallback((values, opts) => {
|
|
100
|
-
onConfirmRef.current?.(values.map(String), opts);
|
|
101
|
-
}, []);
|
|
102
|
-
return /*#__PURE__*/React.createElement(Picker, _extends({}, rest, {
|
|
103
|
-
columns: columns,
|
|
104
|
-
interactionMode: modeP,
|
|
105
|
-
value: normVal,
|
|
106
|
-
defaultValue: normDef,
|
|
107
|
-
onChange: onChange ? onCh : undefined,
|
|
108
|
-
onConfirm: onConfirm ? onConf : undefined
|
|
109
|
-
}));
|
|
110
|
-
};
|
|
111
|
-
const Area = /*#__PURE__*/React.memo(AreaImpl);
|
|
112
|
-
Area.displayName = 'Area';
|
|
113
|
-
export default Area;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import Picker from"../picker";import{useAreaTokens}from"./tokens";const sortEntries=e=>e?Object.entries(e).sort(([e],[t])=>e.localeCompare(t)):[],getProvinceCode=e=>e.slice(0,2),getCityCode=e=>e.slice(0,4),groupBy=(e,t)=>{const r=new Map;return sortEntries(e).forEach(([e,n])=>{const o=t(e),a=r.get(o);a?a.push({label:n,value:e}):r.set(o,[{label:n,value:e}])}),r},buildAreaColumns=(e,t=3)=>{const r=sortEntries(e.province_list);if(1===t)return r.map(([e,t])=>({label:t,value:e}));const n=groupBy(e.city_list,getProvinceCode);if(3===t){const t=groupBy(e.county_list,getCityCode);n.forEach(e=>{e.forEach(e=>{const r=getCityCode(e.value),n=t.get(r);n&&n.length&&(e.children=n)})})}return r.map(([e,t])=>{const r={label:t,value:e},o=getProvinceCode(e),a=n.get(o);return a&&a.length&&(r.children=a),r})},normalizeCascadeValue=(e,t,r)=>{if(!t)return t;const n=Array.isArray(t)?t.map(String):[String(t)],o=[];let a=e;for(let e=0;e<r&&a?.length;e+=1){const t=n[e],r=a.find(e=>String(e.value)===t)??a[0];if(!r)break;o.push(String(r.value)),a=r.children}return o},AreaImpl=e=>{const t=useAreaTokens(),{areaList:r,columnsNum:n=t.defaults.columnsNum,value:o,defaultValue:a,onChange:l,onConfirm:s,interactionMode:i=t.defaults.interactionMode,...u}=e,c=useMemo(()=>n>=1&&n<=3?n:t.defaults.columnsNum,[n]),{province_list:m,city_list:d,county_list:f}=r,g=useMemo(()=>buildAreaColumns({province_list:m,city_list:d,county_list:f},c),[d,f,m,c]),p=useCallback(e=>void 0===e?void 0:normalizeCascadeValue(g,e,c),[g,c]),v=useMemo(()=>p(o),[p,o]),C=useMemo(()=>p(a),[p,a]),y=useRef(l);y.current=l;const b=useRef(s);b.current=s;const h=useCallback((e,t)=>{y.current?.(e.map(String),t)},[]),_=useCallback((e,t)=>{b.current?.(e.map(String),t)},[]);return React.createElement(Picker,_extends({},u,{columns:g,interactionMode:i,value:v,defaultValue:C,onChange:l?h:void 0,onConfirm:s?_:void 0}))},Area=React.memo(AreaImpl);Area.displayName="Area";export default Area;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import Area from
|
|
2
|
-
export default Area;
|
|
1
|
+
import Area from"./Area";export default Area;
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const createAreaTokens = _foundations => ({
|
|
3
|
-
defaults: {
|
|
4
|
-
columnsNum: 3,
|
|
5
|
-
interactionMode: 'sync'
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
export const useAreaTokens = createComponentTokensHook('area', createAreaTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";const createAreaTokens=e=>({defaults:{columnsNum:3,interactionMode:"sync"}});export const useAreaTokens=createComponentTokensHook("area",createAreaTokens);
|
|
@@ -1,106 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
|
-
import Image from '../image';
|
|
5
|
-
import { isNumber } from '../../utils';
|
|
6
|
-
import { useAvatarTokens } from './tokens';
|
|
7
|
-
export const AvatarFallbackText = /*#__PURE__*/React.forwardRef(({
|
|
8
|
-
children,
|
|
9
|
-
color,
|
|
10
|
-
style
|
|
11
|
-
}, ref) => {
|
|
12
|
-
const tokens = useAvatarTokens();
|
|
13
|
-
return /*#__PURE__*/React.createElement(Text, {
|
|
14
|
-
ref: ref,
|
|
15
|
-
style: StyleSheet.flatten([tokens.layout.text, {
|
|
16
|
-
color: color ?? tokens.colors.text,
|
|
17
|
-
fontWeight: tokens.typography.fontWeight
|
|
18
|
-
}, style]),
|
|
19
|
-
numberOfLines: 1
|
|
20
|
-
}, children);
|
|
21
|
-
});
|
|
22
|
-
AvatarFallbackText.displayName = 'Avatar.FallbackText';
|
|
23
|
-
export const AvatarImage = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
24
|
-
const tokens = useAvatarTokens();
|
|
25
|
-
return /*#__PURE__*/React.createElement(Image, _extends({
|
|
26
|
-
ref: ref
|
|
27
|
-
}, props, {
|
|
28
|
-
containerStyle: [{
|
|
29
|
-
backgroundColor: tokens.colors.transparent
|
|
30
|
-
}, props.containerStyle],
|
|
31
|
-
style: [tokens.layout.image, props.style],
|
|
32
|
-
fit: props.fit ?? 'cover',
|
|
33
|
-
loadingText: props.loadingText ?? null,
|
|
34
|
-
loadingSize: props.loadingSize ?? tokens.sizing.loadingSize,
|
|
35
|
-
showError: props.showError ?? true
|
|
36
|
-
}));
|
|
37
|
-
});
|
|
38
|
-
AvatarImage.displayName = 'Avatar.Image';
|
|
39
|
-
const AvatarImpl = (props, ref) => {
|
|
40
|
-
const {
|
|
41
|
-
src,
|
|
42
|
-
source,
|
|
43
|
-
icon,
|
|
44
|
-
text,
|
|
45
|
-
size: szP,
|
|
46
|
-
width: wP,
|
|
47
|
-
height: hP,
|
|
48
|
-
shape: shapeP,
|
|
49
|
-
fit: fitP,
|
|
50
|
-
color,
|
|
51
|
-
backgroundColor,
|
|
52
|
-
style,
|
|
53
|
-
textStyle,
|
|
54
|
-
contentStyle,
|
|
55
|
-
children,
|
|
56
|
-
tokensOverride,
|
|
57
|
-
...rest
|
|
58
|
-
} = props;
|
|
59
|
-
const tokens = useAvatarTokens(tokensOverride);
|
|
60
|
-
const rSz = szP ?? tokens.defaults.size;
|
|
61
|
-
const rShape = shapeP ?? tokens.defaults.shape;
|
|
62
|
-
const base = isNumber(rSz) ? rSz : tokens.sizing.sizes[rSz];
|
|
63
|
-
const w = wP ?? base;
|
|
64
|
-
const h = hP ?? base;
|
|
65
|
-
const radius = rShape === 'circle' ? Math.min(w, h) / 2 : Math.max(tokens.radii.squareMin, Math.min(w, h) / tokens.radii.squareDivisor);
|
|
66
|
-
const transStyle = {
|
|
67
|
-
backgroundColor: tokens.colors.transparent
|
|
68
|
-
};
|
|
69
|
-
const fallback = icon ? /*#__PURE__*/React.createElement(View, {
|
|
70
|
-
style: [tokens.layout.iconWrapper, {
|
|
71
|
-
width: Math.min(w, tokens.sizing.iconMaxSize),
|
|
72
|
-
height: Math.min(h, tokens.sizing.iconMaxSize)
|
|
73
|
-
}, contentStyle]
|
|
74
|
-
}, icon) : text && /*#__PURE__*/React.createElement(AvatarFallbackText, {
|
|
75
|
-
color: color,
|
|
76
|
-
style: [{
|
|
77
|
-
fontSize: Math.min(w, h) * tokens.typography.fallbackTextScale
|
|
78
|
-
}, textStyle]
|
|
79
|
-
}, text.trim().slice(0, 2).toUpperCase());
|
|
80
|
-
const content = children ?? (src || source ? /*#__PURE__*/React.createElement(AvatarImage, {
|
|
81
|
-
src: src,
|
|
82
|
-
source: source,
|
|
83
|
-
containerStyle: transStyle,
|
|
84
|
-
style: tokens.layout.image,
|
|
85
|
-
fit: fitP ?? 'cover',
|
|
86
|
-
loadingText: null,
|
|
87
|
-
loadingSize: tokens.sizing.loadingSize,
|
|
88
|
-
showError: true,
|
|
89
|
-
fallback: fallback
|
|
90
|
-
}) : fallback);
|
|
91
|
-
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
92
|
-
ref: ref,
|
|
93
|
-
accessibilityRole: "image",
|
|
94
|
-
accessibilityLabel: text ?? (src ? 'avatar' : undefined),
|
|
95
|
-
style: [tokens.layout.container, {
|
|
96
|
-
width: w,
|
|
97
|
-
height: h,
|
|
98
|
-
borderRadius: radius,
|
|
99
|
-
backgroundColor: backgroundColor ?? tokens.colors.background
|
|
100
|
-
}, style]
|
|
101
|
-
}, rest), content);
|
|
102
|
-
};
|
|
103
|
-
const AvatarForwardRef = /*#__PURE__*/React.forwardRef(AvatarImpl);
|
|
104
|
-
AvatarForwardRef.displayName = 'Avatar';
|
|
105
|
-
export const Avatar = /*#__PURE__*/React.memo(AvatarForwardRef);
|
|
106
|
-
export default Avatar;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}import React from"react";import{Pressable,StyleSheet,Text,View}from"react-native";import Image from"../image";import{isNumber}from"../../utils";import{useAvatarTokens}from"./tokens";export const AvatarFallbackText=React.forwardRef(({children:e,color:t,style:a},r)=>{const o=useAvatarTokens();return React.createElement(Text,{ref:r,style:StyleSheet.flatten([o.layout.text,{color:t??o.colors.text,fontWeight:o.typography.fontWeight},a]),numberOfLines:1},e)});AvatarFallbackText.displayName="Avatar.FallbackText";export const AvatarImage=React.forwardRef((e,t)=>{const a=useAvatarTokens();return React.createElement(Image,_extends({ref:t},e,{containerStyle:[{backgroundColor:a.colors.transparent},e.containerStyle],style:[a.layout.image,e.style],fit:e.fit??"cover",loadingText:e.loadingText??null,loadingSize:e.loadingSize??a.sizing.loadingSize,showError:e.showError??!0}))});AvatarImage.displayName="Avatar.Image";const AvatarImpl=(e,t)=>{const{src:a,source:r,icon:o,text:i,size:n,width:l,height:s,shape:c,fit:m,color:d,backgroundColor:g,style:u,textStyle:f,contentStyle:y,children:h,tokensOverride:v,...p}=e,x=useAvatarTokens(v),b=n??x.defaults.size,A=c??x.defaults.shape,R=isNumber(b)?b:x.sizing.sizes[b],S=l??R,k=s??R,z="circle"===A?Math.min(S,k)/2:Math.max(x.radii.squareMin,Math.min(S,k)/x.radii.squareDivisor),w={backgroundColor:x.colors.transparent},T=o?React.createElement(View,{style:[x.layout.iconWrapper,{width:Math.min(S,x.sizing.iconMaxSize),height:Math.min(k,x.sizing.iconMaxSize)},y]},o):i&&React.createElement(AvatarFallbackText,{color:d,style:[{fontSize:Math.min(S,k)*x.typography.fallbackTextScale},f]},i.trim().slice(0,2).toUpperCase()),E=h??(a||r?React.createElement(AvatarImage,{src:a,source:r,containerStyle:w,style:x.layout.image,fit:m??"cover",loadingText:null,loadingSize:x.sizing.loadingSize,showError:!0,fallback:T}):T);return React.createElement(Pressable,_extends({ref:t,accessibilityRole:"image",accessibilityLabel:i??(a?"avatar":void 0),style:[x.layout.container,{width:S,height:k,borderRadius:z,backgroundColor:g??x.colors.background},u]},p),E)},AvatarForwardRef=React.forwardRef(AvatarImpl);AvatarForwardRef.displayName="Avatar";export const Avatar=React.memo(AvatarForwardRef);export default Avatar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{Avatar,Avatar as default}from"./Avatar";
|