react-native-unistyles 3.2.3 → 3.2.5
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 +6 -6
- package/cxx/core/UnistyleWrapper.h +22 -1
- package/cxx/hybridObjects/HybridStyleSheet.cpp +25 -61
- package/cxx/hybridObjects/HybridStyleSheet.h +2 -0
- package/cxx/parser/Parser.cpp +10 -1
- package/lib/commonjs/reanimated/useAnimatedTheme.js +14 -3
- package/lib/commonjs/reanimated/useAnimatedTheme.js.map +1 -1
- package/lib/commonjs/reanimated/useAnimatedTheme.native.js +14 -4
- package/lib/commonjs/reanimated/useAnimatedTheme.native.js.map +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js +1 -1
- package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
- package/lib/commonjs/web/convert/object/boxShadow.js +1 -1
- package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
- package/lib/module/reanimated/useAnimatedTheme.js +16 -5
- package/lib/module/reanimated/useAnimatedTheme.js.map +1 -1
- package/lib/module/reanimated/useAnimatedTheme.native.js +16 -6
- package/lib/module/reanimated/useAnimatedTheme.native.js.map +1 -1
- package/lib/module/specs/StyleSheet/index.js +1 -1
- package/lib/module/specs/StyleSheet/index.js.map +1 -1
- package/lib/module/web/convert/object/boxShadow.js +1 -1
- package/lib/module/web/convert/object/boxShadow.js.map +1 -1
- package/lib/typescript/src/components/native/Animated.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/useAnimatedTheme.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/useAnimatedTheme.native.d.ts.map +1 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts +1 -1
- package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +14 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +33 -0
- package/package.json +8 -8
- package/plugin/index.js +42 -30
- package/src/reanimated/useAnimatedTheme.native.ts +21 -6
- package/src/reanimated/useAnimatedTheme.ts +20 -7
- package/src/specs/StyleSheet/index.ts +2 -2
- package/src/web/convert/object/boxShadow.ts +1 -1
package/README.md
CHANGED
|
@@ -73,12 +73,6 @@ Then follow [installation guides](https://unistyl.es/v3/start/getting-started) f
|
|
|
73
73
|
<a href="https://github.com/andkindness">
|
|
74
74
|
<img src="https://avatars.githubusercontent.com/u/143941782?v=4" height="70px" width="70px" alt="andkindness" />
|
|
75
75
|
</a>
|
|
76
|
-
<a href="https://github.com/AdiRishi">
|
|
77
|
-
<img src="https://avatars.githubusercontent.com/u/8351234?v=4" height="70px" width="70px" alt="AdiRishi" />
|
|
78
|
-
</a>
|
|
79
|
-
<a href="https://github.com/cybercarrot">
|
|
80
|
-
<img src="https://avatars.githubusercontent.com/u/6837094?v=4" height="70px" width="70px" alt="cybercarrot" />
|
|
81
|
-
</a>
|
|
82
76
|
|
|
83
77
|
|
|
84
78
|
## Past sponsors
|
|
@@ -155,6 +149,12 @@ Then follow [installation guides](https://unistyl.es/v3/start/getting-started) f
|
|
|
155
149
|
<a href="https://github.com/biw">
|
|
156
150
|
<img src="https://avatars.githubusercontent.com/u/6139501?v=4" height="60px" width="60px" alt="biw" />
|
|
157
151
|
</a>
|
|
152
|
+
<a href="https://github.com/cybercarrot">
|
|
153
|
+
<img src="https://avatars.githubusercontent.com/u/6837094?v=4" height="60px" width="60px" alt="cybercarrot" />
|
|
154
|
+
</a>
|
|
155
|
+
<a href="https://github.com/AdiRishi">
|
|
156
|
+
<img src="https://avatars.githubusercontent.com/u/8351234?v=4" height="60px" width="60px" alt="AdiRishi" />
|
|
157
|
+
</a>
|
|
158
158
|
|
|
159
159
|
## Sponsor my work
|
|
160
160
|
|
|
@@ -158,8 +158,29 @@ inline static jsi::Value objectFromUnistyle(jsi::Runtime& rt, std::shared_ptr<Hy
|
|
|
158
158
|
) {
|
|
159
159
|
auto& registry = UnistylesRegistry::get();
|
|
160
160
|
auto unistyle = registry.getUnistyleById(unistyleID);
|
|
161
|
+
auto scopedTheme = registry.getScopedTheme();
|
|
162
|
+
parser::Parser parser(unistylesRuntime);
|
|
161
163
|
|
|
162
|
-
|
|
164
|
+
// scoped theme path — parse with scope so `withUnistyles`-wrapped
|
|
165
|
+
// components inside <ScopedTheme> reflect the scope instead of the global theme
|
|
166
|
+
if (scopedTheme.has_value() && unistyle->styleKey != helpers::EXOTIC_STYLE_KEY) {
|
|
167
|
+
std::vector<folly::dynamic> scopedArguments = parsedArguments.has_value()
|
|
168
|
+
? parsedArguments.value()
|
|
169
|
+
: std::vector<folly::dynamic>{};
|
|
170
|
+
|
|
171
|
+
auto unistyleData = std::make_shared<UnistyleData>(unistyle, variants, scopedArguments, scopedTheme);
|
|
172
|
+
auto parsedStyleSheet = parser.getParsedStyleSheetForScopedTheme(rt, unistyle, scopedTheme.value());
|
|
173
|
+
|
|
174
|
+
if (!parsedStyleSheet.isUndefined()) {
|
|
175
|
+
parser.rebuildUnistyleWithScopedTheme(rt, parsedStyleSheet, unistyleData);
|
|
176
|
+
|
|
177
|
+
if (unistyleData->parsedStyle.has_value()) {
|
|
178
|
+
return jsi::Value(rt, unistyleData->parsedStyle.value()).asObject(rt);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
parser.rebuildUnistyle(rt, unistyle, variants, parsedArguments);
|
|
163
184
|
|
|
164
185
|
return jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
|
|
165
186
|
});
|
|
@@ -271,32 +271,9 @@ void HybridStyleSheet::onPlatformDependenciesChange(std::vector<UnistyleDependen
|
|
|
271
271
|
return;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
auto& registry = core::UnistylesRegistry::get();
|
|
275
|
-
auto parser = parser::Parser(self->_unistylesRuntime);
|
|
276
274
|
auto unistyleDependencies = dependencies;
|
|
277
|
-
auto dependencyMap = registry.buildDependencyMap(unistyleDependencies);
|
|
278
|
-
|
|
279
|
-
if (dependencyMap.empty()) {
|
|
280
|
-
self->notifyJSListeners(unistyleDependencies);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
|
284
|
-
// however, user may have StyleSheets with components that haven't mounted yet
|
|
285
|
-
// we need to rebuild all dependent StyleSheets as well
|
|
286
|
-
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(unistyleDependencies);
|
|
287
|
-
|
|
288
|
-
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, std::nullopt);
|
|
289
|
-
|
|
290
|
-
// we need to stop here if there is nothing to update at the moment,
|
|
291
|
-
// but we need to compute dependentStyleSheets
|
|
292
|
-
if (dependencyMap.empty()) {
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
|
297
275
|
|
|
298
|
-
self->
|
|
299
|
-
shadow::ShadowTreeManager::updateShadowTree(rt);
|
|
276
|
+
self->applyDependencyChanges(rt, unistyleDependencies, std::nullopt);
|
|
300
277
|
});
|
|
301
278
|
}
|
|
302
279
|
|
|
@@ -316,7 +293,6 @@ void HybridStyleSheet::onPlatformNativeDependenciesChange(std::vector<UnistyleDe
|
|
|
316
293
|
}
|
|
317
294
|
|
|
318
295
|
auto& registry = core::UnistylesRegistry::get();
|
|
319
|
-
auto parser = parser::Parser(self->_unistylesRuntime);
|
|
320
296
|
auto unistyleDependencies = std::move(dependencies);
|
|
321
297
|
|
|
322
298
|
// re-compute new breakpoint
|
|
@@ -339,29 +315,7 @@ void HybridStyleSheet::onPlatformNativeDependenciesChange(std::vector<UnistyleDe
|
|
|
339
315
|
self->_unistylesRuntime->includeDependenciesForColorSchemeChange(unistyleDependencies);
|
|
340
316
|
}
|
|
341
317
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if (dependencyMap.empty()) {
|
|
345
|
-
self->notifyJSListeners(unistyleDependencies);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
// in a later step, we will rebuild only Unistyles with mounted StyleSheets
|
|
349
|
-
// however, user may have StyleSheets with components that haven't mounted yet
|
|
350
|
-
// we need to rebuild all dependent StyleSheets as well
|
|
351
|
-
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(unistyleDependencies);
|
|
352
|
-
|
|
353
|
-
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, miniRuntime);
|
|
354
|
-
|
|
355
|
-
// we need to stop here if there is nothing to update at the moment,
|
|
356
|
-
// but we need to compute dependentStyleSheets
|
|
357
|
-
if (dependencyMap.empty()) {
|
|
358
|
-
return;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
|
362
|
-
|
|
363
|
-
self->notifyJSListeners(unistyleDependencies);
|
|
364
|
-
shadow::ShadowTreeManager::updateShadowTree(rt);
|
|
318
|
+
self->applyDependencyChanges(rt, unistyleDependencies, miniRuntime);
|
|
365
319
|
});
|
|
366
320
|
}
|
|
367
321
|
|
|
@@ -380,26 +334,36 @@ void HybridStyleSheet::onImeChange(UnistylesNativeMiniRuntime miniRuntime) {
|
|
|
380
334
|
}
|
|
381
335
|
|
|
382
336
|
std::vector<UnistyleDependency> dependencies{UnistyleDependency::IME};
|
|
383
|
-
auto& registry = core::UnistylesRegistry::get();
|
|
384
|
-
auto parser = parser::Parser(self->_unistylesRuntime);
|
|
385
|
-
auto dependencyMap = registry.buildDependencyMap(dependencies);
|
|
386
337
|
|
|
387
|
-
|
|
388
|
-
|
|
338
|
+
self->applyDependencyChanges(rt, dependencies, miniRuntime);
|
|
339
|
+
});
|
|
340
|
+
}
|
|
389
341
|
|
|
390
|
-
|
|
391
|
-
|
|
342
|
+
void HybridStyleSheet::applyDependencyChanges(jsi::Runtime& rt, std::vector<UnistyleDependency>& dependencies, std::optional<UnistylesNativeMiniRuntime> maybeMiniRuntime) {
|
|
343
|
+
auto& registry = core::UnistylesRegistry::get();
|
|
344
|
+
auto parser = parser::Parser(this->_unistylesRuntime);
|
|
345
|
+
auto dependencyMap = registry.buildDependencyMap(dependencies);
|
|
346
|
+
|
|
347
|
+
// include StyleSheets consumed only by JS (withUnistyles) — they aren't in dependencyMap
|
|
348
|
+
// but their rawValue must still be refreshed so rerenders read fresh closures
|
|
349
|
+
auto dependentStyleSheets = registry.getStyleSheetsToRefresh(dependencies);
|
|
350
|
+
|
|
351
|
+
if (dependencyMap.empty() && dependentStyleSheets.empty()) {
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
392
354
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
std::vector<std::shared_ptr<core::StyleSheet>> dependentStyleSheets;
|
|
355
|
+
// rebuild rawValue BEFORE notifying listeners so JS rerenders read fresh closures
|
|
356
|
+
parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, maybeMiniRuntime);
|
|
396
357
|
|
|
397
|
-
|
|
358
|
+
if (!dependencyMap.empty()) {
|
|
398
359
|
parser.rebuildShadowLeafUpdates(rt, dependencyMap);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
this->notifyJSListeners(dependencies);
|
|
399
363
|
|
|
400
|
-
|
|
364
|
+
if (!dependencyMap.empty()) {
|
|
401
365
|
shadow::ShadowTreeManager::updateShadowTree(rt);
|
|
402
|
-
}
|
|
366
|
+
}
|
|
403
367
|
}
|
|
404
368
|
|
|
405
369
|
void HybridStyleSheet::notifyJSListeners(std::vector<UnistyleDependency>& dependencies) {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
#include <cmath>
|
|
4
4
|
#include <jsi/jsi.h>
|
|
5
5
|
#include <mutex>
|
|
6
|
+
#include <optional>
|
|
6
7
|
#include <unordered_map>
|
|
7
8
|
#include "HybridUnistylesRuntime.h"
|
|
8
9
|
#include "HybridUnistylesStyleSheetSpec.hpp"
|
|
@@ -69,6 +70,7 @@ private:
|
|
|
69
70
|
void onPlatformDependenciesChange(std::vector<UnistyleDependency> dependencies);
|
|
70
71
|
void onPlatformNativeDependenciesChange(std::vector<UnistyleDependency> dependencies, UnistylesNativeMiniRuntime miniRuntime);
|
|
71
72
|
void onImeChange(UnistylesNativeMiniRuntime miniRuntime);
|
|
73
|
+
void applyDependencyChanges(jsi::Runtime& rt, std::vector<UnistyleDependency>& dependencies, std::optional<UnistylesNativeMiniRuntime> maybeMiniRuntime);
|
|
72
74
|
void notifyJSListeners(std::vector<UnistyleDependency>& dependencies);
|
|
73
75
|
|
|
74
76
|
bool isInitialized = false;
|
package/cxx/parser/Parser.cpp
CHANGED
|
@@ -494,7 +494,7 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
|
|
|
494
494
|
|
|
495
495
|
return;
|
|
496
496
|
}
|
|
497
|
-
|
|
497
|
+
|
|
498
498
|
if (propertyValue.isBool() && propertyName == "includeFontPadding") {
|
|
499
499
|
parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), propertyValue);
|
|
500
500
|
|
|
@@ -1008,6 +1008,15 @@ jsi::Value parser::Parser::parseSecondLevel(jsi::Runtime &rt, Unistyle::Shared u
|
|
|
1008
1008
|
return;
|
|
1009
1009
|
}
|
|
1010
1010
|
|
|
1011
|
+
// PlatformColor / DynamicColorIOS / Android ColorResource objects must
|
|
1012
|
+
// pass through unchanged — otherwise getValueFromBreakpoints treats them
|
|
1013
|
+
// as a breakpoint map and strips the color
|
|
1014
|
+
if (helpers::isPlatformColor(rt, nestedObjectStyle)) {
|
|
1015
|
+
parsedStyle.setProperty(rt, propertyName.c_str(), propertyValue);
|
|
1016
|
+
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1011
1020
|
auto isArray = nestedObjectStyle.isArray(rt);
|
|
1012
1021
|
|
|
1013
1022
|
if (!isArray) {
|
|
@@ -9,13 +9,24 @@ var _reactNativeReanimated = require("react-native-reanimated");
|
|
|
9
9
|
var _specs = require("../specs");
|
|
10
10
|
var _services = require("../web/services");
|
|
11
11
|
const useAnimatedTheme = () => {
|
|
12
|
-
const
|
|
12
|
+
const [scopedTheme, setScopedTheme] = (0, _react.useState)(() => _specs.UnistylesShadowRegistry.getScopedTheme());
|
|
13
|
+
const theme = (0, _reactNativeReanimated.useSharedValue)(_specs.UnistylesRuntime.getTheme(scopedTheme));
|
|
14
|
+
const maybeNewScopedTheme = _specs.UnistylesShadowRegistry.getScopedTheme();
|
|
15
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
16
|
+
setScopedTheme(maybeNewScopedTheme);
|
|
17
|
+
theme.set(_specs.UnistylesRuntime.getTheme(maybeNewScopedTheme));
|
|
18
|
+
}
|
|
13
19
|
(0, _react.useEffect)(() => {
|
|
14
|
-
const dispose = _services.services.listener.addListeners([_specs.UnistyleDependency.Theme], () =>
|
|
20
|
+
const dispose = _services.services.listener.addListeners([_specs.UnistyleDependency.Theme], () => {
|
|
21
|
+
if (scopedTheme) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
theme.set(_specs.UnistylesRuntime.getTheme());
|
|
25
|
+
});
|
|
15
26
|
return () => {
|
|
16
27
|
dispose();
|
|
17
28
|
};
|
|
18
|
-
}, []);
|
|
29
|
+
}, [scopedTheme]);
|
|
19
30
|
return theme;
|
|
20
31
|
};
|
|
21
32
|
exports.useAnimatedTheme = useAnimatedTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","_specs","_services","useAnimatedTheme","theme","useSharedValue","UnistylesRuntime","getTheme","useEffect","dispose","services","listener","addListeners","UnistyleDependency","Theme","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_specs","_services","useAnimatedTheme","scopedTheme","setScopedTheme","useState","UnistylesShadowRegistry","getScopedTheme","theme","useSharedValue","UnistylesRuntime","getTheme","maybeNewScopedTheme","set","useEffect","dispose","services","listener","addListeners","UnistyleDependency","Theme","exports"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEO,MAAMI,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAC1C,MAAMC,8BAAuB,CAACC,cAAc,CAAC,CACjD,CAAC;EACD,MAAMC,KAAK,GAAG,IAAAC,qCAAc,EAACC,uBAAgB,CAACC,QAAQ,CAACR,WAAW,CAAC,CAAC;EACpE,MAAMS,mBAAmB,GAAGN,8BAAuB,CAACC,cAAc,CAAC,CAA+B;EAElG,IAAIJ,WAAW,KAAKS,mBAAmB,EAAE;IACrCR,cAAc,CAACQ,mBAAmB,CAAC;IACnCJ,KAAK,CAACK,GAAG,CAACH,uBAAgB,CAACC,QAAQ,CAACC,mBAAmB,CAAC,CAAC;EAC7D;EAEA,IAAAE,gBAAS,EAAC,MAAM;IACZ,MAAMC,OAAO,GAAGC,kBAAQ,CAACC,QAAQ,CAACC,YAAY,CAAC,CAACC,yBAAkB,CAACC,KAAK,CAAC,EAAE,MAAM;MAC7E,IAAIjB,WAAW,EAAE;QACb;MACJ;MAEAK,KAAK,CAACK,GAAG,CAACH,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,MAAM;MACTI,OAAO,CAAC,CAAC;IACb,CAAC;EACL,CAAC,EAAE,CAACZ,WAAW,CAAC,CAAC;EAEjB,OAAOK,KAAK;AAChB,CAAC;AAAAa,OAAA,CAAAnB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -8,15 +8,25 @@ var _react = require("react");
|
|
|
8
8
|
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
9
|
var _specs = require("../specs");
|
|
10
10
|
const useAnimatedTheme = () => {
|
|
11
|
-
const
|
|
11
|
+
const [scopedTheme, setScopedTheme] = (0, _react.useState)(() => _specs.UnistylesShadowRegistry.getScopedTheme());
|
|
12
|
+
const theme = (0, _reactNativeReanimated.useSharedValue)(_specs.UnistylesRuntime.getTheme(scopedTheme));
|
|
13
|
+
const maybeNewScopedTheme = _specs.UnistylesShadowRegistry.getScopedTheme();
|
|
14
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
15
|
+
setScopedTheme(maybeNewScopedTheme);
|
|
16
|
+
theme.set(_specs.UnistylesRuntime.getTheme(maybeNewScopedTheme));
|
|
17
|
+
}
|
|
12
18
|
(0, _react.useEffect)(() => {
|
|
13
19
|
const dispose = _specs.StyleSheet.addChangeListener(changedDependencies => {
|
|
14
|
-
if (changedDependencies.includes(_specs.UnistyleDependency.Theme)) {
|
|
15
|
-
|
|
20
|
+
if (!changedDependencies.includes(_specs.UnistyleDependency.Theme)) {
|
|
21
|
+
return;
|
|
16
22
|
}
|
|
23
|
+
if (scopedTheme) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
theme.set(_specs.UnistylesRuntime.getTheme());
|
|
17
27
|
});
|
|
18
28
|
return () => dispose();
|
|
19
|
-
}, []);
|
|
29
|
+
}, [scopedTheme]);
|
|
20
30
|
return theme;
|
|
21
31
|
};
|
|
22
32
|
exports.useAnimatedTheme = useAnimatedTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","_specs","useAnimatedTheme","theme","useSharedValue","UnistylesRuntime","getTheme","useEffect","dispose","StyleSheet","addChangeListener","changedDependencies","includes","UnistyleDependency","Theme","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_specs","useAnimatedTheme","scopedTheme","setScopedTheme","useState","UnistylesShadowRegistry","getScopedTheme","theme","useSharedValue","UnistylesRuntime","getTheme","maybeNewScopedTheme","set","useEffect","dispose","StyleSheet","addChangeListener","changedDependencies","includes","UnistyleDependency","Theme","exports"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.native.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAEO,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAC1C,MAAMC,8BAAuB,CAACC,cAAc,CAAC,CACjD,CAAC;EACD,MAAMC,KAAK,GAAG,IAAAC,qCAAc,EAACC,uBAAgB,CAACC,QAAQ,CAACR,WAAW,CAAC,CAAC;EACpE,MAAMS,mBAAmB,GAAGN,8BAAuB,CAACC,cAAc,CAAC,CAA+B;EAElG,IAAIJ,WAAW,KAAKS,mBAAmB,EAAE;IACrCR,cAAc,CAACQ,mBAAmB,CAAC;IACnCJ,KAAK,CAACK,GAAG,CAACH,uBAAgB,CAACC,QAAQ,CAACC,mBAAmB,CAAC,CAAC;EAC7D;EAEA,IAAAE,gBAAS,EAAC,MAAM;IACZ,MAAMC,OAAO,GAAGC,iBAAU,CAACC,iBAAiB,CAAEC,mBAAmB,IAAK;MAClE,IAAI,CAACA,mBAAmB,CAACC,QAAQ,CAACC,yBAAkB,CAACC,KAAK,CAAC,EAAE;QACzD;MACJ;MAEA,IAAIlB,WAAW,EAAE;QACb;MACJ;MAEAK,KAAK,CAACK,GAAG,CAACH,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,MAAMI,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACZ,WAAW,CAAC,CAAC;EAEjB,OAAOK,KAAK;AAChB,CAAC;AAAAc,OAAA,CAAApB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ var _reactNative = require("react-native");
|
|
|
8
8
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
9
9
|
var _parseBoxShadow = require("../../core/parseBoxShadow");
|
|
10
10
|
const HybridUnistylesStyleSheet = _reactNativeNitroModules.NitroModules.createHybridObject('UnistylesStyleSheet');
|
|
11
|
-
HybridUnistylesStyleSheet.absoluteFillObject = _reactNative.StyleSheet.
|
|
11
|
+
HybridUnistylesStyleSheet.absoluteFillObject = _reactNative.StyleSheet.absoluteFill;
|
|
12
12
|
HybridUnistylesStyleSheet.absoluteFill = _reactNative.StyleSheet.absoluteFill;
|
|
13
13
|
HybridUnistylesStyleSheet.flatten = _reactNative.StyleSheet.flatten;
|
|
14
14
|
HybridUnistylesStyleSheet.compose = _reactNative.StyleSheet.compose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_parseBoxShadow","HybridUnistylesStyleSheet","NitroModules","createHybridObject","absoluteFillObject","NativeStyleSheet","absoluteFill","flatten","compose","jsMethods","processColor","parseBoxShadowString","init","StyleSheet","exports"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAMA,IAAAE,eAAA,GAAAF,OAAA;AA2CA,MAAMG,yBAAyB,GAAGC,qCAAY,CAACC,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GF,yBAAyB,CAACG,kBAAkB,GAAGC,uBAAgB,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_parseBoxShadow","HybridUnistylesStyleSheet","NitroModules","createHybridObject","absoluteFillObject","NativeStyleSheet","absoluteFill","flatten","compose","jsMethods","processColor","parseBoxShadowString","init","StyleSheet","exports"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAMA,IAAAE,eAAA,GAAAF,OAAA;AA2CA,MAAMG,yBAAyB,GAAGC,qCAAY,CAACC,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GF,yBAAyB,CAACG,kBAAkB,GAAGC,uBAAgB,CAACC,YAAY;AAC5EL,yBAAyB,CAACK,YAAY,GAAGD,uBAAgB,CAACC,YAAY;AACtEL,yBAAyB,CAACM,OAAO,GAAGF,uBAAgB,CAACE,OAAO;AAC5DN,yBAAyB,CAACO,OAAO,GAAGH,uBAAgB,CAACG,OAAO;AAC5DP,yBAAyB,CAACQ,SAAS,GAAG;EAClCC,YAAY,EAAZA,yBAAY;EACZC,oBAAoB,EAApBA;AACJ,CAAC;AAEDV,yBAAyB,CAACW,IAAI,CAAC,CAAC;AAIzB,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGZ,yBAAsE","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ const createBoxShadowValue = style => {
|
|
|
16
16
|
color = '#000',
|
|
17
17
|
inset
|
|
18
18
|
} = style;
|
|
19
|
-
return `${inset ? 'inset ' : ''}${(0, _utils3.normalizeNumericValue)(offsetX)} ${(0, _utils3.normalizeNumericValue)(offsetY)} ${(0, _utils3.normalizeNumericValue)(blurRadius)} ${(0, _utils3.normalizeNumericValue)(spreadDistance)} ${color}`;
|
|
19
|
+
return `${inset ? 'inset ' : ''}${(0, _utils3.normalizeNumericValue)(offsetX)} ${(0, _utils3.normalizeNumericValue)(offsetY)} ${(0, _utils3.normalizeNumericValue)(blurRadius)} ${(0, _utils3.normalizeNumericValue)(spreadDistance)} ${String(color)}`;
|
|
20
20
|
};
|
|
21
21
|
const getBoxShadow = boxShadow => {
|
|
22
22
|
const breakpoints = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","_utils2","_utils3","createBoxShadowValue","style","offsetX","offsetY","blurRadius","spreadDistance","color","inset","normalizeNumericValue","getBoxShadow","boxShadow","breakpoints","Set","forEach","shadow","key","Object","keys","value","breakpoint","add","size","boxShadowStyle","fromEntries","map","breakpointStyles","Array","from","styles","keyInObject","deepMergeObjects","exports"],"sourceRoot":"../../../../../src","sources":["web/convert/object/boxShadow.ts"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAMG,oBAAoB,GAAIC,KAAqB,IAAK;EACpD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,UAAU,GAAG,CAAC;IAAEC,cAAc,GAAG,CAAC;IAAEC,KAAK,GAAG,MAAM;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAE7F,OAAO,GAAGM,KAAK,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAAC,6BAAqB,EAACN,OAAO,CAAC,IAAI,IAAAM,6BAAqB,EAACL,OAAO,CAAC,IAAI,IAAAK,6BAAqB,EAACJ,UAAoB,CAAC,IAAI,IAAAI,6BAAqB,EAACH,cAAwB,CAAC,
|
|
1
|
+
{"version":3,"names":["_utils","require","_utils2","_utils3","createBoxShadowValue","style","offsetX","offsetY","blurRadius","spreadDistance","color","inset","normalizeNumericValue","String","getBoxShadow","boxShadow","breakpoints","Set","forEach","shadow","key","Object","keys","value","breakpoint","add","size","boxShadowStyle","fromEntries","map","breakpointStyles","Array","from","styles","keyInObject","deepMergeObjects","exports"],"sourceRoot":"../../../../../src","sources":["web/convert/object/boxShadow.ts"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAMG,oBAAoB,GAAIC,KAAqB,IAAK;EACpD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,UAAU,GAAG,CAAC;IAAEC,cAAc,GAAG,CAAC;IAAEC,KAAK,GAAG,MAAM;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAE7F,OAAO,GAAGM,KAAK,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAAC,6BAAqB,EAACN,OAAO,CAAC,IAAI,IAAAM,6BAAqB,EAACL,OAAO,CAAC,IAAI,IAAAK,6BAAqB,EAACJ,UAAoB,CAAC,IAAI,IAAAI,6BAAqB,EAACH,cAAwB,CAAC,IAAII,MAAM,CAACH,KAAK,CAAC,EAAE;AAC3N,CAAC;AAEM,MAAMI,YAAY,GAAIC,SAAgC,IAAK;EAC9D,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCF,SAAS,CAACG,OAAO,CAAEC,MAAM,IAAK;IAC1B,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;IACjC,MAAMI,KAAK,GAAGJ,MAAM,CAACC,GAAG,CAAyB;;IAEjD;IACA,IAAI,OAAOG,KAAK,KAAK,QAAQ,EAAE;MAC3BF,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAACL,OAAO,CAAEM,UAAU,IAAKR,WAAW,CAACS,GAAG,CAACD,UAAU,CAAC,CAAC;IAC3E;EACJ,CAAC,CAAC;EAEF,IAAIR,WAAW,CAACU,IAAI,KAAK,CAAC,EAAE;IACxB,MAAMC,cAAc,GAAGN,MAAM,CAACO,WAAW,CACrCb,SAAS,CAACc,GAAG,CAAEV,MAAM,IAAK;MACtB,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;MACjC,OAAO,CAACC,GAAG,EAAED,MAAM,CAACC,GAAG,CAAyB,CAAC;IACrD,CAAC,CACL,CAAmB;IAEnB,OAAO;MACHL,SAAS,EAAEX,oBAAoB,CAACuB,cAAc;IAClD,CAAC;EACL;EAEA,MAAMG,gBAAgB,GAAGC,KAAK,CAACC,IAAI,CAAChB,WAAW,CAAC,CAACa,GAAG,CAAEL,UAAU,IAAK;IACjE,MAAMS,MAAM,GAAGZ,MAAM,CAACO,WAAW,CAC7Bb,SAAS,CAACc,GAAG,CAAEV,MAAM,IAAK;MACtB,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;MACjC,MAAMI,KAAK,GAAGJ,MAAM,CAACC,GAAG,CAAyB;MAEjD,IAAI,OAAOG,KAAK,KAAK,QAAQ,IAAI,IAAAW,mBAAW,EAACX,KAAK,EAAEC,UAAU,CAAC,EAAE;QAC7D,OAAO,CAACJ,GAAG,EAAEG,KAAK,CAACC,UAAU,CAAC,CAAC;MACnC;MAEA,OAAO,CAACJ,GAAG,EAAEG,KAAK,CAAC;IACvB,CAAC,CACL,CAAmB;IAEnB,OAAO;MACH,CAACC,UAAU,GAAG;QACVT,SAAS,EAAEX,oBAAoB,CAAC6B,MAAM;MAC1C;IACJ,CAAC;EACL,CAAC,CAAC;EAEF,OAAO,IAAAE,uBAAgB,EAAC,GAAGL,gBAAgB,CAAC;AAChD,CAAC;AAAAM,OAAA,CAAAtB,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useEffect } from 'react';
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
4
|
import { useSharedValue } from 'react-native-reanimated';
|
|
5
|
-
import { UnistyleDependency, UnistylesRuntime } from '../specs';
|
|
5
|
+
import { UnistyleDependency, UnistylesRuntime, UnistylesShadowRegistry } from '../specs';
|
|
6
6
|
import { services } from '../web/services';
|
|
7
7
|
export const useAnimatedTheme = () => {
|
|
8
|
-
const
|
|
8
|
+
const [scopedTheme, setScopedTheme] = useState(() => UnistylesShadowRegistry.getScopedTheme());
|
|
9
|
+
const theme = useSharedValue(UnistylesRuntime.getTheme(scopedTheme));
|
|
10
|
+
const maybeNewScopedTheme = UnistylesShadowRegistry.getScopedTheme();
|
|
11
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
12
|
+
setScopedTheme(maybeNewScopedTheme);
|
|
13
|
+
theme.set(UnistylesRuntime.getTheme(maybeNewScopedTheme));
|
|
14
|
+
}
|
|
9
15
|
useEffect(() => {
|
|
10
|
-
const dispose = services.listener.addListeners([UnistyleDependency.Theme], () =>
|
|
16
|
+
const dispose = services.listener.addListeners([UnistyleDependency.Theme], () => {
|
|
17
|
+
if (scopedTheme) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
theme.set(UnistylesRuntime.getTheme());
|
|
21
|
+
});
|
|
11
22
|
return () => {
|
|
12
23
|
dispose();
|
|
13
24
|
};
|
|
14
|
-
}, []);
|
|
25
|
+
}, [scopedTheme]);
|
|
15
26
|
return theme;
|
|
16
27
|
};
|
|
17
28
|
//# sourceMappingURL=useAnimatedTheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useSharedValue","UnistyleDependency","UnistylesRuntime","services","useAnimatedTheme","theme","getTheme","dispose","listener","addListeners","Theme"
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useSharedValue","UnistyleDependency","UnistylesRuntime","UnistylesShadowRegistry","services","useAnimatedTheme","scopedTheme","setScopedTheme","getScopedTheme","theme","getTheme","maybeNewScopedTheme","set","dispose","listener","addListeners","Theme"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAA2BC,cAAc,QAAQ,yBAAyB;AAI1E,SAASC,kBAAkB,EAAEC,gBAAgB,EAAEC,uBAAuB,QAAQ,UAAU;AACxF,SAASC,QAAQ,QAAQ,iBAAiB;AAE1C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGR,QAAQ,CAC1C,MAAMI,uBAAuB,CAACK,cAAc,CAAC,CACjD,CAAC;EACD,MAAMC,KAAK,GAAGT,cAAc,CAACE,gBAAgB,CAACQ,QAAQ,CAACJ,WAAW,CAAC,CAAC;EACpE,MAAMK,mBAAmB,GAAGR,uBAAuB,CAACK,cAAc,CAAC,CAA+B;EAElG,IAAIF,WAAW,KAAKK,mBAAmB,EAAE;IACrCJ,cAAc,CAACI,mBAAmB,CAAC;IACnCF,KAAK,CAACG,GAAG,CAACV,gBAAgB,CAACQ,QAAQ,CAACC,mBAAmB,CAAC,CAAC;EAC7D;EAEAb,SAAS,CAAC,MAAM;IACZ,MAAMe,OAAO,GAAGT,QAAQ,CAACU,QAAQ,CAACC,YAAY,CAAC,CAACd,kBAAkB,CAACe,KAAK,CAAC,EAAE,MAAM;MAC7E,IAAIV,WAAW,EAAE;QACb;MACJ;MAEAG,KAAK,CAACG,GAAG,CAACV,gBAAgB,CAACQ,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,MAAM;MACTG,OAAO,CAAC,CAAC;IACb,CAAC;EACL,CAAC,EAAE,CAACP,WAAW,CAAC,CAAC;EAEjB,OAAOG,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useEffect } from 'react';
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
4
|
import { useSharedValue } from 'react-native-reanimated';
|
|
5
|
-
import { StyleSheet, UnistyleDependency, UnistylesRuntime } from '../specs';
|
|
5
|
+
import { StyleSheet, UnistyleDependency, UnistylesRuntime, UnistylesShadowRegistry } from '../specs';
|
|
6
6
|
export const useAnimatedTheme = () => {
|
|
7
|
-
const
|
|
7
|
+
const [scopedTheme, setScopedTheme] = useState(() => UnistylesShadowRegistry.getScopedTheme());
|
|
8
|
+
const theme = useSharedValue(UnistylesRuntime.getTheme(scopedTheme));
|
|
9
|
+
const maybeNewScopedTheme = UnistylesShadowRegistry.getScopedTheme();
|
|
10
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
11
|
+
setScopedTheme(maybeNewScopedTheme);
|
|
12
|
+
theme.set(UnistylesRuntime.getTheme(maybeNewScopedTheme));
|
|
13
|
+
}
|
|
8
14
|
useEffect(() => {
|
|
9
15
|
const dispose = StyleSheet.addChangeListener(changedDependencies => {
|
|
10
|
-
if (changedDependencies.includes(UnistyleDependency.Theme)) {
|
|
11
|
-
|
|
16
|
+
if (!changedDependencies.includes(UnistyleDependency.Theme)) {
|
|
17
|
+
return;
|
|
12
18
|
}
|
|
19
|
+
if (scopedTheme) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
theme.set(UnistylesRuntime.getTheme());
|
|
13
23
|
});
|
|
14
24
|
return () => dispose();
|
|
15
|
-
}, []);
|
|
25
|
+
}, [scopedTheme]);
|
|
16
26
|
return theme;
|
|
17
27
|
};
|
|
18
28
|
//# sourceMappingURL=useAnimatedTheme.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useSharedValue","StyleSheet","UnistyleDependency","UnistylesRuntime","useAnimatedTheme","theme","getTheme","dispose","addChangeListener","changedDependencies","includes","Theme"
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useSharedValue","StyleSheet","UnistyleDependency","UnistylesRuntime","UnistylesShadowRegistry","useAnimatedTheme","scopedTheme","setScopedTheme","getScopedTheme","theme","getTheme","maybeNewScopedTheme","set","dispose","addChangeListener","changedDependencies","includes","Theme"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.native.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAA2BC,cAAc,QAAQ,yBAAyB;AAI1E,SAASC,UAAU,EAAEC,kBAAkB,EAAEC,gBAAgB,EAAEC,uBAAuB,QAAQ,UAAU;AAEpG,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGR,QAAQ,CAC1C,MAAMK,uBAAuB,CAACI,cAAc,CAAC,CACjD,CAAC;EACD,MAAMC,KAAK,GAAGT,cAAc,CAACG,gBAAgB,CAACO,QAAQ,CAACJ,WAAW,CAAC,CAAC;EACpE,MAAMK,mBAAmB,GAAGP,uBAAuB,CAACI,cAAc,CAAC,CAA+B;EAElG,IAAIF,WAAW,KAAKK,mBAAmB,EAAE;IACrCJ,cAAc,CAACI,mBAAmB,CAAC;IACnCF,KAAK,CAACG,GAAG,CAACT,gBAAgB,CAACO,QAAQ,CAACC,mBAAmB,CAAC,CAAC;EAC7D;EAEAb,SAAS,CAAC,MAAM;IACZ,MAAMe,OAAO,GAAGZ,UAAU,CAACa,iBAAiB,CAAEC,mBAAmB,IAAK;MAClE,IAAI,CAACA,mBAAmB,CAACC,QAAQ,CAACd,kBAAkB,CAACe,KAAK,CAAC,EAAE;QACzD;MACJ;MAEA,IAAIX,WAAW,EAAE;QACb;MACJ;MAEAG,KAAK,CAACG,GAAG,CAACT,gBAAgB,CAACO,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,MAAMG,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACP,WAAW,CAAC,CAAC;EAEjB,OAAOG,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { StyleSheet as NativeStyleSheet, processColor } from 'react-native';
|
|
|
4
4
|
import { NitroModules } from 'react-native-nitro-modules';
|
|
5
5
|
import { parseBoxShadowString } from '../../core/parseBoxShadow';
|
|
6
6
|
const HybridUnistylesStyleSheet = NitroModules.createHybridObject('UnistylesStyleSheet');
|
|
7
|
-
HybridUnistylesStyleSheet.absoluteFillObject = NativeStyleSheet.
|
|
7
|
+
HybridUnistylesStyleSheet.absoluteFillObject = NativeStyleSheet.absoluteFill;
|
|
8
8
|
HybridUnistylesStyleSheet.absoluteFill = NativeStyleSheet.absoluteFill;
|
|
9
9
|
HybridUnistylesStyleSheet.flatten = NativeStyleSheet.flatten;
|
|
10
10
|
HybridUnistylesStyleSheet.compose = NativeStyleSheet.compose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","NativeStyleSheet","processColor","NitroModules","parseBoxShadowString","HybridUnistylesStyleSheet","createHybridObject","absoluteFillObject","absoluteFill","flatten","compose","jsMethods","init"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;AAEA,SAASA,UAAU,IAAIC,gBAAgB,EAAEC,YAAY,QAAQ,cAAc;AAC3E,SAASC,YAAY,QAAQ,4BAA4B;AAMzD,SAASC,oBAAoB,QAAQ,2BAA2B;AA2ChE,MAAMC,yBAAyB,GAAGF,YAAY,CAACG,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GD,yBAAyB,CAACE,kBAAkB,GAAGN,gBAAgB,
|
|
1
|
+
{"version":3,"names":["StyleSheet","NativeStyleSheet","processColor","NitroModules","parseBoxShadowString","HybridUnistylesStyleSheet","createHybridObject","absoluteFillObject","absoluteFill","flatten","compose","jsMethods","init"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;AAEA,SAASA,UAAU,IAAIC,gBAAgB,EAAEC,YAAY,QAAQ,cAAc;AAC3E,SAASC,YAAY,QAAQ,4BAA4B;AAMzD,SAASC,oBAAoB,QAAQ,2BAA2B;AA2ChE,MAAMC,yBAAyB,GAAGF,YAAY,CAACG,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GD,yBAAyB,CAACE,kBAAkB,GAAGN,gBAAgB,CAACO,YAAY;AAC5EH,yBAAyB,CAACG,YAAY,GAAGP,gBAAgB,CAACO,YAAY;AACtEH,yBAAyB,CAACI,OAAO,GAAGR,gBAAgB,CAACQ,OAAO;AAC5DJ,yBAAyB,CAACK,OAAO,GAAGT,gBAAgB,CAACS,OAAO;AAC5DL,yBAAyB,CAACM,SAAS,GAAG;EAClCT,YAAY;EACZE;AACJ,CAAC;AAEDC,yBAAyB,CAACO,IAAI,CAAC,CAAC;AAIhC,OAAO,MAAMZ,UAAU,GAAGK,yBAAsE","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ const createBoxShadowValue = style => {
|
|
|
12
12
|
color = '#000',
|
|
13
13
|
inset
|
|
14
14
|
} = style;
|
|
15
|
-
return `${inset ? 'inset ' : ''}${normalizeNumericValue(offsetX)} ${normalizeNumericValue(offsetY)} ${normalizeNumericValue(blurRadius)} ${normalizeNumericValue(spreadDistance)} ${color}`;
|
|
15
|
+
return `${inset ? 'inset ' : ''}${normalizeNumericValue(offsetX)} ${normalizeNumericValue(offsetY)} ${normalizeNumericValue(blurRadius)} ${normalizeNumericValue(spreadDistance)} ${String(color)}`;
|
|
16
16
|
};
|
|
17
17
|
export const getBoxShadow = boxShadow => {
|
|
18
18
|
const breakpoints = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["deepMergeObjects","keyInObject","normalizeNumericValue","createBoxShadowValue","style","offsetX","offsetY","blurRadius","spreadDistance","color","inset","getBoxShadow","boxShadow","breakpoints","Set","forEach","shadow","key","Object","keys","value","breakpoint","add","size","boxShadowStyle","fromEntries","map","breakpointStyles","Array","from","styles"],"sourceRoot":"../../../../../src","sources":["web/convert/object/boxShadow.ts"],"mappings":";;AAEA,SAASA,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,qBAAqB,QAAQ,UAAU;AAEhD,MAAMC,oBAAoB,GAAIC,KAAqB,IAAK;EACpD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,UAAU,GAAG,CAAC;IAAEC,cAAc,GAAG,CAAC;IAAEC,KAAK,GAAG,MAAM;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAE7F,OAAO,GAAGM,KAAK,GAAG,QAAQ,GAAG,EAAE,GAAGR,qBAAqB,CAACG,OAAO,CAAC,IAAIH,qBAAqB,CAACI,OAAO,CAAC,IAAIJ,qBAAqB,CAACK,UAAoB,CAAC,IAAIL,qBAAqB,CAACM,cAAwB,CAAC,
|
|
1
|
+
{"version":3,"names":["deepMergeObjects","keyInObject","normalizeNumericValue","createBoxShadowValue","style","offsetX","offsetY","blurRadius","spreadDistance","color","inset","String","getBoxShadow","boxShadow","breakpoints","Set","forEach","shadow","key","Object","keys","value","breakpoint","add","size","boxShadowStyle","fromEntries","map","breakpointStyles","Array","from","styles"],"sourceRoot":"../../../../../src","sources":["web/convert/object/boxShadow.ts"],"mappings":";;AAEA,SAASA,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,qBAAqB,QAAQ,UAAU;AAEhD,MAAMC,oBAAoB,GAAIC,KAAqB,IAAK;EACpD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,UAAU,GAAG,CAAC;IAAEC,cAAc,GAAG,CAAC;IAAEC,KAAK,GAAG,MAAM;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAE7F,OAAO,GAAGM,KAAK,GAAG,QAAQ,GAAG,EAAE,GAAGR,qBAAqB,CAACG,OAAO,CAAC,IAAIH,qBAAqB,CAACI,OAAO,CAAC,IAAIJ,qBAAqB,CAACK,UAAoB,CAAC,IAAIL,qBAAqB,CAACM,cAAwB,CAAC,IAAIG,MAAM,CAACF,KAAK,CAAC,EAAE;AAC3N,CAAC;AAED,OAAO,MAAMG,YAAY,GAAIC,SAAgC,IAAK;EAC9D,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCF,SAAS,CAACG,OAAO,CAAEC,MAAM,IAAK;IAC1B,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;IACjC,MAAMI,KAAK,GAAGJ,MAAM,CAACC,GAAG,CAAyB;;IAEjD;IACA,IAAI,OAAOG,KAAK,KAAK,QAAQ,EAAE;MAC3BF,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAACL,OAAO,CAAEM,UAAU,IAAKR,WAAW,CAACS,GAAG,CAACD,UAAU,CAAC,CAAC;IAC3E;EACJ,CAAC,CAAC;EAEF,IAAIR,WAAW,CAACU,IAAI,KAAK,CAAC,EAAE;IACxB,MAAMC,cAAc,GAAGN,MAAM,CAACO,WAAW,CACrCb,SAAS,CAACc,GAAG,CAAEV,MAAM,IAAK;MACtB,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;MACjC,OAAO,CAACC,GAAG,EAAED,MAAM,CAACC,GAAG,CAAyB,CAAC;IACrD,CAAC,CACL,CAAmB;IAEnB,OAAO;MACHL,SAAS,EAAEV,oBAAoB,CAACsB,cAAc;IAClD,CAAC;EACL;EAEA,MAAMG,gBAAgB,GAAGC,KAAK,CAACC,IAAI,CAAChB,WAAW,CAAC,CAACa,GAAG,CAAEL,UAAU,IAAK;IACjE,MAAMS,MAAM,GAAGZ,MAAM,CAACO,WAAW,CAC7Bb,SAAS,CAACc,GAAG,CAAEV,MAAM,IAAK;MACtB,MAAM,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC;MACjC,MAAMI,KAAK,GAAGJ,MAAM,CAACC,GAAG,CAAyB;MAEjD,IAAI,OAAOG,KAAK,KAAK,QAAQ,IAAIpB,WAAW,CAACoB,KAAK,EAAEC,UAAU,CAAC,EAAE;QAC7D,OAAO,CAACJ,GAAG,EAAEG,KAAK,CAACC,UAAU,CAAC,CAAC;MACnC;MAEA,OAAO,CAACJ,GAAG,EAAEG,KAAK,CAAC;IACvB,CAAC,CACL,CAAmB;IAEnB,OAAO;MACH,CAACC,UAAU,GAAG;QACVT,SAAS,EAAEV,oBAAoB,CAAC4B,MAAM;MAC1C;IACJ,CAAC;EACL,CAAC,CAAC;EAEF,OAAO/B,gBAAgB,CAAC,GAAG4B,gBAAgB,CAAC;AAChD,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Animated.d.ts","sourceRoot":"","sources":["../../../../../src/components/native/Animated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AASrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Animated.d.ts","sourceRoot":"","sources":["../../../../../src/components/native/Animated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AASrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;iGASqne,GAAG;;;;;;;;;;;;;;;;CAD5oe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedTheme.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/useAnimatedTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useAnimatedTheme.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/useAnimatedTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,eAAO,MAAM,gBAAgB,QA0BT,WAAW,CAAC,cAAc,CAC7C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedTheme.native.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/useAnimatedTheme.native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9C,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useAnimatedTheme.native.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/useAnimatedTheme.native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9C,eAAO,MAAM,gBAAgB,QA4BT,WAAW,CAAC,cAAc,CAC7C,CAAA"}
|
|
@@ -24,7 +24,7 @@ export type UnistylesConfig = {
|
|
|
24
24
|
breakpoints?: UnistylesBreakpoints;
|
|
25
25
|
};
|
|
26
26
|
export interface UnistylesStyleSheet extends UnistylesStyleSheetSpec {
|
|
27
|
-
absoluteFillObject: typeof NativeStyleSheetType.
|
|
27
|
+
absoluteFillObject: typeof NativeStyleSheetType.absoluteFill;
|
|
28
28
|
absoluteFill: typeof NativeStyleSheetType.absoluteFill;
|
|
29
29
|
compose: typeof NativeStyleSheetType.compose;
|
|
30
30
|
flatten: typeof NativeStyleSheetType.flatten;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/specs/StyleSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAkC,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAEjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,KAAK,sBAAsB,GACrB;IACI,YAAY,EAAE,CAAC,MAAM,MAAM,eAAe,CAAC,GAAG,MAAM,eAAe,CAAA;IACnE,cAAc,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CACjC,GACD;IACI,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,KAAK,CAAA;CACvB,GACD;IACI,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,YAAY,CAAC,EAAE,KAAK,CAAA;CACvB,CAAA;AAEP,KAAK,iBAAiB,GAAG,sBAAsB,GAAG;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qBAAqB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACrC,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAChE,kBAAkB,EAAE,OAAO,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/specs/StyleSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAkC,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAEjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,KAAK,sBAAsB,GACrB;IACI,YAAY,EAAE,CAAC,MAAM,MAAM,eAAe,CAAC,GAAG,MAAM,eAAe,CAAA;IACnE,cAAc,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CACjC,GACD;IACI,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,KAAK,CAAA;CACvB,GACD;IACI,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,YAAY,CAAC,EAAE,KAAK,CAAA;CACvB,CAAA;AAEP,KAAK,iBAAiB,GAAG,sBAAsB,GAAG;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qBAAqB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACrC,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAChE,kBAAkB,EAAE,OAAO,oBAAoB,CAAC,YAAY,CAAA;IAC5D,YAAY,EAAE,OAAO,oBAAoB,CAAC,YAAY,CAAA;IACtD,OAAO,EAAE,OAAO,oBAAoB,CAAC,OAAO,CAAA;IAC5C,OAAO,EAAE,OAAO,oBAAoB,CAAC,OAAO,CAAA;IAG5C,IAAI,IAAI,IAAI,CAAA;IACZ,MAAM,EAAE,yBAAyB,CAAA;IACjC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE;QACP,YAAY,EAAE,OAAO,YAAY,CAAA;QACjC,oBAAoB,EAAE,OAAO,oBAAoB,CAAA;KACpD,CAAA;CACJ;AAeD,KAAK,cAAc,GAAG,WAAW,GAAG,MAAM,CAAA;AAE1C,eAAO,MAAM,UAAU,EAAgC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -43,16 +43,16 @@ namespace margelo::nitro::unistyles {
|
|
|
43
43
|
*/
|
|
44
44
|
void invoke(const std::vector<UnistyleDependency>& dependencies, const UnistylesNativeMiniRuntime& miniRuntime) const {
|
|
45
45
|
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JUnistyleDependency>> /* dependencies */, jni::alias_ref<JUnistylesNativeMiniRuntime> /* miniRuntime */)>("invoke");
|
|
46
|
-
method(self(), [&]() {
|
|
47
|
-
size_t __size =
|
|
46
|
+
method(self(), [&](auto&& __input) {
|
|
47
|
+
size_t __size = __input.size();
|
|
48
48
|
jni::local_ref<jni::JArrayClass<JUnistyleDependency>> __array = jni::JArrayClass<JUnistyleDependency>::newArray(__size);
|
|
49
49
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
50
|
-
const auto& __element =
|
|
50
|
+
const auto& __element = __input[__i];
|
|
51
51
|
auto __elementJni = JUnistyleDependency::fromCpp(__element);
|
|
52
52
|
__array->setElement(__i, *__elementJni);
|
|
53
53
|
}
|
|
54
54
|
return __array;
|
|
55
|
-
}(), JUnistylesNativeMiniRuntime::fromCpp(miniRuntime));
|
|
55
|
+
}(dependencies), JUnistylesNativeMiniRuntime::fromCpp(miniRuntime));
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
|
|
@@ -70,16 +70,16 @@ namespace margelo::nitro::unistyles {
|
|
|
70
70
|
* Invokes the C++ `std::function<...>` this `JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime_cxx` instance holds.
|
|
71
71
|
*/
|
|
72
72
|
void invoke_cxx(jni::alias_ref<jni::JArrayClass<JUnistyleDependency>> dependencies, jni::alias_ref<JUnistylesNativeMiniRuntime> miniRuntime) {
|
|
73
|
-
_func([&]() {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
73
|
+
_func([&](auto&& __input) {
|
|
74
|
+
size_t __size = __input->size();
|
|
75
|
+
std::vector<UnistyleDependency> __vector;
|
|
76
|
+
__vector.reserve(__size);
|
|
77
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
78
|
+
auto __element = __input->getElement(__i);
|
|
79
|
+
__vector.push_back(__element->toCpp());
|
|
80
|
+
}
|
|
81
|
+
return __vector;
|
|
82
|
+
}(dependencies), miniRuntime->toCpp());
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
public:
|
|
@@ -9,6 +9,7 @@ package com.margelo.nitro.unistyles
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import java.util.Objects
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -26,6 +27,20 @@ data class Dimensions(
|
|
|
26
27
|
) {
|
|
27
28
|
/* primary constructor */
|
|
28
29
|
|
|
30
|
+
override fun equals(other: Any?): Boolean {
|
|
31
|
+
if (this === other) return true
|
|
32
|
+
if (other !is Dimensions) return false
|
|
33
|
+
return Objects.deepEquals(this.width, other.width)
|
|
34
|
+
&& Objects.deepEquals(this.height, other.height)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun hashCode(): Int {
|
|
38
|
+
return arrayOf<Any?>(
|
|
39
|
+
width,
|
|
40
|
+
height
|
|
41
|
+
).contentDeepHashCode()
|
|
42
|
+
}
|
|
43
|
+
|
|
29
44
|
companion object {
|
|
30
45
|
/**
|
|
31
46
|
* Constructor called from C++
|
|
@@ -9,6 +9,7 @@ package com.margelo.nitro.unistyles
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import java.util.Objects
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -35,6 +36,26 @@ data class Insets(
|
|
|
35
36
|
) {
|
|
36
37
|
/* primary constructor */
|
|
37
38
|
|
|
39
|
+
override fun equals(other: Any?): Boolean {
|
|
40
|
+
if (this === other) return true
|
|
41
|
+
if (other !is Insets) return false
|
|
42
|
+
return Objects.deepEquals(this.top, other.top)
|
|
43
|
+
&& Objects.deepEquals(this.bottom, other.bottom)
|
|
44
|
+
&& Objects.deepEquals(this.left, other.left)
|
|
45
|
+
&& Objects.deepEquals(this.right, other.right)
|
|
46
|
+
&& Objects.deepEquals(this.ime, other.ime)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override fun hashCode(): Int {
|
|
50
|
+
return arrayOf<Any?>(
|
|
51
|
+
top,
|
|
52
|
+
bottom,
|
|
53
|
+
left,
|
|
54
|
+
right,
|
|
55
|
+
ime
|
|
56
|
+
).contentDeepHashCode()
|
|
57
|
+
}
|
|
58
|
+
|
|
38
59
|
companion object {
|
|
39
60
|
/**
|
|
40
61
|
* Constructor called from C++
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt
CHANGED
|
@@ -9,6 +9,7 @@ package com.margelo.nitro.unistyles
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import java.util.Objects
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -53,6 +54,38 @@ data class UnistylesNativeMiniRuntime(
|
|
|
53
54
|
) {
|
|
54
55
|
/* primary constructor */
|
|
55
56
|
|
|
57
|
+
override fun equals(other: Any?): Boolean {
|
|
58
|
+
if (this === other) return true
|
|
59
|
+
if (other !is UnistylesNativeMiniRuntime) return false
|
|
60
|
+
return Objects.deepEquals(this.colorScheme, other.colorScheme)
|
|
61
|
+
&& Objects.deepEquals(this.screen, other.screen)
|
|
62
|
+
&& Objects.deepEquals(this.contentSizeCategory, other.contentSizeCategory)
|
|
63
|
+
&& Objects.deepEquals(this.insets, other.insets)
|
|
64
|
+
&& Objects.deepEquals(this.pixelRatio, other.pixelRatio)
|
|
65
|
+
&& Objects.deepEquals(this.fontScale, other.fontScale)
|
|
66
|
+
&& Objects.deepEquals(this.rtl, other.rtl)
|
|
67
|
+
&& Objects.deepEquals(this.statusBar, other.statusBar)
|
|
68
|
+
&& Objects.deepEquals(this.navigationBar, other.navigationBar)
|
|
69
|
+
&& Objects.deepEquals(this.isPortrait, other.isPortrait)
|
|
70
|
+
&& Objects.deepEquals(this.isLandscape, other.isLandscape)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun hashCode(): Int {
|
|
74
|
+
return arrayOf<Any?>(
|
|
75
|
+
colorScheme,
|
|
76
|
+
screen,
|
|
77
|
+
contentSizeCategory,
|
|
78
|
+
insets,
|
|
79
|
+
pixelRatio,
|
|
80
|
+
fontScale,
|
|
81
|
+
rtl,
|
|
82
|
+
statusBar,
|
|
83
|
+
navigationBar,
|
|
84
|
+
isPortrait,
|
|
85
|
+
isLandscape
|
|
86
|
+
).contentDeepHashCode()
|
|
87
|
+
}
|
|
88
|
+
|
|
56
89
|
companion object {
|
|
57
90
|
/**
|
|
58
91
|
* Constructor called from C++
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-unistyles",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.5",
|
|
4
4
|
"description": "Level up your React Native StyleSheet",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "NODE_ENV=babel-test jest ./plugin ./src/__tests__",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"devDependencies": {
|
|
133
133
|
"@callstack/repack": "5.2.4",
|
|
134
134
|
"@commitlint/config-conventional": "20.4.2",
|
|
135
|
-
"@react-native/normalize-colors": "0.
|
|
135
|
+
"@react-native/normalize-colors": "0.85.3",
|
|
136
136
|
"@rspack/core": "1.7.6",
|
|
137
137
|
"@types/jest": "30.0.0",
|
|
138
138
|
"@types/react": "19.2.14",
|
|
@@ -144,15 +144,15 @@
|
|
|
144
144
|
"jest": "30.2.0",
|
|
145
145
|
"@babel/plugin-syntax-jsx": "7.28.6",
|
|
146
146
|
"@babel/runtime": "7.28.6",
|
|
147
|
-
"@react-native/babel-preset": "0.
|
|
148
|
-
"nitrogen": "0.35.
|
|
147
|
+
"@react-native/babel-preset": "0.85.3",
|
|
148
|
+
"nitrogen": "0.35.7",
|
|
149
149
|
"oxfmt": "0.35.0",
|
|
150
150
|
"oxlint": "1.50.0",
|
|
151
|
-
"react": "19.2.
|
|
152
|
-
"react-native": "0.
|
|
151
|
+
"react": "19.2.3",
|
|
152
|
+
"react-native": "0.85.3",
|
|
153
153
|
"react-native-builder-bob": "0.40.18",
|
|
154
|
-
"react-native-nitro-modules": "0.35.
|
|
155
|
-
"react-native-reanimated": "4.
|
|
154
|
+
"react-native-nitro-modules": "0.35.7",
|
|
155
|
+
"react-native-reanimated": "4.3.1",
|
|
156
156
|
"react-native-web": "0.21.2",
|
|
157
157
|
"typescript": "5.9.3"
|
|
158
158
|
},
|
package/plugin/index.js
CHANGED
|
@@ -219,6 +219,18 @@ var UnistyleDependency = {
|
|
|
219
219
|
Ime: 14,
|
|
220
220
|
Rtl: 15
|
|
221
221
|
};
|
|
222
|
+
function getStyleKeyName(key) {
|
|
223
|
+
if (!key) {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
if (t4.isIdentifier(key)) {
|
|
227
|
+
return key.name;
|
|
228
|
+
}
|
|
229
|
+
if (t4.isStringLiteral(key) || t4.isNumericLiteral(key) || t4.isBooleanLiteral(key)) {
|
|
230
|
+
return String(key.value);
|
|
231
|
+
}
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
222
234
|
function getProperty(property) {
|
|
223
235
|
if (!property) {
|
|
224
236
|
return void 0;
|
|
@@ -389,28 +401,30 @@ function getStylesDependenciesFromObject(path2) {
|
|
|
389
401
|
const stylesheet = path2.node.arguments[0];
|
|
390
402
|
if (t4.isObjectExpression(stylesheet)) {
|
|
391
403
|
stylesheet?.properties.forEach((property) => {
|
|
392
|
-
if (!t4.isObjectProperty(property)
|
|
404
|
+
if (!t4.isObjectProperty(property)) {
|
|
393
405
|
return;
|
|
394
406
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
407
|
+
const styleKey = getStyleKeyName(property.key);
|
|
408
|
+
if (!styleKey) {
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
if (t4.isObjectExpression(property.value)) {
|
|
412
|
+
property.value.properties.forEach((innerProp) => {
|
|
413
|
+
if (t4.isObjectProperty(innerProp) && t4.isIdentifier(innerProp.key) && innerProp.key.name === "variants") {
|
|
414
|
+
detectedStylesWithVariants.add({
|
|
415
|
+
label: "variants",
|
|
416
|
+
key: styleKey
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
});
|
|
406
420
|
}
|
|
407
421
|
if (t4.isArrowFunctionExpression(property.value)) {
|
|
408
422
|
if (t4.isObjectExpression(property.value.body)) {
|
|
409
423
|
property.value.body.properties.forEach((innerProp) => {
|
|
410
|
-
if (t4.isObjectProperty(innerProp) && t4.isIdentifier(innerProp.key) &&
|
|
424
|
+
if (t4.isObjectProperty(innerProp) && t4.isIdentifier(innerProp.key) && innerProp.key.name === "variants") {
|
|
411
425
|
detectedStylesWithVariants.add({
|
|
412
426
|
label: "variants",
|
|
413
|
-
key:
|
|
427
|
+
key: styleKey
|
|
414
428
|
});
|
|
415
429
|
}
|
|
416
430
|
});
|
|
@@ -493,10 +507,10 @@ function getStylesDependenciesFromFunction(funcPath) {
|
|
|
493
507
|
if (Array.isArray(stylePath)) {
|
|
494
508
|
return;
|
|
495
509
|
}
|
|
496
|
-
|
|
510
|
+
const styleKey = getStyleKeyName(stylePath.node);
|
|
511
|
+
if (!styleKey) {
|
|
497
512
|
return;
|
|
498
513
|
}
|
|
499
|
-
const styleKey = stylePath.node.name;
|
|
500
514
|
const valuePath = propPath.get("value");
|
|
501
515
|
if (Array.isArray(valuePath)) {
|
|
502
516
|
return;
|
|
@@ -901,13 +915,12 @@ function index_default() {
|
|
|
901
915
|
if (detectedDependencies) {
|
|
902
916
|
if (t6.isObjectExpression(arg)) {
|
|
903
917
|
arg.properties.forEach((property) => {
|
|
904
|
-
if (t6.isObjectProperty(property)
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
);
|
|
918
|
+
if (!t6.isObjectProperty(property)) {
|
|
919
|
+
return;
|
|
920
|
+
}
|
|
921
|
+
const styleKey = getStyleKeyName(property.key);
|
|
922
|
+
if (styleKey && Object.prototype.hasOwnProperty.call(detectedDependencies, styleKey)) {
|
|
923
|
+
addDependencies(state, styleKey, property, detectedDependencies[styleKey] ?? []);
|
|
911
924
|
}
|
|
912
925
|
});
|
|
913
926
|
}
|
|
@@ -920,13 +933,12 @@ function index_default() {
|
|
|
920
933
|
const body = t6.isBlockStatement(arg.body) ? arg.body.body.find((statement) => t6.isReturnStatement(statement))?.argument : arg.body;
|
|
921
934
|
if (t6.isObjectExpression(body)) {
|
|
922
935
|
body.properties.forEach((property) => {
|
|
923
|
-
if (t6.isObjectProperty(property)
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
);
|
|
936
|
+
if (!t6.isObjectProperty(property)) {
|
|
937
|
+
return;
|
|
938
|
+
}
|
|
939
|
+
const styleKey = getStyleKeyName(property.key);
|
|
940
|
+
if (styleKey && Object.prototype.hasOwnProperty.call(detectedDependencies, styleKey)) {
|
|
941
|
+
addDependencies(state, styleKey, property, detectedDependencies[styleKey] ?? []);
|
|
930
942
|
}
|
|
931
943
|
});
|
|
932
944
|
}
|
|
@@ -1,22 +1,37 @@
|
|
|
1
|
-
import { useEffect } from 'react'
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
2
|
import { type SharedValue, useSharedValue } from 'react-native-reanimated'
|
|
3
3
|
|
|
4
4
|
import type { UnistylesTheme } from '../types'
|
|
5
5
|
|
|
6
|
-
import { StyleSheet, UnistyleDependency, UnistylesRuntime } from '../specs'
|
|
6
|
+
import { StyleSheet, UnistyleDependency, UnistylesRuntime, UnistylesShadowRegistry } from '../specs'
|
|
7
7
|
|
|
8
8
|
export const useAnimatedTheme = () => {
|
|
9
|
-
const
|
|
9
|
+
const [scopedTheme, setScopedTheme] = useState(
|
|
10
|
+
() => UnistylesShadowRegistry.getScopedTheme() as UnistylesTheme | undefined,
|
|
11
|
+
)
|
|
12
|
+
const theme = useSharedValue(UnistylesRuntime.getTheme(scopedTheme))
|
|
13
|
+
const maybeNewScopedTheme = UnistylesShadowRegistry.getScopedTheme() as UnistylesTheme | undefined
|
|
14
|
+
|
|
15
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
16
|
+
setScopedTheme(maybeNewScopedTheme)
|
|
17
|
+
theme.set(UnistylesRuntime.getTheme(maybeNewScopedTheme))
|
|
18
|
+
}
|
|
10
19
|
|
|
11
20
|
useEffect(() => {
|
|
12
21
|
const dispose = StyleSheet.addChangeListener((changedDependencies) => {
|
|
13
|
-
if (changedDependencies.includes(UnistyleDependency.Theme)) {
|
|
14
|
-
|
|
22
|
+
if (!changedDependencies.includes(UnistyleDependency.Theme)) {
|
|
23
|
+
return
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (scopedTheme) {
|
|
27
|
+
return
|
|
15
28
|
}
|
|
29
|
+
|
|
30
|
+
theme.set(UnistylesRuntime.getTheme())
|
|
16
31
|
})
|
|
17
32
|
|
|
18
33
|
return () => dispose()
|
|
19
|
-
}, [])
|
|
34
|
+
}, [scopedTheme])
|
|
20
35
|
|
|
21
36
|
return theme as SharedValue<UnistylesTheme>
|
|
22
37
|
}
|
|
@@ -1,23 +1,36 @@
|
|
|
1
|
-
import { useEffect } from 'react'
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
2
|
import { type SharedValue, useSharedValue } from 'react-native-reanimated'
|
|
3
3
|
|
|
4
4
|
import type { UnistylesTheme } from '../types'
|
|
5
5
|
|
|
6
|
-
import { UnistyleDependency, UnistylesRuntime } from '../specs'
|
|
6
|
+
import { UnistyleDependency, UnistylesRuntime, UnistylesShadowRegistry } from '../specs'
|
|
7
7
|
import { services } from '../web/services'
|
|
8
8
|
|
|
9
9
|
export const useAnimatedTheme = () => {
|
|
10
|
-
const
|
|
10
|
+
const [scopedTheme, setScopedTheme] = useState(
|
|
11
|
+
() => UnistylesShadowRegistry.getScopedTheme() as UnistylesTheme | undefined,
|
|
12
|
+
)
|
|
13
|
+
const theme = useSharedValue(UnistylesRuntime.getTheme(scopedTheme))
|
|
14
|
+
const maybeNewScopedTheme = UnistylesShadowRegistry.getScopedTheme() as UnistylesTheme | undefined
|
|
15
|
+
|
|
16
|
+
if (scopedTheme !== maybeNewScopedTheme) {
|
|
17
|
+
setScopedTheme(maybeNewScopedTheme)
|
|
18
|
+
theme.set(UnistylesRuntime.getTheme(maybeNewScopedTheme))
|
|
19
|
+
}
|
|
11
20
|
|
|
12
21
|
useEffect(() => {
|
|
13
|
-
const dispose = services.listener.addListeners([UnistyleDependency.Theme], () =>
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
const dispose = services.listener.addListeners([UnistyleDependency.Theme], () => {
|
|
23
|
+
if (scopedTheme) {
|
|
24
|
+
return
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
theme.set(UnistylesRuntime.getTheme())
|
|
28
|
+
})
|
|
16
29
|
|
|
17
30
|
return () => {
|
|
18
31
|
dispose()
|
|
19
32
|
}
|
|
20
|
-
}, [])
|
|
33
|
+
}, [scopedTheme])
|
|
21
34
|
|
|
22
35
|
return theme as SharedValue<UnistylesTheme>
|
|
23
36
|
}
|
|
@@ -35,7 +35,7 @@ export type UnistylesConfig = {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export interface UnistylesStyleSheet extends UnistylesStyleSheetSpec {
|
|
38
|
-
absoluteFillObject: typeof NativeStyleSheetType.
|
|
38
|
+
absoluteFillObject: typeof NativeStyleSheetType.absoluteFill
|
|
39
39
|
absoluteFill: typeof NativeStyleSheetType.absoluteFill
|
|
40
40
|
compose: typeof NativeStyleSheetType.compose
|
|
41
41
|
flatten: typeof NativeStyleSheetType.flatten
|
|
@@ -52,7 +52,7 @@ export interface UnistylesStyleSheet extends UnistylesStyleSheetSpec {
|
|
|
52
52
|
|
|
53
53
|
const HybridUnistylesStyleSheet = NitroModules.createHybridObject<UnistylesStyleSheet>('UnistylesStyleSheet')
|
|
54
54
|
|
|
55
|
-
HybridUnistylesStyleSheet.absoluteFillObject = NativeStyleSheet.
|
|
55
|
+
HybridUnistylesStyleSheet.absoluteFillObject = NativeStyleSheet.absoluteFill
|
|
56
56
|
HybridUnistylesStyleSheet.absoluteFill = NativeStyleSheet.absoluteFill
|
|
57
57
|
HybridUnistylesStyleSheet.flatten = NativeStyleSheet.flatten
|
|
58
58
|
HybridUnistylesStyleSheet.compose = NativeStyleSheet.compose
|
|
@@ -7,7 +7,7 @@ import { normalizeNumericValue } from '../utils'
|
|
|
7
7
|
const createBoxShadowValue = (style: BoxShadowValue) => {
|
|
8
8
|
const { offsetX, offsetY, blurRadius = 0, spreadDistance = 0, color = '#000', inset } = style
|
|
9
9
|
|
|
10
|
-
return `${inset ? 'inset ' : ''}${normalizeNumericValue(offsetX)} ${normalizeNumericValue(offsetY)} ${normalizeNumericValue(blurRadius as number)} ${normalizeNumericValue(spreadDistance as number)} ${color}`
|
|
10
|
+
return `${inset ? 'inset ' : ''}${normalizeNumericValue(offsetX)} ${normalizeNumericValue(offsetY)} ${normalizeNumericValue(blurRadius as number)} ${normalizeNumericValue(spreadDistance as number)} ${String(color)}`
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export const getBoxShadow = (boxShadow: Array<BoxShadowValue>) => {
|