react-native-unistyles 3.0.0-nightly-20250607 → 3.0.0-nightly-20250609

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 (47) hide show
  1. package/README.md +4 -4
  2. package/cxx/core/UnistyleWrapper.h +4 -1
  3. package/lib/commonjs/components/AdaptiveTheme.js +35 -0
  4. package/lib/commonjs/components/AdaptiveTheme.js.map +1 -0
  5. package/lib/commonjs/components/ApplyScopedTheme.js +19 -0
  6. package/lib/commonjs/components/ApplyScopedTheme.js.map +1 -0
  7. package/lib/commonjs/components/NamedTheme.js +31 -0
  8. package/lib/commonjs/components/NamedTheme.js.map +1 -0
  9. package/lib/commonjs/components/ScopedTheme.js +20 -23
  10. package/lib/commonjs/components/ScopedTheme.js.map +1 -1
  11. package/lib/commonjs/specs/ShadowRegistry/index.js +6 -1
  12. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  13. package/lib/commonjs/web/listener.js +2 -0
  14. package/lib/commonjs/web/listener.js.map +1 -1
  15. package/lib/module/components/AdaptiveTheme.js +29 -0
  16. package/lib/module/components/AdaptiveTheme.js.map +1 -0
  17. package/lib/module/components/ApplyScopedTheme.js +14 -0
  18. package/lib/module/components/ApplyScopedTheme.js.map +1 -0
  19. package/lib/module/components/NamedTheme.js +25 -0
  20. package/lib/module/components/NamedTheme.js.map +1 -0
  21. package/lib/module/components/ScopedTheme.js +20 -23
  22. package/lib/module/components/ScopedTheme.js.map +1 -1
  23. package/lib/module/specs/ShadowRegistry/index.js +6 -1
  24. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  25. package/lib/module/web/listener.js +2 -0
  26. package/lib/module/web/listener.js.map +1 -1
  27. package/lib/typescript/plugin/src/consts.d.ts.map +1 -1
  28. package/lib/typescript/src/components/AdaptiveTheme.d.ts +8 -0
  29. package/lib/typescript/src/components/AdaptiveTheme.d.ts.map +1 -0
  30. package/lib/typescript/src/components/ApplyScopedTheme.d.ts +7 -0
  31. package/lib/typescript/src/components/ApplyScopedTheme.d.ts.map +1 -0
  32. package/lib/typescript/src/components/NamedTheme.d.ts +10 -0
  33. package/lib/typescript/src/components/NamedTheme.d.ts.map +1 -0
  34. package/lib/typescript/src/components/ScopedTheme.d.ts +4 -0
  35. package/lib/typescript/src/components/ScopedTheme.d.ts.map +1 -1
  36. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  37. package/lib/typescript/src/web/listener.d.ts.map +1 -1
  38. package/package.json +3 -3
  39. package/plugin/index.d.ts +1 -1
  40. package/plugin/index.js +1 -4
  41. package/repack-plugin/index.js +1 -4
  42. package/src/components/AdaptiveTheme.tsx +34 -0
  43. package/src/components/ApplyScopedTheme.tsx +17 -0
  44. package/src/components/NamedTheme.tsx +33 -0
  45. package/src/components/ScopedTheme.tsx +35 -25
  46. package/src/specs/ShadowRegistry/index.ts +6 -1
  47. package/src/web/listener.ts +2 -0
package/README.md CHANGED
@@ -21,16 +21,16 @@ yarn add react-native-unistyles@next
21
21
  Install dependencies:
22
22
 
23
23
  ```shell
24
- yarn add react-native-edge-to-edge react-native-nitro-modules@0.26.0
24
+ yarn add react-native-edge-to-edge react-native-nitro-modules@0.26.2
25
25
  ```
26
26
 
27
27
  > To avoid unexpected behavior, always use a fixed version of `react-native-nitro-modules`
28
28
 
29
29
  | react-native-unistyles | react-native-nitro-modules | other requirements |
30
30
  |------------------------|----------------------------|----- |
31
- | 3.0.0-nightly-20250520 | 0.26.0 | |
32
- | 3.0.0-nightly-20250606 | 0.26.0 | React >= 19 and React Native >= 0.78 |
33
- | 3.0.0-rc.4 | 0.26.0 | |
31
+ | 3.0.0-nightly-20250520 | 0.26.2 | |
32
+ | 3.0.0-nightly-20250607 | 0.26.2 | React >= 19 and React Native >= 0.78 |
33
+ | 3.0.0-rc.4 | 0.26.2 | |
34
34
 
