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,327 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
3
|
-
import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
|
|
4
|
-
import { useControllableValue } from '../../hooks';
|
|
5
|
-
import { parseNumberLike } from '../../utils/number';
|
|
6
|
-
import { isString, isText } from '../../utils/validate';
|
|
7
|
-
import { usePasswordInputTokens } from './tokens';
|
|
8
|
-
import { createHairlineView } from '../../utils/hairline';
|
|
9
|
-
const HIP = {
|
|
10
|
-
caretHidden: true,
|
|
11
|
-
autoCorrect: false,
|
|
12
|
-
spellCheck: false,
|
|
13
|
-
importantForAutofill: 'no',
|
|
14
|
-
autoComplete: 'off'
|
|
15
|
-
};
|
|
16
|
-
const stripNonNumeric = v => v.replace(/[^0-9]/g, '');
|
|
17
|
-
const PasswordInputImpl = (props, ref) => {
|
|
18
|
-
const {
|
|
19
|
-
value,
|
|
20
|
-
defaultValue,
|
|
21
|
-
onChange,
|
|
22
|
-
length = 6,
|
|
23
|
-
mask = true,
|
|
24
|
-
gutter = 0,
|
|
25
|
-
type = 'text',
|
|
26
|
-
info,
|
|
27
|
-
errorInfo,
|
|
28
|
-
autoFocus = false,
|
|
29
|
-
disabled = false,
|
|
30
|
-
showCursor = true,
|
|
31
|
-
validator,
|
|
32
|
-
cellStyle,
|
|
33
|
-
cellFilledStyle,
|
|
34
|
-
cellTextStyle,
|
|
35
|
-
maskStyle,
|
|
36
|
-
cursorStyle,
|
|
37
|
-
highlightTextStyle,
|
|
38
|
-
tokensOverride,
|
|
39
|
-
style,
|
|
40
|
-
onSubmit,
|
|
41
|
-
onFocus,
|
|
42
|
-
onBlur,
|
|
43
|
-
...rest
|
|
44
|
-
} = props;
|
|
45
|
-
const lenVal = Math.max(1, Math.floor(parseNumberLike(length, 6) ?? 6));
|
|
46
|
-
const tokens = usePasswordInputTokens(tokensOverride);
|
|
47
|
-
const {
|
|
48
|
-
colors,
|
|
49
|
-
radii,
|
|
50
|
-
sizing,
|
|
51
|
-
typography,
|
|
52
|
-
opacity,
|
|
53
|
-
spacing
|
|
54
|
-
} = tokens;
|
|
55
|
-
const inputRef = useRef(null);
|
|
56
|
-
const [cursorVisible, setCursorVisible] = useState(true);
|
|
57
|
-
const blinkTimer = useRef(null);
|
|
58
|
-
const [focused, setFocused] = useState(autoFocus);
|
|
59
|
-
const keyboardType = type === 'number' ? 'number-pad' : 'default';
|
|
60
|
-
const inputMode = type === 'number' ? 'numeric' : 'text';
|
|
61
|
-
const [code = '', setCode] = useControllableValue(props, {
|
|
62
|
-
defaultValue: ''
|
|
63
|
-
});
|
|
64
|
-
const normalizeValue = useCallback(v => {
|
|
65
|
-
let n = v === null || v === undefined ? '' : isString(v) ? v : String(v);
|
|
66
|
-
if (type === 'number') n = stripNonNumeric(n);
|
|
67
|
-
if (lenVal > 0 && n.length > lenVal) n = n.slice(0, lenVal);
|
|
68
|
-
return n;
|
|
69
|
-
}, [lenVal, type]);
|
|
70
|
-
const normCode = normalizeValue(code);
|
|
71
|
-
const validatorRef = useRef(validator);
|
|
72
|
-
const onFocusRef = useRef(onFocus);
|
|
73
|
-
const onBlurRef = useRef(onBlur);
|
|
74
|
-
const onSubmitRef = useRef(onSubmit);
|
|
75
|
-
validatorRef.current = validator;
|
|
76
|
-
onFocusRef.current = onFocus;
|
|
77
|
-
onBlurRef.current = onBlur;
|
|
78
|
-
onSubmitRef.current = onSubmit;
|
|
79
|
-
const updateValue = useCallback(v => {
|
|
80
|
-
const n = normalizeValue(v);
|
|
81
|
-
if (n === normCode) return;
|
|
82
|
-
if (validatorRef.current && !validatorRef.current(n)) return;
|
|
83
|
-
setCode(n);
|
|
84
|
-
}, [normalizeValue, normCode, setCode]);
|
|
85
|
-
const focusInput = useCallback(() => {
|
|
86
|
-
if (disabled) return;
|
|
87
|
-
inputRef.current?.focus();
|
|
88
|
-
}, [disabled]);
|
|
89
|
-
const blurInput = useCallback(() => {
|
|
90
|
-
inputRef.current?.blur();
|
|
91
|
-
}, []);
|
|
92
|
-
const clearInput = useCallback(() => {
|
|
93
|
-
updateValue('');
|
|
94
|
-
}, [updateValue]);
|
|
95
|
-
useImperativeHandle(ref, () => ({
|
|
96
|
-
focus: focusInput,
|
|
97
|
-
blur: blurInput,
|
|
98
|
-
clear: clearInput
|
|
99
|
-
}), [blurInput, clearInput, focusInput]);
|
|
100
|
-
useEffect(() => {
|
|
101
|
-
if (!autoFocus || disabled) return;
|
|
102
|
-
const t = setTimeout(() => {
|
|
103
|
-
inputRef.current?.focus();
|
|
104
|
-
}, 60);
|
|
105
|
-
return () => clearTimeout(t);
|
|
106
|
-
}, [autoFocus, disabled]);
|
|
107
|
-
const handleChangeText = useCallback(txt => {
|
|
108
|
-
updateValue(txt ?? '');
|
|
109
|
-
}, [updateValue]);
|
|
110
|
-
const handleFocus = useCallback(() => {
|
|
111
|
-
setFocused(true);
|
|
112
|
-
onFocusRef.current?.();
|
|
113
|
-
}, []);
|
|
114
|
-
const handleBlur = useCallback(() => {
|
|
115
|
-
setFocused(false);
|
|
116
|
-
onBlurRef.current?.();
|
|
117
|
-
}, []);
|
|
118
|
-
const prevSubmitRef = useRef({
|
|
119
|
-
value: normCode,
|
|
120
|
-
length: lenVal
|
|
121
|
-
});
|
|
122
|
-
useEffect(() => {
|
|
123
|
-
const prev = prevSubmitRef.current;
|
|
124
|
-
prevSubmitRef.current = {
|
|
125
|
-
value: normCode,
|
|
126
|
-
length: lenVal
|
|
127
|
-
};
|
|
128
|
-
if (!onSubmitRef.current) return;
|
|
129
|
-
if (prev.length !== lenVal) return;
|
|
130
|
-
if (lenVal <= 0 || normCode.length !== lenVal) return;
|
|
131
|
-
if (prev.value === normCode) return;
|
|
132
|
-
onSubmitRef.current(normCode);
|
|
133
|
-
inputRef.current?.blur();
|
|
134
|
-
}, [lenVal, normCode]);
|
|
135
|
-
useEffect(() => {
|
|
136
|
-
const shouldBlink = showCursor && focused && !disabled;
|
|
137
|
-
if (blinkTimer.current) {
|
|
138
|
-
clearInterval(blinkTimer.current);
|
|
139
|
-
blinkTimer.current = null;
|
|
140
|
-
}
|
|
141
|
-
;
|
|
142
|
-
if (shouldBlink) {
|
|
143
|
-
setCursorVisible(true);
|
|
144
|
-
blinkTimer.current = setInterval(() => {
|
|
145
|
-
setCursorVisible(v => !v);
|
|
146
|
-
}, 500);
|
|
147
|
-
} else {
|
|
148
|
-
setCursorVisible(false);
|
|
149
|
-
}
|
|
150
|
-
;
|
|
151
|
-
return () => {
|
|
152
|
-
if (blinkTimer.current) {
|
|
153
|
-
clearInterval(blinkTimer.current);
|
|
154
|
-
blinkTimer.current = null;
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
}, [disabled, focused, showCursor]);
|
|
158
|
-
const cells = Array.from({
|
|
159
|
-
length: lenVal
|
|
160
|
-
}, (_, i) => {
|
|
161
|
-
const char = normCode?.[i];
|
|
162
|
-
const isFilled = !!char;
|
|
163
|
-
const showBlink = showCursor && focused && !disabled && normCode.length === i && i < lenVal;
|
|
164
|
-
return {
|
|
165
|
-
key: i,
|
|
166
|
-
char,
|
|
167
|
-
isFilled,
|
|
168
|
-
showBlink
|
|
169
|
-
};
|
|
170
|
-
});
|
|
171
|
-
const gutterVal = Math.max(0, parseNumberLike(gutter, 0) ?? 0);
|
|
172
|
-
const hasGutter = gutterVal > 0;
|
|
173
|
-
const tipInfo = errorInfo ?? info;
|
|
174
|
-
const tipClr = errorInfo ? colors.error : colors.muted;
|
|
175
|
-
const bgClr = hasGutter ? colors.transparent : colors.background;
|
|
176
|
-
const hiddenInputProps = {
|
|
177
|
-
...HIP,
|
|
178
|
-
underlineColorAndroid: colors.transparent
|
|
179
|
-
};
|
|
180
|
-
const cellTxtBase = {
|
|
181
|
-
color: colors.text,
|
|
182
|
-
fontSize: sizing.cellTextSize,
|
|
183
|
-
fontWeight: typography.cellTextWeight,
|
|
184
|
-
fontFamily: typography.fontFamily
|
|
185
|
-
};
|
|
186
|
-
const wrapStyle = [S.w, {
|
|
187
|
-
backgroundColor: bgClr,
|
|
188
|
-
borderRadius: radii.wrapper,
|
|
189
|
-
paddingHorizontal: spacing.none,
|
|
190
|
-
opacity: disabled ? opacity.disabled : 1
|
|
191
|
-
}];
|
|
192
|
-
const sheetStyle = [S.s, {
|
|
193
|
-
borderRadius: hasGutter ? 0 : radii.wrapper,
|
|
194
|
-
backgroundColor: bgClr
|
|
195
|
-
}];
|
|
196
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
197
|
-
style: style
|
|
198
|
-
}, /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, {
|
|
199
|
-
style: wrapStyle,
|
|
200
|
-
onPress: focusInput,
|
|
201
|
-
disabled: disabled,
|
|
202
|
-
accessibilityRole: "button",
|
|
203
|
-
accessibilityState: {
|
|
204
|
-
disabled
|
|
205
|
-
}
|
|
206
|
-
}), /*#__PURE__*/React.createElement(View, {
|
|
207
|
-
style: sheetStyle
|
|
208
|
-
}, cells.map((item, i) => {
|
|
209
|
-
const filledTextStyle = [cellTxtBase, cellTextStyle, !mask && item.isFilled && highlightTextStyle];
|
|
210
|
-
const baseCell = [S.c, {
|
|
211
|
-
backgroundColor: colors.background,
|
|
212
|
-
height: sizing.cellHeight
|
|
213
|
-
}, cellStyle, item.isFilled && cellFilledStyle];
|
|
214
|
-
if (hasGutter) {
|
|
215
|
-
baseCell.push(S.cg, {
|
|
216
|
-
borderRadius: radii.cellGutter
|
|
217
|
-
}, i > 0 && {
|
|
218
|
-
marginLeft: gutterVal
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
;
|
|
222
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
223
|
-
key: item.key,
|
|
224
|
-
style: baseCell
|
|
225
|
-
}, mask ? /*#__PURE__*/React.createElement(View, {
|
|
226
|
-
style: [{
|
|
227
|
-
width: sizing.maskSize,
|
|
228
|
-
height: sizing.maskSize,
|
|
229
|
-
borderRadius: sizing.maskSize / 2,
|
|
230
|
-
backgroundColor: colors.text,
|
|
231
|
-
opacity: item.isFilled ? 1 : 0
|
|
232
|
-
}, maskStyle]
|
|
233
|
-
}) : /*#__PURE__*/React.createElement(Text, {
|
|
234
|
-
style: filledTextStyle,
|
|
235
|
-
numberOfLines: 1
|
|
236
|
-
}, item.char ?? ''), item.showBlink ? /*#__PURE__*/React.createElement(View, {
|
|
237
|
-
testID: "password-input-cursor",
|
|
238
|
-
style: [S.cr, {
|
|
239
|
-
width: sizing.cursorWidth,
|
|
240
|
-
height: `${sizing.cursorHeightRatio * 100}%`,
|
|
241
|
-
borderRadius: sizing.cursorWidth / 2,
|
|
242
|
-
top: `${sizing.cursorTopRatio * 100}%`,
|
|
243
|
-
marginLeft: -sizing.cursorWidth / 2,
|
|
244
|
-
backgroundColor: colors.cursor,
|
|
245
|
-
opacity: cursorVisible ? 1 : 0
|
|
246
|
-
}, cursorStyle]
|
|
247
|
-
}) : null, hasGutter && /*#__PURE__*/React.createElement(View, {
|
|
248
|
-
style: createHairlineView({
|
|
249
|
-
position: 'all',
|
|
250
|
-
color: colors.border,
|
|
251
|
-
borderRadius: radii.cellGutter
|
|
252
|
-
})
|
|
253
|
-
}), !hasGutter && i < lenVal - 1 && /*#__PURE__*/React.createElement(View, {
|
|
254
|
-
style: createHairlineView({
|
|
255
|
-
position: 'right',
|
|
256
|
-
color: colors.border,
|
|
257
|
-
top: 0,
|
|
258
|
-
bottom: 0
|
|
259
|
-
})
|
|
260
|
-
}));
|
|
261
|
-
}), /*#__PURE__*/React.createElement(TextInput, _extends({
|
|
262
|
-
ref: inputRef,
|
|
263
|
-
value: normCode,
|
|
264
|
-
editable: !disabled,
|
|
265
|
-
keyboardType: keyboardType,
|
|
266
|
-
inputMode: inputMode,
|
|
267
|
-
maxLength: lenVal,
|
|
268
|
-
autoFocus: false,
|
|
269
|
-
secureTextEntry: mask
|
|
270
|
-
}, hiddenInputProps, {
|
|
271
|
-
style: [S.hi, {
|
|
272
|
-
opacity: opacity.hidden
|
|
273
|
-
}],
|
|
274
|
-
onChangeText: handleChangeText,
|
|
275
|
-
onFocus: handleFocus,
|
|
276
|
-
onBlur: handleBlur,
|
|
277
|
-
accessible: false
|
|
278
|
-
}))), !hasGutter && /*#__PURE__*/React.createElement(View, {
|
|
279
|
-
style: createHairlineView({
|
|
280
|
-
position: 'all',
|
|
281
|
-
color: colors.border,
|
|
282
|
-
borderRadius: radii.wrapper
|
|
283
|
-
})
|
|
284
|
-
})), tipInfo ? /*#__PURE__*/React.createElement(View, {
|
|
285
|
-
style: [S.iw, {
|
|
286
|
-
marginTop: spacing.infoMarginTop
|
|
287
|
-
}]
|
|
288
|
-
}, isText(tipInfo) ? /*#__PURE__*/React.createElement(Text, {
|
|
289
|
-
style: [S.it, {
|
|
290
|
-
color: tipClr
|
|
291
|
-
}]
|
|
292
|
-
}, tipInfo) : tipInfo) : null);
|
|
293
|
-
};
|
|
294
|
-
const PasswordInputForwardRef = /*#__PURE__*/React.forwardRef(PasswordInputImpl);
|
|
295
|
-
PasswordInputForwardRef.displayName = 'PasswordInput';
|
|
296
|
-
const PasswordInput = /*#__PURE__*/React.memo(PasswordInputForwardRef);
|
|
297
|
-
export default PasswordInput;
|
|
298
|
-
const S = StyleSheet.create({
|
|
299
|
-
w: {
|
|
300
|
-
alignSelf: 'stretch'
|
|
301
|
-
},
|
|
302
|
-
s: {
|
|
303
|
-
flexDirection: 'row',
|
|
304
|
-
alignItems: 'center',
|
|
305
|
-
position: 'relative',
|
|
306
|
-
overflow: 'hidden'
|
|
307
|
-
},
|
|
308
|
-
c: {
|
|
309
|
-
flex: 1,
|
|
310
|
-
justifyContent: 'center',
|
|
311
|
-
alignItems: 'center'
|
|
312
|
-
},
|
|
313
|
-
cg: {},
|
|
314
|
-
cr: {
|
|
315
|
-
position: 'absolute',
|
|
316
|
-
left: '50%'
|
|
317
|
-
},
|
|
318
|
-
hi: {
|
|
319
|
-
...StyleSheet.absoluteFillObject
|
|
320
|
-
},
|
|
321
|
-
iw: {
|
|
322
|
-
alignItems: 'center'
|
|
323
|
-
},
|
|
324
|
-
it: {
|
|
325
|
-
textAlign: 'center'
|
|
326
|
-
}
|
|
327
|
-
});
|
|
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 l in r)({}).hasOwnProperty.call(r,l)&&(e[l]=r[l])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useImperativeHandle,useRef,useState}from"react";import{Pressable,StyleSheet,Text,TextInput,View}from"react-native";import{useControllableValue}from"../../hooks";import{parseNumberLike}from"../../utils/number";import{isString,isText}from"../../utils/validate";import{usePasswordInputTokens}from"./tokens";import{createHairlineView}from"../../utils/hairline";const HIP={caretHidden:!0,autoCorrect:!1,spellCheck:!1,importantForAutofill:"no",autoComplete:"off"},stripNonNumeric=e=>e.replace(/[^0-9]/g,""),PasswordInputImpl=(e,t)=>{const{value:r,defaultValue:l,onChange:a,length:n=6,mask:o=!0,gutter:s=0,type:i="text",info:u,errorInfo:c,autoFocus:d=!1,disabled:p=!1,showCursor:m=!0,validator:f,cellStyle:b,cellFilledStyle:h,cellTextStyle:g,maskStyle:y,cursorStyle:w,highlightTextStyle:R,tokensOverride:k,style:x,onSubmit:I,onFocus:C,onBlur:T,...v}=e,E=Math.max(1,Math.floor(parseNumberLike(n,6)??6)),V=usePasswordInputTokens(k),{colors:F,radii:P,sizing:H,typography:N,opacity:z,spacing:L}=V,O=useRef(null),[M,W]=useState(!0),_=useRef(null),[j,A]=useState(d),B="number"===i?"number-pad":"default",D="number"===i?"numeric":"text",[G="",q]=useControllableValue(e,{defaultValue:""}),J=useCallback(e=>{let t=null==e?"":isString(e)?e:String(e);return"number"===i&&(t=stripNonNumeric(t)),E>0&&t.length>E&&(t=t.slice(0,E)),t},[E,i]),K=J(G),Q=useRef(f),U=useRef(C),X=useRef(T),Y=useRef(I);Q.current=f,U.current=C,X.current=T,Y.current=I;const Z=useCallback(e=>{const t=J(e);t!==K&&(Q.current&&!Q.current(t)||q(t))},[J,K,q]),$=useCallback(()=>{p||O.current?.focus()},[p]),ee=useCallback(()=>{O.current?.blur()},[]),te=useCallback(()=>{Z("")},[Z]);useImperativeHandle(t,()=>({focus:$,blur:ee,clear:te}),[ee,te,$]),useEffect(()=>{if(!d||p)return;const e=setTimeout(()=>{O.current?.focus()},60);return()=>clearTimeout(e)},[d,p]);const re=useCallback(e=>{Z(e??"")},[Z]),le=useCallback(()=>{A(!0),U.current?.()},[]),ae=useCallback(()=>{A(!1),X.current?.()},[]),ne=useRef({value:K,length:E});useEffect(()=>{const e=ne.current;ne.current={value:K,length:E},Y.current&&e.length===E&&(E<=0||K.length!==E||e.value!==K&&(Y.current(K),O.current?.blur()))},[E,K]),useEffect(()=>{const e=m&&j&&!p;return _.current&&(clearInterval(_.current),_.current=null),e?(W(!0),_.current=setInterval(()=>{W(e=>!e)},500)):W(!1),()=>{_.current&&(clearInterval(_.current),_.current=null)}},[p,j,m]);const oe=Array.from({length:E},(e,t)=>{const r=K?.[t];return{key:t,char:r,isFilled:!!r,showBlink:m&&j&&!p&&K.length===t&&t<E}}),se=Math.max(0,parseNumberLike(s,0)??0),ie=se>0,ue=c??u,ce=c?F.error:F.muted,de=ie?F.transparent:F.background,pe={...HIP,underlineColorAndroid:F.transparent},me={color:F.text,fontSize:H.cellTextSize,fontWeight:N.cellTextWeight,fontFamily:N.fontFamily},fe=[S.w,{backgroundColor:de,borderRadius:P.wrapper,paddingHorizontal:L.none,opacity:p?z.disabled:1}],be=[S.s,{borderRadius:ie?0:P.wrapper,backgroundColor:de}];return React.createElement(View,{style:x},React.createElement(Pressable,_extends({},v,{style:fe,onPress:$,disabled:p,accessibilityRole:"button",accessibilityState:{disabled:p}}),React.createElement(View,{style:be},oe.map((e,t)=>{const r=[me,g,!o&&e.isFilled&&R],l=[S.c,{backgroundColor:F.background,height:H.cellHeight},b,e.isFilled&&h];return ie&&l.push(S.cg,{borderRadius:P.cellGutter},t>0&&{marginLeft:se}),React.createElement(View,{key:e.key,style:l},o?React.createElement(View,{style:[{width:H.maskSize,height:H.maskSize,borderRadius:H.maskSize/2,backgroundColor:F.text,opacity:e.isFilled?1:0},y]}):React.createElement(Text,{style:r,numberOfLines:1},e.char??""),e.showBlink?React.createElement(View,{testID:"password-input-cursor",style:[S.cr,{width:H.cursorWidth,height:100*H.cursorHeightRatio+"%",borderRadius:H.cursorWidth/2,top:100*H.cursorTopRatio+"%",marginLeft:-H.cursorWidth/2,backgroundColor:F.cursor,opacity:M?1:0},w]}):null,ie&&React.createElement(View,{style:createHairlineView({position:"all",color:F.border,borderRadius:P.cellGutter})}),!ie&&t<E-1&&React.createElement(View,{style:createHairlineView({position:"right",color:F.border,top:0,bottom:0})}))}),React.createElement(TextInput,_extends({ref:O,value:K,editable:!p,keyboardType:B,inputMode:D,maxLength:E,autoFocus:!1,secureTextEntry:o},pe,{style:[S.hi,{opacity:z.hidden}],onChangeText:re,onFocus:le,onBlur:ae,accessible:!1}))),!ie&&React.createElement(View,{style:createHairlineView({position:"all",color:F.border,borderRadius:P.wrapper})})),ue?React.createElement(View,{style:[S.iw,{marginTop:L.infoMarginTop}]},isText(ue)?React.createElement(Text,{style:[S.it,{color:ce}]},ue):ue):null)},PasswordInputForwardRef=React.forwardRef(PasswordInputImpl);PasswordInputForwardRef.displayName="PasswordInput";const PasswordInput=React.memo(PasswordInputForwardRef);export default PasswordInput;const S=StyleSheet.create({w:{alignSelf:"stretch"},s:{flexDirection:"row",alignItems:"center",position:"relative",overflow:"hidden"},c:{flex:1,justifyContent:"center",alignItems:"center"},cg:{},cr:{position:"absolute",left:"50%"},hi:{...StyleSheet.absoluteFillObject},iw:{alignItems:"center"},it:{textAlign:"center"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{default}from"./PasswordInput";
|
|
@@ -1,41 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { createComponentTokensHook } from '../../design-system';
|
|
3
|
-
const createPasswordInputTokens = foundations => ({
|
|
4
|
-
colors: {
|
|
5
|
-
border: foundations.palette.default[100],
|
|
6
|
-
text: foundations.palette.default[900],
|
|
7
|
-
muted: foundations.palette.default[500],
|
|
8
|
-
error: foundations.palette.danger[500],
|
|
9
|
-
cursor: foundations.palette.default[800],
|
|
10
|
-
background: '#ffffff',
|
|
11
|
-
transparent: 'transparent'
|
|
12
|
-
},
|
|
13
|
-
radii: {
|
|
14
|
-
wrapper: foundations.radii.sm,
|
|
15
|
-
cellGutter: foundations.radii.none
|
|
16
|
-
},
|
|
17
|
-
sizing: {
|
|
18
|
-
cellHeight: 50,
|
|
19
|
-
cellTextSize: foundations.fontSize.xl,
|
|
20
|
-
maskSize: 10,
|
|
21
|
-
cursorWidth: StyleSheet.hairlineWidth || 1,
|
|
22
|
-
cursorHeightRatio: 0.4,
|
|
23
|
-
cursorTopRatio: 0.3
|
|
24
|
-
},
|
|
25
|
-
typography: {
|
|
26
|
-
fontFamily: foundations.typography.fontFamily,
|
|
27
|
-
cellTextWeight: foundations.typography.weight.semiBold,
|
|
28
|
-
infoSize: foundations.fontSize.sm,
|
|
29
|
-
infoLineHeight: Math.round(foundations.fontSize.sm * foundations.typography.lineHeightMultiplier),
|
|
30
|
-
infoWeight: foundations.typography.weight.regular
|
|
31
|
-
},
|
|
32
|
-
opacity: {
|
|
33
|
-
disabled: 0.6,
|
|
34
|
-
hidden: 0
|
|
35
|
-
},
|
|
36
|
-
spacing: {
|
|
37
|
-
infoMarginTop: foundations.spacing.sm,
|
|
38
|
-
none: foundations.spacing.none
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
export const usePasswordInputTokens = createComponentTokensHook('passwordInput', createPasswordInputTokens);
|
|
1
|
+
import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";const createPasswordInputTokens=e=>({colors:{border:e.palette.default[100],text:e.palette.default[900],muted:e.palette.default[500],error:e.palette.danger[500],cursor:e.palette.default[800],background:"#ffffff",transparent:"transparent"},radii:{wrapper:e.radii.sm,cellGutter:e.radii.none},sizing:{cellHeight:50,cellTextSize:e.fontSize.xl,maskSize:10,cursorWidth:StyleSheet.hairlineWidth||1,cursorHeightRatio:.4,cursorTopRatio:.3},typography:{fontFamily:e.typography.fontFamily,cellTextWeight:e.typography.weight.semiBold,infoSize:e.fontSize.sm,infoLineHeight:Math.round(e.fontSize.sm*e.typography.lineHeightMultiplier),infoWeight:e.typography.weight.regular},opacity:{disabled:.6,hidden:0},spacing:{infoMarginTop:e.spacing.sm,none:e.spacing.none}});export const usePasswordInputTokens=createComponentTokensHook("passwordInput",createPasswordInputTokens);
|