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.
Files changed (36) hide show
  1. package/README.md +6 -6
  2. package/cxx/core/UnistyleWrapper.h +22 -1
  3. package/cxx/hybridObjects/HybridStyleSheet.cpp +25 -61
  4. package/cxx/hybridObjects/HybridStyleSheet.h +2 -0
  5. package/cxx/parser/Parser.cpp +10 -1
  6. package/lib/commonjs/reanimated/useAnimatedTheme.js +14 -3
  7. package/lib/commonjs/reanimated/useAnimatedTheme.js.map +1 -1
  8. package/lib/commonjs/reanimated/useAnimatedTheme.native.js +14 -4
  9. package/lib/commonjs/reanimated/useAnimatedTheme.native.js.map +1 -1
  10. package/lib/commonjs/specs/StyleSheet/index.js +1 -1
  11. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  12. package/lib/commonjs/web/convert/object/boxShadow.js +1 -1
  13. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
  14. package/lib/module/reanimated/useAnimatedTheme.js +16 -5
  15. package/lib/module/reanimated/useAnimatedTheme.js.map +1 -1
  16. package/lib/module/reanimated/useAnimatedTheme.native.js +16 -6
  17. package/lib/module/reanimated/useAnimatedTheme.native.js.map +1 -1
  18. package/lib/module/specs/StyleSheet/index.js +1 -1
  19. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  20. package/lib/module/web/convert/object/boxShadow.js +1 -1
  21. package/lib/module/web/convert/object/boxShadow.js.map +1 -1
  22. package/lib/typescript/src/components/native/Animated.d.ts.map +1 -1
  23. package/lib/typescript/src/reanimated/useAnimatedTheme.d.ts.map +1 -1
  24. package/lib/typescript/src/reanimated/useAnimatedTheme.native.d.ts.map +1 -1
  25. package/lib/typescript/src/specs/StyleSheet/index.d.ts +1 -1
  26. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  27. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +14 -14
  28. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +15 -0
  29. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +21 -0
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +33 -0
  31. package/package.json +8 -8
  32. package/plugin/index.js +42 -30
  33. package/src/reanimated/useAnimatedTheme.native.ts +21 -6
  34. package/src/reanimated/useAnimatedTheme.ts +20 -7
  35. package/src/specs/StyleSheet/index.ts +2 -2
  36. 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
- parser::Parser(unistylesRuntime).rebuildUnistyle(rt, unistyle, variants, parsedArguments);
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->notifyJSListeners(unistyleDependencies);
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
- auto dependencyMap = registry.buildDependencyMap(unistyleDependencies);
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
- if (dependencyMap.empty()) {
388
- self->notifyJSListeners(dependencies);
338
+ self->applyDependencyChanges(rt, dependencies, miniRuntime);
339
+ });
340
+ }
389
341
 
390
- return;
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
- // we don't care about other unmounted stylesheets as their not visible
394
- // so user won't see any changes
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
- parser.rebuildUnistylesInDependencyMap(rt, dependencyMap, dependentStyleSheets, miniRuntime);
358
+ if (!dependencyMap.empty()) {
398
359
  parser.rebuildShadowLeafUpdates(rt, dependencyMap);
360
+ }
361
+
362
+ this->notifyJSListeners(dependencies);
399
363
 