35
35
  Then follow [installation guides](https://unistyl.es/v3/start/getting-started) for your platform.
36
36
 
@@ -154,8 +154,11 @@ inline static jsi::Value objectFromUnistyle(jsi::Runtime& rt, std::shared_ptr<Hy
154
154
  rt,
155
155
  jsi::PropNameID::forUtf8(rt, helpers::GET_STYLES.c_str()),
156
156
  0,
157
- [unistyle, unistylesRuntime, variants, parsedArguments](jsi::Runtime &rt, const jsi::Value &thisValue, const jsi::Value *args, size_t count
157
+ [unistyleID = unistyle->unid, unistylesRuntime, variants, parsedArguments](jsi::Runtime &rt, const jsi::Value &thisValue, const jsi::Value *args, size_t count
158
158
  ) {
159
+ auto& registry = UnistylesRegistry::get();
160
+ auto unistyle = registry.getUnistyleById(rt, unistyleID);
161
+
159
162
  parser::Parser(unistylesRuntime).rebuildUnistyle(rt, unistyle, variants, parsedArguments);
160
163
 
161
164
  return jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AdaptiveTheme = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _core = require("../core");
9
+ var _specs = require("../specs");
10
+ var _ApplyScopedTheme = require("./ApplyScopedTheme");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const AdaptiveTheme = ({
14
+ children,
15
+ previousScopedTheme
16
+ }) => {
17
+ const {
18
+ rt
19
+ } = (0, _core.useUnistyles)();
20
+ const name = rt.themeName === 'dark' ? 'light' : 'dark';
21
+ const mappedChildren = [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ApplyScopedTheme.ApplyScopedTheme, {
22
+ name: name
23
+ }, name), children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_ApplyScopedTheme.ApplyScopedTheme, {
24
+ name: previousScopedTheme
25
+ }, 'dispose')];
26
+ (0, _react.useLayoutEffect)(() => {
27
+ // this will affect only scoped styles as other styles are not yet mounted
28
+ _specs.UnistylesShadowRegistry.flush();
29
+ });
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
31
+ children: mappedChildren
32
+ }, name);
33
+ };
34
+ exports.AdaptiveTheme = AdaptiveTheme;
35
+ //# sourceMappingURL=AdaptiveTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_core","_specs","_ApplyScopedTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AdaptiveTheme","children","previousScopedTheme","rt","useUnistyles","name","themeName","mappedChildren","jsx","ApplyScopedTheme","useLayoutEffect","UnistylesShadowRegistry","flush","Fragment","exports"],"sourceRoot":"../../../src","sources":["components/AdaptiveTheme.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAqD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAM9C,MAAMkB,aAA0D,GAAGA,CAAC;EACvEC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAG,CAAC,GAAG,IAAAC,kBAAY,EAAC,CAAC;EAC7B,MAAMC,IAAI,GAAIF,EAAE,CAACG,SAAS,KAAK,MAAM,GAAG,OAAO,GAAG,MAAgC;EAClF,MAAMC,cAAc,GAAG,cACnB,IAAA3B,WAAA,CAAA4B,GAAA,EAAC7B,iBAAA,CAAA8B,gBAAgB;IAAYJ,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAC3CJ,QAAQ,eACR,IAAArB,WAAA,CAAA4B,GAAA,EAAC7B,iBAAA,CAAA8B,gBAAgB;IAAeJ,IAAI,EAAEH;EAAyD,GAAzE,SAA2E,CAAC,CACrG;EAED,IAAAQ,sBAAe,EAAC,MAAM;IAClB;IACAC,8BAAuB,CAACC,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACI,IAAAhC,WAAA,CAAA4B,GAAA,EAAClC,MAAA,CAAAiB,OAAK,CAACsB,QAAQ;IAAAZ,QAAA,EACVM;EAAc,GADEF,IAEL,CAAC;AAEzB,CAAC;AAAAS,OAAA,CAAAd,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ApplyScopedTheme = void 0;
7
+ var _react = require("react");
8
+ var _specs = require("../specs");
9
+ const ApplyScopedTheme = ({
10
+ name
11
+ }) => {
12
+ _specs.UnistylesShadowRegistry.setScopedTheme(name);
13
+ (0, _react.useLayoutEffect)(() => {
14
+ _specs.UnistylesShadowRegistry.setScopedTheme(name);
15
+ });
16
+ return null;
17
+ };
18
+ exports.ApplyScopedTheme = ApplyScopedTheme;
19
+ //# sourceMappingURL=ApplyScopedTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_specs","ApplyScopedTheme","name","UnistylesShadowRegistry","setScopedTheme","useLayoutEffect","exports"],"sourceRoot":"../../../src","sources":["components/ApplyScopedTheme.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAMO,MAAME,gBAAgE,GAAGA,CAAC;EAAEC;AAAK,CAAC,KAAK;EAC1FC,8BAAuB,CAACC,cAAc,CAACF,IAAI,CAAC;EAE5C,IAAAG,sBAAe,EAAC,MAAM;IAClBF,8BAAuB,CAACC,cAAc,CAACF,IAAI,CAAC;EAChD,CAAC,CAAC;EAEF,OAAO,IAAI;AACf,CAAC;AAAAI,OAAA,CAAAL,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NamedTheme = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _specs = require("../specs");
9
+ var _ApplyScopedTheme = require("./ApplyScopedTheme");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const NamedTheme = ({
13
+ name,
14
+ children,
15
+ previousScopedTheme
16
+ }) => {
17
+ const mappedChildren = [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ApplyScopedTheme.ApplyScopedTheme, {
18
+ name: name
19
+ }, name), children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_ApplyScopedTheme.ApplyScopedTheme, {
20
+ name: previousScopedTheme
21
+ }, 'dispose')];
22
+ (0, _react.useLayoutEffect)(() => {
23
+ // this will affect only scoped styles as other styles are not yet mounted
24
+ _specs.UnistylesShadowRegistry.flush();
25
+ });
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
27
+ children: mappedChildren
28
+ });
29
+ };
30
+ exports.NamedTheme = NamedTheme;
31
+ //# sourceMappingURL=NamedTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_specs","_ApplyScopedTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NamedTheme","name","children","previousScopedTheme","mappedChildren","jsx","ApplyScopedTheme","useLayoutEffect","UnistylesShadowRegistry","flush","Fragment","exports"],"sourceRoot":"../../../src","sources":["components/NamedTheme.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAAqD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAO9C,MAAMkB,UAAoD,GAAGA,CAAC;EACjEC,IAAI;EACJC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAMC,cAAc,GAAG,cACnB,IAAAxB,WAAA,CAAAyB,GAAA,EAAC1B,iBAAA,CAAA2B,gBAAgB;IAAYL,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAC3CC,QAAQ,eACR,IAAAtB,WAAA,CAAAyB,GAAA,EAAC1B,iBAAA,CAAA2B,gBAAgB;IAAeL,IAAI,EAAEE;EAAyD,GAAzE,SAA2E,CAAC,CACrG;EAED,IAAAI,sBAAe,EAAC,MAAM;IAClB;IACAC,8BAAuB,CAACC,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACI,IAAA7B,WAAA,CAAAyB,GAAA,EAAC9B,MAAA,CAAAgB,OAAK,CAACmB,QAAQ;IAAAR,QAAA,EACVE;EAAc,CACH,CAAC;AAEzB,CAAC;AAAAO,OAAA,CAAAX,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -4,35 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ScopedTheme = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _specs = require("../specs");
9
+ var _AdaptiveTheme = require("./AdaptiveTheme");
10
+ var _NamedTheme = require("./NamedTheme");
9
11
  var _jsxRuntime = require("react/jsx-runtime");
10
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- const Apply = ({
12
- name
13
- }) => {
14
- _specs.UnistylesShadowRegistry.setScopedTheme(name);
15
- (0, _react.useLayoutEffect)(() => {
16
- _specs.UnistylesShadowRegistry.setScopedTheme(name);
17
- });
18
- return null;
19
- };
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
13
  const ScopedTheme = ({
21
14
  name,
22
- children
15
+ children,
16
+ invertedAdaptive
23
17
  }) => {
18
+ const isAdaptiveTheme = invertedAdaptive && _specs.UnistylesRuntime.hasAdaptiveThemes;
19
+ if (!isAdaptiveTheme && !name) {
20
+ if (__DEV__) {
21
+ console.error('ScopedTheme: name or invertedAdaptive must be provided');
22
+ }
23
+ return null;
24
+ }
24
25
  const previousScopedTheme = _specs.UnistylesShadowRegistry.getScopedTheme();
25
- const mappedChildren = [/*#__PURE__*/(0, _jsxRuntime.jsx)(Apply, {
26
- name: name
27
- }, name), children, /*#__PURE__*/(0, _jsxRuntime.jsx)(Apply, {
28
- name: previousScopedTheme
29
- }, 'dispose')];
30
- (0, _react.useLayoutEffect)(() => {
31
- // this will affect only scoped styles as other styles are not yet mounted
32
- _specs.UnistylesShadowRegistry.flush();
33
- });
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
35
- children: mappedChildren
26
+ return isAdaptiveTheme ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_AdaptiveTheme.AdaptiveTheme, {
27
+ previousScopedTheme: previousScopedTheme,
28
+ children: children
29
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_NamedTheme.NamedTheme, {
30
+ name: name,
31
+ previousScopedTheme: previousScopedTheme,
32
+ children: children
36
33
  });
37
34
  };
38
35
  exports.ScopedTheme = ScopedTheme;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_specs","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Apply","name","UnistylesShadowRegistry","setScopedTheme","useLayoutEffect","ScopedTheme","children","previousScopedTheme","getScopedTheme","mappedChildren","jsx","flush","Fragment","exports"],"sourceRoot":"../../../src","sources":["components/ScopedTheme.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAAkD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAMlD,MAAMkB,KAAK,GAAGA,CAAC;EAAEC;AAAuC,CAAC,KAAK;EAC1DC,8BAAuB,CAACC,cAAc,CAACF,IAAI,CAAC;EAE5C,IAAAG,sBAAe,EAAC,MAAM;IAClBF,8BAAuB,CAACC,cAAc,CAACF,IAAI,CAAC;EAChD,CAAC,CAAC;EAEF,OAAO,IAAI;AACf,CAAC;AAEM,MAAMI,WAAyE,GAAGA,CAAC;EAAEJ,IAAI;EAAEK;AAAS,CAAC,KAAK;EAC7G,MAAMC,mBAAmB,GAAGL,8BAAuB,CAACM,cAAc,CAAC,CAAC;EACpE,MAAMC,cAAc,GAAG,cACnB,IAAA7B,WAAA,CAAA8B,GAAA,EAACV,KAAK;IAAYC,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAChCK,QAAQ,eACR,IAAA1B,WAAA,CAAA8B,GAAA,EAACV,KAAK;IAAeC,IAAI,EAAEM;EAAyD,GAAzE,SAA2E,CAAC,CAC1F;EAED,IAAAH,sBAAe,EAAC,MAAM;IAClB;IACAF,8BAAuB,CAACS,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACI,IAAA/B,WAAA,CAAA8B,GAAA,EAAClC,MAAA,CAAAe,OAAK,CAACqB,QAAQ;IAAAN,QAAA,EACVG;EAAc,CACH,CAAC;AAEzB,CAAC;AAAAI,OAAA,CAAAR,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_specs","_AdaptiveTheme","_NamedTheme","_jsxRuntime","e","__esModule","default","ScopedTheme","name","children","invertedAdaptive","isAdaptiveTheme","UnistylesRuntime","hasAdaptiveThemes","__DEV__","console","error","previousScopedTheme","UnistylesShadowRegistry","getScopedTheme","jsx","AdaptiveTheme","NamedTheme","exports"],"sourceRoot":"../../../src","sources":["components/ScopedTheme.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAyC,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUlC,MAAMG,WAAyE,GAAGA,CAAC;EACtFC,IAAI;EACJC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAMC,eAAe,GAAGD,gBAAgB,IAAIE,uBAAgB,CAACC,iBAAiB;EAE9E,IAAI,CAACF,eAAe,IAAI,CAACH,IAAI,EAAE;IAC3B,IAAIM,OAAO,EAAE;MACTC,OAAO,CAACC,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IAEA,OAAO,IAAI;EACf;EAEA,MAAMC,mBAAmB,GAAGC,8BAAuB,CAACC,cAAc,CAAC,CAAC;EAEpE,OAAOR,eAAe,gBAEd,IAAAR,WAAA,CAAAiB,GAAA,EAACnB,cAAA,CAAAoB,aAAa;IAACJ,mBAAmB,EAAEA,mBAAoB;IAAAR,QAAA,EACnDA;EAAQ,CACE,CAAC,gBAGhB,IAAAN,WAAA,CAAAiB,GAAA,EAAClB,WAAA,CAAAoB,UAAU;IACPd,IAAI,EAAEA,IAA8B;IACpCS,mBAAmB,EAAEA,mBAAoB;IAAAR,QAAA,EAExCA;EAAQ,CACD,CACf;AAET,CAAC;AAAAc,OAAA,CAAAhB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -8,8 +8,13 @@ var _reactNativeNitroModules = require("react-native-nitro-modules");
