1- import * as RN from "react-native" ;
2-
3- declare module "react-native-size-matters" {
4- interface StringifiedStyles {
5- fontSize ?: string | number ;
6- letterSpacing ?: string | number ;
7- lineHeight ?: string | number ;
8- textShadowRadius ?: string | number ;
9- borderBottomLeftRadius ?: string | number ;
10- borderBottomRightRadius ?: string | number ;
11- borderTopLeftRadius ?: string | number ;
12- borderTopRightRadius ?: string | number ;
13- borderBottomWidth ?: string | number ;
14- borderTopWidth ?: string | number ;
15- borderRightWidth ?: string | number ;
16- borderLeftWidth ?: string | number ;
17- borderRadius ?: string | number ;
18- shadowRadius ?: string | number ;
19- borderWidth ?: string | number ;
20- aspectRatio ?: string | number ;
21- rotation ?: string | number ;
22- scaleX ?: string | number ;
23- scaleY ?: string | number ;
24- translateX ?: string | number ;
25- translateY ?: string | number ;
26- padding ?: string | number ;
27- paddingLeft ?: string | number ;
28- paddingRight ?: string | number ;
29- paddingTop ?: string | number ;
30- paddingBottom ?: string | number ;
31- paddingHorizontal ?: string | number ;
32- paddingVertical ?: string | number ;
33- margin ?: string | number ;
34- marginLeft ?: string | number ;
35- marginRight ?: string | number ;
36- marginTop ?: string | number ;
37- marginBottom ?: string | number ;
38- marginHorizontal ?: string | number ;
39- marginVertical ?: string | number ;
40- top ?: string | number ;
41- left ?: string | number ;
42- right ?: string | number ;
43- bottom ?: string | number ;
44- width ?: string | number ;
45- height ?: string | number ;
46- minWidth ?: string | number ;
47- minHeight ?: string | number ;
48- maxWidth ?: string | number ;
49- maxHeight ?: string | number ;
50- }
1+ import * as RN from 'react-native' ;
512
3+ declare module 'react-native-size-matters' {
524 export function scale ( size : number ) : number ;
535 export function verticalScale ( size : number ) : number ;
546 export function moderateScale ( size : number , factor ?: number ) : number ;
@@ -58,14 +10,24 @@ declare module "react-native-size-matters" {
5810 export function ms ( size : number , factor ?: number ) : number ;
5911 export function mvs ( size : number , factor ?: number ) : number ;
6012
61- type ViewStyle = Omit < RN . ViewStyle , keyof StringifiedStyles > & StringifiedStyles ;
62- type TextStyle = Omit < RN . TextStyle , keyof StringifiedStyles > & StringifiedStyles ;
63- type ImageStyle = Omit < RN . ImageStyle , keyof StringifiedStyles > & StringifiedStyles ;
13+ type Scale = `${number } @s`;
14+ type VerticalScale = `${number } @vs`;
15+ type ModerateScale = `${number } @ms${number | '' } `;
16+ type ModerateVerticalScale = `${number } @mvs${number | '' } `;
17+ type Size = Scale | VerticalScale | ModerateScale | ModerateVerticalScale ;
18+ type WithSize < T > = { [ P in keyof T ] : number extends T [ P ] ? Size | T [ P ] : T [ P ] } ;
19+ type ViewStyle = WithSize < RN . ViewStyle > ;
20+ type TextStyle = WithSize < RN . TextStyle > ;
21+ type ImageStyle = WithSize < RN . ImageStyle > ;
6422 type NamedStyles < T > = { [ P in keyof T ] : ViewStyle | TextStyle | ImageStyle } ;
6523
6624 export namespace ScaledSheet {
67- export function create < T extends NamedStyles < T > | NamedStyles < any > > ( stylesObject : T ) : {
68- [ P in keyof T ] : RN . RegisteredStyle < T [ P ] & Record < Extract < keyof T [ P ] , keyof StringifiedStyles > , number > >
25+ export function create < T extends NamedStyles < T > | NamedStyles < any > > (
26+ stylesObject : T ,
27+ ) : {
28+ [ P in keyof T ] : RN . RegisteredStyle < {
29+ [ S in keyof T [ P ] ] : T [ P ] [ S ] extends Size ? number : T [ P ] [ S ] ;
30+ } > ;
6931 } ;
7032 }
7133}
0 commit comments