react-native-unistyles 3.0.19 → 3.0.20
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.
|
@@ -100,6 +100,9 @@ jsi::Value HybridStyleSheet::init(jsi::Runtime &rt, const jsi::Value &thisVal, c
|
|
|
100
100
|
void HybridStyleSheet::parseSettings(jsi::Runtime &rt, jsi::Object settings) {
|
|
101
101
|
auto& registry = core::UnistylesRegistry::get();
|
|
102
102
|
|
|
103
|
+
// set defafults
|
|
104
|
+
registry.shouldUsePointsForBreakpoints = false;
|
|
105
|
+
|
|
103
106
|
helpers::enumerateJSIObject(rt, settings, [&](const std::string& propertyName, jsi::Value& propertyValue){
|
|
104
107
|
if (propertyName == "adaptiveThemes") {
|
|
105
108
|
helpers::assertThat(rt, propertyValue.isBool(), "StyleSheet.configure's adaptiveThemes must be of boolean type.");
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import type { ColorValue, OpaqueColorValue } from 'react-native';
|
|
2
|
-
import type { SafeReturnType } from './common';
|
|
2
|
+
import type { SafeReturnType, UnionToIntersection } from './common';
|
|
3
3
|
import type { TransformStyles } from './core';
|
|
4
4
|
import type { BreakpointsOrMediaQueries, ToDeepUnistyles } from './stylesheet';
|
|
5
5
|
type ExtractTransformArray<T> = T extends object ? {
|
|
6
6
|
[K in keyof T]: ExtractBreakpoints<T[K]>;
|
|
7
7
|
} : never;
|
|
8
|
-
type ExtractBreakpoints<T> = T extends object ? keyof T extends BreakpointsOrMediaQueries ? T[keyof T] : T extends Array<ToDeepUnistyles<TransformStyles>> ? Array<ExtractTransformArray<T[number]>> : {
|
|
8
|
+
type ExtractBreakpoints<T> = T extends object ? keyof T extends BreakpointsOrMediaQueries ? T[keyof T] : T extends Array<ToDeepUnistyles<TransformStyles>> ? Array<ExtractTransformArray<T[number]>> : T extends Array<infer _U> ? T : {
|
|
9
9
|
[K in keyof T]: ExtractBreakpoints<T[K]>;
|
|
10
10
|
} : T;
|
|
11
|
+
type IsEmptyObject<T> = T extends Record<string, never> ? true : keyof T extends never ? true : false;
|
|
11
12
|
type ParseNestedObject<T, ShouldFlatten> = T extends (...args: infer A) => infer R ? (...args: A) => ParseNestedObject<R, false> : T extends object ? T extends {
|
|
12
13
|
variants: infer R;
|
|
13
14
|
compoundVariants: infer C;
|
|
14
15
|
} ? (ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>) extends never ? ParseVariants<FlattenVariants<R, true>> & FlattenCompoundVariants<C, true> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false> : ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false> : T extends {
|
|
15
16
|
variants: infer R;
|
|
16
|
-
} ? (ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>) extends never ? ParseVariants<FlattenVariants<R, true>> & ParseNestedObject<Omit<T, 'variants'>, false> : ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false> : T extends {
|
|
17
|
+
} ? IsEmptyObject<ParseNestedObject<Omit<T, 'variants'>, false>> extends true ? ParseVariants<FlattenVariants<R, false>> : (ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>) extends never ? ParseVariants<FlattenVariants<R, true>> & ParseNestedObject<Omit<T, 'variants'>, false> : ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false> : T extends {
|
|
17
18
|
compoundVariants: object;
|
|
18
19
|
} ? ParseNestedObject<Omit<T, 'compoundVariants'>, false> : {
|
|
19
20
|
[K in keyof T as K extends '_web' ? never : K]: T[K] extends object ? T[K] extends OpaqueColorValue ? ColorValue : ExtractBreakpoints<T[K]> : T[K] extends string ? ShouldFlatten extends true ? string : T[K] : T[K];
|
|
@@ -26,9 +27,14 @@ type FlattenVariants<T, ShouldFlatten> = T extends object ? {
|
|
|
26
27
|
type FlattenCompoundVariants<T, ShouldFlatten> = T extends Array<infer _> ? FlattenCompoundVariants<T[number], ShouldFlatten> : T extends {
|
|
27
28
|
styles: infer S;
|
|
28
29
|
} ? ParseNestedObject<S, ShouldFlatten> : never;
|
|
29
|
-
type
|
|
30
|
-
type
|
|
31
|
-
type
|
|
30
|
+
type IsNonEmpty<T> = T extends object ? (keyof T extends never ? false : true) : false;
|
|
31
|
+
type IntersectCategoryValues<T> = T extends object ? T extends Array<any> ? T : UnionToIntersection<T[keyof T]> extends infer R ? R extends never ? T[keyof T] : R : never : never;
|
|
32
|
+
type MergeVariantCategories<T> = T extends object ? UnionToIntersection<{
|
|
33
|
+
[K in keyof T]: IsNonEmpty<T[K]> extends true ? T[K] : never;
|
|
34
|
+
}[keyof T]> extends infer R ? R extends never ? NonNullable<T[keyof T]> : R : never : never;
|
|
35
|
+
type ParseVariants<T> = T extends object ? T[keyof T] extends object ? T[keyof T] extends Array<any> ? T : MergeVariantCategories<{
|
|
36
|
+
[K in keyof T]: T[K] extends object ? IntersectCategoryValues<T[K]> : never;
|
|
37
|
+
}> : T : T;
|
|
32
38
|
type ParseStyleKeys<T> = T extends object ? {
|
|
33
39
|
[K in keyof T]: ParseNestedObject<T[K], false>;
|
|
34
40
|
} : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/types/breakpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/types/breakpoints.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/types/breakpoints.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ColorValue, OpaqueColorValue } from 'react-native'
|
|
2
|
-
import type { SafeReturnType } from './common'
|
|
2
|
+
import type { SafeReturnType, UnionToIntersection } from './common'
|
|
3
3
|
import type { TransformStyles } from './core'
|
|
4
4
|
import type { BreakpointsOrMediaQueries, ToDeepUnistyles } from './stylesheet'
|
|
5
5
|
|
|
@@ -12,24 +12,29 @@ type ExtractBreakpoints<T> = T extends object
|
|
|
12
12
|
? T[keyof T]
|
|
13
13
|
: T extends Array<ToDeepUnistyles<TransformStyles>>
|
|
14
14
|
? Array<ExtractTransformArray<T[number]>>
|
|
15
|
-
:
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
: T extends Array<infer _U>
|
|
16
|
+
? T
|
|
17
|
+
: {
|
|
18
|
+
[K in keyof T]: ExtractBreakpoints<T[K]>
|
|
19
|
+
}
|
|
18
20
|
: T
|
|
19
21
|
|
|
22
|
+
// Helper type to check if the base styles (without variants) are truly empty or just {}
|
|
23
|
+
type IsEmptyObject<T> = T extends Record<string, never> ? true : keyof T extends never ? true : false
|
|
24
|
+
|
|
20
25
|
type ParseNestedObject<T, ShouldFlatten> = T extends (...args: infer A) => infer R
|
|
21
26
|
? (...args: A) => ParseNestedObject<R, false>
|
|
22
27
|
: T extends object
|
|
23
28
|
? T extends { variants: infer R, compoundVariants: infer C }
|
|
24
|
-
// // if intersection of Base, Variants and Compound Variants is never, then flatten variants and compound variants to generic "string"
|
|
25
29
|
? (ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>) extends never
|
|
26
30
|
? ParseVariants<FlattenVariants<R, true>> & FlattenCompoundVariants<C, true> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>
|
|
27
31
|
: ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>
|
|
28
32
|
: T extends { variants: infer R }
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
? IsEmptyObject<ParseNestedObject<Omit<T, 'variants'>, false>> extends true
|
|
34
|
+
? ParseVariants<FlattenVariants<R, false>>
|
|
35
|
+
: (ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>) extends never
|
|
36
|
+
? ParseVariants<FlattenVariants<R, true>> & ParseNestedObject<Omit<T, 'variants'>, false>
|
|
37
|
+
: ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>
|
|
33
38
|
: T extends { compoundVariants: object }
|
|
34
39
|
? ParseNestedObject<Omit<T, 'compoundVariants'>, false>
|
|
35
40
|
: {
|
|
@@ -63,25 +68,40 @@ type FlattenCompoundVariants<T, ShouldFlatten> = T extends Array<infer _>
|
|
|
63
68
|
? ParseNestedObject<S, ShouldFlatten>
|
|
64
69
|
: never
|
|
65
70
|
|
|
66
|
-
type
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
type IsNonEmpty<T> = T extends object ? (keyof T extends never ? false : true) : false
|
|
72
|
+
|
|
73
|
+
type IntersectCategoryValues<T> = T extends object
|
|
74
|
+
? T extends Array<any>
|
|
75
|
+
? T
|
|
76
|
+
: UnionToIntersection<T[keyof T]> extends infer R
|
|
77
|
+
? R extends never
|
|
78
|
+
? T[keyof T]
|
|
79
|
+
: R
|
|
80
|
+
: never
|
|
81
|
+
: never
|
|
82
|
+
|
|
83
|
+
type MergeVariantCategories<T> = T extends object
|
|
84
|
+
? UnionToIntersection<
|
|
85
|
+
{
|
|
86
|
+
[K in keyof T]: IsNonEmpty<T[K]> extends true ? T[K] : never
|
|
87
|
+
}[keyof T]
|
|
88
|
+
> extends infer R
|
|
89
|
+
? R extends never
|
|
90
|
+
? NonNullable<T[keyof T]>
|
|
91
|
+
: R
|
|
69
92
|
: never
|
|
70
93
|
: never
|
|
71
94
|
|
|
72
95
|
type ParseVariants<T> = T extends object
|
|
73
96
|
? T[keyof T] extends object
|
|
74
|
-
?
|
|
75
|
-
?
|
|
76
|
-
:
|
|
77
|
-
?
|
|
78
|
-
|
|
97
|
+
? T[keyof T] extends Array<any>
|
|
98
|
+
? T
|
|
99
|
+
: MergeVariantCategories<{
|
|
100
|
+
[K in keyof T]: T[K] extends object ? IntersectCategoryValues<T[K]> : never
|
|
101
|
+
}>
|
|
79
102
|
: T
|
|
80
103
|
: T
|
|
81
104
|
|
|
82
|
-
type UnionToIntersection<U> =
|
|
83
|
-
(U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
|
|
84
|
-
|
|
85
105
|
type ParseStyleKeys<T> = T extends object
|
|
86
106
|
? { [K in keyof T]: ParseNestedObject<T[K], false> }
|
|
87
107
|
: never
|