react-native-system-ui 1.0.1 → 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 +44 -24
- package/dist/cjs/components/action-sheet/ActionSheet.js +1 -297
- 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 -481
- 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 -398
- 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 -286
- 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 -153
- 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 -303
- 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 -271
- 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 -455
- 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 -378
- 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 -266
- 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 -133
- 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 -277
- 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,49 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export const createAvatarTokens = foundations => ({
|
|
3
|
-
defaults: {
|
|
4
|
-
size: "medium",
|
|
5
|
-
shape: "circle"
|
|
6
|
-
},
|
|
7
|
-
layout: {
|
|
8
|
-
container: {
|
|
9
|
-
alignItems: "center",
|
|
10
|
-
justifyContent: "center",
|
|
11
|
-
overflow: "hidden"
|
|
12
|
-
},
|
|
13
|
-
text: {
|
|
14
|
-
includeFontPadding: false,
|
|
15
|
-
textAlignVertical: "center"
|
|
16
|
-
},
|
|
17
|
-
image: {
|
|
18
|
-
width: "100%",
|
|
19
|
-
height: "100%"
|
|
20
|
-
},
|
|
21
|
-
iconWrapper: {
|
|
22
|
-
alignItems: "center",
|
|
23
|
-
justifyContent: "center"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
colors: {
|
|
27
|
-
background: foundations.palette.default[100],
|
|
28
|
-
text: foundations.palette.default[800],
|
|
29
|
-
transparent: "transparent"
|
|
30
|
-
},
|
|
31
|
-
typography: {
|
|
32
|
-
fontWeight: "600",
|
|
33
|
-
fallbackTextScale: 0.5
|
|
34
|
-
},
|
|
35
|
-
sizing: {
|
|
36
|
-
sizes: {
|
|
37
|
-
small: 24,
|
|
38
|
-
medium: 32,
|
|
39
|
-
large: 40
|
|
40
|
-
},
|
|
41
|
-
iconMaxSize: 32,
|
|
42
|
-
loadingSize: 12
|
|
43
|
-
},
|
|
44
|
-
radii: {
|
|
45
|
-
squareMin: 6,
|
|
46
|
-
squareDivisor: 6
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
export const useAvatarTokens = createComponentTokensHook("avatar", createAvatarTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";export const createAvatarTokens=e=>({defaults:{size:"medium",shape:"circle"},layout:{container:{alignItems:"center",justifyContent:"center",overflow:"hidden"},text:{includeFontPadding:!1,textAlignVertical:"center"},image:{width:"100%",height:"100%"},iconWrapper:{alignItems:"center",justifyContent:"center"}},colors:{background:e.palette.default[100],text:e.palette.default[800],transparent:"transparent"},typography:{fontWeight:"600",fallbackTextScale:.5},sizing:{sizes:{small:24,medium:32,large:40},iconMaxSize:32,loadingSize:12},radii:{squareMin:6,squareDivisor:6}});export const useAvatarTokens=createComponentTokensHook("avatar",createAvatarTokens);
|
|
@@ -1,147 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useMemo, useState } from 'react';
|
|
3
|
-
import { Pressable, View } from 'react-native';
|
|
4
|
-
import { isNumericLike, isRenderable, renderTextOrNode } from '../../utils';
|
|
5
|
-
import { useBadgeTokens } from './tokens';
|
|
6
|
-
const BadgeImpl = (props, ref) => {
|
|
7
|
-
const {
|
|
8
|
-
children,
|
|
9
|
-
content,
|
|
10
|
-
color,
|
|
11
|
-
textColor,
|
|
12
|
-
dot: dotP,
|
|
13
|
-
max,
|
|
14
|
-
offset,
|
|
15
|
-
showZero: showZeroP,
|
|
16
|
-
badgeStyle,
|
|
17
|
-
textStyle,
|
|
18
|
-
onPress,
|
|
19
|
-
style,
|
|
20
|
-
tokensOverride,
|
|
21
|
-
...rest
|
|
22
|
-
} = props;
|
|
23
|
-
const tokens = useBadgeTokens(tokensOverride);
|
|
24
|
-
const dot = dotP ?? tokens.defaults.dot;
|
|
25
|
-
const showZero = showZeroP ?? tokens.defaults.showZero;
|
|
26
|
-
const hasCh = React.Children.count(children) > 0;
|
|
27
|
-
const {
|
|
28
|
-
visible,
|
|
29
|
-
formattedContent
|
|
30
|
-
} = useMemo(() => {
|
|
31
|
-
const num = isNumericLike(content) ? Number(content) : null;
|
|
32
|
-
const hide = num === 0 && !showZero;
|
|
33
|
-
const vis = dot || isRenderable(content) && !hide;
|
|
34
|
-
if (!vis || dot) return {
|
|
35
|
-
visible: vis,
|
|
36
|
-
formattedContent: null
|
|
37
|
-
};
|
|
38
|
-
const numMax = isNumericLike(max) ? Number(max) : null;
|
|
39
|
-
const fmt = num !== null && numMax !== null && num > numMax ? `${numMax}+` : content;
|
|
40
|
-
return {
|
|
41
|
-
visible: true,
|
|
42
|
-
formattedContent: fmt
|
|
43
|
-
};
|
|
44
|
-
}, [content, dot, max, showZero]);
|
|
45
|
-
const [sz, setSz] = useState({
|
|
46
|
-
width: 0,
|
|
47
|
-
height: 0
|
|
48
|
-
});
|
|
49
|
-
const onLay = useCallback(e => {
|
|
50
|
-
const {
|
|
51
|
-
width,
|
|
52
|
-
height
|
|
53
|
-
} = e.nativeEvent.layout;
|
|
54
|
-
setSz(prev => prev.width === width && prev.height === height ? prev : {
|
|
55
|
-
width,
|
|
56
|
-
height
|
|
57
|
-
});
|
|
58
|
-
}, []);
|
|
59
|
-
const transStyle = useMemo(() => {
|
|
60
|
-
if (!hasCh) return undefined;
|
|
61
|
-
if (dot) {
|
|
62
|
-
const h = tokens.sizing.dotSize / 2;
|
|
63
|
-
return {
|
|
64
|
-
transform: [{
|
|
65
|
-
translateX: h
|
|
66
|
-
}, {
|
|
67
|
-
translateY: -h
|
|
68
|
-
}]
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
;
|
|
72
|
-
if (sz.width === 0) return {
|
|
73
|
-
opacity: 0
|
|
74
|
-
};
|
|
75
|
-
return {
|
|
76
|
-
transform: [{
|
|
77
|
-
translateX: sz.width / 2
|
|
78
|
-
}, {
|
|
79
|
-
translateY: -sz.height / 2
|
|
80
|
-
}]
|
|
81
|
-
};
|
|
82
|
-
}, [dot, hasCh, sz.height, sz.width, tokens.sizing.dotSize]);
|
|
83
|
-
const boxStyle = useMemo(() => dot ? {
|
|
84
|
-
width: tokens.sizing.dotSize,
|
|
85
|
-
height: tokens.sizing.dotSize,
|
|
86
|
-
borderRadius: tokens.radii.dot,
|
|
87
|
-
backgroundColor: color ?? tokens.colors.dot
|
|
88
|
-
} : {
|
|
89
|
-
minWidth: tokens.sizing.minWidth,
|
|
90
|
-
minHeight: tokens.sizing.height,
|
|
91
|
-
paddingHorizontal: tokens.sizing.paddingHorizontal,
|
|
92
|
-
paddingVertical: tokens.sizing.paddingVertical,
|
|
93
|
-
borderRadius: tokens.radii.badge,
|
|
94
|
-
borderWidth: tokens.borders.width,
|
|
95
|
-
borderColor: tokens.colors.border,
|
|
96
|
-
backgroundColor: color ?? tokens.colors.background
|
|
97
|
-
}, [color, dot, tokens.borders.width, tokens.colors.background, tokens.colors.border, tokens.colors.dot, tokens.radii.badge, tokens.radii.dot, tokens.sizing.dotSize, tokens.sizing.height, tokens.sizing.minWidth, tokens.sizing.paddingHorizontal, tokens.sizing.paddingVertical]);
|
|
98
|
-
const txtStyle = [tokens.layout.text, {
|
|
99
|
-
color: textColor ?? tokens.colors.text,
|
|
100
|
-
fontSize: tokens.typography.fontSize,
|
|
101
|
-
lineHeight: tokens.typography.lineHeight,
|
|
102
|
-
fontFamily: tokens.typography.fontFamily,
|
|
103
|
-
fontWeight: tokens.typography.fontWeight
|
|
104
|
-
}, textStyle];
|
|
105
|
-
const offStyle = useMemo(() => !offset ? undefined : hasCh ? {
|
|
106
|
-
right: offset[0],
|
|
107
|
-
top: offset[1]
|
|
108
|
-
} : {
|
|
109
|
-
marginLeft: offset[0],
|
|
110
|
-
marginTop: offset[1]
|
|
111
|
-
}, [hasCh, offset]);
|
|
112
|
-
const badgeEl = !visible ? null : /*#__PURE__*/React.createElement(View, {
|
|
113
|
-
pointerEvents: hasCh ? 'none' : 'auto',
|
|
114
|
-
onLayout: hasCh && !dot ? onLay : undefined,
|
|
115
|
-
style: [hasCh ? tokens.layout.badgeAbsolute : tokens.layout.badgeStandalone, boxStyle, transStyle, offStyle, badgeStyle, !hasCh ? style : undefined]
|
|
116
|
-
}, !dot && renderTextOrNode(formattedContent, txtStyle));
|
|
117
|
-
const accLabel = visible ? dot ? 'has new content' : `${formattedContent}` : undefined;
|
|
118
|
-
if (hasCh) return onPress ? /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
119
|
-
ref: ref,
|
|
120
|
-
onPress: onPress,
|
|
121
|
-
accessibilityLabel: accLabel,
|
|
122
|
-
style: ({
|
|
123
|
-
pressed
|
|
124
|
-
}) => [tokens.layout.wrapper, style, pressed && {
|
|
125
|
-
opacity: tokens.defaults.pressedOpacity
|
|
126
|
-
}]
|
|
127
|
-
}, rest), children, badgeEl) : /*#__PURE__*/React.createElement(View, _extends({
|
|
128
|
-
ref: ref,
|
|
129
|
-
style: [tokens.layout.wrapper, style]
|
|
130
|
-
}, rest), children, badgeEl);
|
|
131
|
-
if (!visible) return null;
|
|
132
|
-
return onPress ? /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
133
|
-
ref: ref,
|
|
134
|
-
onPress: onPress,
|
|
135
|
-
style: ({
|
|
136
|
-
pressed
|
|
137
|
-
}) => [tokens.layout.pressableStandalone, pressed && {
|
|
138
|
-
opacity: tokens.defaults.pressedOpacity
|
|
139
|
-
}]
|
|
140
|
-
}, rest), badgeEl) : /*#__PURE__*/React.cloneElement(badgeEl, {
|
|
141
|
-
ref,
|
|
142
|
-
...rest
|
|
143
|
-
});
|
|
144
|
-
};
|
|
145
|
-
const BadgeForwardRef = /*#__PURE__*/React.forwardRef(BadgeImpl);
|
|
146
|
-
BadgeForwardRef.displayName = 'Badge';
|
|
147
|
-
export const Badge = /*#__PURE__*/React.memo(BadgeForwardRef);
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)({}).hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useState}from"react";import{Pressable,View}from"react-native";import{isNumericLike,isRenderable,renderTextOrNode}from"../../utils";import{useBadgeTokens}from"./tokens";const BadgeImpl=(e,t)=>{const{children:i,content:o,color:r,textColor:a,dot:n,max:s,offset:d,showZero:l,badgeStyle:g,textStyle:c,onPress:u,style:h,tokensOverride:m,...p}=e,f=useBadgeTokens(m),b=n??f.defaults.dot,y=l??f.defaults.showZero,w=React.Children.count(i)>0,{visible:z,formattedContent:R}=useMemo(()=>{const e=isNumericLike(o)?Number(o):null,t=0===e&&!y,i=b||isRenderable(o)&&!t;if(!i||b)return{visible:i,formattedContent:null};const r=isNumericLike(s)?Number(s):null;return{visible:!0,formattedContent:null!==e&&null!==r&&e>r?`${r}+`:o}},[o,b,s,y]),[v,x]=useState({width:0,height:0}),k=useCallback(e=>{const{width:t,height:i}=e.nativeEvent.layout;x(e=>e.width===t&&e.height===i?e:{width:t,height:i})},[]),S=useMemo(()=>{if(w){if(b){const e=f.sizing.dotSize/2;return{transform:[{translateX:e},{translateY:-e}]}}return 0===v.width?{opacity:0}:{transform:[{translateX:v.width/2},{translateY:-v.height/2}]}}},[b,w,v.height,v.width,f.sizing.dotSize]),C=useMemo(()=>b?{width:f.sizing.dotSize,height:f.sizing.dotSize,borderRadius:f.radii.dot,backgroundColor:r??f.colors.dot}:{minWidth:f.sizing.minWidth,minHeight:f.sizing.height,paddingHorizontal:f.sizing.paddingHorizontal,paddingVertical:f.sizing.paddingVertical,borderRadius:f.radii.badge,borderWidth:f.borders.width,borderColor:f.colors.border,backgroundColor:r??f.colors.background},[r,b,f.borders.width,f.colors.background,f.colors.border,f.colors.dot,f.radii.badge,f.radii.dot,f.sizing.dotSize,f.sizing.height,f.sizing.minWidth,f.sizing.paddingHorizontal,f.sizing.paddingVertical]),B=[f.layout.text,{color:a??f.colors.text,fontSize:f.typography.fontSize,lineHeight:f.typography.lineHeight,fontFamily:f.typography.fontFamily,fontWeight:f.typography.fontWeight},c],N=useMemo(()=>d?w?{right:d[0],top:d[1]}:{marginLeft:d[0],marginTop:d[1]}:void 0,[w,d]),O=z?React.createElement(View,{pointerEvents:w?"none":"auto",onLayout:w&&!b?k:void 0,style:[w?f.layout.badgeAbsolute:f.layout.badgeStandalone,C,S,N,g,w?void 0:h]},!b&&renderTextOrNode(R,B)):null,E=z?b?"has new content":`${R}`:void 0;return w?u?React.createElement(Pressable,_extends({ref:t,onPress:u,accessibilityLabel:E,style:({pressed:e})=>[f.layout.wrapper,h,e&&{opacity:f.defaults.pressedOpacity}]},p),i,O):React.createElement(View,_extends({ref:t,style:[f.layout.wrapper,h]},p),i,O):z?u?React.createElement(Pressable,_extends({ref:t,onPress:u,style:({pressed:e})=>[f.layout.pressableStandalone,e&&{opacity:f.defaults.pressedOpacity}]},p),O):React.cloneElement(O,{ref:t,...p}):null},BadgeForwardRef=React.forwardRef(BadgeImpl);BadgeForwardRef.displayName="Badge";export const Badge=React.memo(BadgeForwardRef);
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default Badge;
|
|
1
|
+
import{Badge}from"./Badge";export default Badge;
|
|
@@ -1,75 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const centered = {
|
|
3
|
-
alignItems: 'center',
|
|
4
|
-
justifyContent: 'center'
|
|
5
|
-
};
|
|
6
|
-
const createBadgeTokens = ({
|
|
7
|
-
palette,
|
|
8
|
-
spacing,
|
|
9
|
-
fontSize,
|
|
10
|
-
radii,
|
|
11
|
-
typography
|
|
12
|
-
}) => {
|
|
13
|
-
const dotSize = 8;
|
|
14
|
-
return {
|
|
15
|
-
defaults: {
|
|
16
|
-
dot: false,
|
|
17
|
-
showZero: true,
|
|
18
|
-
pressedOpacity: 0.9
|
|
19
|
-
},
|
|
20
|
-
layout: {
|
|
21
|
-
wrapper: {
|
|
22
|
-
position: 'relative',
|
|
23
|
-
alignSelf: 'flex-start'
|
|
24
|
-
},
|
|
25
|
-
badgeAbsolute: {
|
|
26
|
-
position: 'absolute',
|
|
27
|
-
top: 0,
|
|
28
|
-
right: 0,
|
|
29
|
-
...centered,
|
|
30
|
-
zIndex: 1
|
|
31
|
-
},
|
|
32
|
-
badgeStandalone: {
|
|
33
|
-
alignSelf: 'flex-start',
|
|
34
|
-
flexDirection: 'row',
|
|
35
|
-
...centered
|
|
36
|
-
},
|
|
37
|
-
pressableStandalone: {
|
|
38
|
-
alignSelf: 'flex-start',
|
|
39
|
-
flexDirection: 'row'
|
|
40
|
-
},
|
|
41
|
-
text: {
|
|
42
|
-
textAlign: 'center',
|
|
43
|
-
includeFontPadding: false,
|
|
44
|
-
textAlignVertical: 'center'
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
colors: {
|
|
48
|
-
background: palette.danger[500],
|
|
49
|
-
dot: palette.danger[500],
|
|
50
|
-
text: palette.danger.foreground ?? '#fff',
|
|
51
|
-
border: '#fff'
|
|
52
|
-
},
|
|
53
|
-
typography: {
|
|
54
|
-
fontSize: fontSize.xs,
|
|
55
|
-
fontWeight: typography.weight.bold,
|
|
56
|
-
fontFamily: typography.fontFamily,
|
|
57
|
-
lineHeight: fontSize.xs * typography.lineHeightMultiplier
|
|
58
|
-
},
|
|
59
|
-
sizing: {
|
|
60
|
-
minWidth: 18,
|
|
61
|
-
height: 18,
|
|
62
|
-
paddingHorizontal: spacing.xs,
|
|
63
|
-
paddingVertical: spacing.xxs,
|
|
64
|
-
dotSize
|
|
65
|
-
},
|
|
66
|
-
radii: {
|
|
67
|
-
badge: radii.pill,
|
|
68
|
-
dot: dotSize / 2
|
|
69
|
-
},
|
|
70
|
-
borders: {
|
|
71
|
-
width: 1
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
export const useBadgeTokens = createComponentTokensHook('badge', createBadgeTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";const centered={alignItems:"center",justifyContent:"center"},createBadgeTokens=({palette:e,spacing:t,fontSize:n,radii:o,typography:i})=>({defaults:{dot:!1,showZero:!0,pressedOpacity:.9},layout:{wrapper:{position:"relative",alignSelf:"flex-start"},badgeAbsolute:{position:"absolute",top:0,right:0,...centered,zIndex:1},badgeStandalone:{alignSelf:"flex-start",flexDirection:"row",...centered},pressableStandalone:{alignSelf:"flex-start",flexDirection:"row"},text:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"}},colors:{background:e.danger[500],dot:e.danger[500],text:e.danger.foreground??"#fff",border:"#fff"},typography:{fontSize:n.xs,fontWeight:i.weight.bold,fontFamily:i.fontFamily,lineHeight:n.xs*i.lineHeightMultiplier},sizing:{minWidth:18,height:18,paddingHorizontal:t.xs,paddingVertical:t.xxs,dotSize:8},radii:{badge:o.pill,dot:4},borders:{width:1}});export const useBadgeTokens=createComponentTokensHook("badge",createBadgeTokens);
|
|
@@ -1,184 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useContext, useMemo } from 'react';
|
|
3
|
-
import { ActivityIndicator, Platform, Pressable, Text, View } from 'react-native';
|
|
4
|
-
import { withAlpha } from '../../utils/color';
|
|
5
|
-
import { createPlatformShadow } from '../../utils/createPlatformShadow';
|
|
6
|
-
import { createHairlineView } from '../../utils/hairline';
|
|
7
|
-
import { ensureSpace } from '../../utils/string';
|
|
8
|
-
import { isFiniteNumber, isFunction, isString } from '../../utils';
|
|
9
|
-
import { useAriaPress } from '../../hooks';
|
|
10
|
-
import { ButtonGroupContext } from './ButtonContext';
|
|
11
|
-
import { useButtonTokens } from './tokens';
|
|
12
|
-
const clampShadowLevel = level => level <= 1 ? 1 : level >= 3 ? 3 : level;
|
|
13
|
-
const ROUND_CORNER_STYLE = {
|
|
14
|
-
overflow: 'hidden'
|
|
15
|
-
};
|
|
16
|
-
const ButtonImpl = (props, forwardedRef) => {
|
|
17
|
-
const grp = useContext(ButtonGroupContext);
|
|
18
|
-
const {
|
|
19
|
-
text,
|
|
20
|
-
children,
|
|
21
|
-
icon,
|
|
22
|
-
iconPosition: iconPosP,
|
|
23
|
-
type: typeP,
|
|
24
|
-
size: sizeP,
|
|
25
|
-
color,
|
|
26
|
-
textColor: txtClrP,
|
|
27
|
-
plain: plainP,
|
|
28
|
-
block: blockP,
|
|
29
|
-
round: roundP,
|
|
30
|
-
square: sqP,
|
|
31
|
-
hairline: hlP,
|
|
32
|
-
shadow: shP,
|
|
33
|
-
loading: loadP,
|
|
34
|
-
loadingText,
|
|
35
|
-
loadingIndicator,
|
|
36
|
-
loadingSize: loadSzP,
|
|
37
|
-
disabled: disP,
|
|
38
|
-
allowFontScaling: fontScaleP,
|
|
39
|
-
maxFontSizeMultiplier,
|
|
40
|
-
rippleColor: rippleP,
|
|
41
|
-
contentStyle,
|
|
42
|
-
textStyle,
|
|
43
|
-
tokensOverride,
|
|
44
|
-
style,
|
|
45
|
-
...pressProps
|
|
46
|
-
} = props;
|
|
47
|
-
const tokens = useButtonTokens(tokensOverride);
|
|
48
|
-
const type = typeP ?? grp?.type ?? tokens.defaults.type;
|
|
49
|
-
const size = sizeP ?? grp?.size ?? tokens.defaults.size;
|
|
50
|
-
const plain = plainP ?? grp?.plain ?? tokens.defaults.plain;
|
|
51
|
-
const block = blockP ?? grp?.block ?? tokens.defaults.block;
|
|
52
|
-
const round = roundP ?? grp?.round ?? tokens.defaults.round;
|
|
53
|
-
const square = sqP ?? grp?.square ?? tokens.defaults.square;
|
|
54
|
-
const hairline = hlP ?? grp?.hairline ?? tokens.defaults.hairline;
|
|
55
|
-
const iconPos = iconPosP ?? grp?.iconPosition ?? tokens.defaults.iconPosition;
|
|
56
|
-
const disabled = disP ?? grp?.disabled ?? tokens.defaults.disabled;
|
|
57
|
-
const loading = loadP ?? tokens.defaults.loading;
|
|
58
|
-
const loadSz = loadSzP ?? tokens.defaults.loadingSize;
|
|
59
|
-
const allowFontScaling = fontScaleP ?? tokens.defaults.allowFontScaling;
|
|
60
|
-
const shVal = shP ?? grp?.shadow;
|
|
61
|
-
const isDis = disabled || loading;
|
|
62
|
-
const tone = tokens.colors.tones[type] ?? tokens.colors.tones.default;
|
|
63
|
-
const szTok = tokens.sizing.sizes[size];
|
|
64
|
-
const [bgClr, borderClr, txtClr] = useMemo(() => plain ? [tokens.colors.backgroundPlain, color ?? tone.border, txtClrP ?? (type === 'default' && !color ? tone.text : color ?? tone.border)] : [color ?? tone.background, color ?? tone.border, txtClrP ?? (color ? '#ffffff' : tone.text)], [color, txtClrP, plain, type, tone, tokens.colors.backgroundPlain]);
|
|
65
|
-
const hasBorder = plain || type === 'default';
|
|
66
|
-
const useHl = hasBorder && hairline;
|
|
67
|
-
const borderW = hasBorder && !hairline ? tokens.borders.width : 0;
|
|
68
|
-
const radius = square ? 0 : round ? szTok.height / 2 : szTok.radius;
|
|
69
|
-
const shStyle = useMemo(() => {
|
|
70
|
-
if (plain) return undefined;
|
|
71
|
-
const lvl = isFiniteNumber(shVal) ? clampShadowLevel(shVal) : shVal === true ? 2 : undefined;
|
|
72
|
-
return lvl ? createPlatformShadow(tokens.shadows[lvl]) : undefined;
|
|
73
|
-
}, [shVal, plain, tokens.shadows]);
|
|
74
|
-
const {
|
|
75
|
-
onPress,
|
|
76
|
-
onPressIn,
|
|
77
|
-
onPressOut,
|
|
78
|
-
accessibilityLabel,
|
|
79
|
-
accessibilityHint,
|
|
80
|
-
accessibilityRole,
|
|
81
|
-
accessibilityState,
|
|
82
|
-
android_ripple: andRippleP,
|
|
83
|
-
...viewProps
|
|
84
|
-
} = pressProps;
|
|
85
|
-
const {
|
|
86
|
-
interactionProps,
|
|
87
|
-
states
|
|
88
|
-
} = useAriaPress({
|
|
89
|
-
disabled: isDis,
|
|
90
|
-
onPress: onPress || undefined,
|
|
91
|
-
onPressStart: onPressIn || undefined,
|
|
92
|
-
onPressEnd: onPressOut || undefined
|
|
93
|
-
});
|
|
94
|
-
const opacity = disabled ? tokens.states.disabledOpacity : loading ? tokens.states.loadingOpacity : states.pressed ? tokens.states.pressedOpacity : 1;
|
|
95
|
-
const txtStyle = useMemo(() => ({
|
|
96
|
-
fontFamily: tokens.typography.fontFamily,
|
|
97
|
-
fontWeight: tokens.typography.fontWeight,
|
|
98
|
-
fontSize: szTok.fontSize,
|
|
99
|
-
lineHeight: szTok.fontSize * tokens.typography.lineHeightMultiplier,
|
|
100
|
-
color: txtClr
|
|
101
|
-
}), [tokens.typography, szTok.fontSize, txtClr]);
|
|
102
|
-
const iconGap = tokens.spacing.iconGap;
|
|
103
|
-
const rIcon = () => {
|
|
104
|
-
if (!icon) return null;
|
|
105
|
-
try {
|
|
106
|
-
const el = isFunction(icon) ? icon(txtClr, szTok.iconSize) : icon;
|
|
107
|
-
const margin = iconPos === 'left' ? {
|
|
108
|
-
marginRight: iconGap
|
|
109
|
-
} : {
|
|
110
|
-
marginLeft: iconGap
|
|
111
|
-
};
|
|
112
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
113
|
-
style: [tokens.layout.iconWrapper, margin]
|
|
114
|
-
}, el);
|
|
115
|
-
} catch (err) {
|
|
116
|
-
if (__DEV__) console.warn('[Button] Failed to render icon:', err);
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
const rLoad = () => /*#__PURE__*/React.createElement(View, {
|
|
121
|
-
style: [tokens.layout.iconWrapper, {
|
|
122
|
-
marginRight: iconGap
|
|
123
|
-
}]
|
|
124
|
-
}, loadingIndicator ?? /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
125
|
-
size: loadSz,
|
|
126
|
-
color: txtClr
|
|
127
|
-
}));
|
|
128
|
-
const label = loading && loadingText !== undefined ? loadingText : text !== undefined ? text : children;
|
|
129
|
-
const rLabel = () => {
|
|
130
|
-
if (label == null) return null;
|
|
131
|
-
if (typeof label === 'string' || typeof label === 'number') return /*#__PURE__*/React.createElement(Text, {
|
|
132
|
-
style: [tokens.layout.text, txtStyle, textStyle],
|
|
133
|
-
numberOfLines: 1,
|
|
134
|
-
allowFontScaling: allowFontScaling,
|
|
135
|
-
maxFontSizeMultiplier: maxFontSizeMultiplier
|
|
136
|
-
}, isString(label) ? ensureSpace(label, true) : String(label));
|
|
137
|
-
return label;
|
|
138
|
-
};
|
|
139
|
-
const accLabel = accessibilityLabel ?? (typeof label === 'string' || typeof label === 'number' ? String(label) : undefined);
|
|
140
|
-
const accState = useMemo(() => ({
|
|
141
|
-
...accessibilityState,
|
|
142
|
-
disabled: isDis,
|
|
143
|
-
busy: loading
|
|
144
|
-
}), [accessibilityState, isDis, loading]);
|
|
145
|
-
const andRipple = useMemo(() => {
|
|
146
|
-
if (Platform.OS !== 'android') return andRippleP;
|
|
147
|
-
if (andRippleP) return andRippleP;
|
|
148
|
-
const rc = rippleP ?? (plain ? txtClr : type === 'default' && !color ? withAlpha(txtClr, 0.15) : tokens.colors.ripple);
|
|
149
|
-
return {
|
|
150
|
-
color: rc,
|
|
151
|
-
borderless: false
|
|
152
|
-
};
|
|
153
|
-
}, [andRippleP, rippleP, plain, txtClr, type, color, tokens.colors.ripple]);
|
|
154
|
-
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
155
|
-
ref: forwardedRef,
|
|
156
|
-
disabled: isDis,
|
|
157
|
-
style: [tokens.layout.base, {
|
|
158
|
-
minHeight: szTok.height,
|
|
159
|
-
paddingHorizontal: szTok.paddingHorizontal,
|
|
160
|
-
borderRadius: radius,
|
|
161
|
-
backgroundColor: bgClr,
|
|
162
|
-
borderColor: useHl ? 'transparent' : borderClr,
|
|
163
|
-
borderWidth: borderW,
|
|
164
|
-
opacity
|
|
165
|
-
}, Platform.OS === 'android' && radius > 0 && !shStyle ? ROUND_CORNER_STYLE : null, block ? tokens.layout.block : null, shStyle, style],
|
|
166
|
-
android_ripple: andRipple
|
|
167
|
-
}, interactionProps, {
|
|
168
|
-
accessibilityState: accState,
|
|
169
|
-
accessibilityRole: accessibilityRole ?? 'button',
|
|
170
|
-
accessibilityLabel: accLabel,
|
|
171
|
-
accessibilityHint: accessibilityHint
|
|
172
|
-
}, viewProps), /*#__PURE__*/React.createElement(View, {
|
|
173
|
-
style: [tokens.layout.content, contentStyle]
|
|
174
|
-
}, loading ? /*#__PURE__*/React.createElement(React.Fragment, null, rLoad(), rLabel()) : /*#__PURE__*/React.createElement(React.Fragment, null, icon && iconPos === 'left' && rIcon(), rLabel(), icon && iconPos === 'right' && rIcon())), useHl && /*#__PURE__*/React.createElement(View, {
|
|
175
|
-
style: createHairlineView({
|
|
176
|
-
position: 'all',
|
|
177
|
-
color: borderClr,
|
|
178
|
-
borderRadius: radius
|
|
179
|
-
})
|
|
180
|
-
}));
|
|
181
|
-
};
|
|
182
|
-
const ButtonForwardRef = /*#__PURE__*/React.forwardRef(ButtonImpl);
|
|
183
|
-
export const Button = /*#__PURE__*/React.memo(ButtonForwardRef);
|
|
184
|
-
export default Button;
|
|
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 i in o)({}).hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{ActivityIndicator,Platform,Pressable,Text,View}from"react-native";import{withAlpha}from"../../utils/color";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{createHairlineView}from"../../utils/hairline";import{ensureSpace}from"../../utils/string";import{isFiniteNumber,isFunction,isString}from"../../utils";import{useAriaPress}from"../../hooks";import{ButtonGroupContext}from"./ButtonContext";import{useButtonTokens}from"./tokens";const clampShadowLevel=e=>e<=1?1:e>=3?3:e,ROUND_CORNER_STYLE={overflow:"hidden"},ButtonImpl=(e,t)=>{const o=useContext(ButtonGroupContext),{text:i,children:r,icon:n,iconPosition:a,type:l,size:s,color:c,textColor:d,plain:u,block:p,round:f,square:m,hairline:y,shadow:b,loading:g,loadingText:h,loadingIndicator:S,loadingSize:R,disabled:w,allowFontScaling:P,maxFontSizeMultiplier:x,rippleColor:v,contentStyle:z,textStyle:F,tokensOverride:E,style:O,..._}=e,k=useButtonTokens(E),B=l??o?.type??k.defaults.type,C=s??o?.size??k.defaults.size,H=u??o?.plain??k.defaults.plain,M=p??o?.block??k.defaults.block,L=f??o?.round??k.defaults.round,V=m??o?.square??k.defaults.square,T=y??o?.hairline??k.defaults.hairline,A=a??o?.iconPosition??k.defaults.iconPosition,I=w??o?.disabled??k.defaults.disabled,N=g??k.defaults.loading,W=R??k.defaults.loadingSize,q=P??k.defaults.allowFontScaling,D=b??o?.shadow,G=I||N,j=k.colors.tones[B]??k.colors.tones.default,U=k.sizing.sizes[C],[Y,J,K]=useMemo(()=>H?[k.colors.backgroundPlain,c??j.border,d??("default"!==B||c?c??j.border:j.text)]:[c??j.background,c??j.border,d??(c?"#ffffff":j.text)],[c,d,H,B,j,k.colors.backgroundPlain]),Q=H||"default"===B,X=Q&&T,Z=Q&&!T?k.borders.width:0,$=V?0:L?U.height/2:U.radius,ee=useMemo(()=>{if(H)return;const e=isFiniteNumber(D)?clampShadowLevel(D):!0===D?2:void 0;return e?createPlatformShadow(k.shadows[e]):void 0},[D,H,k.shadows]),{onPress:te,onPressIn:oe,onPressOut:ie,accessibilityLabel:re,accessibilityHint:ne,accessibilityRole:ae,accessibilityState:le,android_ripple:se,...ce}=_,{interactionProps:de,states:ue}=useAriaPress({disabled:G,onPress:te||void 0,onPressStart:oe||void 0,onPressEnd:ie||void 0}),pe=I?k.states.disabledOpacity:N?k.states.loadingOpacity:ue.pressed?k.states.pressedOpacity:1,fe=useMemo(()=>({fontFamily:k.typography.fontFamily,fontWeight:k.typography.fontWeight,fontSize:U.fontSize,lineHeight:U.fontSize*k.typography.lineHeightMultiplier,color:K}),[k.typography,U.fontSize,K]),me=k.spacing.iconGap,ye=()=>{if(!n)return null;try{const e=isFunction(n)?n(K,U.iconSize):n,t="left"===A?{marginRight:me}:{marginLeft:me};return React.createElement(View,{style:[k.layout.iconWrapper,t]},e)}catch(e){return __DEV__&&console.warn("[Button] Failed to render icon:",e),null}},be=N&&void 0!==h?h:void 0!==i?i:r,ge=()=>null==be?null:"string"==typeof be||"number"==typeof be?React.createElement(Text,{style:[k.layout.text,fe,F],numberOfLines:1,allowFontScaling:q,maxFontSizeMultiplier:x},isString(be)?ensureSpace(be,!0):String(be)):be,he=re??("string"==typeof be||"number"==typeof be?String(be):void 0),Se=useMemo(()=>({...le,disabled:G,busy:N}),[le,G,N]),Re=useMemo(()=>{if("android"!==Platform.OS)return se;if(se)return se;return{color:v??(H?K:"default"!==B||c?k.colors.ripple:withAlpha(K,.15)),borderless:!1}},[se,v,H,K,B,c,k.colors.ripple]);return React.createElement(Pressable,_extends({ref:t,disabled:G,style:[k.layout.base,{minHeight:U.height,paddingHorizontal:U.paddingHorizontal,borderRadius:$,backgroundColor:Y,borderColor:X?"transparent":J,borderWidth:Z,opacity:pe},"android"===Platform.OS&&$>0&&!ee?ROUND_CORNER_STYLE:null,M?k.layout.block:null,ee,O],android_ripple:Re},de,{accessibilityState:Se,accessibilityRole:ae??"button",accessibilityLabel:he,accessibilityHint:ne},ce),React.createElement(View,{style:[k.layout.content,z]},N?React.createElement(React.Fragment,null,React.createElement(View,{style:[k.layout.iconWrapper,{marginRight:me}]},S??React.createElement(ActivityIndicator,{size:W,color:K})),ge()):React.createElement(React.Fragment,null,n&&"left"===A&&ye(),ge(),n&&"right"===A&&ye())),X&&React.createElement(View,{style:createHairlineView({position:"all",color:J,borderRadius:$})}))},ButtonForwardRef=React.forwardRef(ButtonImpl);export const Button=React.memo(ButtonForwardRef);export default Button;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{ButtonGroupContext}from"./ButtonGroup";
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
import React, { useMemo }
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
import { useButtonTokens } from './tokens';
|
|
4
|
-
export const ButtonGroupContext = /*#__PURE__*/React.createContext(null);
|
|
5
|
-
export const ButtonGroup = /*#__PURE__*/React.memo(({
|
|
6
|
-
children,
|
|
7
|
-
direction = 'horizontal',
|
|
8
|
-
spacing,
|
|
9
|
-
style,
|
|
10
|
-
type,
|
|
11
|
-
size,
|
|
12
|
-
plain,
|
|
13
|
-
block,
|
|
14
|
-
round,
|
|
15
|
-
square,
|
|
16
|
-
shadow,
|
|
17
|
-
disabled,
|
|
18
|
-
iconPosition,
|
|
19
|
-
hairline
|
|
20
|
-
}) => {
|
|
21
|
-
const tokens = useButtonTokens();
|
|
22
|
-
const gap = spacing ?? tokens.spacing.groupGap;
|
|
23
|
-
const grpVal = useMemo(() => ({
|
|
24
|
-
type,
|
|
25
|
-
size,
|
|
26
|
-
plain,
|
|
27
|
-
block,
|
|
28
|
-
round,
|
|
29
|
-
square,
|
|
30
|
-
shadow,
|
|
31
|
-
disabled,
|
|
32
|
-
iconPosition,
|
|
33
|
-
hairline
|
|
34
|
-
}), [block, disabled, hairline, iconPosition, plain, round, shadow, size, square, type]);
|
|
35
|
-
const ctrStyle = useMemo(() => [{
|
|
36
|
-
flexDirection: direction === 'horizontal' ? 'row' : 'column',
|
|
37
|
-
alignItems: 'center',
|
|
38
|
-
gap,
|
|
39
|
-
width: block ? '100%' : undefined
|
|
40
|
-
}, style], [block, direction, gap, style]);
|
|
41
|
-
return /*#__PURE__*/React.createElement(ButtonGroupContext.Provider, {
|
|
42
|
-
value: grpVal
|
|
43
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
44
|
-
style: ctrStyle
|
|
45
|
-
}, children));
|
|
46
|
-
});
|
|
1
|
+
import React,{useMemo}from"react";import{View}from"react-native";import{useButtonTokens}from"./tokens";export const ButtonGroupContext=React.createContext(null);export const ButtonGroup=React.memo(({children:e,direction:o="horizontal",spacing:t,style:n,type:i,size:r,plain:a,block:s,round:c,square:u,shadow:l,disabled:p,iconPosition:m,hairline:d})=>{const h=useButtonTokens(),w=t??h.spacing.groupGap,x=useMemo(()=>({type:i,size:r,plain:a,block:s,round:c,square:u,shadow:l,disabled:p,iconPosition:m,hairline:d}),[s,p,d,m,a,c,l,r,u,i]),g=useMemo(()=>[{flexDirection:"horizontal"===o?"row":"column",alignItems:"center",gap:w,width:s?"100%":void 0},n],[s,o,w,n]);return React.createElement(ButtonGroupContext.Provider,{value:x},React.createElement(View,{style:g},e))});
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ButtonGroup } from './ButtonGroup';
|
|
3
|
-
const Button = Object.assign(ButtonBase, {
|
|
4
|
-
Group: ButtonGroup
|
|
5
|
-
});
|
|
6
|
-
export default Button;
|
|
7
|
-
export { Button };
|
|
1
|
+
import{Button as ButtonBase}from"./Button";import{ButtonGroup}from"./ButtonGroup";const Button=Object.assign(ButtonBase,{Group:ButtonGroup});export default Button;export{Button};
|