400
- self->notifyJSListeners(dependencies);
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;
@@ -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 theme = (0, _reactNativeReanimated.useSharedValue)(_specs.UnistylesRuntime.getTheme());
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], () => theme.set(_specs.UnistylesRuntime.getTheme()));
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","set","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,MAAMC,KAAK,GAAG,IAAAC,qCAAc,EAACC,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;EAEzD,IAAAC,gBAAS,EAAC,MAAM;IACZ,MAAMC,OAAO,GAAGC,kBAAQ,CAACC,QAAQ,CAACC,YAAY,CAAC,CAACC,yBAAkB,CAACC,KAAK,CAAC,EAAE,MACvEV,KAAK,CAACW,GAAG,CAACT,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CACzC,CAAC;IAED,OAAO,MAAM;MACTE,OAAO,CAAC,CAAC;IACb,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOL,KAAK;AAChB,CAAC;AAAAY,OAAA,CAAAb,gBAAA,GAAAA,gBAAA","ignoreList":[]}
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 theme = (0, _reactNativeReanimated.useSharedValue)(_specs.UnistylesRuntime.getTheme());
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
- theme.set(_specs.UnistylesRuntime.getTheme());
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","set","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,MAAMC,KAAK,GAAG,IAAAC,qCAAc,EAACC,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;EAEzD,IAAAC,gBAAS,EAAC,MAAM;IACZ,MAAMC,OAAO,GAAGC,iBAAU,CAACC,iBAAiB,CAAEC,mBAAmB,IAAK;MAClE,IAAIA,mBAAmB,CAACC,QAAQ,CAACC,yBAAkB,CAACC,KAAK,CAAC,EAAE;QACxDX,KAAK,CAACY,GAAG,CAACV,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;MAC1C;IACJ,CAAC,CAAC;IAEF,OAAO,MAAME,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOL,KAAK;AAChB,CAAC;AAAAa,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
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.absoluteFillObject;
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,CAACD,kBAAkB;AAClFH,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":[]}
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,IAAIC,KAAK,EAAE;AACnN,CAAC;AAEM,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,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,EAAEV,oBAAoB,CAAC4B,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
+ {"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 theme = useSharedValue(UnistylesRuntime.getTheme());
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], () => theme.set(UnistylesRuntime.getTheme()));
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","set"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAA2BC,cAAc,QAAQ,yBAAyB;AAI1E,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,UAAU;AAC/D,SAASC,QAAQ,QAAQ,iBAAiB;AAE1C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAMC,KAAK,GAAGL,cAAc,CAACE,gBAAgB,CAACI,QAAQ,CAAC,CAAC,CAAC;EAEzDP,SAAS,CAAC,MAAM;IACZ,MAAMQ,OAAO,GAAGJ,QAAQ,CAACK,QAAQ,CAACC,YAAY,CAAC,CAACR,kBAAkB,CAACS,KAAK,CAAC,EAAE,MACvEL,KAAK,CAACM,GAAG,CAACT,gBAAgB,CAACI,QAAQ,CAAC,CAAC,CACzC,CAAC;IAED,OAAO,MAAM;MACTC,OAAO,CAAC,CAAC;IACb,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,KAAK;AAChB,CAAC","ignoreList":[]}
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 theme = useSharedValue(UnistylesRuntime.getTheme());
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
- theme.set(UnistylesRuntime.getTheme());
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","set"],"sourceRoot":"../../../src","sources":["reanimated/useAnimatedTheme.native.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAA2BC,cAAc,QAAQ,yBAAyB;AAI1E,SAASC,UAAU,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,UAAU;AAE3E,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAMC,KAAK,GAAGL,cAAc,CAACG,gBAAgB,CAACG,QAAQ,CAAC,CAAC,CAAC;EAEzDP,SAAS,CAAC,MAAM;IACZ,MAAMQ,OAAO,GAAGN,UAAU,CAACO,iBAAiB,CAAEC,mBAAmB,IAAK;MAClE,IAAIA,mBAAmB,CAACC,QAAQ,CAACR,kBAAkB,CAACS,KAAK,CAAC,EAAE;QACxDN,KAAK,CAACO,GAAG,CAACT,gBAAgB,CAACG,QAAQ,CAAC,CAAC,CAAC;MAC1C;IACJ,CAAC,CAAC;IAEF,OAAO,MAAMC,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,KAAK;AAChB,CAAC","ignoreList":[]}
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.absoluteFillObject;
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,CAACM,kBAAkB;AAClFF,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":[]}
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,IAAIC,KAAK,EAAE;AACnN,CAAC;AAED,OAAO,MAAME,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,EAAET,oBAAoB,CAACqB,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,IAAInB,WAAW,CAACmB,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,EAAET,oBAAoB,CAAC2B,MAAM;MAC1C;IACJ,CAAC;EACL,CAAC,CAAC;EAEF,OAAO9B,gBAAgB,CAAC,GAAG2B,gBAAgB,CAAC;AAChD,CAAC","ignoreList":[]}
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;;;;;;;;;;;;;;;;;;;;iGASwhe,GAAG;;;;;;;;;;;;;;;;CAD/ie,CAAA"}
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,QAaT,WAAW,CAAC,cAAc,CAC7C,CAAA"}
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,QAaT,WAAW,CAAC,cAAc,CAC7C,CAAA"}
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.absoluteFillObject;
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,kBAAkB,CAAA;IAClE,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"}
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 = dependencies.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 = dependencies[__i];
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
- size_t __size = dependencies->size();
75
- std::vector<UnistyleDependency> __vector;
76
- __vector.reserve(__size);
77
- for (size_t __i = 0; __i < __size; __i++) {
78
- auto __element = dependencies->getElement(__i);
79
- __vector.push_back(__element->toCpp());
80
- }
81
- return __vector;
82
- }(), miniRuntime->toCpp());
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++
@@ -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",
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.83.2",
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.83.2",
148
- "nitrogen": "0.35.4",
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.0",
152
- "react-native": "0.83.2",
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.4",
155
- "react-native-reanimated": "4.2.2",
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) || !t4.isIdentifier(property.key)) {
404
+ if (!t4.isObjectProperty(property)) {
393
405
  return;
394
406
  }
395
- if (t4.isObjectProperty(property)) {
396
- if (t4.isObjectExpression(property.value)) {
397
- property.value.properties.forEach((innerProp) => {
398
- if (t4.isObjectProperty(innerProp) && t4.isIdentifier(innerProp.key) && t4.isIdentifier(property.key) && innerProp.key.name === "variants") {
399
- detectedStylesWithVariants.add({
400
- label: "variants",
401
- key: property.key.name
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) && t4.isIdentifier(property.key) && innerProp.key.name === "variants") {
424
+ if (t4.isObjectProperty(innerProp) && t4.isIdentifier(innerProp.key) && innerProp.key.name === "variants") {
411
425
  detectedStylesWithVariants.add({
412
426
  label: "variants",
413
- key: property.key.name
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
- if (!stylePath.isIdentifier()) {
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) && t6.isIdentifier(property.key) && Object.prototype.hasOwnProperty.call(detectedDependencies, property.key.name)) {
905
- addDependencies(
906
- state,
907
- property.key.name,
908
- property,
909
- detectedDependencies[property.key.name] ?? []
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) && t6.isIdentifier(property.key) && Object.prototype.hasOwnProperty.call(detectedDependencies, property.key.name)) {
924
- addDependencies(
925
- state,
926
- property.key.name,
927
- property,
928
- detectedDependencies[property.key.name] ?? []
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 theme = useSharedValue(UnistylesRuntime.getTheme())
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
- theme.set(UnistylesRuntime.getTheme())
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 theme = useSharedValue(UnistylesRuntime.getTheme())
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
- theme.set(UnistylesRuntime.getTheme()),
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.absoluteFillObject
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.absoluteFillObject
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>) => {