8
8
  const HybridShadowRegistry = _reactNativeNitroModules.NitroModules.createHybridObject('UnistylesShadowRegistry');
9
9
  const findShadowNodeForHandle = handle => {
10
10
  const node = handle?.__internalInstanceHandle?.stateNode?.node ?? handle?.getScrollResponder?.()?.getNativeScrollRef?.()?.__internalInstanceHandle?.stateNode?.node ?? handle?.getNativeScrollRef?.()?.__internalInstanceHandle?.stateNode?.node ?? handle?._viewRef?.__internalInstanceHandle?.stateNode?.node ?? handle?.viewRef?.current?.__internalInstanceHandle?.stateNode?.node ?? handle?._nativeRef?.__internalInstanceHandle?.stateNode?.node;
11
+
12
+ // @ts-ignore we don't know the type of handle
13
+ if (!node && handle?.props?.horizontal && handle?.constructor?.name === 'FlatList') {
14
+ throw new Error('Unistyles: detected an unsupported FlatList with the horizontal prop. This will cause crashes on Android due to a bug in React Native core. Read more: https://github.com/facebook/react-native/issues/51601');
15
+ }
11
16
  if (!node) {
12
- throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.__internalInstanceHandle?.elementType ?? 'unknown'}`);
17
+ throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.constructor?.name ?? 'unknown'}`);
13
18
  }
14
19
  return node;
15
20
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","HybridShadowRegistry","NitroModules","createHybridObject","findShadowNodeForHandle","handle","node","__internalInstanceHandle","stateNode","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","Error","elementType","add","styles","stylesArray","Array","isArray","flat","filteredStyles","filter","style","Object","keys","length","Boolean","link","remove","unlink","UnistylesShadowRegistry","exports"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAgBA,MAAMC,oBAAoB,GAAGC,qCAAY,CAACC,kBAAkB,CAAiB,yBAAyB,CAAC;AAEvG,MAAMC,uBAAuB,GAAIC,MAAkB,IAAK;EACpD,MAAMC,IAAI,GAAGD,MAAM,EAAEE,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACvDD,MAAM,EAAEI,kBAAkB,GAAG,CAAC,EAAEC,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACjGD,MAAM,EAAEK,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACzED,MAAM,EAAEM,QAAQ,EAAEJ,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IAC3DD,MAAM,EAAEO,OAAO,EAAEC,OAAO,EAAEN,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACnED,MAAM,EAAES,UAAU,EAAEP,wBAAwB,EAAEC,SAAS,EAAEF,IAAI;EAEpE,IAAI,CAACA,IAAI,EAAE;IACP,MAAM,IAAIS,KAAK,CAAC,4EAA4EV,MAAM,EAAEE,wBAAwB,EAAES,WAAW,IAAI,SAAS,EAAE,CAAC;EAC7J;EAEA,OAAOV,IAAI;AACf,CAAC;AAEDL,oBAAoB,CAACgB,GAAG,GAAG,CAACZ,MAAM,EAAEa,MAAM,KAAK;EAC3C;EACA,IAAI,CAACb,MAAM,IAAI,CAACa,MAAM,EAAE;IACpB;EACJ;EAEA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GACnCA,MAAM,CAACI,IAAI,CAAC,CAAC,GACb,CAACJ,MAAM,CAAC;;EAEd;EACA,MAAMK,cAAc,GAAGJ,WAAW,CAC7BK,MAAM,CAACC,KAAK,IAAIA,KAAK,IAAIC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CACvDN,IAAI,CAAC,CAAC,CACNE,MAAM,CAACK,OAAO,CAAC;EAEpB,IAAIN,cAAc,CAACK,MAAM,GAAG,CAAC,EAAE;IAC3B3B,oBAAoB,CAAC6B,IAAI,CAAC1B,uBAAuB,CAACC,MAAM,CAAC,EAAEkB,cAAc,CAAC;EAC9E;AACJ,CAAC;AAEDtB,oBAAoB,CAAC8B,MAAM,GAAG1B,MAAM,IAAI;EACpC,IAAI,CAACA,MAAM,EAAE;IACT;EACJ;EAEAJ,oBAAoB,CAAC+B,MAAM,CAAC5B,uBAAuB,CAACC,MAAM,CAAC,CAAC;AAChE,CAAC;AAQM,MAAM4B,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAGhC,oBAA4D","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","HybridShadowRegistry","NitroModules","createHybridObject","findShadowNodeForHandle","handle","node","__internalInstanceHandle","stateNode","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","props","horizontal","constructor","name","Error","add","styles","stylesArray","Array","isArray","flat","filteredStyles","filter","style","Object","keys","length","Boolean","link","remove","unlink","UnistylesShadowRegistry","exports"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAgBA,MAAMC,oBAAoB,GAAGC,qCAAY,CAACC,kBAAkB,CAAiB,yBAAyB,CAAC;AAEvG,MAAMC,uBAAuB,GAAIC,MAAkB,IAAK;EACpD,MAAMC,IAAI,GAAGD,MAAM,EAAEE,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACvDD,MAAM,EAAEI,kBAAkB,GAAG,CAAC,EAAEC,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACjGD,MAAM,EAAEK,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACzED,MAAM,EAAEM,QAAQ,EAAEJ,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IAC3DD,MAAM,EAAEO,OAAO,EAAEC,OAAO,EAAEN,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACnED,MAAM,EAAES,UAAU,EAAEP,wBAAwB,EAAEC,SAAS,EAAEF,IAAI;;EAEpE;EACA,IAAI,CAACA,IAAI,IAAID,MAAM,EAAEU,KAAK,EAAEC,UAAU,IAAIX,MAAM,EAAEY,WAAW,EAAEC,IAAI,KAAK,UAAU,EAAE;IAChF,MAAM,IAAIC,KAAK,CAAC,8MAA8M,CAAC;EACnO;EAEA,IAAI,CAACb,IAAI,EAAE;IACP,MAAM,IAAIa,KAAK,CAAC,4EAA4Ed,MAAM,EAAEY,WAAW,EAAEC,IAAI,IAAI,SAAS,EAAE,CAAC;EACzI;EAEA,OAAOZ,IAAI;AACf,CAAC;AAEDL,oBAAoB,CAACmB,GAAG,GAAG,CAACf,MAAM,EAAEgB,MAAM,KAAK;EAC3C;EACA,IAAI,CAAChB,MAAM,IAAI,CAACgB,MAAM,EAAE;IACpB;EACJ;EAEA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GACnCA,MAAM,CAACI,IAAI,CAAC,CAAC,GACb,CAACJ,MAAM,CAAC;;EAEd;EACA,MAAMK,cAAc,GAAGJ,WAAW,CAC7BK,MAAM,CAACC,KAAK,IAAIA,KAAK,IAAIC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CACvDN,IAAI,CAAC,CAAC,CACNE,MAAM,CAACK,OAAO,CAAC;EAEpB,IAAIN,cAAc,CAACK,MAAM,GAAG,CAAC,EAAE;IAC3B9B,oBAAoB,CAACgC,IAAI,CAAC7B,uBAAuB,CAACC,MAAM,CAAC,EAAEqB,cAAc,CAAC;EAC9E;AACJ,CAAC;AAEDzB,oBAAoB,CAACiC,MAAM,GAAG7B,MAAM,IAAI;EACpC,IAAI,CAACA,MAAM,EAAE;IACT;EACJ;EAEAJ,oBAAoB,CAACkC,MAAM,CAAC/B,uBAAuB,CAACC,MAAM,CAAC,CAAC;AAChE,CAAC;AAQM,MAAM+B,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAGnC,oBAA4D","ignoreList":[]}
@@ -32,6 +32,7 @@ class UnistylesListener {
32
32
  this.emitChange(_NativePlatform.UnistyleDependency.ColorScheme);
33
33
  if (this.services.runtime.hasAdaptiveThemes) {
34
34
  this.emitChange(_NativePlatform.UnistyleDependency.Theme);
35
+ this.emitChange(_NativePlatform.UnistyleDependency.ThemeName);
35
36
  }
36
37
  });
