react-native-system-ui 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -22
- package/dist/cjs/components/action-sheet/ActionSheet.js +1 -301
- package/dist/cjs/components/action-sheet/index.js +1 -16
- package/dist/cjs/components/action-sheet/tokens.js +1 -133
- package/dist/cjs/components/area/Area.js +1 -127
- package/dist/cjs/components/area/index.js +1 -9
- package/dist/cjs/components/area/tokens.js +1 -14
- package/dist/cjs/components/avatar/Avatar.js +1 -125
- package/dist/cjs/components/avatar/index.js +1 -18
- package/dist/cjs/components/avatar/tokens.js +1 -56
- package/dist/cjs/components/badge/Badge.js +1 -166
- package/dist/cjs/components/badge/index.js +1 -8
- package/dist/cjs/components/badge/tokens.js +1 -81
- package/dist/cjs/components/button/Button.js +1 -203
- package/dist/cjs/components/button/ButtonContext.js +1 -12
- package/dist/cjs/components/button/ButtonGroup.js +1 -65
- package/dist/cjs/components/button/index.js +1 -12
- package/dist/cjs/components/button/tokens.js +1 -176
- package/dist/cjs/components/calendar/Calendar.js +1 -452
- package/dist/cjs/components/calendar/index.js +1 -9
- package/dist/cjs/components/calendar/tokens.js +1 -129
- package/dist/cjs/components/cascader/Cascader.js +1 -482
- package/dist/cjs/components/cascader/index.js +1 -15
- package/dist/cjs/components/cascader/tokens.js +1 -138
- package/dist/cjs/components/cascader/useCascaderExtend.js +1 -39
- package/dist/cjs/components/cell/Cell.js +1 -181
- package/dist/cjs/components/cell/CellContext.js +1 -19
- package/dist/cjs/components/cell/CellGroup.js +1 -100
- package/dist/cjs/components/cell/index.js +1 -19
- package/dist/cjs/components/cell/tokens.js +1 -173
- package/dist/cjs/components/checkbox/Checkbox.js +1 -251
- package/dist/cjs/components/checkbox/CheckboxContext.js +1 -12
- package/dist/cjs/components/checkbox/CheckboxGroup.js +1 -148
- package/dist/cjs/components/checkbox/index.js +1 -16
- package/dist/cjs/components/checkbox/tokens.js +1 -97
- package/dist/cjs/components/circle/Circle.js +1 -212
- package/dist/cjs/components/circle/index.js +1 -9
- package/dist/cjs/components/circle/tokens.js +1 -55
- package/dist/cjs/components/collapse/Collapse.js +1 -311
- package/dist/cjs/components/collapse/index.js +1 -8
- package/dist/cjs/components/collapse/tokens.js +1 -81
- package/dist/cjs/components/config-provider/ConfigProvider.js +1 -44
- package/dist/cjs/components/config-provider/DirectionContext.js +1 -15
- package/dist/cjs/components/config-provider/LocaleContext.js +1 -16
- package/dist/cjs/components/config-provider/index.js +1 -40
- package/dist/cjs/components/config-provider/locale/en-US.js +1 -112
- package/dist/cjs/components/config-provider/locale/zh-CN.js +1 -112
- package/dist/cjs/components/config-provider/tokens.js +1 -11
- package/dist/cjs/components/config-provider/useDirection.js +1 -16
- package/dist/cjs/components/config-provider/useLocale.js +1 -16
- package/dist/cjs/components/count-down/CountDown.js +1 -88
- package/dist/cjs/components/count-down/index.js +1 -15
- package/dist/cjs/components/count-down/tokens.js +1 -34
- package/dist/cjs/components/datetime-picker/DatetimePicker.js +1 -319
- package/dist/cjs/components/datetime-picker/index.js +1 -9
- package/dist/cjs/components/datetime-picker/tokens.js +1 -22
- package/dist/cjs/components/dialog/Dialog.js +1 -433
- package/dist/cjs/components/dialog/imperative.js +1 -199
- package/dist/cjs/components/dialog/index.js +1 -23
- package/dist/cjs/components/dialog/tokens.js +1 -64
- package/dist/cjs/components/divider/Divider.js +1 -126
- package/dist/cjs/components/divider/index.js +1 -8
- package/dist/cjs/components/divider/tokens.js +1 -62
- package/dist/cjs/components/empty/Empty.js +1 -125
- package/dist/cjs/components/empty/index.js +1 -8
- package/dist/cjs/components/empty/tokens.js +1 -55
- package/dist/cjs/components/error-boundary/ErrorBoundary.js +1 -74
- package/dist/cjs/components/error-boundary/index.js +1 -19
- package/dist/cjs/components/field/Field.js +1 -565
- package/dist/cjs/components/field/index.js +1 -29
- package/dist/cjs/components/field/tokens.js +1 -150
- package/dist/cjs/components/flex/Flex.js +1 -85
- package/dist/cjs/components/flex/FlexContext.js +1 -12
- package/dist/cjs/components/flex/FlexItem.js +1 -95
- package/dist/cjs/components/flex/index.js +1 -19
- package/dist/cjs/components/flex/tokens.js +1 -21
- package/dist/cjs/components/form/Form.js +1 -340
- package/dist/cjs/components/form/FormContext.js +1 -12
- package/dist/cjs/components/form/FormItem.js +1 -151
- package/dist/cjs/components/form/FormList.js +1 -95
- package/dist/cjs/components/form/index.js +1 -50
- package/dist/cjs/components/form/tokens.js +1 -14
- package/dist/cjs/components/form/utils.js +1 -56
- package/dist/cjs/components/grid/Grid.js +1 -118
- package/dist/cjs/components/grid/GridContext.js +1 -12
- package/dist/cjs/components/grid/GridItem.js +1 -158
- package/dist/cjs/components/grid/index.js +1 -12
- package/dist/cjs/components/grid/tokens.js +1 -105
- package/dist/cjs/components/image/Image.js +1 -263
- package/dist/cjs/components/image/index.js +1 -16
- package/dist/cjs/components/image/tokens.js +1 -66
- package/dist/cjs/components/image-preview/ImagePreview.js +1 -408
- package/dist/cjs/components/image-preview/imperative.js +1 -72
- package/dist/cjs/components/image-preview/index.js +1 -17
- package/dist/cjs/components/image-preview/tokens.js +1 -43
- package/dist/cjs/components/index.js +1 -769
- package/dist/cjs/components/input/Input.js +1 -122
- package/dist/cjs/components/input/index.js +1 -15
- package/dist/cjs/components/input/tokens.js +1 -22
- package/dist/cjs/components/loading/Loading.js +1 -76
- package/dist/cjs/components/loading/index.js +1 -8
- package/dist/cjs/components/loading/tokens.js +1 -32
- package/dist/cjs/components/nav-bar/NavBar.js +1 -196
- package/dist/cjs/components/nav-bar/index.js +1 -16
- package/dist/cjs/components/nav-bar/tokens.js +1 -90
- package/dist/cjs/components/notice-bar/NoticeBar.js +1 -369
- package/dist/cjs/components/notice-bar/index.js +1 -8
- package/dist/cjs/components/notice-bar/tokens.js +1 -39
- package/dist/cjs/components/notify/Notify.js +1 -262
- package/dist/cjs/components/notify/imperative.js +1 -145
- package/dist/cjs/components/notify/index.js +1 -10
- package/dist/cjs/components/notify/tokens.js +1 -74
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +1 -487
- package/dist/cjs/components/number-keyboard/index.js +1 -15
- package/dist/cjs/components/number-keyboard/tokens.js +1 -59
- package/dist/cjs/components/overlay/Overlay.js +1 -81
- package/dist/cjs/components/overlay/index.js +1 -28
- package/dist/cjs/components/overlay/tokens.js +1 -13
- package/dist/cjs/components/password-input/PasswordInput.js +1 -346
- package/dist/cjs/components/password-input/index.js +1 -13
- package/dist/cjs/components/password-input/tokens.js +1 -53
- package/dist/cjs/components/picker/Picker.js +1 -1056
- package/dist/cjs/components/picker/index.js +1 -15
- package/dist/cjs/components/picker/tokens.js +1 -53
- package/dist/cjs/components/popup/Popup.js +1 -518
- package/dist/cjs/components/popup/index.js +1 -15
- package/dist/cjs/components/popup/tokens.js +1 -62
- package/dist/cjs/components/portal/Portal.js +1 -50
- package/dist/cjs/components/portal/PortalContext.js +1 -15
- package/dist/cjs/components/portal/PortalHost.js +1 -253
- package/dist/cjs/components/portal/index.js +1 -25
- package/dist/cjs/components/portal/tokens.js +1 -11
- package/dist/cjs/components/progress/Progress.js +1 -216
- package/dist/cjs/components/progress/index.js +1 -14
- package/dist/cjs/components/progress/tokens.js +1 -52
- package/dist/cjs/components/radio/Radio.js +1 -245
- package/dist/cjs/components/radio/RadioContext.js +1 -12
- package/dist/cjs/components/radio/RadioGroup.js +1 -113
- package/dist/cjs/components/radio/index.js +1 -16
- package/dist/cjs/components/radio/tokens.js +1 -92
- package/dist/cjs/components/safe-area-view/SafeAreaView.js +1 -59
- package/dist/cjs/components/safe-area-view/index.js +1 -12
- package/dist/cjs/components/safe-area-view/tokens.js +1 -11
- package/dist/cjs/components/search/Search.js +1 -215
- package/dist/cjs/components/search/index.js +1 -15
- package/dist/cjs/components/search/tokens.js +1 -54
- package/dist/cjs/components/selector/Selector.js +1 -185
- package/dist/cjs/components/selector/index.js +1 -15
- package/dist/cjs/components/selector/tokens.js +1 -100
- package/dist/cjs/components/share-sheet/ShareSheet.js +1 -287
- package/dist/cjs/components/share-sheet/index.js +1 -16
- package/dist/cjs/components/share-sheet/tokens.js +1 -55
- package/dist/cjs/components/sidebar/Sidebar.js +1 -103
- package/dist/cjs/components/sidebar/SidebarContext.js +1 -17
- package/dist/cjs/components/sidebar/SidebarItem.js +1 -103
- package/dist/cjs/components/sidebar/index.js +1 -26
- package/dist/cjs/components/sidebar/tokens.js +1 -93
- package/dist/cjs/components/skeleton/Skeleton.js +1 -162
- package/dist/cjs/components/skeleton/index.js +1 -22
- package/dist/cjs/components/skeleton/tokens.js +1 -39
- package/dist/cjs/components/slider/Slider.js +1 -633
- package/dist/cjs/components/slider/index.js +1 -8
- package/dist/cjs/components/slider/tokens.js +1 -37
- package/dist/cjs/components/space/Space.js +1 -134
- package/dist/cjs/components/space/index.js +1 -18
- package/dist/cjs/components/space/tokens.js +1 -39
- package/dist/cjs/components/stepper/Stepper.js +1 -484
- package/dist/cjs/components/stepper/index.js +1 -15
- package/dist/cjs/components/stepper/tokens.js +1 -60
- package/dist/cjs/components/swiper/Swiper.js +1 -364
- package/dist/cjs/components/swiper/SwiperItem.js +1 -12
- package/dist/cjs/components/swiper/SwiperPagIndicator.js +1 -106
- package/dist/cjs/components/swiper/index.js +1 -40
- package/dist/cjs/components/swiper/tokens.js +1 -18
- package/dist/cjs/components/switch/Switch.js +1 -102
- package/dist/cjs/components/switch/index.js +1 -15
- package/dist/cjs/components/switch/tokens.js +1 -31
- package/dist/cjs/components/tabbar/Tabbar.js +1 -149
- package/dist/cjs/components/tabbar/TabbarContext.js +1 -17
- package/dist/cjs/components/tabbar/TabbarItem.js +1 -159
- package/dist/cjs/components/tabbar/index.js +1 -25
- package/dist/cjs/components/tabbar/tokens.js +1 -41
- package/dist/cjs/components/tabs/Tabs.js +1 -860
- package/dist/cjs/components/tabs/index.js +1 -25
- package/dist/cjs/components/tabs/tokens.js +1 -111
- package/dist/cjs/components/tag/Tag.js +1 -130
- package/dist/cjs/components/tag/index.js +1 -8
- package/dist/cjs/components/tag/tokens.js +1 -104
- package/dist/cjs/components/toast/Toast.js +1 -306
- package/dist/cjs/components/toast/imperative.js +1 -144
- package/dist/cjs/components/toast/index.js +1 -10
- package/dist/cjs/components/toast/tokens.js +1 -43
- package/dist/cjs/components/typography/Typography.js +1 -181
- package/dist/cjs/components/typography/index.js +1 -9
- package/dist/cjs/components/typography/tokens.js +1 -88
- package/dist/cjs/components/water-mark/WaterMark.js +1 -172
- package/dist/cjs/components/water-mark/index.js +1 -22
- package/dist/cjs/components/water-mark/tokens.js +1 -54
- package/dist/cjs/design-system/Text.js +1 -38
- package/dist/cjs/design-system/ThemeContext.js +1 -19
- package/dist/cjs/design-system/ThemeProvider.js +1 -31
- package/dist/cjs/design-system/createComponentTokensHook.js +1 -28
- package/dist/cjs/design-system/index.js +1 -66
- package/dist/cjs/design-system/mergeTokensOverride.js +1 -9
- package/dist/cjs/design-system/presets.js +1 -146
- package/dist/cjs/design-system/tokens.js +1 -135
- package/dist/cjs/design-system/useTheme.js +1 -16
- package/dist/cjs/hooks/animation/index.js +1 -25
- package/dist/cjs/hooks/animation/useAnimatedTransition.js +1 -72
- package/dist/cjs/hooks/animation/useReducedMotion.js +1 -75
- package/dist/cjs/hooks/aria/index.js +1 -49
- package/dist/cjs/hooks/aria/useAriaListBox.js +1 -50
- package/dist/cjs/hooks/aria/useAriaOverlay.js +1 -50
- package/dist/cjs/hooks/aria/useAriaPress.js +1 -94
- package/dist/cjs/hooks/aria/useAriaToggle.js +1 -41
- package/dist/cjs/hooks/gesture/index.js +1 -16
- package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -129
- package/dist/cjs/hooks/index.js +1 -96
- package/dist/cjs/hooks/overlay/OverlayStackStore.js +1 -106
- package/dist/cjs/hooks/overlay/index.js +1 -27
- package/dist/cjs/hooks/overlay/useOverlayStack.js +1 -53
- package/dist/cjs/hooks/useControllableValue.js +1 -41
- package/dist/cjs/hooks/useCountDown.js +1 -99
- package/dist/cjs/hooks/useHairline.js +1 -46
- package/dist/cjs/hooks/useSafeAreaPadding.js +1 -38
- package/dist/cjs/index.js +1 -104
- package/dist/cjs/nativewind.js +1 -0
- package/dist/cjs/platform/animation.js +1 -22
- package/dist/cjs/platform/history.js +1 -14
- package/dist/cjs/platform/index.js +1 -60
- package/dist/cjs/platform/measure.js +1 -39
- package/dist/cjs/platform/runtime.js +1 -19
- package/dist/cjs/platform/scrollLock.js +1 -24
- package/dist/cjs/utils/array.js +1 -12
- package/dist/cjs/utils/color.js +1 -33
- package/dist/cjs/utils/compare.js +1 -21
- package/dist/cjs/utils/createPlatformShadow.js +1 -52
- package/dist/cjs/utils/date.js +1 -45
- package/dist/cjs/utils/deepMerge.js +1 -27
- package/dist/cjs/utils/hairline.js +1 -107
- package/dist/cjs/utils/index.js +1 -148
- package/dist/cjs/utils/number.js +1 -65
- package/dist/cjs/utils/promise.js +1 -9
- package/dist/cjs/utils/render.js +1 -21
- package/dist/cjs/utils/rtl.js +1 -25
- package/dist/cjs/utils/string.js +1 -22
- package/dist/cjs/utils/validate.js +1 -39
- package/dist/es/components/action-sheet/ActionSheet.js +1 -275
- package/dist/es/components/action-sheet/index.js +1 -3
- package/dist/es/components/action-sheet/tokens.js +1 -126
- package/dist/es/components/area/Area.js +1 -113
- package/dist/es/components/area/index.js +1 -2
- package/dist/es/components/area/tokens.js +1 -8
- package/dist/es/components/avatar/Avatar.js +1 -106
- package/dist/es/components/avatar/index.js +1 -1
- package/dist/es/components/avatar/tokens.js +1 -49
- package/dist/es/components/badge/Badge.js +1 -147
- package/dist/es/components/badge/index.js +1 -2
- package/dist/es/components/badge/tokens.js +1 -75
- package/dist/es/components/button/Button.js +1 -184
- package/dist/es/components/button/ButtonContext.js +1 -1
- package/dist/es/components/button/ButtonGroup.js +1 -46
- package/dist/es/components/button/index.js +1 -7
- package/dist/es/components/button/tokens.js +1 -170
- package/dist/es/components/calendar/Calendar.js +1 -432
- package/dist/es/components/calendar/index.js +1 -2
- package/dist/es/components/calendar/tokens.js +1 -122
- package/dist/es/components/cascader/Cascader.js +1 -456
- package/dist/es/components/cascader/index.js +1 -3
- package/dist/es/components/cascader/tokens.js +1 -131
- package/dist/es/components/cascader/useCascaderExtend.js +1 -32
- package/dist/es/components/cell/Cell.js +1 -156
- package/dist/es/components/cell/CellContext.js +1 -6
- package/dist/es/components/cell/CellGroup.js +1 -81
- package/dist/es/components/cell/index.js +1 -8
- package/dist/es/components/cell/tokens.js +1 -160
- package/dist/es/components/checkbox/Checkbox.js +1 -220
- package/dist/es/components/checkbox/CheckboxContext.js +1 -1
- package/dist/es/components/checkbox/CheckboxGroup.js +1 -117
- package/dist/es/components/checkbox/index.js +1 -5
- package/dist/es/components/checkbox/tokens.js +1 -85
- package/dist/es/components/circle/Circle.js +1 -187
- package/dist/es/components/circle/index.js +1 -2
- package/dist/es/components/circle/tokens.js +1 -48
- package/dist/es/components/collapse/Collapse.js +1 -286
- package/dist/es/components/collapse/index.js +1 -2
- package/dist/es/components/collapse/tokens.js +1 -74
- package/dist/es/components/config-provider/ConfigProvider.js +1 -25
- package/dist/es/components/config-provider/DirectionContext.js +1 -2
- package/dist/es/components/config-provider/LocaleContext.js +1 -3
- package/dist/es/components/config-provider/index.js +1 -5
- package/dist/es/components/config-provider/locale/en-US.js +1 -106
- package/dist/es/components/config-provider/locale/zh-CN.js +1 -106
- package/dist/es/components/config-provider/tokens.js +1 -5
- package/dist/es/components/config-provider/useDirection.js +1 -3
- package/dist/es/components/config-provider/useLocale.js +1 -3
- package/dist/es/components/count-down/CountDown.js +1 -69
- package/dist/es/components/count-down/index.js +1 -3
- package/dist/es/components/count-down/tokens.js +1 -27
- package/dist/es/components/datetime-picker/DatetimePicker.js +1 -305
- package/dist/es/components/datetime-picker/index.js +1 -2
- package/dist/es/components/datetime-picker/tokens.js +1 -16
- package/dist/es/components/dialog/Dialog.js +1 -407
- package/dist/es/components/dialog/imperative.js +1 -185
- package/dist/es/components/dialog/index.js +1 -17
- package/dist/es/components/dialog/tokens.js +1 -57
- package/dist/es/components/divider/Divider.js +1 -107
- package/dist/es/components/divider/index.js +1 -2
- package/dist/es/components/divider/tokens.js +1 -55
- package/dist/es/components/empty/Empty.js +1 -100
- package/dist/es/components/empty/index.js +1 -2
- package/dist/es/components/empty/tokens.js +1 -48
- package/dist/es/components/error-boundary/ErrorBoundary.js +1 -62
- package/dist/es/components/error-boundary/index.js +1 -1
- package/dist/es/components/field/Field.js +1 -539
- package/dist/es/components/field/index.js +1 -6
- package/dist/es/components/field/tokens.js +1 -138
- package/dist/es/components/flex/Flex.js +1 -66
- package/dist/es/components/flex/FlexContext.js +1 -1
- package/dist/es/components/flex/FlexItem.js +1 -76
- package/dist/es/components/flex/index.js +1 -8
- package/dist/es/components/flex/tokens.js +1 -15
- package/dist/es/components/form/Form.js +1 -319
- package/dist/es/components/form/FormContext.js +1 -1
- package/dist/es/components/form/FormItem.js +1 -138
- package/dist/es/components/form/FormList.js +1 -81
- package/dist/es/components/form/index.js +1 -13
- package/dist/es/components/form/tokens.js +1 -8
- package/dist/es/components/form/utils.js +1 -45
- package/dist/es/components/grid/Grid.js +1 -99
- package/dist/es/components/grid/GridContext.js +1 -1
- package/dist/es/components/grid/GridItem.js +1 -138
- package/dist/es/components/grid/index.js +1 -6
- package/dist/es/components/grid/tokens.js +1 -98
- package/dist/es/components/image/Image.js +1 -238
- package/dist/es/components/image/index.js +1 -3
- package/dist/es/components/image/tokens.js +1 -60
- package/dist/es/components/image-preview/ImagePreview.js +1 -388
- package/dist/es/components/image-preview/imperative.js +1 -58
- package/dist/es/components/image-preview/index.js +1 -11
- package/dist/es/components/image-preview/tokens.js +1 -37
- package/dist/es/components/index.js +1 -110
- package/dist/es/components/input/Input.js +1 -109
- package/dist/es/components/input/index.js +1 -3
- package/dist/es/components/input/tokens.js +1 -16
- package/dist/es/components/loading/Loading.js +1 -57
- package/dist/es/components/loading/index.js +1 -2
- package/dist/es/components/loading/tokens.js +1 -25
- package/dist/es/components/nav-bar/NavBar.js +1 -171
- package/dist/es/components/nav-bar/index.js +1 -3
- package/dist/es/components/nav-bar/tokens.js +1 -83
- package/dist/es/components/notice-bar/NoticeBar.js +1 -344
- package/dist/es/components/notice-bar/index.js +1 -2
- package/dist/es/components/notice-bar/tokens.js +1 -32
- package/dist/es/components/notify/Notify.js +1 -242
- package/dist/es/components/notify/imperative.js +1 -131
- package/dist/es/components/notify/index.js +1 -5
- package/dist/es/components/notify/tokens.js +1 -67
- package/dist/es/components/number-keyboard/NumberKeyboard.js +1 -467
- package/dist/es/components/number-keyboard/index.js +1 -3
- package/dist/es/components/number-keyboard/tokens.js +1 -53
- package/dist/es/components/overlay/Overlay.js +1 -50
- package/dist/es/components/overlay/index.js +1 -4
- package/dist/es/components/overlay/tokens.js +1 -7
- package/dist/es/components/password-input/PasswordInput.js +1 -327
- package/dist/es/components/password-input/index.js +1 -1
- package/dist/es/components/password-input/tokens.js +1 -41
- package/dist/es/components/picker/Picker.js +1 -1031
- package/dist/es/components/picker/index.js +1 -3
- package/dist/es/components/picker/tokens.js +1 -47
- package/dist/es/components/popup/Popup.js +1 -492
- package/dist/es/components/popup/index.js +1 -3
- package/dist/es/components/popup/tokens.js +1 -55
- package/dist/es/components/portal/Portal.js +1 -37
- package/dist/es/components/portal/PortalContext.js +1 -2
- package/dist/es/components/portal/PortalHost.js +1 -234
- package/dist/es/components/portal/index.js +1 -3
- package/dist/es/components/portal/tokens.js +1 -5
- package/dist/es/components/progress/Progress.js +1 -196
- package/dist/es/components/progress/index.js +1 -3
- package/dist/es/components/progress/tokens.js +1 -45
- package/dist/es/components/radio/Radio.js +1 -214
- package/dist/es/components/radio/RadioContext.js +1 -1
- package/dist/es/components/radio/RadioGroup.js +1 -82
- package/dist/es/components/radio/index.js +1 -5
- package/dist/es/components/radio/tokens.js +1 -80
- package/dist/es/components/safe-area-view/SafeAreaView.js +1 -40
- package/dist/es/components/safe-area-view/index.js +1 -1
- package/dist/es/components/safe-area-view/tokens.js +1 -5
- package/dist/es/components/search/Search.js +1 -189
- package/dist/es/components/search/index.js +1 -3
- package/dist/es/components/search/tokens.js +1 -48
- package/dist/es/components/selector/Selector.js +1 -166
- package/dist/es/components/selector/index.js +1 -3
- package/dist/es/components/selector/tokens.js +1 -88
- package/dist/es/components/share-sheet/ShareSheet.js +1 -267
- package/dist/es/components/share-sheet/index.js +1 -3
- package/dist/es/components/share-sheet/tokens.js +1 -49
- package/dist/es/components/sidebar/Sidebar.js +1 -84
- package/dist/es/components/sidebar/SidebarContext.js +1 -3
- package/dist/es/components/sidebar/SidebarItem.js +1 -84
- package/dist/es/components/sidebar/index.js +1 -8
- package/dist/es/components/sidebar/tokens.js +1 -80
- package/dist/es/components/skeleton/Skeleton.js +1 -143
- package/dist/es/components/skeleton/index.js +1 -4
- package/dist/es/components/skeleton/tokens.js +1 -33
- package/dist/es/components/slider/Slider.js +1 -596
- package/dist/es/components/slider/index.js +1 -2
- package/dist/es/components/slider/tokens.js +1 -31
- package/dist/es/components/space/Space.js +1 -115
- package/dist/es/components/space/index.js +1 -2
- package/dist/es/components/space/tokens.js +1 -32
- package/dist/es/components/stepper/Stepper.js +1 -465
- package/dist/es/components/stepper/index.js +1 -3
- package/dist/es/components/stepper/tokens.js +1 -54
- package/dist/es/components/swiper/Swiper.js +1 -344
- package/dist/es/components/swiper/SwiperItem.js +1 -1
- package/dist/es/components/swiper/SwiperPagIndicator.js +1 -87
- package/dist/es/components/swiper/index.js +1 -10
- package/dist/es/components/swiper/tokens.js +1 -12
- package/dist/es/components/switch/Switch.js +1 -83
- package/dist/es/components/switch/index.js +1 -3
- package/dist/es/components/switch/tokens.js +1 -25
- package/dist/es/components/tabbar/Tabbar.js +1 -130
- package/dist/es/components/tabbar/TabbarContext.js +1 -3
- package/dist/es/components/tabbar/TabbarItem.js +1 -139
- package/dist/es/components/tabbar/index.js +1 -7
- package/dist/es/components/tabbar/tokens.js +1 -35
- package/dist/es/components/tabs/Tabs.js +1 -841
- package/dist/es/components/tabs/index.js +1 -7
- package/dist/es/components/tabs/tokens.js +1 -105
- package/dist/es/components/tag/Tag.js +1 -105
- package/dist/es/components/tag/index.js +1 -2
- package/dist/es/components/tag/tokens.js +1 -97
- package/dist/es/components/toast/Toast.js +1 -280
- package/dist/es/components/toast/imperative.js +1 -130
- package/dist/es/components/toast/index.js +1 -5
- package/dist/es/components/toast/tokens.js +1 -36
- package/dist/es/components/typography/Typography.js +1 -162
- package/dist/es/components/typography/index.js +1 -2
- package/dist/es/components/typography/tokens.js +1 -82
- package/dist/es/components/water-mark/WaterMark.js +1 -153
- package/dist/es/components/water-mark/index.js +1 -4
- package/dist/es/components/water-mark/tokens.js +1 -42
- package/dist/es/design-system/Text.js +1 -19
- package/dist/es/design-system/ThemeContext.js +1 -6
- package/dist/es/design-system/ThemeProvider.js +1 -17
- package/dist/es/design-system/createComponentTokensHook.js +1 -15
- package/dist/es/design-system/index.js +1 -7
- package/dist/es/design-system/mergeTokensOverride.js +1 -2
- package/dist/es/design-system/presets.js +1 -139
- package/dist/es/design-system/tokens.js +1 -128
- package/dist/es/design-system/useTheme.js +1 -3
- package/dist/es/hooks/animation/index.js +1 -2
- package/dist/es/hooks/animation/useAnimatedTransition.js +1 -53
- package/dist/es/hooks/animation/useReducedMotion.js +1 -54
- package/dist/es/hooks/aria/index.js +1 -5
- package/dist/es/hooks/aria/useAriaListBox.js +1 -25
- package/dist/es/hooks/aria/useAriaOverlay.js +1 -25
- package/dist/es/hooks/aria/useAriaPress.js +1 -57
- package/dist/es/hooks/aria/useAriaToggle.js +1 -16
- package/dist/es/hooks/gesture/index.js +1 -2
- package/dist/es/hooks/gesture/useGestureScroll.js +1 -110
- package/dist/es/hooks/index.js +1 -8
- package/dist/es/hooks/overlay/OverlayStackStore.js +1 -93
- package/dist/es/hooks/overlay/index.js +1 -3
- package/dist/es/hooks/overlay/useOverlayStack.js +1 -40
- package/dist/es/hooks/useControllableValue.js +1 -29
- package/dist/es/hooks/useCountDown.js +1 -87
- package/dist/es/hooks/useHairline.js +1 -26
- package/dist/es/hooks/useSafeAreaPadding.js +1 -20
- package/dist/es/index.js +1 -11
- package/dist/es/nativewind.js +1 -0
- package/dist/es/platform/animation.js +1 -10
- package/dist/es/platform/history.js +1 -7
- package/dist/es/platform/index.js +1 -6
- package/dist/es/platform/measure.js +1 -32
- package/dist/es/platform/runtime.js +1 -4
- package/dist/es/platform/scrollLock.js +1 -16
- package/dist/es/types.js +1 -1
- package/dist/es/utils/array.js +1 -5
- package/dist/es/utils/color.js +1 -25
- package/dist/es/utils/compare.js +1 -13
- package/dist/es/utils/createPlatformShadow.js +1 -39
- package/dist/es/utils/date.js +1 -33
- package/dist/es/utils/deepMerge.js +1 -21
- package/dist/es/utils/hairline.js +1 -93
- package/dist/es/utils/index.js +1 -14
- package/dist/es/utils/number.js +1 -48
- package/dist/es/utils/promise.js +1 -2
- package/dist/es/utils/render.js +1 -7
- package/dist/es/utils/rtl.js +1 -17
- package/dist/es/utils/string.js +1 -13
- package/dist/es/utils/validate.js +1 -14
- package/dist/types/components/nav-bar/tokens.d.ts +1 -1
- package/dist/types/design-system/tokens.d.ts +1 -0
- package/dist/types/nativewind.d.ts +4 -0
- package/package.json +15 -3
|
@@ -1,130 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
3
|
-
import Portal from '../portal/Portal';
|
|
4
|
-
import { isFunction, isString, isText } from '../../utils';
|
|
5
|
-
import { ToastContent } from './Toast';
|
|
6
|
-
const activeKeys = new Set();
|
|
7
|
-
const toastOptions = new Map();
|
|
8
|
-
const toastControllers = new Map();
|
|
9
|
-
let allowMultiple = false;
|
|
10
|
-
const baseOptions = {
|
|
11
|
-
type: 'info',
|
|
12
|
-
position: 'middle',
|
|
13
|
-
forbidClick: false,
|
|
14
|
-
overlay: false
|
|
15
|
-
};
|
|
16
|
-
let currentOptions = {
|
|
17
|
-
...baseOptions
|
|
18
|
-
};
|
|
19
|
-
const typeDefaults = new Map();
|
|
20
|
-
const parseOptions = input => /*#__PURE__*/React.isValidElement(input) || isText(input) ? {
|
|
21
|
-
message: input
|
|
22
|
-
} : input ?? {};
|
|
23
|
-
const mergeOptions = (input, fallbackType) => {
|
|
24
|
-
const type = input.type ?? fallbackType;
|
|
25
|
-
const merged = {
|
|
26
|
-
...currentOptions,
|
|
27
|
-
...typeDefaults.get(type),
|
|
28
|
-
...input,
|
|
29
|
-
type
|
|
30
|
-
};
|
|
31
|
-
if (merged.duration == null) merged.duration = currentOptions.duration ?? 2000;
|
|
32
|
-
return merged;
|
|
33
|
-
};
|
|
34
|
-
const removeToast = key => {
|
|
35
|
-
Portal.remove(key);
|
|
36
|
-
activeKeys.delete(key);
|
|
37
|
-
toastOptions.delete(key);
|
|
38
|
-
toastControllers.delete(key);
|
|
39
|
-
};
|
|
40
|
-
const closeToast = key => {
|
|
41
|
-
const c = toastControllers.get(key);
|
|
42
|
-
c ? c.close() : removeToast(key);
|
|
43
|
-
};
|
|
44
|
-
const ToastPortal = ({
|
|
45
|
-
id,
|
|
46
|
-
options
|
|
47
|
-
}) => {
|
|
48
|
-
const [visible, setVisible] = useState(true);
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
toastControllers.set(id, {
|
|
51
|
-
close: () => setVisible(false)
|
|
52
|
-
});
|
|
53
|
-
return () => {
|
|
54
|
-
toastControllers.delete(id);
|
|
55
|
-
};
|
|
56
|
-
}, [id]);
|
|
57
|
-
const handleClose = useCallback(() => {
|
|
58
|
-
options.onClose?.();
|
|
59
|
-
setVisible(false);
|
|
60
|
-
}, [options]);
|
|
61
|
-
const handleClosed = useCallback(() => {
|
|
62
|
-
options.onClosed?.();
|
|
63
|
-
removeToast(id);
|
|
64
|
-
}, [id, options]);
|
|
65
|
-
return /*#__PURE__*/React.createElement(ToastContent, _extends({}, options, {
|
|
66
|
-
visible: visible,
|
|
67
|
-
onClose: handleClose,
|
|
68
|
-
onClosed: handleClosed
|
|
69
|
-
}));
|
|
70
|
-
};
|
|
71
|
-
const showToast = (input, fallbackType = 'info') => {
|
|
72
|
-
const opts = mergeOptions(parseOptions(input), fallbackType);
|
|
73
|
-
if (!allowMultiple) activeKeys.forEach(key => closeToast(key));
|
|
74
|
-
const key = Portal.add(null);
|
|
75
|
-
toastOptions.set(key, opts);
|
|
76
|
-
Portal.update(key, /*#__PURE__*/React.createElement(ToastPortal, {
|
|
77
|
-
id: key,
|
|
78
|
-
options: opts
|
|
79
|
-
}));
|
|
80
|
-
activeKeys.add(key);
|
|
81
|
-
const config = next => {
|
|
82
|
-
const prev = toastOptions.get(key);
|
|
83
|
-
if (!prev) return;
|
|
84
|
-
const parsed = parseOptions(isFunction(next) ? next(prev) : next);
|
|
85
|
-
const nextType = parsed.type ?? prev.type ?? fallbackType;
|
|
86
|
-
const merged = {
|
|
87
|
-
...prev,
|
|
88
|
-
...parsed,
|
|
89
|
-
type: nextType
|
|
90
|
-
};
|
|
91
|
-
if ('duration' in parsed && parsed.duration == null) merged.duration = typeDefaults.get(nextType)?.duration ?? currentOptions.duration ?? 2000;
|
|
92
|
-
toastOptions.set(key, merged);
|
|
93
|
-
Portal.update(key, /*#__PURE__*/React.createElement(ToastPortal, {
|
|
94
|
-
id: key,
|
|
95
|
-
options: merged
|
|
96
|
-
}));
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
clear: () => closeToast(key),
|
|
100
|
-
update: next => config(next),
|
|
101
|
-
config
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
export const ToastImperative = {
|
|
105
|
-
show: options => showToast(options),
|
|
106
|
-
info: options => showToast(options, 'info'),
|
|
107
|
-
success: options => showToast(options, 'success'),
|
|
108
|
-
fail: options => showToast(options, 'fail'),
|
|
109
|
-
loading: options => showToast(options, 'loading'),
|
|
110
|
-
clear: () => {
|
|
111
|
-
activeKeys.forEach(key => closeToast(key));
|
|
112
|
-
},
|
|
113
|
-
allowMultiple: (value = true) => {
|
|
114
|
-
allowMultiple = value;
|
|
115
|
-
},
|
|
116
|
-
setDefaultOptions: (typeOrOptions, options) => {
|
|
117
|
-
if (isString(typeOrOptions)) typeDefaults.set(typeOrOptions, options ?? {});else currentOptions = {
|
|
118
|
-
...currentOptions,
|
|
119
|
-
...typeOrOptions
|
|
120
|
-
};
|
|
121
|
-
},
|
|
122
|
-
resetDefaultOptions: type => {
|
|
123
|
-
if (type) typeDefaults.delete(type);else {
|
|
124
|
-
currentOptions = {
|
|
125
|
-
...baseOptions
|
|
126
|
-
};
|
|
127
|
-
typeDefaults.clear();
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
};
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var s in o)({}).hasOwnProperty.call(o,s)&&(t[s]=o[s])}return t},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useState}from"react";import Portal from"../portal/Portal";import{isFunction,isString,isText}from"../../utils";import{ToastContent}from"./Toast";const activeKeys=new Set,toastOptions=new Map,toastControllers=new Map;let allowMultiple=!1;const baseOptions={type:"info",position:"middle",forbidClick:!1,overlay:!1};let currentOptions={...baseOptions};const typeDefaults=new Map,parseOptions=t=>React.isValidElement(t)||isText(t)?{message:t}:t??{},mergeOptions=(t,e)=>{const o=t.type??e,s={...currentOptions,...typeDefaults.get(o),...t,type:o};return null==s.duration&&(s.duration=currentOptions.duration??2e3),s},removeToast=t=>{Portal.remove(t),activeKeys.delete(t),toastOptions.delete(t),toastControllers.delete(t)},closeToast=t=>{const e=toastControllers.get(t);e?e.close():removeToast(t)},ToastPortal=({id:t,options:e})=>{const[o,s]=useState(!0);useEffect(()=>(toastControllers.set(t,{close:()=>s(!1)}),()=>{toastControllers.delete(t)}),[t]);const a=useCallback(()=>{e.onClose?.(),s(!1)},[e]),n=useCallback(()=>{e.onClosed?.(),removeToast(t)},[t,e]);return React.createElement(ToastContent,_extends({},e,{visible:o,onClose:a,onClosed:n}))},showToast=(t,e="info")=>{const o=mergeOptions(parseOptions(t),e);allowMultiple||activeKeys.forEach(t=>closeToast(t));const s=Portal.add(null);toastOptions.set(s,o),Portal.update(s,React.createElement(ToastPortal,{id:s,options:o})),activeKeys.add(s);const a=t=>{const o=toastOptions.get(s);if(!o)return;const a=parseOptions(isFunction(t)?t(o):t),n=a.type??o.type??e,l={...o,...a,type:n};"duration"in a&&null==a.duration&&(l.duration=typeDefaults.get(n)?.duration??currentOptions.duration??2e3),toastOptions.set(s,l),Portal.update(s,React.createElement(ToastPortal,{id:s,options:l}))};return{clear:()=>closeToast(s),update:t=>a(t),config:a}};export const ToastImperative={show:t=>showToast(t),info:t=>showToast(t,"info"),success:t=>showToast(t,"success"),fail:t=>showToast(t,"fail"),loading:t=>showToast(t,"loading"),clear:()=>{activeKeys.forEach(t=>closeToast(t))},allowMultiple:(t=!0)=>{allowMultiple=t},setDefaultOptions:(t,e)=>{isString(t)?typeDefaults.set(t,e??{}):currentOptions={...currentOptions,...t}},resetDefaultOptions:t=>{t?typeDefaults.delete(t):(currentOptions={...baseOptions},typeDefaults.clear())}};
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ToastImperative } from './imperative';
|
|
3
|
-
const Toast = Object.assign(ToastComponent, ToastImperative);
|
|
4
|
-
export default Toast;
|
|
5
|
-
export { Toast };
|
|
1
|
+
import{Toast as ToastComponent}from"./Toast";import{ToastImperative}from"./imperative";const Toast=Object.assign(ToastComponent,ToastImperative);export default Toast;export{Toast};
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export const createToastTokens = foundations => {
|
|
3
|
-
const onDarkText = foundations.palette.primary.foreground ?? '#ffffff';
|
|
4
|
-
const backdrop = 'rgba(0,0,0,0.7)';
|
|
5
|
-
return {
|
|
6
|
-
colors: {
|
|
7
|
-
text: onDarkText,
|
|
8
|
-
backdrop,
|
|
9
|
-
variants: {
|
|
10
|
-
info: backdrop,
|
|
11
|
-
success: backdrop,
|
|
12
|
-
fail: backdrop,
|
|
13
|
-
loading: backdrop
|
|
14
|
-
},
|
|
15
|
-
transparent: 'transparent'
|
|
16
|
-
},
|
|
17
|
-
fontSize: foundations.fontSize.sm,
|
|
18
|
-
lineHeight: Math.round(foundations.fontSize.sm * foundations.typography.lineHeightMultiplier),
|
|
19
|
-
fontFamily: foundations.typography.fontFamily,
|
|
20
|
-
radius: foundations.radii.md,
|
|
21
|
-
gap: foundations.spacing.sm,
|
|
22
|
-
iconSize: 36,
|
|
23
|
-
maxWidth: '70%',
|
|
24
|
-
textMinWidth: 96,
|
|
25
|
-
textPaddingVertical: foundations.spacing.sm,
|
|
26
|
-
textPaddingHorizontal: foundations.spacing.md,
|
|
27
|
-
defaultPadding: foundations.spacing.lg,
|
|
28
|
-
defaultWidth: 88,
|
|
29
|
-
defaultMinHeight: 88,
|
|
30
|
-
pressedOpacity: 0.85,
|
|
31
|
-
positionOffsetRatio: 0.2,
|
|
32
|
-
positionOffsetMin: 60,
|
|
33
|
-
animationDuration: 160
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export const useToastTokens = createComponentTokensHook('toast', createToastTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";export const createToastTokens=t=>{const e="rgba(0,0,0,0.7)";return{colors:{text:t.palette.primary.foreground??"#ffffff",backdrop:e,variants:{info:e,success:e,fail:e,loading:e},transparent:"transparent"},fontSize:t.fontSize.sm,lineHeight:Math.round(t.fontSize.sm*t.typography.lineHeightMultiplier),fontFamily:t.typography.fontFamily,radius:t.radii.md,gap:t.spacing.sm,iconSize:36,maxWidth:"70%",textMinWidth:96,textPaddingVertical:t.spacing.sm,textPaddingHorizontal:t.spacing.md,defaultPadding:t.spacing.lg,defaultWidth:88,defaultMinHeight:88,pressedOpacity:.85,positionOffsetRatio:.2,positionOffsetMin:60,animationDuration:160}};export const useToastTokens=createComponentTokensHook("toast",createToastTokens);
|
|
@@ -1,162 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useState } from 'react';
|
|
3
|
-
import { Linking, Text, View } from 'react-native';
|
|
4
|
-
import { isBoolean, isNumber, isPlainObject } from '../../utils';
|
|
5
|
-
import { isWeb as isWebPlatform } from '../../platform';
|
|
6
|
-
import { useTypographyTokens } from './tokens';
|
|
7
|
-
const FLEX_SHRINK_STYLE = {
|
|
8
|
-
flexShrink: 1
|
|
9
|
-
};
|
|
10
|
-
const resolveEllipsisRows = ellipsis => {
|
|
11
|
-
if (!ellipsis) return undefined;
|
|
12
|
-
if (isBoolean(ellipsis)) return ellipsis ? 1 : undefined;
|
|
13
|
-
if (isNumber(ellipsis)) return ellipsis;
|
|
14
|
-
return ellipsis.rows ?? 1;
|
|
15
|
-
};
|
|
16
|
-
const hasTypographyColorKey = (colors, key) => Object.prototype.hasOwnProperty.call(colors, key);
|
|
17
|
-
const isEllipsisObject = ellipsis => isPlainObject(ellipsis);
|
|
18
|
-
const TypographyTextBaseInner = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
19
|
-
const {
|
|
20
|
-
tokensOverride,
|
|
21
|
-
children,
|
|
22
|
-
type: typeP,
|
|
23
|
-
color: colorP,
|
|
24
|
-
size: sizeP,
|
|
25
|
-
level,
|
|
26
|
-
disabled: disP,
|
|
27
|
-
delete: deleted,
|
|
28
|
-
underline,
|
|
29
|
-
center,
|
|
30
|
-
strong,
|
|
31
|
-
ellipsis,
|
|
32
|
-
style,
|
|
33
|
-
onPress,
|
|
34
|
-
...textProps
|
|
35
|
-
} = props;
|
|
36
|
-
const tokens = useTypographyTokens(tokensOverride);
|
|
37
|
-
const type = typeP ?? tokens.defaults.type;
|
|
38
|
-
const size = sizeP ?? tokens.defaults.size;
|
|
39
|
-
const disabled = disP ?? tokens.defaults.disabled;
|
|
40
|
-
const ellipsisRows = resolveEllipsisRows(ellipsis);
|
|
41
|
-
const ellipsisConfig = isEllipsisObject(ellipsis) ? ellipsis : undefined;
|
|
42
|
-
const [isTruncated, setIsTruncated] = useState(false);
|
|
43
|
-
const [expanded, setExpanded] = useState(false);
|
|
44
|
-
const isWeb = isWebPlatform();
|
|
45
|
-
const handleTextLayout = useCallback(event => {
|
|
46
|
-
if (!ellipsisRows || expanded) return;
|
|
47
|
-
const exceeded = event.nativeEvent.lines.length > ellipsisRows;
|
|
48
|
-
setIsTruncated(prev => prev === exceeded ? prev : exceeded);
|
|
49
|
-
}, [ellipsisRows, expanded]);
|
|
50
|
-
let resolvedColor = tokens.colors[type] ?? tokens.colors.default;
|
|
51
|
-
if (colorP !== undefined && colorP !== null) {
|
|
52
|
-
const ck = String(colorP);
|
|
53
|
-
resolvedColor = hasTypographyColorKey(tokens.colors, ck) ? tokens.colors[ck] : ck;
|
|
54
|
-
}
|
|
55
|
-
;
|
|
56
|
-
const fontSize = level ? tokens.sizing.titles[level].fontSize : tokens.sizing.sizes[size];
|
|
57
|
-
const lineHeight = level ? tokens.sizing.titles[level].lineHeight : fontSize * tokens.sizing.lineHeightMultiplier;
|
|
58
|
-
const textDeco = underline && deleted ? 'underline line-through' : underline ? 'underline' : deleted ? 'line-through' : undefined;
|
|
59
|
-
const baseStyle = [{
|
|
60
|
-
color: resolvedColor,
|
|
61
|
-
fontSize,
|
|
62
|
-
lineHeight,
|
|
63
|
-
fontFamily: tokens.typography.fontFamily,
|
|
64
|
-
fontWeight: strong ? tokens.typography.weight.strong : tokens.typography.weight.regular,
|
|
65
|
-
includeFontPadding: false,
|
|
66
|
-
textDecorationLine: textDeco,
|
|
67
|
-
textAlign: center ? 'center' : undefined,
|
|
68
|
-
opacity: disabled ? tokens.opacity.disabled : 1
|
|
69
|
-
}, style];
|
|
70
|
-
const hasActTxt = !!ellipsisConfig && (ellipsisConfig.expandText || ellipsisConfig.collapseText);
|
|
71
|
-
const showAct = hasActTxt && (isTruncated || expanded || isWeb);
|
|
72
|
-
const handleToggleEllipsis = useCallback(() => {
|
|
73
|
-
if (!ellipsisConfig) return;
|
|
74
|
-
setExpanded(prev => {
|
|
75
|
-
const next = !prev;
|
|
76
|
-
ellipsisConfig.onExpand?.(next);
|
|
77
|
-
return next;
|
|
78
|
-
});
|
|
79
|
-
}, [ellipsisConfig]);
|
|
80
|
-
const actLabel = !ellipsisConfig ? undefined : expanded ? ellipsisConfig.collapseText ?? ellipsisConfig.expandText : ellipsisConfig.expandText ?? ellipsisConfig.collapseText;
|
|
81
|
-
const actTxtStyle = {
|
|
82
|
-
color: tokens.colors.primary,
|
|
83
|
-
fontSize: tokens.sizing.sizes.sm,
|
|
84
|
-
fontWeight: tokens.typography.weight.medium,
|
|
85
|
-
marginLeft: tokens.sizing.actionMarginLeft,
|
|
86
|
-
includeFontPadding: false
|
|
87
|
-
};
|
|
88
|
-
const textStyle = showAct ? [baseStyle, FLEX_SHRINK_STYLE] : baseStyle;
|
|
89
|
-
const textNode = /*#__PURE__*/React.createElement(Text, _extends({
|
|
90
|
-
ref: ref,
|
|
91
|
-
style: textStyle,
|
|
92
|
-
onPress: onPress,
|
|
93
|
-
numberOfLines: !expanded ? ellipsisRows : undefined,
|
|
94
|
-
ellipsizeMode: "tail",
|
|
95
|
-
onTextLayout: hasActTxt && ellipsisRows && !expanded && !isWeb ? handleTextLayout : undefined
|
|
96
|
-
}, textProps), children);
|
|
97
|
-
if (!showAct) return center ? /*#__PURE__*/React.createElement(View, {
|
|
98
|
-
style: tokens.layout.centerWrapper
|
|
99
|
-
}, textNode) : textNode;
|
|
100
|
-
const actionNode = /*#__PURE__*/React.createElement(View, {
|
|
101
|
-
style: tokens.layout.actionRow
|
|
102
|
-
}, textNode, /*#__PURE__*/React.createElement(Text, {
|
|
103
|
-
onPress: handleToggleEllipsis,
|
|
104
|
-
suppressHighlighting: true,
|
|
105
|
-
style: actTxtStyle
|
|
106
|
-
}, actLabel));
|
|
107
|
-
return center ? /*#__PURE__*/React.createElement(View, {
|
|
108
|
-
style: tokens.layout.centerWrapper
|
|
109
|
-
}, actionNode) : actionNode;
|
|
110
|
-
});
|
|
111
|
-
TypographyTextBaseInner.displayName = 'TypographyText';
|
|
112
|
-
const TypographyTextBase = /*#__PURE__*/React.memo(TypographyTextBaseInner);
|
|
113
|
-
TypographyTextBase.displayName = 'TypographyText';
|
|
114
|
-
const TypographyTitle = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
115
|
-
const {
|
|
116
|
-
level = 5,
|
|
117
|
-
accessibilityRole,
|
|
118
|
-
...rest
|
|
119
|
-
} = props;
|
|
120
|
-
return /*#__PURE__*/React.createElement(TypographyTextBase, _extends({
|
|
121
|
-
ref: ref,
|
|
122
|
-
level: level,
|
|
123
|
-
accessibilityRole: accessibilityRole ?? 'header'
|
|
124
|
-
}, rest));
|
|
125
|
-
});
|
|
126
|
-
TypographyTitle.displayName = 'TypographyTitle';
|
|
127
|
-
const TypographyLink = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
128
|
-
const {
|
|
129
|
-
href,
|
|
130
|
-
onPress,
|
|
131
|
-
underline = true,
|
|
132
|
-
type = 'primary',
|
|
133
|
-
accessibilityRole,
|
|
134
|
-
...rest
|
|
135
|
-
} = props;
|
|
136
|
-
const handlePress = useCallback(async event => {
|
|
137
|
-
if (onPress) {
|
|
138
|
-
onPress(event);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
;
|
|
142
|
-
if (href) {
|
|
143
|
-
try {
|
|
144
|
-
await Linking.openURL(href);
|
|
145
|
-
} catch {}
|
|
146
|
-
}
|
|
147
|
-
}, [onPress, href]);
|
|
148
|
-
return /*#__PURE__*/React.createElement(TypographyTextBase, _extends({
|
|
149
|
-
ref: ref,
|
|
150
|
-
underline: underline,
|
|
151
|
-
type: type,
|
|
152
|
-
onPress: handlePress,
|
|
153
|
-
accessibilityRole: accessibilityRole ?? 'link'
|
|
154
|
-
}, rest));
|
|
155
|
-
});
|
|
156
|
-
TypographyLink.displayName = 'TypographyLink';
|
|
157
|
-
export const Typography = Object.assign(TypographyTextBase, {
|
|
158
|
-
Text: TypographyTextBase,
|
|
159
|
-
Title: TypographyTitle,
|
|
160
|
-
Link: TypographyLink
|
|
161
|
-
});
|
|
162
|
-
export default Typography;
|
|
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 r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useState}from"react";import{Linking,Text,View}from"react-native";import{isBoolean,isNumber,isPlainObject}from"../../utils";import{isWeb as isWebPlatform}from"../../platform";import{useTypographyTokens}from"./tokens";const FLEX_SHRINK_STYLE={flexShrink:1},resolveEllipsisRows=e=>{if(e)return isBoolean(e)?e?1:void 0:isNumber(e)?e:e.rows??1},hasTypographyColorKey=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),isEllipsisObject=e=>isPlainObject(e),TypographyTextBaseInner=React.forwardRef((e,t)=>{const{tokensOverride:i,children:r,type:a,color:o,size:s,level:n,disabled:l,delete:p,underline:y,center:c,strong:g,ellipsis:T,style:h,onPress:d,...u}=e,f=useTypographyTokens(i),m=a??f.defaults.type,x=s??f.defaults.size,b=l??f.defaults.disabled,R=resolveEllipsisRows(T),v=isEllipsisObject(T)?T:void 0,[k,w]=useState(!1),[E,L]=useState(!1),z=isWebPlatform(),P=useCallback(e=>{if(!R||E)return;const t=e.nativeEvent.lines.length>R;w(e=>e===t?e:t)},[R,E]);let O=f.colors[m]??f.colors.default;if(null!=o){const e=String(o);O=hasTypographyColorKey(f.colors,e)?f.colors[e]:e}const S=n?f.sizing.titles[n].fontSize:f.sizing.sizes[x],B=y&&p?"underline line-through":y?"underline":p?"line-through":void 0,_=[{color:O,fontSize:S,lineHeight:n?f.sizing.titles[n].lineHeight:S*f.sizing.lineHeightMultiplier,fontFamily:f.typography.fontFamily,fontWeight:g?f.typography.weight.strong:f.typography.weight.regular,includeFontPadding:!1,textDecorationLine:B,textAlign:c?"center":void 0,opacity:b?f.opacity.disabled:1},h],j=!!v&&(v.expandText||v.collapseText),N=j&&(k||E||z),W=useCallback(()=>{v&&L(e=>{const t=!e;return v.onExpand?.(t),t})},[v]),C=v?E?v.collapseText??v.expandText:v.expandText??v.collapseText:void 0,F={color:f.colors.primary,fontSize:f.sizing.sizes.sm,fontWeight:f.typography.weight.medium,marginLeft:f.sizing.actionMarginLeft,includeFontPadding:!1},H=N?[_,FLEX_SHRINK_STYLE]:_,I=React.createElement(Text,_extends({ref:t,style:H,onPress:d,numberOfLines:E?void 0:R,ellipsizeMode:"tail",onTextLayout:j&&R&&!E&&!z?P:void 0},u),r);if(!N)return c?React.createElement(View,{style:f.layout.centerWrapper},I):I;const K=React.createElement(View,{style:f.layout.actionRow},I,React.createElement(Text,{onPress:W,suppressHighlighting:!0,style:F},C));return c?React.createElement(View,{style:f.layout.centerWrapper},K):K});TypographyTextBaseInner.displayName="TypographyText";const TypographyTextBase=React.memo(TypographyTextBaseInner);TypographyTextBase.displayName="TypographyText";const TypographyTitle=React.forwardRef((e,t)=>{const{level:i=5,accessibilityRole:r,...a}=e;return React.createElement(TypographyTextBase,_extends({ref:t,level:i,accessibilityRole:r??"header"},a))});TypographyTitle.displayName="TypographyTitle";const TypographyLink=React.forwardRef((e,t)=>{const{href:i,onPress:r,underline:a=!0,type:o="primary",accessibilityRole:s,...n}=e,l=useCallback(async e=>{if(r)r(e);else if(i)try{await Linking.openURL(i)}catch{}},[r,i]);return React.createElement(TypographyTextBase,_extends({ref:t,underline:a,type:o,onPress:l,accessibilityRole:s??"link"},n))});TypographyLink.displayName="TypographyLink";export const Typography=Object.assign(TypographyTextBase,{Text:TypographyTextBase,Title:TypographyTitle,Link:TypographyLink});export default Typography;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import Typography from
|
|
2
|
-
export default Typography;
|
|
1
|
+
import Typography from"./Typography";export default Typography;
|
|
@@ -1,82 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const createTypographyTokens = ({
|
|
3
|
-
palette,
|
|
4
|
-
fontSize,
|
|
5
|
-
typography,
|
|
6
|
-
opacity
|
|
7
|
-
}) => ({
|
|
8
|
-
defaults: {
|
|
9
|
-
type: 'default',
|
|
10
|
-
size: 'md',
|
|
11
|
-
disabled: false
|
|
12
|
-
},
|
|
13
|
-
layout: {
|
|
14
|
-
centerWrapper: {
|
|
15
|
-
alignItems: 'center'
|
|
16
|
-
},
|
|
17
|
-
actionRow: {
|
|
18
|
-
flexDirection: 'row',
|
|
19
|
-
flexWrap: 'wrap',
|
|
20
|
-
alignItems: 'baseline'
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
colors: {
|
|
24
|
-
default: palette.default[700],
|
|
25
|
-
primary: palette.primary[500],
|
|
26
|
-
success: palette.success[500],
|
|
27
|
-
warning: palette.warning[500],
|
|
28
|
-
danger: palette.danger[500],
|
|
29
|
-
secondary: palette.default[500],
|
|
30
|
-
light: palette.default[300]
|
|
31
|
-
},
|
|
32
|
-
sizing: {
|
|
33
|
-
sizes: {
|
|
34
|
-
xs: fontSize.xs,
|
|
35
|
-
sm: fontSize.sm,
|
|
36
|
-
md: fontSize.md,
|
|
37
|
-
lg: fontSize.lg,
|
|
38
|
-
xl: fontSize.xl,
|
|
39
|
-
xxl: fontSize.xl * 1.2
|
|
40
|
-
},
|
|
41
|
-
titles: {
|
|
42
|
-
1: {
|
|
43
|
-
fontSize: 30,
|
|
44
|
-
lineHeight: 34
|
|
45
|
-
},
|
|
46
|
-
2: {
|
|
47
|
-
fontSize: 26,
|
|
48
|
-
lineHeight: 30
|
|
49
|
-
},
|
|
50
|
-
3: {
|
|
51
|
-
fontSize: 22,
|
|
52
|
-
lineHeight: 26
|
|
53
|
-
},
|
|
54
|
-
4: {
|
|
55
|
-
fontSize: 20,
|
|
56
|
-
lineHeight: 24
|
|
57
|
-
},
|
|
58
|
-
5: {
|
|
59
|
-
fontSize: 16,
|
|
60
|
-
lineHeight: 20
|
|
61
|
-
},
|
|
62
|
-
6: {
|
|
63
|
-
fontSize: 14,
|
|
64
|
-
lineHeight: 18
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
lineHeightMultiplier: 1.3,
|
|
68
|
-
actionMarginLeft: 4
|
|
69
|
-
},
|
|
70
|
-
typography: {
|
|
71
|
-
fontFamily: typography.fontFamily,
|
|
72
|
-
weight: {
|
|
73
|
-
regular: typography.weight.regular,
|
|
74
|
-
medium: typography.weight.medium,
|
|
75
|
-
strong: typography.weight.semiBold
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
opacity: {
|
|
79
|
-
disabled: opacity.disabled
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
export const useTypographyTokens = createComponentTokensHook('typography', createTypographyTokens);
|
|
1
|
+
import{createComponentTokensHook}from"../../design-system";const createTypographyTokens=({palette:e,fontSize:t,typography:i,opacity:n})=>({defaults:{type:"default",size:"md",disabled:!1},layout:{centerWrapper:{alignItems:"center"},actionRow:{flexDirection:"row",flexWrap:"wrap",alignItems:"baseline"}},colors:{default:e.default[700],primary:e.primary[500],success:e.success[500],warning:e.warning[500],danger:e.danger[500],secondary:e.default[500],light:e.default[300]},sizing:{sizes:{xs:t.xs,sm:t.sm,md:t.md,lg:t.lg,xl:t.xl,xxl:1.2*t.xl},titles:{1:{fontSize:30,lineHeight:34},2:{fontSize:26,lineHeight:30},3:{fontSize:22,lineHeight:26},4:{fontSize:20,lineHeight:24},5:{fontSize:16,lineHeight:20},6:{fontSize:14,lineHeight:18}},lineHeightMultiplier:1.3,actionMarginLeft:4},typography:{fontFamily:i.fontFamily,weight:{regular:i.weight.regular,medium:i.weight.medium,strong:i.weight.semiBold}},opacity:{disabled:n.disabled}});export const useTypographyTokens=createComponentTokensHook("typography",createTypographyTokens);
|
|
@@ -1,153 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
-
import { Image, Text, View, useWindowDimensions } from 'react-native';
|
|
4
|
-
import { isFiniteNumber, isString } from '../../utils';
|
|
5
|
-
import { useWaterMarkTokens } from './tokens';
|
|
6
|
-
const resolveFiniteNumber = (value, fallback) => isFiniteNumber(value) ? value : fallback;
|
|
7
|
-
const resolveNonNegativeNumber = (value, fallback) => Math.max(0, resolveFiniteNumber(value, fallback));
|
|
8
|
-
const resolvePositiveNumber = (value, fallback) => Math.max(1, resolveFiniteNumber(value, fallback));
|
|
9
|
-
const WaterMarkImpl = props => {
|
|
10
|
-
const {
|
|
11
|
-
content: contentP,
|
|
12
|
-
width,
|
|
13
|
-
height,
|
|
14
|
-
gapX,
|
|
15
|
-
gapY,
|
|
16
|
-
rotate,
|
|
17
|
-
image,
|
|
18
|
-
font,
|
|
19
|
-
fontSize,
|
|
20
|
-
color,
|
|
21
|
-
opacity,
|
|
22
|
-
zIndex: zIdxP,
|
|
23
|
-
fullPage: fullP,
|
|
24
|
-
tokensOverride,
|
|
25
|
-
style,
|
|
26
|
-
onLayoutCalculated,
|
|
27
|
-
textStyle,
|
|
28
|
-
...rest
|
|
29
|
-
} = props;
|
|
30
|
-
const tokens = useWaterMarkTokens(tokensOverride);
|
|
31
|
-
const content = contentP ?? tokens.defaults.content;
|
|
32
|
-
const zIndex = resolveFiniteNumber(zIdxP, tokens.defaults.zIndex);
|
|
33
|
-
const fullPage = fullP ?? tokens.defaults.fullPage;
|
|
34
|
-
const window = useWindowDimensions();
|
|
35
|
-
const [layoutSize, setLayoutSize] = useState({
|
|
36
|
-
width: 0,
|
|
37
|
-
height: 0
|
|
38
|
-
});
|
|
39
|
-
const lastLayoutRef = useRef({
|
|
40
|
-
width: 0,
|
|
41
|
-
height: 0
|
|
42
|
-
});
|
|
43
|
-
const size = fullPage ? window : layoutSize;
|
|
44
|
-
const rGapX = resolveNonNegativeNumber(gapX, tokens.defaults.gapX);
|
|
45
|
-
const rGapY = resolveNonNegativeNumber(gapY, tokens.defaults.gapY);
|
|
46
|
-
const rRotate = resolveFiniteNumber(rotate, tokens.defaults.rotate);
|
|
47
|
-
const rOpacity = Math.max(0, Math.min(1, resolveFiniteNumber(opacity, tokens.defaults.opacity)));
|
|
48
|
-
const fontSzFromFont = isFiniteNumber(font?.size) ? font.size : isString(font?.size) ? Number.parseFloat(font.size) : undefined;
|
|
49
|
-
const normFontSz = Math.max(0, resolveFiniteNumber((Number.isFinite(fontSzFromFont ?? Number.NaN) ? fontSzFromFont : undefined) ?? fontSize, tokens.defaults.fontSize));
|
|
50
|
-
const rColor = font?.color ?? color ?? tokens.colors.mark;
|
|
51
|
-
const markW = resolvePositiveNumber(image?.width ?? width, tokens.defaults.width);
|
|
52
|
-
const markH = resolvePositiveNumber(image?.height ?? height, tokens.defaults.height);
|
|
53
|
-
const cellW = Math.max(1, markW + rGapX);
|
|
54
|
-
const cellH = Math.max(1, markH + rGapY);
|
|
55
|
-
const rows = size.height ? Math.ceil(size.height / cellH) + 1 : 1;
|
|
56
|
-
const cols = size.width ? Math.ceil(size.width / cellW) + 1 : 1;
|
|
57
|
-
const onLayoutCalcRef = useRef(onLayoutCalculated);
|
|
58
|
-
onLayoutCalcRef.current = onLayoutCalculated;
|
|
59
|
-
const handleLayout = useCallback(event => {
|
|
60
|
-
if (fullPage) return;
|
|
61
|
-
const {
|
|
62
|
-
width: w,
|
|
63
|
-
height: h
|
|
64
|
-
} = event.nativeEvent.layout;
|
|
65
|
-
if (!isFiniteNumber(w) || !isFiniteNumber(h)) return;
|
|
66
|
-
const nw = Math.max(0, w),
|
|
67
|
-
nh = Math.max(0, h);
|
|
68
|
-
if (lastLayoutRef.current.width === nw && lastLayoutRef.current.height === nh) return;
|
|
69
|
-
lastLayoutRef.current = {
|
|
70
|
-
width: nw,
|
|
71
|
-
height: nh
|
|
72
|
-
};
|
|
73
|
-
setLayoutSize({
|
|
74
|
-
width: nw,
|
|
75
|
-
height: nh
|
|
76
|
-
});
|
|
77
|
-
onLayoutCalcRef.current?.({
|
|
78
|
-
width: nw,
|
|
79
|
-
height: nh
|
|
80
|
-
});
|
|
81
|
-
}, [fullPage]);
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
if (!fullPage || !isFiniteNumber(window.width) || !isFiniteNumber(window.height) || window.width <= 0 || window.height <= 0) return;
|
|
84
|
-
onLayoutCalcRef.current?.({
|
|
85
|
-
width: window.width,
|
|
86
|
-
height: window.height
|
|
87
|
-
});
|
|
88
|
-
}, [fullPage, window.width, window.height]);
|
|
89
|
-
const zIdxStyle = useMemo(() => ({
|
|
90
|
-
zIndex
|
|
91
|
-
}), [zIndex]);
|
|
92
|
-
const cellStyle = useMemo(() => ({
|
|
93
|
-
width: cellW,
|
|
94
|
-
height: cellH
|
|
95
|
-
}), [cellW, cellH]);
|
|
96
|
-
const oddRowStyle = useMemo(() => ({
|
|
97
|
-
paddingLeft: cellW / 2
|
|
98
|
-
}), [cellW]);
|
|
99
|
-
const markStyle = useMemo(() => ({
|
|
100
|
-
width: markW,
|
|
101
|
-
height: markH,
|
|
102
|
-
transform: [{
|
|
103
|
-
rotate: `${rRotate}deg`
|
|
104
|
-
}]
|
|
105
|
-
}), [markW, markH, rRotate]);
|
|
106
|
-
const imgStyle = useMemo(() => ({
|
|
107
|
-
width: markW,
|
|
108
|
-
height: markH,
|
|
109
|
-
opacity: rOpacity
|
|
110
|
-
}), [markW, markH, rOpacity]);
|
|
111
|
-
const txtBaseStyle = useMemo(() => ({
|
|
112
|
-
fontSize: normFontSz,
|
|
113
|
-
color: rColor,
|
|
114
|
-
opacity: rOpacity,
|
|
115
|
-
fontFamily: font?.family,
|
|
116
|
-
fontWeight: font?.weight
|
|
117
|
-
}), [normFontSz, rColor, rOpacity, font?.family, font?.weight]);
|
|
118
|
-
const rowIdx = Array.from({
|
|
119
|
-
length: rows
|
|
120
|
-
}, (_, i) => i);
|
|
121
|
-
const colIdx = Array.from({
|
|
122
|
-
length: cols
|
|
123
|
-
}, (_, i) => i);
|
|
124
|
-
return /*#__PURE__*/React.createElement(View, _extends({
|
|
125
|
-
pointerEvents: "none",
|
|
126
|
-
importantForAccessibility: "no-hide-descendants",
|
|
127
|
-
accessibilityElementsHidden: true,
|
|
128
|
-
style: [fullPage ? tokens.layout.absoluteFill : null, zIdxStyle, style],
|
|
129
|
-
onLayout: handleLayout
|
|
130
|
-
}, rest), /*#__PURE__*/React.createElement(View, {
|
|
131
|
-
style: tokens.layout.wrapper
|
|
132
|
-
}, rowIdx.map(ri => /*#__PURE__*/React.createElement(View, {
|
|
133
|
-
key: `row-${ri}`,
|
|
134
|
-
style: [tokens.layout.row, ri % 2 === 0 ? null : oddRowStyle]
|
|
135
|
-
}, colIdx.map(ci => /*#__PURE__*/React.createElement(View, {
|
|
136
|
-
key: `col-${ri}-${ci}`,
|
|
137
|
-
style: [tokens.layout.cell, cellStyle]
|
|
138
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
139
|
-
style: [tokens.layout.mark, markStyle]
|
|
140
|
-
}, image ? /*#__PURE__*/React.createElement(Image, {
|
|
141
|
-
source: {
|
|
142
|
-
uri: image.src
|
|
143
|
-
},
|
|
144
|
-
style: imgStyle,
|
|
145
|
-
resizeMode: "contain"
|
|
146
|
-
}) : /*#__PURE__*/React.createElement(Text, {
|
|
147
|
-
allowFontScaling: false,
|
|
148
|
-
style: [txtBaseStyle, textStyle]
|
|
149
|
-
}, content))))))));
|
|
150
|
-
};
|
|
151
|
-
const WaterMark = /*#__PURE__*/React.memo(WaterMarkImpl);
|
|
152
|
-
WaterMark.displayName = 'WaterMark';
|
|
153
|
-
export default WaterMark;
|
|
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 a in i)({}).hasOwnProperty.call(i,a)&&(e[a]=i[a])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Image,Text,View,useWindowDimensions}from"react-native";import{isFiniteNumber,isString}from"../../utils";import{useWaterMarkTokens}from"./tokens";const resolveFiniteNumber=(e,t)=>isFiniteNumber(e)?e:t,resolveNonNegativeNumber=(e,t)=>Math.max(0,resolveFiniteNumber(e,t)),resolvePositiveNumber=(e,t)=>Math.max(1,resolveFiniteNumber(e,t)),WaterMarkImpl=e=>{const{content:t,width:i,height:a,gapX:r,gapY:n,rotate:o,image:s,font:l,fontSize:u,color:h,opacity:m,zIndex:c,fullPage:d,tokensOverride:g,style:f,onLayoutCalculated:w,textStyle:y,...N}=e,b=useWaterMarkTokens(g),v=t??b.defaults.content,p=resolveFiniteNumber(c,b.defaults.zIndex),M=d??b.defaults.fullPage,F=useWindowDimensions(),[x,k]=useState({width:0,height:0}),E=useRef({width:0,height:0}),R=M?F:x,z=resolveNonNegativeNumber(r,b.defaults.gapX),W=resolveNonNegativeNumber(n,b.defaults.gapY),S=resolveFiniteNumber(o,b.defaults.rotate),I=Math.max(0,Math.min(1,resolveFiniteNumber(m,b.defaults.opacity))),P=isFiniteNumber(l?.size)?l.size:isString(l?.size)?Number.parseFloat(l.size):void 0,V=Math.max(0,resolveFiniteNumber((Number.isFinite(P??Number.NaN)?P:void 0)??u,b.defaults.fontSize)),O=l?.color??h??b.colors.mark,T=resolvePositiveNumber(s?.width??i,b.defaults.width),$=resolvePositiveNumber(s?.height??a,b.defaults.height),_=Math.max(1,T+z),A=Math.max(1,$+W),C=R.height?Math.ceil(R.height/A)+1:1,L=R.width?Math.ceil(R.width/_)+1:1,j=useRef(w);j.current=w;const D=useCallback(e=>{if(M)return;const{width:t,height:i}=e.nativeEvent.layout;if(!isFiniteNumber(t)||!isFiniteNumber(i))return;const a=Math.max(0,t),r=Math.max(0,i);E.current.width===a&&E.current.height===r||(E.current={width:a,height:r},k({width:a,height:r}),j.current?.({width:a,height:r}))},[M]);useEffect(()=>{!M||!isFiniteNumber(F.width)||!isFiniteNumber(F.height)||F.width<=0||F.height<=0||j.current?.({width:F.width,height:F.height})},[M,F.width,F.height]);const X=useMemo(()=>({zIndex:p}),[p]),Y=useMemo(()=>({width:_,height:A}),[_,A]),H=useMemo(()=>({paddingLeft:_/2}),[_]),q=useMemo(()=>({width:T,height:$,transform:[{rotate:`${S}deg`}]}),[T,$,S]),B=useMemo(()=>({width:T,height:$,opacity:I}),[T,$,I]),G=useMemo(()=>({fontSize:V,color:O,opacity:I,fontFamily:l?.family,fontWeight:l?.weight}),[V,O,I,l?.family,l?.weight]),J=Array.from({length:C},(e,t)=>t),K=Array.from({length:L},(e,t)=>t);return React.createElement(View,_extends({pointerEvents:"none",importantForAccessibility:"no-hide-descendants",accessibilityElementsHidden:!0,style:[M?b.layout.absoluteFill:null,X,f],onLayout:D},N),React.createElement(View,{style:b.layout.wrapper},J.map(e=>React.createElement(View,{key:`row-${e}`,style:[b.layout.row,e%2==0?null:H]},K.map(t=>React.createElement(View,{key:`col-${e}-${t}`,style:[b.layout.cell,Y]},React.createElement(View,{style:[b.layout.mark,q]},s?React.createElement(Image,{source:{uri:s.src},style:B,resizeMode:"contain"}):React.createElement(Text,{allowFontScaling:!1,style:[G,y]},v))))))))},WaterMark=React.memo(WaterMarkImpl);WaterMark.displayName="WaterMark";export default WaterMark;
|
|
@@ -1,42 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { createComponentTokensHook } from '../../design-system';
|
|
3
|
-
const createTokens = foundations => {
|
|
4
|
-
const {
|
|
5
|
-
palette
|
|
6
|
-
} = foundations;
|
|
7
|
-
return {
|
|
8
|
-
defaults: {
|
|
9
|
-
content: 'WaterMark',
|
|
10
|
-
width: 120,
|
|
11
|
-
height: 64,
|
|
12
|
-
gapX: 24,
|
|
13
|
-
gapY: 48,
|
|
14
|
-
rotate: -22,
|
|
15
|
-
fontSize: 14,
|
|
16
|
-
opacity: 0.15,
|
|
17
|
-
zIndex: 2000,
|
|
18
|
-
fullPage: true
|
|
19
|
-
},
|
|
20
|
-
layout: {
|
|
21
|
-
absoluteFill: StyleSheet.absoluteFillObject,
|
|
22
|
-
wrapper: {
|
|
23
|
-
flex: 1
|
|
24
|
-
},
|
|
25
|
-
row: {
|
|
26
|
-
flexDirection: 'row'
|
|
27
|
-
},
|
|
28
|
-
cell: {
|
|
29
|
-
alignItems: 'center',
|
|
30
|
-
justifyContent: 'center'
|
|
31
|
-
},
|
|
32
|
-
mark: {
|
|
33
|
-
alignItems: 'center',
|
|
34
|
-
justifyContent: 'center'
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
colors: {
|
|
38
|
-
mark: palette.default[500]
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
export const useWaterMarkTokens = createComponentTokensHook('waterMark', createTokens);
|
|
1
|
+
import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";const createTokens=e=>{const{palette:t}=e;return{defaults:{content:"WaterMark",width:120,height:64,gapX:24,gapY:48,rotate:-22,fontSize:14,opacity:.15,zIndex:2e3,fullPage:!0},layout:{absoluteFill:StyleSheet.absoluteFillObject,wrapper:{flex:1},row:{flexDirection:"row"},cell:{alignItems:"center",justifyContent:"center"},mark:{alignItems:"center",justifyContent:"center"}},colors:{mark:t.default[500]}}};export const useWaterMarkTokens=createComponentTokensHook("waterMark",createTokens);
|
|
@@ -1,19 +1 @@
|
|
|
1
|
-
function _extends()
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Text as RNText } from 'react-native';
|
|
4
|
-
import { useTheme } from './useTheme';
|
|
5
|
-
export const Text = /*#__PURE__*/React.forwardRef(({
|
|
6
|
-
style,
|
|
7
|
-
...rest
|
|
8
|
-
}, ref) => {
|
|
9
|
-
const {
|
|
10
|
-
foundations
|
|
11
|
-
} = useTheme();
|
|
12
|
-
return /*#__PURE__*/React.createElement(RNText, _extends({
|
|
13
|
-
ref: ref,
|
|
14
|
-
style: [{
|
|
15
|
-
fontFamily: foundations.typography.fontFamily
|
|
16
|
-
}, style]
|
|
17
|
-
}, rest));
|
|
18
|
-
});
|
|
19
|
-
Text.displayName = 'Text';
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}import React from"react";import{Text as RNText}from"react-native";import{useTheme}from"./useTheme";export const Text=React.forwardRef(({style:e,...t},r)=>{const{foundations:n}=useTheme();return React.createElement(RNText,_extends({ref:r,style:[{fontFamily:n.typography.fontFamily},e]},t))});Text.displayName="Text";
|