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.
- package/README.md +4 -4
- package/cxx/core/UnistyleWrapper.h +4 -1
- package/lib/commonjs/components/AdaptiveTheme.js +35 -0
- package/lib/commonjs/components/AdaptiveTheme.js.map +1 -0
- package/lib/commonjs/components/ApplyScopedTheme.js +19 -0
- package/lib/commonjs/components/ApplyScopedTheme.js.map +1 -0
- package/lib/commonjs/components/NamedTheme.js +31 -0
- package/lib/commonjs/components/NamedTheme.js.map +1 -0
- package/lib/commonjs/components/ScopedTheme.js +20 -23
- package/lib/commonjs/components/ScopedTheme.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +6 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/web/listener.js +2 -0
- package/lib/commonjs/web/listener.js.map +1 -1
- package/lib/module/components/AdaptiveTheme.js +29 -0
- package/lib/module/components/AdaptiveTheme.js.map +1 -0
- package/lib/module/components/ApplyScopedTheme.js +14 -0
- package/lib/module/components/ApplyScopedTheme.js.map +1 -0
- package/lib/module/components/NamedTheme.js +25 -0
- package/lib/module/components/NamedTheme.js.map +1 -0
- package/lib/module/components/ScopedTheme.js +20 -23
- package/lib/module/components/ScopedTheme.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +6 -1
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/web/listener.js +2 -0
- package/lib/module/web/listener.js.map +1 -1
- package/lib/typescript/plugin/src/consts.d.ts.map +1 -1
- package/lib/typescript/src/components/AdaptiveTheme.d.ts +8 -0
- package/lib/typescript/src/components/AdaptiveTheme.d.ts.map +1 -0
- package/lib/typescript/src/components/ApplyScopedTheme.d.ts +7 -0
- package/lib/typescript/src/components/ApplyScopedTheme.d.ts.map +1 -0
- package/lib/typescript/src/components/NamedTheme.d.ts +10 -0
- package/lib/typescript/src/components/NamedTheme.d.ts.map +1 -0
- package/lib/typescript/src/components/ScopedTheme.d.ts +4 -0
- package/lib/typescript/src/components/ScopedTheme.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/web/listener.d.ts.map +1 -1
- package/package.json +3 -3
- package/plugin/index.d.ts +1 -1
- package/plugin/index.js +1 -4
- package/repack-plugin/index.js +1 -4
- package/src/components/AdaptiveTheme.tsx +34 -0
- package/src/components/ApplyScopedTheme.tsx +17 -0
- package/src/components/NamedTheme.tsx +33 -0
- package/src/components/ScopedTheme.tsx +35 -25
- package/src/specs/ShadowRegistry/index.ts +6 -1
- 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.
|
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.
|
32
|
-
| 3.0.0-nightly-
|
33
|
-
| 3.0.0-rc.4 | 0.26.
|
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 =
|
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
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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","
|
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?.
|
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","
|
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":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,iBAAiB,CAAC;EACnBC,aAAa,GAAG,KAAK;EACrBC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEC,MAAM,CAACC,IAAI,CAACC,kCAAkB,CAAC,CAACH,MAAM,GAAG;EAAE,CAAC,EAAE,MAAM,IAAII,GAAG,CAAe,CAAC,CAAC;EAC7GC,mBAAmB,GAAGP,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEC,MAAM,CAACC,IAAI,CAACC,kCAAkB,CAAC,CAACH,MAAM,GAAG;EAAE,CAAC,EAAE,MAAM,IAAII,GAAG,CAAe,CAAC,CAAC;EAE/HE,WAAWA,CAASC,QAA2B,EAAE;IAAA,KAA7BA,QAA2B,GAA3BA,QAA2B;EAAG;EAElDC,UAAU,GAAIC,UAA8B,IAAK;IAC7C,IAAI,CAACJ,mBAAmB,CAACI,UAAU,CAAC,EAAEC,OAAO,CAACC,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,CAACd,SAAS,CAACY,UAAU,CAAC,EAAEC,OAAO,CAACC,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC;EAC/D,CAAC;EAEDC,aAAa,GAAGA,CAAA,KAAM;IAClB,IAAI,IAAI,CAAChB,aAAa,EAAE;MACpB;IACJ;IAEA,IAAI,CAACA,aAAa,GAAG,IAAI;IAEzB,IAAI,CAACW,QAAQ,CAACM,OAAO,CAACC,SAAS,EAAEC,gBAAgB,CAAC,QAAQ,EAAEC,KAAK,IAAI;MACjE,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;QAChB;MACJ;MAEA,IAAI,CAACT,UAAU,CAACL,kCAAkB,CAACe,WAAW,CAAC;MAE/C,IAAI,IAAI,CAACX,QAAQ,CAACM,OAAO,CAACM,iBAAiB,EAAE;QACzC,IAAI,CAACX,UAAU,CAACL,kCAAkB,CAACiB,KAAK,CAAC;
|
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
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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","
|
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?.
|
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","
|
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":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAyB;AAG5D,OAAO,MAAMC,iBAAiB,CAAC;EACnBC,aAAa,GAAG,KAAK;EACrBC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEC,MAAM,CAACC,IAAI,CAACR,kBAAkB,CAAC,CAACM,MAAM,GAAG;EAAE,CAAC,EAAE,MAAM,IAAIG,GAAG,CAAe,CAAC,CAAC;EAC7GC,mBAAmB,GAAGN,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEC,MAAM,CAACC,IAAI,CAACR,kBAAkB,CAAC,CAACM,MAAM,GAAG;EAAE,CAAC,EAAE,MAAM,IAAIG,GAAG,CAAe,CAAC,CAAC;EAE/HE,WAAWA,CAASC,QAA2B,EAAE;IAAA,KAA7BA,QAA2B,GAA3BA,QAA2B;EAAG;EAElDC,UAAU,GAAIC,UAA8B,IAAK;IAC7C,IAAI,CAACJ,mBAAmB,CAACI,UAAU,CAAC,EAAEC,OAAO,CAACC,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,CAACb,SAAS,CAACW,UAAU,CAAC,EAAEC,OAAO,CAACC,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC;EAC/D,CAAC;EAEDC,aAAa,GAAGA,CAAA,KAAM;IAClB,IAAI,IAAI,CAACf,aAAa,EAAE;MACpB;IACJ;IAEA,IAAI,CAACA,aAAa,GAAG,IAAI;IAEzB,IAAI,CAACU,QAAQ,CAACM,OAAO,CAACC,SAAS,EAAEC,gBAAgB,CAAC,QAAQ,EAAEC,KAAK,IAAI;MACjE,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;QAChB;MACJ;MAEA,IAAI,CAACT,UAAU,CAACb,kBAAkB,CAACuB,WAAW,CAAC;MAE/C,IAAI,IAAI,CAACX,QAAQ,CAACM,OAAO,CAACM,iBAAiB,EAAE;QACzC,IAAI,CAACX,UAAU,CAACb,kBAAkB,CAACyB,KAAK,CAAC;
|
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,
|
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,
|
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;
|
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,
|
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-
|
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.
|
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.
|
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'
|
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 = {
|
package/repack-plugin/index.js
CHANGED
@@ -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
|
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
|
10
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
22
|
+
if (!isAdaptiveTheme && !name) {
|
23
|
+
if (__DEV__) {
|
24
|
+
console.error('ScopedTheme: name or invertedAdaptive must be provided')
|
25
|
+
}
|
15
26
|
|
16
|
-
|
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
|
-
|
28
|
-
|
29
|
-
|
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?.
|
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
|
package/src/web/listener.ts
CHANGED
@@ -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
|
|