37
38
  this.services.runtime.lightMedia?.addEventListener('change', event => {
@@ -41,6 +42,7 @@ class UnistylesListener {
41
42
  this.emitChange(_NativePlatform.UnistyleDependency.ColorScheme);
42
43
  if (this.services.runtime.hasAdaptiveThemes) {
43
44
  this.emitChange(_NativePlatform.UnistyleDependency.Theme);
45
+ this.emitChange(_NativePlatform.UnistyleDependency.ThemeName);
44
46
  }
45
47
  });
46
48
  window.addEventListener('orientationchange', () => this.emitChange(_NativePlatform.UnistyleDependency.Orientation));
@@ -1 +1 @@
1
- {"version":3,"names":["_NativePlatform","require","UnistylesListener","isInitialized","listeners","Array","from","length","Object","keys","UnistyleDependency","Set","stylesheetListeners","constructor","services","emitChange","dependency","forEach","listener","initListeners","runtime","darkMedia","addEventListener","event","matches","ColorScheme","hasAdaptiveThemes","Theme","lightMedia","window","Orientation","Dimensions","addListeners","dependencies","add","delete","addStylesheetListeners","exports"],"sourceRoot":"../../../src","sources":["web/listener.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_NativePlatform","require","UnistylesListener","isInitialized","listeners","Array","from","length","Object","keys","UnistyleDependency","Set","stylesheetListeners","constructor","services","emitChange","dependency","forEach","listener","initListeners","runtime","darkMedia","addEventListener","event","matches","ColorScheme","hasAdaptiveThemes","Theme","ThemeName","lightMedia","window","Orientation","Dimensions","addListeners","dependencies","add","delete","addStylesheetListeners","exports"],"sourceRoot":"../../../src","sources":["web/listener.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import React, { useLayoutEffect } from 'react';
4
+ import { useUnistyles } from '../core';
5
+ import { UnistylesShadowRegistry } from '../specs';
6
+ import { ApplyScopedTheme } from './ApplyScopedTheme';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const AdaptiveTheme = ({
9
+ children,
10
+ previousScopedTheme
11
+ }) => {
12
+ const {
13
+ rt
14
+ } = useUnistyles();
15
+ const name = rt.themeName === 'dark' ? 'light' : 'dark';
16
+ const mappedChildren = [/*#__PURE__*/_jsx(ApplyScopedTheme, {
17
+ name: name
18
+ }, name), children, /*#__PURE__*/_jsx(ApplyScopedTheme, {
19
+ name: previousScopedTheme
20
+ }, 'dispose')];
21
+ useLayoutEffect(() => {
22
+ // this will affect only scoped styles as other styles are not yet mounted
23
+ UnistylesShadowRegistry.flush();
24
+ });
25
+ return /*#__PURE__*/_jsx(React.Fragment, {
26
+ children: mappedChildren
27
+ }, name);
28
+ };
29
+ //# sourceMappingURL=AdaptiveTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useLayoutEffect","useUnistyles","UnistylesShadowRegistry","ApplyScopedTheme","jsx","_jsx","AdaptiveTheme","children","previousScopedTheme","rt","name","themeName","mappedChildren","flush","Fragment"],"sourceRoot":"../../../src","sources":["components/AdaptiveTheme.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,eAAe,QAAQ,OAAO;AAE9C,SAASC,YAAY,QAAQ,SAAS;AAEtC,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,gBAAgB,QAAQ,oBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMrD,OAAO,MAAMC,aAA0D,GAAGA,CAAC;EACvEC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAG,CAAC,GAAGR,YAAY,CAAC,CAAC;EAC7B,MAAMS,IAAI,GAAID,EAAE,CAACE,SAAS,KAAK,MAAM,GAAG,OAAO,GAAG,MAAgC;EAClF,MAAMC,cAAc,GAAG,cACnBP,IAAA,CAACF,gBAAgB;IAAYO,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAC3CH,QAAQ,eACRF,IAAA,CAACF,gBAAgB;IAAeO,IAAI,EAAEF;EAAyD,GAAzE,SAA2E,CAAC,CACrG;EAEDR,eAAe,CAAC,MAAM;IAClB;IACAE,uBAAuB,CAACW,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACIR,IAAA,CAACN,KAAK,CAACe,QAAQ;IAAAP,QAAA,EACVK;EAAc,GADEF,IAEL,CAAC;AAEzB,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ import { useLayoutEffect } from 'react';
4
+ import { UnistylesShadowRegistry } from '../specs';
5
+ export const ApplyScopedTheme = ({
6
+ name
7
+ }) => {
8
+ UnistylesShadowRegistry.setScopedTheme(name);
9
+ useLayoutEffect(() => {
10
+ UnistylesShadowRegistry.setScopedTheme(name);
11
+ });
12
+ return null;
13
+ };
14
+ //# sourceMappingURL=ApplyScopedTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","UnistylesShadowRegistry","ApplyScopedTheme","name","setScopedTheme"],"sourceRoot":"../../../src","sources":["components/ApplyScopedTheme.tsx"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AAEvC,SAASC,uBAAuB,QAAQ,UAAU;AAMlD,OAAO,MAAMC,gBAAgE,GAAGA,CAAC;EAAEC;AAAK,CAAC,KAAK;EAC1FF,uBAAuB,CAACG,cAAc,CAACD,IAAI,CAAC;EAE5CH,eAAe,CAAC,MAAM;IAClBC,uBAAuB,CAACG,cAAc,CAACD,IAAI,CAAC;EAChD,CAAC,CAAC;EAEF,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import React, { useLayoutEffect } from 'react';
4
+ import { UnistylesShadowRegistry } from '../specs';
5
+ import { ApplyScopedTheme } from './ApplyScopedTheme';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const NamedTheme = ({
8
+ name,
9
+ children,
10
+ previousScopedTheme
11
+ }) => {
12
+ const mappedChildren = [/*#__PURE__*/_jsx(ApplyScopedTheme, {
13
+ name: name
14
+ }, name), children, /*#__PURE__*/_jsx(ApplyScopedTheme, {
15
+ name: previousScopedTheme
16
+ }, 'dispose')];
17
+ useLayoutEffect(() => {
18
+ // this will affect only scoped styles as other styles are not yet mounted
19
+ UnistylesShadowRegistry.flush();
20
+ });
21
+ return /*#__PURE__*/_jsx(React.Fragment, {
22
+ children: mappedChildren
23
+ });
24
+ };
25
+ //# sourceMappingURL=NamedTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useLayoutEffect","UnistylesShadowRegistry","ApplyScopedTheme","jsx","_jsx","NamedTheme","name","children","previousScopedTheme","mappedChildren","flush","Fragment"],"sourceRoot":"../../../src","sources":["components/NamedTheme.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,eAAe,QAAQ,OAAO;AAG9C,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,gBAAgB,QAAQ,oBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOrD,OAAO,MAAMC,UAAoD,GAAGA,CAAC;EACjEC,IAAI;EACJC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAMC,cAAc,GAAG,cACnBL,IAAA,CAACF,gBAAgB;IAAYI,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAC3CC,QAAQ,eACRH,IAAA,CAACF,gBAAgB;IAAeI,IAAI,EAAEE;EAAyD,GAAzE,SAA2E,CAAC,CACrG;EAEDR,eAAe,CAAC,MAAM;IAClB;IACAC,uBAAuB,CAACS,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACIN,IAAA,CAACL,KAAK,CAACY,QAAQ;IAAAJ,QAAA,EACVE;EAAc,CACH,CAAC;AAEzB,CAAC","ignoreList":[]}
@@ -1,33 +1,30 @@
1
1
  "use strict";
2
2
 
3
- import React, { useLayoutEffect } from 'react';
4
- import { UnistylesShadowRegistry } from '../specs';
3
+ import React from 'react';
4
+ import { UnistylesRuntime, UnistylesShadowRegistry } from '../specs';
5
+ import { AdaptiveTheme } from './AdaptiveTheme';
6
+ import { NamedTheme } from './NamedTheme';
5
7
  import { jsx as _jsx } from "react/jsx-runtime";
6
- const Apply = ({
7
- name
8
- }) => {
9
- UnistylesShadowRegistry.setScopedTheme(name);
10
- useLayoutEffect(() => {
11
- UnistylesShadowRegistry.setScopedTheme(name);
12
- });
13
- return null;
14
- };
15
8
  export const ScopedTheme = ({
16
9
  name,
17
- children
10
+ children,
11
+ invertedAdaptive
18
12
  }) => {
13
+ const isAdaptiveTheme = invertedAdaptive && UnistylesRuntime.hasAdaptiveThemes;
14
+ if (!isAdaptiveTheme && !name) {
15
+ if (__DEV__) {
16
+ console.error('ScopedTheme: name or invertedAdaptive must be provided');
17
+ }
18
+ return null;
19
+ }
19
20
  const previousScopedTheme = UnistylesShadowRegistry.getScopedTheme();
20
- const mappedChildren = [/*#__PURE__*/_jsx(Apply, {
21
- name: name
22
- }, name), children, /*#__PURE__*/_jsx(Apply, {
23
- name: previousScopedTheme
24
- }, 'dispose')];
25
- useLayoutEffect(() => {
26
- // this will affect only scoped styles as other styles are not yet mounted
27
- UnistylesShadowRegistry.flush();
28
- });
29
- return /*#__PURE__*/_jsx(React.Fragment, {
30
- children: mappedChildren
21
+ return isAdaptiveTheme ? /*#__PURE__*/_jsx(AdaptiveTheme, {
22
+ previousScopedTheme: previousScopedTheme,
23
+ children: children
24
+ }) : /*#__PURE__*/_jsx(NamedTheme, {
25
+ name: name,
26
+ previousScopedTheme: previousScopedTheme,
27
+ children: children
31
28
  });
32
29
  };
33
30
  //# sourceMappingURL=ScopedTheme.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLayoutEffect","UnistylesShadowRegistry","jsx","_jsx","Apply","name","setScopedTheme","ScopedTheme","children","previousScopedTheme","getScopedTheme","mappedChildren","flush","Fragment"],"sourceRoot":"../../../src","sources":["components/ScopedTheme.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,eAAe,QAAQ,OAAO;AAE9C,SAASC,uBAAuB,QAAQ,UAAU;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMlD,MAAMC,KAAK,GAAGA,CAAC;EAAEC;AAAuC,CAAC,KAAK;EAC1DJ,uBAAuB,CAACK,cAAc,CAACD,IAAI,CAAC;EAE5CL,eAAe,CAAC,MAAM;IAClBC,uBAAuB,CAACK,cAAc,CAACD,IAAI,CAAC;EAChD,CAAC,CAAC;EAEF,OAAO,IAAI;AACf,CAAC;AAED,OAAO,MAAME,WAAyE,GAAGA,CAAC;EAAEF,IAAI;EAAEG;AAAS,CAAC,KAAK;EAC7G,MAAMC,mBAAmB,GAAGR,uBAAuB,CAACS,cAAc,CAAC,CAAC;EACpE,MAAMC,cAAc,GAAG,cACnBR,IAAA,CAACC,KAAK;IAAYC,IAAI,EAAEA;EAAK,GAAjBA,IAAmB,CAAC,EAChCG,QAAQ,eACRL,IAAA,CAACC,KAAK;IAAeC,IAAI,EAAEI;EAAyD,GAAzE,SAA2E,CAAC,CAC1F;EAEDT,eAAe,CAAC,MAAM;IAClB;IACAC,uBAAuB,CAACW,KAAK,CAAC,CAAC;EACnC,CAAC,CAAC;EAEF,oBACIT,IAAA,CAACJ,KAAK,CAACc,QAAQ;IAAAL,QAAA,EACVG;EAAc,CACH,CAAC;AAEzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","UnistylesRuntime","UnistylesShadowRegistry","AdaptiveTheme","NamedTheme","jsx","_jsx","ScopedTheme","name","children","invertedAdaptive","isAdaptiveTheme","hasAdaptiveThemes","__DEV__","console","error","previousScopedTheme","getScopedTheme"],"sourceRoot":"../../../src","sources":["components/ScopedTheme.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,UAAU;AACpE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAUzC,OAAO,MAAMC,WAAyE,GAAGA,CAAC;EACtFC,IAAI;EACJC,QAAQ;EACRC;AACJ,CAAC,KAAK;EACF,MAAMC,eAAe,GAAGD,gBAAgB,IAAIT,gBAAgB,CAACW,iBAAiB;EAE9E,IAAI,CAACD,eAAe,IAAI,CAACH,IAAI,EAAE;IAC3B,IAAIK,OAAO,EAAE;MACTC,OAAO,CAACC,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IAEA,OAAO,IAAI;EACf;EAEA,MAAMC,mBAAmB,GAAGd,uBAAuB,CAACe,cAAc,CAAC,CAAC;EAEpE,OAAON,eAAe,gBAEdL,IAAA,CAACH,aAAa;IAACa,mBAAmB,EAAEA,mBAAoB;IAAAP,QAAA,EACnDA;EAAQ,CACE,CAAC,gBAGhBH,IAAA,CAACF,UAAU;IACPI,IAAI,EAAEA,IAA8B;IACpCQ,mBAAmB,EAAEA,mBAAoB;IAAAP,QAAA,EAExCA;EAAQ,CACD,CACf;AAET,CAAC","ignoreList":[]}
@@ -4,8 +4,13 @@ import { NitroModules } from 'react-native-nitro-modules';
4
4
  const HybridShadowRegistry = NitroModules.createHybridObject('UnistylesShadowRegistry');
5
5
  const findShadowNodeForHandle = handle => {
6
6
  const node = handle?.__internalInstanceHandle?.stateNode?.node ?? handle?.getScrollResponder?.()?.getNativeScrollRef?.()?.__internalInstanceHandle?.stateNode?.node ?? handle?.getNativeScrollRef?.()?.__internalInstanceHandle?.stateNode?.node ?? handle?._viewRef?.__internalInstanceHandle?.stateNode?.node ?? handle?.viewRef?.current?.__internalInstanceHandle?.stateNode?.node ?? handle?._nativeRef?.__internalInstanceHandle?.stateNode?.node;
7
+
8
+ // @ts-ignore we don't know the type of handle
9
+ if (!node && handle?.props?.horizontal && handle?.constructor?.name === 'FlatList') {
10
+ throw new Error('Unistyles: detected an unsupported FlatList with the horizontal prop. This will cause crashes on Android due to a bug in React Native core. Read more: https://github.com/facebook/react-native/issues/51601');
11
+ }
7
12
  if (!node) {
8
- throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.__internalInstanceHandle?.elementType ?? 'unknown'}`);
13
+ throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.constructor?.name ?? 'unknown'}`);
9
14
  }
10
15
  return node;
11
16
  };
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","HybridShadowRegistry","createHybridObject","findShadowNodeForHandle","handle","node","__internalInstanceHandle","stateNode","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","Error","elementType","add","styles","stylesArray","Array","isArray","flat","filteredStyles","filter","style","Object","keys","length","Boolean","link","remove","unlink","UnistylesShadowRegistry"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAgBzD,MAAMC,oBAAoB,GAAGD,YAAY,CAACE,kBAAkB,CAAiB,yBAAyB,CAAC;AAEvG,MAAMC,uBAAuB,GAAIC,MAAkB,IAAK;EACpD,MAAMC,IAAI,GAAGD,MAAM,EAAEE,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACvDD,MAAM,EAAEI,kBAAkB,GAAG,CAAC,EAAEC,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACjGD,MAAM,EAAEK,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACzED,MAAM,EAAEM,QAAQ,EAAEJ,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IAC3DD,MAAM,EAAEO,OAAO,EAAEC,OAAO,EAAEN,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACnED,MAAM,EAAES,UAAU,EAAEP,wBAAwB,EAAEC,SAAS,EAAEF,IAAI;EAEpE,IAAI,CAACA,IAAI,EAAE;IACP,MAAM,IAAIS,KAAK,CAAC,4EAA4EV,MAAM,EAAEE,wBAAwB,EAAES,WAAW,IAAI,SAAS,EAAE,CAAC;EAC7J;EAEA,OAAOV,IAAI;AACf,CAAC;AAEDJ,oBAAoB,CAACe,GAAG,GAAG,CAACZ,MAAM,EAAEa,MAAM,KAAK;EAC3C;EACA,IAAI,CAACb,MAAM,IAAI,CAACa,MAAM,EAAE;IACpB;EACJ;EAEA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GACnCA,MAAM,CAACI,IAAI,CAAC,CAAC,GACb,CAACJ,MAAM,CAAC;;EAEd;EACA,MAAMK,cAAc,GAAGJ,WAAW,CAC7BK,MAAM,CAACC,KAAK,IAAIA,KAAK,IAAIC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CACvDN,IAAI,CAAC,CAAC,CACNE,MAAM,CAACK,OAAO,CAAC;EAEpB,IAAIN,cAAc,CAACK,MAAM,GAAG,CAAC,EAAE;IAC3B1B,oBAAoB,CAAC4B,IAAI,CAAC1B,uBAAuB,CAACC,MAAM,CAAC,EAAEkB,cAAc,CAAC;EAC9E;AACJ,CAAC;AAEDrB,oBAAoB,CAAC6B,MAAM,GAAG1B,MAAM,IAAI;EACpC,IAAI,CAACA,MAAM,EAAE;IACT;EACJ;EAEAH,oBAAoB,CAAC8B,MAAM,CAAC5B,uBAAuB,CAACC,MAAM,CAAC,CAAC;AAChE,CAAC;AAQD,OAAO,MAAM4B,uBAAuB,GAAG/B,oBAA4D","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","HybridShadowRegistry","createHybridObject","findShadowNodeForHandle","handle","node","__internalInstanceHandle","stateNode","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","props","horizontal","constructor","name","Error","add","styles","stylesArray","Array","isArray","flat","filteredStyles","filter","style","Object","keys","length","Boolean","link","remove","unlink","UnistylesShadowRegistry"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAgBzD,MAAMC,oBAAoB,GAAGD,YAAY,CAACE,kBAAkB,CAAiB,yBAAyB,CAAC;AAEvG,MAAMC,uBAAuB,GAAIC,MAAkB,IAAK;EACpD,MAAMC,IAAI,GAAGD,MAAM,EAAEE,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACvDD,MAAM,EAAEI,kBAAkB,GAAG,CAAC,EAAEC,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACjGD,MAAM,EAAEK,kBAAkB,GAAG,CAAC,EAAEH,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACzED,MAAM,EAAEM,QAAQ,EAAEJ,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IAC3DD,MAAM,EAAEO,OAAO,EAAEC,OAAO,EAAEN,wBAAwB,EAAEC,SAAS,EAAEF,IAAI,IACnED,MAAM,EAAES,UAAU,EAAEP,wBAAwB,EAAEC,SAAS,EAAEF,IAAI;;EAEpE;EACA,IAAI,CAACA,IAAI,IAAID,MAAM,EAAEU,KAAK,EAAEC,UAAU,IAAIX,MAAM,EAAEY,WAAW,EAAEC,IAAI,KAAK,UAAU,EAAE;IAChF,MAAM,IAAIC,KAAK,CAAC,8MAA8M,CAAC;EACnO;EAEA,IAAI,CAACb,IAAI,EAAE;IACP,MAAM,IAAIa,KAAK,CAAC,4EAA4Ed,MAAM,EAAEY,WAAW,EAAEC,IAAI,IAAI,SAAS,EAAE,CAAC;EACzI;EAEA,OAAOZ,IAAI;AACf,CAAC;AAEDJ,oBAAoB,CAACkB,GAAG,GAAG,CAACf,MAAM,EAAEgB,MAAM,KAAK;EAC3C;EACA,IAAI,CAAChB,MAAM,IAAI,CAACgB,MAAM,EAAE;IACpB;EACJ;EAEA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GACnCA,MAAM,CAACI,IAAI,CAAC,CAAC,GACb,CAACJ,MAAM,CAAC;;EAEd;EACA,MAAMK,cAAc,GAAGJ,WAAW,CAC7BK,MAAM,CAACC,KAAK,IAAIA,KAAK,IAAIC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CACvDN,IAAI,CAAC,CAAC,CACNE,MAAM,CAACK,OAAO,CAAC;EAEpB,IAAIN,cAAc,CAACK,MAAM,GAAG,CAAC,EAAE;IAC3B7B,oBAAoB,CAAC+B,IAAI,CAAC7B,uBAAuB,CAACC,MAAM,CAAC,EAAEqB,cAAc,CAAC;EAC9E;AACJ,CAAC;AAEDxB,oBAAoB,CAACgC,MAAM,GAAG7B,MAAM,IAAI;EACpC,IAAI,CAACA,MAAM,EAAE;IACT;EACJ;EAEAH,oBAAoB,CAACiC,MAAM,CAAC/B,uBAAuB,CAACC,MAAM,CAAC,CAAC;AAChE,CAAC;AAQD,OAAO,MAAM+B,uBAAuB,GAAGlC,oBAA4D","ignoreList":[]}
@@ -28,6 +28,7 @@ export class UnistylesListener {
28
28
  this.emitChange(UnistyleDependency.ColorScheme);
29
29
  if (this.services.runtime.hasAdaptiveThemes) {
30
30
  this.emitChange(UnistyleDependency.Theme);
31
+ this.emitChange(UnistyleDependency.ThemeName);
31
32
  }
32
33
  });
33
34
  this.services.runtime.lightMedia?.addEventListener('change', event => {
@@ -37,6 +38,7 @@ export class UnistylesListener {
37
38
  this.emitChange(UnistyleDependency.ColorScheme);
38
39
  if (this.services.runtime.hasAdaptiveThemes) {
39
40
  this.emitChange(UnistyleDependency.Theme);
41
+ this.emitChange(UnistyleDependency.ThemeName);
40
42
  }
41
43
  });
42
44
  window.addEventListener('orientationchange', () => this.emitChange(UnistyleDependency.Orientation));
@@ -1 +1 @@
1
- {"version":3,"names":["UnistyleDependency","UnistylesListener","isInitialized","listeners","Array","from","length","Object","keys","Set","stylesheetListeners","constructor","services","emitChange","dependency","forEach","listener","initListeners","runtime","darkMedia","addEventListener","event","matches","ColorScheme","hasAdaptiveThemes","Theme","lightMedia","window","Orientation","Dimensions","addListeners","dependencies","add","delete","addStylesheetListeners"],"sourceRoot":"../../../src","sources":["web/listener.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["UnistyleDependency","UnistylesListener","isInitialized","listeners","Array","from","length","Object","keys","Set","stylesheetListeners","constructor","services","emitChange","dependency","forEach","listener","initListeners","runtime","darkMedia","addEventListener","event","matches","ColorScheme","hasAdaptiveThemes","Theme","ThemeName","lightMedia","window","Orientation","Dimensions","addListeners","dependencies","add","delete","addStylesheetListeners"],"sourceRoot":"../../../src","sources":["web/listener.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../../plugin/src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,4BAA4B,UAoBxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,UAMxC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,KAAK,CAAC,WAAW,CAAM,CAAA;AAEzE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAchE,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../../plugin/src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,4BAA4B,UAoBxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,UAGxC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,KAAK,CAAC,WAAW,CAAM,CAAA;AAEzE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAchE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { PropsWithChildren } from 'react';
3
+ interface AdaptiveThemeProps extends PropsWithChildren {
4
+ previousScopedTheme?: string;
5
+ }
6
+ export declare const AdaptiveTheme: React.FunctionComponent<AdaptiveThemeProps>;
7
+ export {};
8
+ //# sourceMappingURL=AdaptiveTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/AdaptiveTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAM9C,UAAU,kBAAmB,SAAQ,iBAAiB;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAsBrE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { UnistylesThemes } from '../global';
2
+ type ApplyScopedThemeProps = {
3
+ name?: keyof UnistylesThemes;
4
+ };
5
+ export declare const ApplyScopedTheme: React.FunctionComponent<ApplyScopedThemeProps>;
6
+ export {};
7
+ //# sourceMappingURL=ApplyScopedTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyScopedTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/ApplyScopedTheme.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAGhD,KAAK,qBAAqB,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,eAAe,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAQ3E,CAAA"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { PropsWithChildren } from 'react';
3
+ import type { UnistylesThemes } from '../global';
4
+ interface NamedThemeProps extends PropsWithChildren {
5
+ name: keyof UnistylesThemes;
6
+ previousScopedTheme?: string;
7
+ }
8
+ export declare const NamedTheme: React.FunctionComponent<NamedThemeProps>;
9
+ export {};
10
+ //# sourceMappingURL=NamedTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NamedTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/NamedTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAIhD,UAAU,eAAgB,SAAQ,iBAAiB;IAC/C,IAAI,EAAE,MAAM,eAAe,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAqB/D,CAAA"}
@@ -2,6 +2,10 @@ import React from 'react';
2
2
  import type { UnistylesThemes } from '../global';
3
3
  type ThemeProps = {
4
4
  name: keyof UnistylesThemes;
5
+ invertedAdaptive?: boolean;
6
+ } | {
7
+ name?: undefined;
8
+ invertedAdaptive: true;
5
9
  };
6
10
  export declare const ScopedTheme: React.FunctionComponent<React.PropsWithChildren<ThemeProps>>;
7
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ScopedTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/ScopedTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAGhD,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,MAAM,eAAe,CAAA;CAC9B,CAAA;AAYD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAkBpF,CAAA"}
1
+ {"version":3,"file":"ScopedTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/ScopedTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAKhD,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,MAAM,eAAe,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC7B,GAAG;IACA,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,IAAI,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAgCpF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/specs/ShadowRegistry/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,IAAI,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE/D,UAAU,cAAe,SAAQ,2BAA2B;IAExD,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc,IAAI,MAAM,GAAG,SAAS,CAAA;CACvC;AAgDD,KAAK,cAAc,GACb,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,CAAA;AAEd,eAAO,MAAM,uBAAuB,EAA2B,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/specs/ShadowRegistry/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,IAAI,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE/D,UAAU,cAAe,SAAQ,2BAA2B;IAExD,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc,IAAI,MAAM,GAAG,SAAS,CAAA;CACvC;AAqDD,KAAK,cAAc,GACb,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,CAAA;AAEd,eAAO,MAAM,uBAAuB,EAA2B,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/web/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,qBAAa,iBAAiB;IAKd,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAoG;IACrH,OAAO,CAAC,mBAAmB,CAAoG;gBAE3G,QAAQ,EAAE,iBAAiB;IAE/C,UAAU,GAAI,YAAY,kBAAkB,UAG3C;IAED,aAAa,aAgCZ;IAED,YAAY,GAAI,cAAc,KAAK,CAAC,kBAAkB,CAAC,EAAE,UAAU,YAAY,gBAM9E;IAED,sBAAsB,GAAI,cAAc,KAAK,CAAC,kBAAkB,CAAC,EAAE,UAAU,YAAY,gBAMxF;CACJ"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/web/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,qBAAa,iBAAiB;IAKd,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAoG;IACrH,OAAO,CAAC,mBAAmB,CAAoG;gBAE3G,QAAQ,EAAE,iBAAiB;IAE/C,UAAU,GAAI,YAAY,kBAAkB,UAG3C;IAED,aAAa,aAkCZ;IAED,YAAY,GAAI,cAAc,KAAK,CAAC,kBAAkB,CAAC,EAAE,UAAU,YAAY,gBAM9E;IAED,sBAAsB,GAAI,cAAc,KAAK,CAAC,kBAAkB,CAAC,EAAE,UAAU,YAAY,gBAMxF;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-unistyles",
3
- "version": "3.0.0-nightly-20250607",
3
+ "version": "3.0.0-nightly-20250609",
4
4
  "description": "Level up your React Native StyleSheet",
5
5
  "scripts": {
6
6
  "test": "NODE_ENV=babel-test jest ./plugin",
@@ -147,11 +147,11 @@
147
147
  "husky": "9.1.7",
148
148
  "jest": "29.7.0",
149
149
  "metro-react-native-babel-preset": "0.77.0",
150
- "nitro-codegen": "0.26.0",
150
+ "nitro-codegen": "0.26.2",
151
151
  "react": "19.1.0",
152
152
  "react-native": "0.79.2",
153
153
  "react-native-builder-bob": "0.40.10",
154
- "react-native-nitro-modules": "0.26.0",
154
+ "react-native-nitro-modules": "0.26.2",
155
155
  "react-native-reanimated": "3.17.5",
156
156
  "react-native-web": "0.20.0",
157
157
  "react-test-renderer": "19.1.0",
package/plugin/index.d.ts CHANGED
@@ -104,7 +104,7 @@ export interface UnistylesPluginOptions {
104
104
  * Defaults to:
105
105
  *
106
106
  * ```ts
107
- * ['react-native-reanimated/src/component', 'react-native-gesture-handler/src/components']
107
+ * ['react-native-reanimated/src/component']
108
108
  * ```
109
109
  */
110
110
  autoProcessPaths?: Array<string>,
package/plugin/index.js CHANGED
@@ -60,10 +60,7 @@ var REACT_NATIVE_COMPONENT_NAMES = [
60
60
  ];
61
61
  var REPLACE_WITH_UNISTYLES_PATHS = [
62
62
  "react-native-reanimated/src/component",
63
- "react-native-reanimated/lib/module/component",
64
- "react-native-gesture-handler/lib/module/components",
65
- "react-native-gesture-handler/lib/commonjs/components",
66
- "react-native-gesture-handler/src/components"
63
+ "react-native-reanimated/lib/module/component"
67
64
  ];
68
65
  var REPLACE_WITH_UNISTYLES_EXOTIC_PATHS = [];
69
66
  var NATIVE_COMPONENTS_PATHS = {
@@ -54,10 +54,7 @@ var REACT_NATIVE_COMPONENT_NAMES = [
54
54
  ];
55
55
  var REPLACE_WITH_UNISTYLES_PATHS = [
56
56
  "react-native-reanimated/src/component",
57
- "react-native-reanimated/lib/module/component",
58
- "react-native-gesture-handler/lib/module/components",
59
- "react-native-gesture-handler/lib/commonjs/components",
60
- "react-native-gesture-handler/src/components"
57
+ "react-native-reanimated/lib/module/component"
61
58
  ];
62
59
 
63
60
  // repack-plugin/src/loader.ts
@@ -0,0 +1,34 @@
1
+ import React, { useLayoutEffect } from 'react'
2
+ import type { PropsWithChildren } from 'react'
3
+ import { useUnistyles } from '../core'
4
+ import type { UnistylesThemes } from '../global'
5
+ import { UnistylesShadowRegistry } from '../specs'
6
+ import { ApplyScopedTheme } from './ApplyScopedTheme'
7
+
8
+ interface AdaptiveThemeProps extends PropsWithChildren {
9
+ previousScopedTheme?: string
10
+ }
11
+
12
+ export const AdaptiveTheme: React.FunctionComponent<AdaptiveThemeProps> = ({
13
+ children,
14
+ previousScopedTheme
15
+ }) => {
16
+ const { rt } = useUnistyles()
17
+ const name = (rt.themeName === 'dark' ? 'light' : 'dark') as keyof UnistylesThemes
18
+ const mappedChildren = [
19
+ <ApplyScopedTheme key={name} name={name} />,
20
+ children,
21
+ <ApplyScopedTheme key='dispose' name={previousScopedTheme as keyof UnistylesThemes | undefined} />
22
+ ]
23
+
24
+ useLayoutEffect(() => {
25
+ // this will affect only scoped styles as other styles are not yet mounted
26
+ UnistylesShadowRegistry.flush()
27
+ })
28
+
29
+ return (
30
+ <React.Fragment key={name}>
31
+ {mappedChildren}
32
+ </React.Fragment>
33
+ )
34
+ }
@@ -0,0 +1,17 @@
1
+ import { useLayoutEffect } from 'react'
2
+ import type { UnistylesThemes } from '../global'
3
+ import { UnistylesShadowRegistry } from '../specs'
4
+
5
+ type ApplyScopedThemeProps = {
6
+ name?: keyof UnistylesThemes
7
+ }
8
+
9
+ export const ApplyScopedTheme: React.FunctionComponent<ApplyScopedThemeProps> = ({ name }) => {
10
+ UnistylesShadowRegistry.setScopedTheme(name)
11
+
12
+ useLayoutEffect(() => {
13
+ UnistylesShadowRegistry.setScopedTheme(name)
14
+ })
15
+
16
+ return null
17
+ }
@@ -0,0 +1,33 @@
1
+ import React, { useLayoutEffect } from 'react'
2
+ import type { PropsWithChildren } from 'react'
3
+ import type { UnistylesThemes } from '../global'
4
+ import { UnistylesShadowRegistry } from '../specs'
5
+ import { ApplyScopedTheme } from './ApplyScopedTheme'
6
+
7
+ interface NamedThemeProps extends PropsWithChildren {
8
+ name: keyof UnistylesThemes,
9
+ previousScopedTheme?: string
10
+ }
11
+
12
+ export const NamedTheme: React.FunctionComponent<NamedThemeProps> = ({
13
+ name,
14
+ children,
15
+ previousScopedTheme
16
+ }) => {
17
+ const mappedChildren = [
18
+ <ApplyScopedTheme key={name} name={name} />,
19
+ children,
20
+ <ApplyScopedTheme key='dispose' name={previousScopedTheme as keyof UnistylesThemes | undefined} />
21
+ ]
22
+
23
+ useLayoutEffect(() => {
24
+ // this will affect only scoped styles as other styles are not yet mounted
25
+ UnistylesShadowRegistry.flush()
26
+ })
27
+
28
+ return (
29
+ <React.Fragment>
30
+ {mappedChildren}
31
+ </React.Fragment>
32
+ )
33
+ }
@@ -1,37 +1,47 @@
1
- import React, { useLayoutEffect } from 'react'
1
+ import React from 'react'
2
2
  import type { UnistylesThemes } from '../global'
3
- import { UnistylesShadowRegistry } from '../specs'
3
+ import { UnistylesRuntime, UnistylesShadowRegistry } from '../specs'
4
+ import { AdaptiveTheme } from './AdaptiveTheme'
5
+ import { NamedTheme } from './NamedTheme'
4
6
 
5
7
  type ThemeProps = {
6
- name: keyof UnistylesThemes
8
+ name: keyof UnistylesThemes,
9
+ invertedAdaptive?: boolean
10
+ } | {
11
+ name?: undefined,
12
+ invertedAdaptive: true
7
13
  }
8
14
 
9
- const Apply = ({ name }: { name?: keyof UnistylesThemes }) => {
10
- UnistylesShadowRegistry.setScopedTheme(name)
15
+ export const ScopedTheme: React.FunctionComponent<React.PropsWithChildren<ThemeProps>> = ({
16
+ name,
17
+ children,
18
+ invertedAdaptive
19
+ }) => {
20
+ const isAdaptiveTheme = invertedAdaptive && UnistylesRuntime.hasAdaptiveThemes
11
21
 
12
- useLayoutEffect(() => {
13
- UnistylesShadowRegistry.setScopedTheme(name)
14
- })
22
+ if (!isAdaptiveTheme && !name) {
23
+ if (__DEV__) {
24
+ console.error('ScopedTheme: name or invertedAdaptive must be provided')
25
+ }
15
26
 
16
- return null
17
- }
27
+ return null
28
+ }
18
29
 
19
- export const ScopedTheme: React.FunctionComponent<React.PropsWithChildren<ThemeProps>> = ({ name, children }) => {
20
30
  const previousScopedTheme = UnistylesShadowRegistry.getScopedTheme()
21
- const mappedChildren = [
22
- <Apply key={name} name={name} />,
23
- children,
24
- <Apply key='dispose' name={previousScopedTheme as keyof UnistylesThemes | undefined} />
25
- ]
26
31
 
27
- useLayoutEffect(() => {
28
- // this will affect only scoped styles as other styles are not yet mounted
29
- UnistylesShadowRegistry.flush()
30
- })
32
+ return isAdaptiveTheme
33
+ ? (
34
+ <AdaptiveTheme previousScopedTheme={previousScopedTheme}>
35
+ {children}
36
+ </AdaptiveTheme>
37
+ )
38
+ : (
39
+ <NamedTheme
40
+ name={name as keyof UnistylesThemes}
41
+ previousScopedTheme={previousScopedTheme}
42
+ >
43
+ {children}
44
+ </NamedTheme>
45
+ )
31
46
 
32
- return (
33
- <React.Fragment>
34
- {mappedChildren}
35
- </React.Fragment>
36
- )
37
47
  }
@@ -24,8 +24,13 @@ const findShadowNodeForHandle = (handle: ViewHandle) => {
24
24
  ?? handle?.viewRef?.current?.__internalInstanceHandle?.stateNode?.node
25
25
  ?? handle?._nativeRef?.__internalInstanceHandle?.stateNode?.node
26
26
 
27
+ // @ts-ignore we don't know the type of handle
28
+ if (!node && handle?.props?.horizontal && handle?.constructor?.name === 'FlatList') {
29
+ throw new Error('Unistyles: detected an unsupported FlatList with the horizontal prop. This will cause crashes on Android due to a bug in React Native core. Read more: https://github.com/facebook/react-native/issues/51601')
30
+ }
31
+
27
32
  if (!node) {
28
- throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.__internalInstanceHandle?.elementType ?? 'unknown'}`)
33
+ throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.constructor?.name ?? 'unknown'}`)
29
34
  }
30
35
 
31
36
  return node
@@ -29,6 +29,7 @@ export class UnistylesListener {
29
29
 
30
30
  if (this.services.runtime.hasAdaptiveThemes) {
31
31
  this.emitChange(UnistyleDependency.Theme)
32
+ this.emitChange(UnistyleDependency.ThemeName)
32
33
  }
33
34
  })
34
35
  this.services.runtime.lightMedia?.addEventListener('change', event => {
@@ -40,6 +41,7 @@ export class UnistylesListener {
40
41
 
41
42
  if (this.services.runtime.hasAdaptiveThemes) {
42
43
  this.emitChange(UnistyleDependency.Theme)
44
+ this.emitChange(UnistyleDependency.ThemeName)
43
45
  }
44
46
  })
45
47