react-native-unistyles 3.0.18 → 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.
- package/README.md +5 -2
- package/cxx/hybridObjects/HybridStyleSheet.cpp +3 -0
- package/lib/typescript/src/types/breakpoints.d.ts +12 -6
- package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +2 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +1 -0
- package/package.json +3 -3
- package/plugin/index.js +3 -2
- package/src/types/breakpoints.ts +40 -20
package/README.md
CHANGED
|
@@ -21,14 +21,14 @@ yarn add react-native-unistyles
|
|
|
21
21
|
Install dependencies:
|
|
22
22
|
|
|
23
23
|
```shell
|
|
24
|
-
yarn add react-native-edge-to-edge react-native-nitro-modules@0.31.
|
|
24
|
+
yarn add react-native-edge-to-edge react-native-nitro-modules@0.31.10
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
> To avoid unexpected behavior, always use a fixed version of `react-native-nitro-modules`
|
|
28
28
|
|
|
29
29
|
| react-native-unistyles | react-native-nitro-modules |
|
|
30
30
|
|------------------------|----------------------------|
|
|
31
|
-
| 3.0.0 | 0.31.
|
|
31
|
+
| 3.0.0 | 0.31.10 |
|
|
32
32
|
|
|
33
33
|
Then follow [installation guides](https://unistyl.es/v3/start/getting-started) for your platform.
|
|
34
34
|
|
|
@@ -80,6 +80,9 @@ Then follow [installation guides](https://unistyl.es/v3/start/getting-started) f
|
|
|
80
80
|
<a href="https://github.com/oliverloops">
|
|
81
81
|
<img src="https://avatars.githubusercontent.com/u/33361399?v=4" height="70px" width="70px" alt="oliverloops" />
|
|
82
82
|
</a>
|
|
83
|
+
<a href="https://github.com/cargurus-oss-fund">
|
|
84
|
+
<img src="https://avatars.githubusercontent.com/u/108300759?v=4" height="70px" width="70px" alt="cargurus-oss-fund" />
|
|
85
|
+
</a>
|
|
83
86
|
|
|
84
87
|
## Past sponsors
|
|
85
88
|
|
|
@@ -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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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
#include "UnistylesNativeMiniRuntime.hpp"
|
|
14
14
|
#include <functional>
|
|
15
|
+
#include <NitroModules/JNICallable.hpp>
|
|
15
16
|
#include "JUnistylesNativeMiniRuntime.hpp"
|
|
16
17
|
#include "ColorScheme.hpp"
|
|
17
18
|
#include "JColorScheme.hpp"
|
|
@@ -46,7 +47,7 @@ namespace margelo::nitro::unistyles {
|
|
|
46
47
|
/**
|
|
47
48
|
* An implementation of Func_void_UnistylesNativeMiniRuntime that is backed by a C++ implementation (using `std::function<...>`)
|
|
48
49
|
*/
|
|
49
|
-
|
|
50
|
+
class JFunc_void_UnistylesNativeMiniRuntime_cxx final: public jni::HybridClass<JFunc_void_UnistylesNativeMiniRuntime_cxx, JFunc_void_UnistylesNativeMiniRuntime> {
|
|
50
51
|
public:
|
|
51
52
|
static jni::local_ref<JFunc_void_UnistylesNativeMiniRuntime::javaobject> fromCpp(const std::function<void(const UnistylesNativeMiniRuntime& /* miniRuntime */)>& func) {
|
|
52
53
|
return JFunc_void_UnistylesNativeMiniRuntime_cxx::newObjectCxxArgs(func);
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include <vector>
|
|
15
15
|
#include "UnistylesNativeMiniRuntime.hpp"
|
|
16
16
|
#include <functional>
|
|
17
|
+
#include <NitroModules/JNICallable.hpp>
|
|
17
18
|
#include "JUnistyleDependency.hpp"
|
|
18
19
|
#include "JUnistylesNativeMiniRuntime.hpp"
|
|
19
20
|
#include "ColorScheme.hpp"
|
|
@@ -58,7 +59,7 @@ namespace margelo::nitro::unistyles {
|
|
|
58
59
|
/**
|
|
59
60
|
* An implementation of Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime that is backed by a C++ implementation (using `std::function<...>`)
|
|
60
61
|
*/
|
|
61
|
-
|
|
62
|
+
class JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime_cxx final: public jni::HybridClass<JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime_cxx, JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime> {
|
|
62
63
|
public:
|
|
63
64
|
static jni::local_ref<JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime::javaobject> fromCpp(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */, const UnistylesNativeMiniRuntime& /* miniRuntime */)>& func) {
|
|
64
65
|
return JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime_cxx::newObjectCxxArgs(func);
|
|
@@ -35,6 +35,7 @@ namespace margelo::nitro::unistyles { enum class UnistyleDependency; }
|
|
|
35
35
|
#include <vector>
|
|
36
36
|
#include <functional>
|
|
37
37
|
#include "JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp"
|
|
38
|
+
#include <NitroModules/JNICallable.hpp>
|
|
38
39
|
#include "JUnistyleDependency.hpp"
|
|
39
40
|
#include "JFunc_void_UnistylesNativeMiniRuntime.hpp"
|
|
40
41
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-unistyles",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.20",
|
|
4
4
|
"description": "Level up your React Native StyleSheet",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "NODE_ENV=babel-test jest ./plugin",
|
|
@@ -146,11 +146,11 @@
|
|
|
146
146
|
"husky": "9.1.7",
|
|
147
147
|
"jest": "29.7.0",
|
|
148
148
|
"metro-react-native-babel-preset": "0.77.0",
|
|
149
|
-
"nitrogen": "0.31.
|
|
149
|
+
"nitrogen": "0.31.10",
|
|
150
150
|
"react": "19.1.0",
|
|
151
151
|
"react-native": "0.79.2",
|
|
152
152
|
"react-native-builder-bob": "0.40.10",
|
|
153
|
-
"react-native-nitro-modules": "0.31.
|
|
153
|
+
"react-native-nitro-modules": "0.31.10",
|
|
154
154
|
"react-native-reanimated": "3.17.5",
|
|
155
155
|
"react-native-web": "0.20.0",
|
|
156
156
|
"react-test-renderer": "19.1.0",
|
package/plugin/index.js
CHANGED
|
@@ -251,7 +251,8 @@ function toUnistylesDependency(dependency) {
|
|
|
251
251
|
case "themeName": {
|
|
252
252
|
return UnistyleDependency.ThemeName;
|
|
253
253
|
}
|
|
254
|
-
case "adaptiveThemes":
|
|
254
|
+
case "adaptiveThemes":
|
|
255
|
+
case "hasAdaptiveThemes": {
|
|
255
256
|
return UnistyleDependency.AdaptiveThemes;
|
|
256
257
|
}
|
|
257
258
|
case "breakpoint": {
|
|
@@ -679,7 +680,7 @@ function addDependencies(state, styleName, unistyle, detectedDependencies) {
|
|
|
679
680
|
target.properties.push(
|
|
680
681
|
t4.objectProperty(
|
|
681
682
|
t4.identifier("uni__dependencies"),
|
|
682
|
-
t4.arrayExpression(uniqueDependencies.filter((dep) => dep !== void 0).map((dep) => t4.numericLiteral(dep)))
|
|
683
|
+
t4.arrayExpression(uniqueDependencies.filter((dep) => dep !== void 0 && dep !== null).map((dep) => t4.numericLiteral(dep)))
|
|
683
684
|
)
|
|
684
685
|
);
|
|
685
686
|
});
|
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
|