react-native-unistyles 2.0.0-alpha.1 → 2.0.0-alpha.10
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +4 -4
- package/cxx/UnistylesRuntime.cpp +255 -0
- package/cxx/UnistylesRuntime.h +60 -0
- package/ios/UnistylesHelpers.h +4 -0
- package/ios/UnistylesHelpers.mm +20 -0
- package/ios/UnistylesModule.h +10 -0
- package/ios/UnistylesModule.mm +158 -0
- package/lib/commonjs/common.js +26 -0
- package/lib/commonjs/common.js.map +1 -0
- package/lib/commonjs/core/UnistyleRegistry.js +38 -0
- package/lib/commonjs/core/UnistyleRegistry.js.map +1 -0
- package/lib/commonjs/core/Unistyles.js +31 -0
- package/lib/commonjs/core/Unistyles.js.map +1 -0
- package/lib/commonjs/core/UnistylesModule.js +9 -0
- package/lib/commonjs/core/UnistylesModule.js.map +1 -0
- package/lib/commonjs/core/UnistylesRuntime.js +66 -0
- package/lib/commonjs/core/UnistylesRuntime.js.map +1 -0
- package/lib/commonjs/core/index.js +13 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/createStyleSheet.js +14 -0
- package/lib/commonjs/createStyleSheet.js.map +1 -0
- package/lib/commonjs/global.js +2 -0
- package/lib/commonjs/global.js.map +1 -0
- package/lib/commonjs/hooks/index.js +10 -3
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useInitialTheme.js +17 -0
- package/lib/commonjs/hooks/useInitialTheme.js.map +1 -0
- package/lib/commonjs/hooks/useUnistyles.js +54 -0
- package/lib/commonjs/hooks/useUnistyles.js.map +1 -0
- package/lib/commonjs/index.js +35 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/common.js +2 -0
- package/lib/commonjs/types/{mediaQueries.js.map → common.js.map} +1 -1
- package/lib/commonjs/types/index.js +26 -0
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/types/mq.js +6 -0
- package/lib/{module/types/mediaQueries.js.map → commonjs/types/mq.js.map} +1 -1
- package/lib/commonjs/types/normalizer.js +6 -0
- package/lib/commonjs/types/normalizer.js.map +1 -0
- package/lib/commonjs/types/unistyles.js +6 -0
- package/lib/commonjs/types/unistyles.js.map +1 -0
- package/lib/commonjs/useStyles.js +49 -0
- package/lib/commonjs/useStyles.js.map +1 -0
- package/lib/commonjs/utils/breakpoints.js +44 -82
- package/lib/commonjs/utils/breakpoints.js.map +1 -1
- package/lib/commonjs/utils/common.js +10 -3
- package/lib/commonjs/utils/common.js.map +1 -1
- package/lib/commonjs/utils/index.js +46 -17
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/module.d.js +2 -0
- package/lib/commonjs/utils/module.d.js.map +1 -0
- package/lib/commonjs/utils/mq.js +89 -0
- package/lib/commonjs/utils/mq.js.map +1 -0
- package/lib/commonjs/utils/mqParser.js +86 -0
- package/lib/commonjs/utils/mqParser.js.map +1 -0
- package/lib/commonjs/utils/normalizeStyles.web.js +13 -13
- package/lib/commonjs/utils/normalizeStyles.web.js.map +1 -1
- package/lib/commonjs/utils/normalizer.js +89 -0
- package/lib/commonjs/utils/normalizer.js.map +1 -0
- package/lib/commonjs/utils/styles.js +17 -57
- package/lib/commonjs/utils/styles.js.map +1 -1
- package/lib/commonjs/utils/variants.js +20 -0
- package/lib/commonjs/utils/variants.js.map +1 -0
- package/lib/module/common.js +22 -0
- package/lib/module/common.js.map +1 -0
- package/lib/module/core/UnistyleRegistry.js +31 -0
- package/lib/module/core/UnistyleRegistry.js.map +1 -0
- package/lib/module/core/Unistyles.js +25 -0
- package/lib/module/core/Unistyles.js.map +1 -0
- package/lib/module/core/UnistylesModule.js +3 -0
- package/lib/module/core/UnistylesModule.js.map +1 -0
- package/lib/module/core/UnistylesRuntime.js +59 -0
- package/lib/module/core/UnistylesRuntime.js.map +1 -0
- package/lib/module/core/index.js +2 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/createStyleSheet.js +7 -0
- package/lib/module/createStyleSheet.js.map +1 -0
- package/lib/module/global.js +2 -0
- package/lib/module/global.js.map +1 -0
- package/lib/module/hooks/index.js +2 -1
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useInitialTheme.js +10 -0
- package/lib/module/hooks/useInitialTheme.js.map +1 -0
- package/lib/module/hooks/useUnistyles.js +47 -0
- package/lib/module/hooks/useUnistyles.js.map +1 -0
- package/lib/module/index.js +13 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/common.js +2 -0
- package/lib/module/types/common.js.map +1 -0
- package/lib/module/types/index.js +2 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/types/mq.js +2 -0
- package/lib/module/types/mq.js.map +1 -0
- package/lib/module/types/normalizer.js +2 -0
- package/lib/module/types/normalizer.js.map +1 -0
- package/lib/module/types/unistyles.js +2 -0
- package/lib/module/types/unistyles.js.map +1 -0
- package/lib/module/useStyles.js +42 -0
- package/lib/module/useStyles.js.map +1 -0
- package/lib/module/utils/breakpoints.js +43 -82
- package/lib/module/utils/breakpoints.js.map +1 -1
- package/lib/module/utils/common.js +9 -1
- package/lib/module/utils/common.js.map +1 -1
- package/lib/module/utils/index.js +6 -2
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/module.d.js +2 -0
- package/lib/module/utils/module.d.js.map +1 -0
- package/lib/module/utils/mq.js +83 -0
- package/lib/module/utils/mq.js.map +1 -0
- package/lib/module/utils/mqParser.js +79 -0
- package/lib/module/utils/mqParser.js.map +1 -0
- package/lib/module/utils/normalizeStyles.web.js +13 -13
- package/lib/module/utils/normalizeStyles.web.js.map +1 -1
- package/lib/module/utils/normalizer.js +79 -0
- package/lib/module/utils/normalizer.js.map +1 -0
- package/lib/module/utils/styles.js +17 -59
- package/lib/module/utils/styles.js.map +1 -1
- package/lib/module/utils/variants.js +13 -0
- package/lib/module/utils/variants.js.map +1 -0
- package/lib/typescript/src/common.d.ts +17 -0
- package/lib/typescript/src/common.d.ts.map +1 -0
- package/lib/typescript/src/core/UnistyleRegistry.d.ts +15 -0
- package/lib/typescript/src/core/UnistyleRegistry.d.ts.map +1 -0
- package/lib/typescript/src/core/Unistyles.d.ts +13 -0
- package/lib/typescript/src/core/Unistyles.d.ts.map +1 -0
- package/lib/typescript/src/core/UnistylesModule.d.ts +6 -0
- package/lib/typescript/src/core/UnistylesModule.d.ts.map +1 -0
- package/lib/typescript/src/core/UnistylesRuntime.d.ts +24 -0
- package/lib/typescript/src/core/UnistylesRuntime.d.ts.map +1 -0
- package/lib/typescript/src/core/index.d.ts +2 -0
- package/lib/typescript/src/core/index.d.ts.map +1 -0
- package/lib/typescript/src/createStyleSheet.d.ts +3 -0
- package/lib/typescript/src/createStyleSheet.d.ts.map +1 -0
- package/lib/typescript/src/global.d.ts +7 -0
- package/lib/typescript/src/global.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +2 -1
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useInitialTheme.d.ts +3 -0
- package/lib/typescript/src/hooks/useInitialTheme.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useUnistyles.d.ts +12 -0
- package/lib/typescript/src/hooks/useUnistyles.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +14 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/breakpoints.d.ts +13 -13
- package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +3 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -0
- package/lib/typescript/src/types/core.d.ts +34 -18
- package/lib/typescript/src/types/core.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +6 -2
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/types/mq.d.ts +3 -0
- package/lib/typescript/src/types/mq.d.ts.map +1 -0
- package/lib/typescript/src/types/normalizer.d.ts +20 -0
- package/lib/typescript/src/types/normalizer.d.ts.map +1 -0
- package/lib/typescript/src/types/unistyles.d.ts +37 -0
- package/lib/typescript/src/types/unistyles.d.ts.map +1 -0
- package/lib/typescript/src/useStyles.d.ts +10 -0
- package/lib/typescript/src/useStyles.d.ts.map +1 -0
- package/lib/typescript/src/utils/breakpoints.d.ts +5 -62
- package/lib/typescript/src/utils/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/utils/common.d.ts +9 -1
- package/lib/typescript/src/utils/common.d.ts.map +1 -1
- package/lib/typescript/src/utils/index.d.ts +6 -2
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/mq.d.ts +21 -0
- package/lib/typescript/src/utils/mq.d.ts.map +1 -0
- package/lib/typescript/src/utils/mqParser.d.ts +3 -0
- package/lib/typescript/src/utils/mqParser.d.ts.map +1 -0
- package/lib/typescript/src/utils/normalizeStyles.web.d.ts +4 -1
- package/lib/typescript/src/utils/normalizeStyles.web.d.ts.map +1 -1
- package/lib/typescript/src/utils/normalizer.d.ts +11 -0
- package/lib/typescript/src/utils/normalizer.d.ts.map +1 -0
- package/lib/typescript/src/utils/styles.d.ts +5 -49
- package/lib/typescript/src/utils/styles.d.ts.map +1 -1
- package/lib/typescript/src/utils/variants.d.ts +3 -0
- package/lib/typescript/src/utils/variants.d.ts.map +1 -0
- package/package.json +33 -15
- package/react-native-unistyles.podspec +22 -0
- package/src/common.ts +19 -0
- package/src/core/UnistyleRegistry.ts +41 -0
- package/src/core/Unistyles.ts +34 -0
- package/src/core/UnistylesModule.ts +7 -0
- package/src/core/UnistylesRuntime.ts +73 -0
- package/src/core/index.ts +1 -0
- package/src/createStyleSheet.ts +9 -0
- package/src/global.ts +5 -0
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useInitialTheme.ts +11 -0
- package/src/hooks/useUnistyles.ts +55 -0
- package/src/index.ts +30 -2
- package/src/types/breakpoints.ts +20 -20
- package/src/types/common.ts +2 -0
- package/src/types/core.ts +42 -24
- package/src/types/index.ts +6 -9
- package/src/types/mq.ts +3 -0
- package/src/types/normalizer.ts +29 -0
- package/src/types/unistyles.ts +45 -0
- package/src/useStyles.ts +56 -0
- package/src/utils/breakpoints.ts +57 -88
- package/src/utils/common.ts +10 -1
- package/src/utils/index.ts +6 -9
- package/src/utils/module.d.ts +3 -0
- package/src/utils/mq.ts +106 -0
- package/src/utils/mqParser.ts +99 -0
- package/src/utils/normalizeStyles.web.ts +21 -42
- package/src/utils/normalizer.ts +99 -0
- package/src/utils/styles.ts +29 -68
- package/src/utils/variants.ts +17 -0
- package/lib/commonjs/UnistylesTheme.js +0 -21
- package/lib/commonjs/UnistylesTheme.js.map +0 -1
- package/lib/commonjs/createUnistyles.js +0 -57
- package/lib/commonjs/createUnistyles.js.map +0 -1
- package/lib/commonjs/hooks/useDimensions.js +0 -10
- package/lib/commonjs/hooks/useDimensions.js.map +0 -1
- package/lib/commonjs/hooks/useDimensions.web.js +0 -31
- package/lib/commonjs/hooks/useDimensions.web.js.map +0 -1
- package/lib/commonjs/types/mediaQueries.js +0 -2
- package/lib/commonjs/utils/mediaQueries.js +0 -189
- package/lib/commonjs/utils/mediaQueries.js.map +0 -1
- package/lib/module/UnistylesTheme.js +0 -12
- package/lib/module/UnistylesTheme.js.map +0 -1
- package/lib/module/createUnistyles.js +0 -50
- package/lib/module/createUnistyles.js.map +0 -1
- package/lib/module/hooks/useDimensions.js +0 -3
- package/lib/module/hooks/useDimensions.js.map +0 -1
- package/lib/module/hooks/useDimensions.web.js +0 -24
- package/lib/module/hooks/useDimensions.web.js.map +0 -1
- package/lib/module/types/mediaQueries.js +0 -2
- package/lib/module/utils/mediaQueries.js +0 -176
- package/lib/module/utils/mediaQueries.js.map +0 -1
- package/lib/typescript/src/UnistylesTheme.d.ts +0 -9
- package/lib/typescript/src/UnistylesTheme.d.ts.map +0 -1
- package/lib/typescript/src/createUnistyles.d.ts +0 -10
- package/lib/typescript/src/createUnistyles.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useDimensions.d.ts +0 -3
- package/lib/typescript/src/hooks/useDimensions.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useDimensions.web.d.ts +0 -3
- package/lib/typescript/src/hooks/useDimensions.web.d.ts.map +0 -1
- package/lib/typescript/src/types/mediaQueries.d.ts +0 -8
- package/lib/typescript/src/types/mediaQueries.d.ts.map +0 -1
- package/lib/typescript/src/utils/mediaQueries.d.ts +0 -130
- package/lib/typescript/src/utils/mediaQueries.d.ts.map +0 -1
- package/src/UnistylesTheme.tsx +0 -17
- package/src/__tests__/createUnistyles.spec.tsx +0 -192
- package/src/createUnistyles.ts +0 -70
- package/src/hooks/useDimensions.ts +0 -4
- package/src/hooks/useDimensions.web.ts +0 -30
- package/src/types/mediaQueries.ts +0 -10
- package/src/utils/mediaQueries.ts +0 -201
@@ -0,0 +1,22 @@
|
|
1
|
+
export let CxxUnistylesEventTypes = /*#__PURE__*/function (CxxUnistylesEventTypes) {
|
2
|
+
CxxUnistylesEventTypes["Theme"] = "theme";
|
3
|
+
CxxUnistylesEventTypes["Layout"] = "layout";
|
4
|
+
return CxxUnistylesEventTypes;
|
5
|
+
}({});
|
6
|
+
export let UnistylesError = /*#__PURE__*/function (UnistylesError) {
|
7
|
+
UnistylesError["RuntimeUnavailable"] = "UNISTYLES_ERROR_RUNTIME_UNAVAILABLE";
|
8
|
+
UnistylesError["ThemeNotFound"] = "UNISTYLES_ERROR_THEME_NOT_FOUND";
|
9
|
+
UnistylesError["ThemeNotRegistered"] = "UNISTYLES_ERROR_THEME_NOT_REGISTERED";
|
10
|
+
UnistylesError["ThemesCannotBeEmpty"] = "UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY";
|
11
|
+
UnistylesError["BreakpointsCannotBeEmpty"] = "UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY";
|
12
|
+
UnistylesError["BreakpointsMustStartFromZero"] = "UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO";
|
13
|
+
return UnistylesError;
|
14
|
+
}({});
|
15
|
+
|
16
|
+
// todo to string?
|
17
|
+
export let ScreenOrientation = /*#__PURE__*/function (ScreenOrientation) {
|
18
|
+
ScreenOrientation[ScreenOrientation["Portrait"] = 1] = "Portrait";
|
19
|
+
ScreenOrientation[ScreenOrientation["Landscape"] = 2] = "Landscape";
|
20
|
+
return ScreenOrientation;
|
21
|
+
}({});
|
22
|
+
//# sourceMappingURL=common.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["CxxUnistylesEventTypes","UnistylesError","ScreenOrientation"],"sourceRoot":"../../src","sources":["common.ts"],"mappings":"AAAA,WAAYA,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAKlC,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;;AAS1B;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
export class UnistyleRegistry {
|
2
|
+
config = {};
|
3
|
+
themeNames = [];
|
4
|
+
themes = {};
|
5
|
+
breakpoints = {};
|
6
|
+
sortedBreakpointPairs = [];
|
7
|
+
constructor(unistylesBridge) {
|
8
|
+
this.unistylesBridge = unistylesBridge;
|
9
|
+
}
|
10
|
+
addThemes = themes => {
|
11
|
+
this.themes = themes;
|
12
|
+
const keys = Object.keys(themes);
|
13
|
+
this.unistylesBridge.themes = keys;
|
14
|
+
this.themeNames = keys;
|
15
|
+
return this;
|
16
|
+
};
|
17
|
+
addBreakpoints = breakpoints => {
|
18
|
+
this.breakpoints = breakpoints;
|
19
|
+
this.unistylesBridge.useBreakpoints(breakpoints);
|
20
|
+
this.sortedBreakpointPairs = this.unistylesBridge.sortedBreakpointPairs;
|
21
|
+
return this;
|
22
|
+
};
|
23
|
+
addConfig = config => {
|
24
|
+
this.config = config;
|
25
|
+
if (config.adaptiveThemes) {
|
26
|
+
this.unistylesBridge.useAdaptiveThemes(config.adaptiveThemes);
|
27
|
+
}
|
28
|
+
return this;
|
29
|
+
};
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=UnistyleRegistry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["UnistyleRegistry","config","themeNames","themes","breakpoints","sortedBreakpointPairs","constructor","unistylesBridge","addThemes","keys","Object","addBreakpoints","useBreakpoints","addConfig","adaptiveThemes","useAdaptiveThemes"],"sourceRoot":"../../../src","sources":["core/UnistyleRegistry.ts"],"mappings":"AAGA,OAAO,MAAMA,gBAAgB,CAAC;EACnBC,MAAM,GAAoB,CAAC,CAAC;EAC5BC,UAAU,GAAiC,EAAE;EAC7CC,MAAM,GAAoB,CAAC,CAAC;EAC5BC,WAAW,GAAyB,CAAC,CAAC;EACtCC,qBAAqB,GAA0F,EAAE;EAExHC,WAAWA,CAASC,eAAgC,EAAE;IAAA,KAAlCA,eAAgC,GAAhCA,eAAgC;EAAG;EAEhDC,SAAS,GAAIL,MAAuB,IAAK;IAC5C,IAAI,CAACA,MAAM,GAAGA,MAAM;IAEpB,MAAMM,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACN,MAAM,CAAiC;IAEhE,IAAI,CAACI,eAAe,CAACJ,MAAM,GAAGM,IAAI;IAClC,IAAI,CAACP,UAAU,GAAGO,IAAI;IAEtB,OAAO,IAAI;EACf,CAAC;EAEME,cAAc,GAAIP,WAAiC,IAAK;IAC3D,IAAI,CAACA,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACG,eAAe,CAACK,cAAc,CAACR,WAAW,CAAC;IAChD,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACE,eAAe,CAACF,qBAAqB;IAEvE,OAAO,IAAI;EACf,CAAC;EAEMQ,SAAS,GAAIZ,MAAuB,IAAK;IAC5C,IAAI,CAACA,MAAM,GAAGA,MAAM;IAEpB,IAAIA,MAAM,CAACa,cAAc,EAAE;MACvB,IAAI,CAACP,eAAe,CAACQ,iBAAiB,CAACd,MAAM,CAACa,cAAc,CAAC;IACjE;IAEA,OAAO,IAAI;EACf,CAAC;AACL"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { UnistylesModule } from './UnistylesModule';
|
2
|
+
import { UnistylesRuntime } from './UnistylesRuntime';
|
3
|
+
import { UnistyleRegistry } from './UnistyleRegistry';
|
4
|
+
import { UnistylesError } from '../common';
|
5
|
+
class Unistyles {
|
6
|
+
constructor() {
|
7
|
+
const isInstalled = UnistylesModule?.install() ?? false;
|
8
|
+
if (!isInstalled) {
|
9
|
+
throw new Error(UnistylesError.RuntimeUnavailable);
|
10
|
+
}
|
11
|
+
|
12
|
+
// @ts-ignore
|
13
|
+
this._bridge = global.__UNISTYLES__;
|
14
|
+
this._registry = new UnistyleRegistry(this._bridge);
|
15
|
+
this._runtime = new UnistylesRuntime(this._bridge, this._registry);
|
16
|
+
}
|
17
|
+
get registry() {
|
18
|
+
return this._registry;
|
19
|
+
}
|
20
|
+
get runtime() {
|
21
|
+
return this._runtime;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
export const unistyles = new Unistyles();
|
25
|
+
//# sourceMappingURL=Unistyles.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["UnistylesModule","UnistylesRuntime","UnistyleRegistry","UnistylesError","Unistyles","constructor","isInstalled","install","Error","RuntimeUnavailable","_bridge","global","__UNISTYLES__","_registry","_runtime","registry","runtime","unistyles"],"sourceRoot":"../../../src","sources":["core/Unistyles.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,cAAc,QAAQ,WAAW;AAE1C,MAAMC,SAAS,CAAC;EAKZC,WAAWA,CAAA,EAAG;IACV,MAAMC,WAAW,GAAGN,eAAe,EAAEO,OAAO,CAAC,CAAC,IAAI,KAAK;IAEvD,IAAI,CAACD,WAAW,EAAE;MACd,MAAM,IAAIE,KAAK,CAACL,cAAc,CAACM,kBAAkB,CAAC;IACtD;;IAEA;IACA,IAAI,CAACC,OAAO,GAAGC,MAAM,CAACC,aAAgC;IACtD,IAAI,CAACC,SAAS,GAAG,IAAIX,gBAAgB,CAAC,IAAI,CAACQ,OAAO,CAAC;IACnD,IAAI,CAACI,QAAQ,GAAG,IAAIb,gBAAgB,CAAC,IAAI,CAACS,OAAO,EAAE,IAAI,CAACG,SAAS,CAAC;EACtE;EAEA,IAAWE,QAAQA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACF,SAAS;EACzB;EAEA,IAAWG,OAAOA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACF,QAAQ;EACxB;AACJ;AAEA,OAAO,MAAMG,SAAS,GAAG,IAAIb,SAAS,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["NativeModules","UnistylesModule","Unistyles"],"sourceRoot":"../../../src","sources":["core/UnistylesModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAM5C,OAAO,MAAMC,eAAe,GAAGD,aAAa,EAAEE,SAAkC"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { ScreenOrientation, UnistylesError } from '../common';
|
2
|
+
export class UnistylesRuntime {
|
3
|
+
constructor(unistylesBridge, registry) {
|
4
|
+
this.unistylesBridge = unistylesBridge;
|
5
|
+
this.registry = registry;
|
6
|
+
}
|
7
|
+
get colorScheme() {
|
8
|
+
return this.unistylesBridge.colorScheme;
|
9
|
+
}
|
10
|
+
get hasAdaptiveThemes() {
|
11
|
+
return this.unistylesBridge.hasAdaptiveThemes;
|
12
|
+
}
|
13
|
+
get sortedBreakpoints() {
|
14
|
+
return this.registry.sortedBreakpointPairs;
|
15
|
+
}
|
16
|
+
get themeName() {
|
17
|
+
return this.unistylesBridge.themeName;
|
18
|
+
}
|
19
|
+
get breakpoint() {
|
20
|
+
return this.unistylesBridge.breakpoint;
|
21
|
+
}
|
22
|
+
get screen() {
|
23
|
+
return {
|
24
|
+
width: this.unistylesBridge.screenWidth,
|
25
|
+
height: this.unistylesBridge.screenHeight
|
26
|
+
};
|
27
|
+
}
|
28
|
+
get orientation() {
|
29
|
+
const {
|
30
|
+
width,
|
31
|
+
height
|
32
|
+
} = this.screen;
|
33
|
+
if (width > height) {
|
34
|
+
return ScreenOrientation.Landscape;
|
35
|
+
}
|
36
|
+
return ScreenOrientation.Portrait;
|
37
|
+
}
|
38
|
+
setTheme = name => {
|
39
|
+
if (this.hasTheme(name)) {
|
40
|
+
this.unistylesBridge.useTheme(name);
|
41
|
+
return true;
|
42
|
+
}
|
43
|
+
throw new Error(UnistylesError.ThemeNotRegistered);
|
44
|
+
};
|
45
|
+
getTheme = forName => {
|
46
|
+
if (this.registry.themeNames.length === 0) {
|
47
|
+
return {};
|
48
|
+
}
|
49
|
+
if (!this.hasTheme(forName)) {
|
50
|
+
throw new Error(UnistylesError.ThemeNotFound);
|
51
|
+
}
|
52
|
+
return this.registry.themes[forName];
|
53
|
+
};
|
54
|
+
setAdaptiveThemes = enable => {
|
55
|
+
this.unistylesBridge.useAdaptiveThemes(enable);
|
56
|
+
};
|
57
|
+
hasTheme = name => name in this.registry.themes;
|
58
|
+
}
|
59
|
+
//# sourceMappingURL=UnistylesRuntime.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["ScreenOrientation","UnistylesError","UnistylesRuntime","constructor","unistylesBridge","registry","colorScheme","hasAdaptiveThemes","sortedBreakpoints","sortedBreakpointPairs","themeName","breakpoint","screen","width","screenWidth","height","screenHeight","orientation","Landscape","Portrait","setTheme","name","hasTheme","useTheme","Error","ThemeNotRegistered","getTheme","forName","themeNames","length","ThemeNotFound","themes","setAdaptiveThemes","enable","useAdaptiveThemes"],"sourceRoot":"../../../src","sources":["core/UnistylesRuntime.ts"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,cAAc,QAAQ,WAAW;AAK7D,OAAO,MAAMC,gBAAgB,CAAC;EAC1BC,WAAWA,CAASC,eAAgC,EAAUC,QAA0B,EAAE;IAAA,KAAtED,eAAgC,GAAhCA,eAAgC;IAAA,KAAUC,QAA0B,GAA1BA,QAA0B;EAAG;EAE3F,IAAWC,WAAWA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACF,eAAe,CAACE,WAAW;EAC3C;EAEA,IAAWC,iBAAiBA,CAAA,EAAG;IAC3B,OAAO,IAAI,CAACH,eAAe,CAACG,iBAAiB;EACjD;EAEA,IAAWC,iBAAiBA,CAAA,EAAG;IAC3B,OAAO,IAAI,CAACH,QAAQ,CAACI,qBAAqB;EAC9C;EAEA,IAAWC,SAASA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACN,eAAe,CAACM,SAAS;EACzC;EAEA,IAAWC,UAAUA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACP,eAAe,CAACO,UAAU;EAC1C;EAEA,IAAWC,MAAMA,CAAA,EAAG;IAChB,OAAO;MACHC,KAAK,EAAE,IAAI,CAACT,eAAe,CAACU,WAAW;MACvCC,MAAM,EAAE,IAAI,CAACX,eAAe,CAACY;IACjC,CAAC;EACL;EAEA,IAAWC,WAAWA,CAAA,EAAG;IACrB,MAAM;MAAEJ,KAAK;MAAEE;IAAO,CAAC,GAAG,IAAI,CAACH,MAAM;IAErC,IAAIC,KAAK,GAAGE,MAAM,EAAE;MAChB,OAAOf,iBAAiB,CAACkB,SAAS;IACtC;IAEA,OAAOlB,iBAAiB,CAACmB,QAAQ;EACrC;EAEOC,QAAQ,GAAIC,IAA2B,IAAK;IAC/C,IAAI,IAAI,CAACC,QAAQ,CAACD,IAAI,CAAC,EAAE;MACrB,IAAI,CAACjB,eAAe,CAACmB,QAAQ,CAACF,IAAI,CAAC;MAEnC,OAAO,IAAI;IACf;IAEA,MAAM,IAAIG,KAAK,CAACvB,cAAc,CAACwB,kBAAkB,CAAC;EACtD,CAAC;EAEMC,QAAQ,GAAIC,OAA8B,IAAK;IAClD,IAAI,IAAI,CAACtB,QAAQ,CAACuB,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;MACvC,OAAO,CAAC,CAAC;IACb;IAEA,IAAI,CAAC,IAAI,CAACP,QAAQ,CAACK,OAAO,CAAC,EAAE;MACzB,MAAM,IAAIH,KAAK,CAACvB,cAAc,CAAC6B,aAAa,CAAC;IACjD;IAEA,OAAO,IAAI,CAACzB,QAAQ,CAAC0B,MAAM,CAACJ,OAAO,CAAC;EACxC,CAAC;EAEMK,iBAAiB,GAAIC,MAAe,IAAK;IAC5C,IAAI,CAAC7B,eAAe,CAAC8B,iBAAiB,CAACD,MAAM,CAAC;EAClD,CAAC;EAEOX,QAAQ,GAAID,IAA2B,IAAKA,IAAI,IAAI,IAAI,CAAChB,QAAQ,CAAC0B,MAAM;AACpF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["unistyles"],"sourceRoot":"../../../src","sources":["core/index.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["createStyleSheet","styles"],"sourceRoot":"../../src","sources":["createStyleSheet.ts"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,GAAUC,MAA4F,IAAY;EAC3I,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;IAC9B,OAAOA,MAAM;EACjB;EAEA,OAAOA,MAAM;AACjB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["global.ts"],"mappings":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["useInitialTheme","useUnistyles"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,SAASC,YAAY,QAAQ,gBAAgB"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { useMemo } from 'react';
|
2
|
+
import { unistyles } from '../core';
|
3
|
+
export const useInitialTheme = forName => {
|
4
|
+
useMemo(() => {
|
5
|
+
if (!unistyles.runtime.themeName) {
|
6
|
+
unistyles.runtime.setTheme(forName);
|
7
|
+
}
|
8
|
+
}, []);
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=useInitialTheme.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["useMemo","unistyles","useInitialTheme","forName","runtime","themeName","setTheme"],"sourceRoot":"../../../src","sources":["hooks/useInitialTheme.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,SAAS,QAAQ,SAAS;AAGnC,OAAO,MAAMC,eAAe,GAAIC,OAA8B,IAAK;EAC/DH,OAAO,CAAC,MAAM;IACV,IAAI,CAACC,SAAS,CAACG,OAAO,CAACC,SAAS,EAAE;MAC9BJ,SAAS,CAACG,OAAO,CAACE,QAAQ,CAACH,OAAO,CAAC;IACvC;EACJ,CAAC,EAAE,EAAE,CAAC;AACV,CAAC"}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
2
|
+
import { useEffect, useState } from 'react';
|
3
|
+
import { unistyles } from '../core';
|
4
|
+
import { CxxUnistylesEventTypes } from '../common';
|
5
|
+
const unistylesEvents = new NativeEventEmitter(NativeModules.Unistyles);
|
6
|
+
export const useUnistyles = () => {
|
7
|
+
const [theme, setTheme] = useState(unistyles.runtime.getTheme(unistyles.runtime.themeName));
|
8
|
+
const [layout, setLayout] = useState({
|
9
|
+
breakpoint: unistyles.runtime.breakpoint,
|
10
|
+
orientation: unistyles.runtime.orientation,
|
11
|
+
screenSize: {
|
12
|
+
width: unistyles.runtime.screen.width,
|
13
|
+
height: unistyles.runtime.screen.height
|
14
|
+
}
|
15
|
+
});
|
16
|
+
useEffect(() => {
|
17
|
+
const subscription = unistylesEvents.addListener('onChange', event => {
|
18
|
+
switch (event.type) {
|
19
|
+
case CxxUnistylesEventTypes.Theme:
|
20
|
+
{
|
21
|
+
const themeEvent = event;
|
22
|
+
return setTheme(unistyles.runtime.getTheme(themeEvent.payload.themeName));
|
23
|
+
}
|
24
|
+
case CxxUnistylesEventTypes.Layout:
|
25
|
+
{
|
26
|
+
const layoutEvent = event;
|
27
|
+
return setLayout({
|
28
|
+
breakpoint: layoutEvent.payload.breakpoint,
|
29
|
+
orientation: layoutEvent.payload.orientation,
|
30
|
+
screenSize: {
|
31
|
+
width: layoutEvent.payload.screen.width,
|
32
|
+
height: layoutEvent.payload.screen.height
|
33
|
+
}
|
34
|
+
});
|
35
|
+
}
|
36
|
+
default:
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
});
|
40
|
+
return subscription.remove;
|
41
|
+
}, []);
|
42
|
+
return {
|
43
|
+
theme,
|
44
|
+
layout
|
45
|
+
};
|
46
|
+
};
|
47
|
+
//# sourceMappingURL=useUnistyles.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","useEffect","useState","unistyles","CxxUnistylesEventTypes","unistylesEvents","Unistyles","useUnistyles","theme","setTheme","runtime","getTheme","themeName","layout","setLayout","breakpoint","orientation","screenSize","width","screen","height","subscription","addListener","event","type","Theme","themeEvent","payload","Layout","layoutEvent","remove"],"sourceRoot":"../../../src","sources":["hooks/useUnistyles.ts"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;AAChE,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,SAAS,QAAQ,SAAS;AACnC,SAASC,sBAAsB,QAAQ,WAAW;AAGlD,MAAMC,eAAe,GAAG,IAAIN,kBAAkB,CAACC,aAAa,CAACM,SAAS,CAAC;AAEvE,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGP,QAAQ,CAACC,SAAS,CAACO,OAAO,CAACC,QAAQ,CAACR,SAAS,CAACO,OAAO,CAACE,SAAS,CAAC,CAAC;EAC3F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGZ,QAAQ,CAAC;IACjCa,UAAU,EAAEZ,SAAS,CAACO,OAAO,CAACK,UAAU;IACxCC,WAAW,EAAEb,SAAS,CAACO,OAAO,CAACM,WAAW;IAC1CC,UAAU,EAAE;MACRC,KAAK,EAAEf,SAAS,CAACO,OAAO,CAACS,MAAM,CAACD,KAAK;MACrCE,MAAM,EAAEjB,SAAS,CAACO,OAAO,CAACS,MAAM,CAACC;IACrC;EACJ,CAAC,CAAC;EAEFnB,SAAS,CAAC,MAAM;IACZ,MAAMoB,YAAY,GAAGhB,eAAe,CAACiB,WAAW,CAC5C,UAAU,EACTC,KAAsB,IAAK;MACxB,QAAQA,KAAK,CAACC,IAAI;QACd,KAAKpB,sBAAsB,CAACqB,KAAK;UAAE;YAC/B,MAAMC,UAAU,GAAGH,KAA4B;YAE/C,OAAOd,QAAQ,CAACN,SAAS,CAACO,OAAO,CAACC,QAAQ,CAACe,UAAU,CAACC,OAAO,CAACf,SAAS,CAAC,CAAC;UAC7E;QACA,KAAKR,sBAAsB,CAACwB,MAAM;UAAE;YAChC,MAAMC,WAAW,GAAGN,KAAmC;YAEvD,OAAOT,SAAS,CAAC;cACbC,UAAU,EAAEc,WAAW,CAACF,OAAO,CAACZ,UAAU;cAC1CC,WAAW,EAAEa,WAAW,CAACF,OAAO,CAACX,WAAW;cAC5CC,UAAU,EAAE;gBACRC,KAAK,EAAEW,WAAW,CAACF,OAAO,CAACR,MAAM,CAACD,KAAK;gBACvCE,MAAM,EAAES,WAAW,CAACF,OAAO,CAACR,MAAM,CAACC;cACvC;YACJ,CAAC,CAAC;UACN;QACA;UACI;MACR;IACJ,CACJ,CAAC;IAED,OAAOC,YAAY,CAACS,MAAM;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACHtB,KAAK;IACLK;EACJ,CAAC;AACL,CAAC"}
|
package/lib/module/index.js
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import { unistyles } from './core';
|
2
|
+
import { mq } from './utils';
|
3
|
+
import { useInitialTheme } from './hooks';
|
4
|
+
import { ScreenOrientation } from './common';
|
5
|
+
import { useStyles } from './useStyles';
|
6
|
+
import { createStyleSheet } from './createStyleSheet';
|
7
|
+
const UnistylesRegistry = {
|
8
|
+
addThemes: unistyles.registry.addThemes,
|
9
|
+
addBreakpoints: unistyles.registry.addBreakpoints,
|
10
|
+
addConfig: unistyles.registry.addConfig
|
11
|
+
};
|
12
|
+
const UnistylesRuntime = unistyles.runtime;
|
13
|
+
export { mq, useStyles, useInitialTheme, createStyleSheet, ScreenOrientation, UnistylesRegistry, UnistylesRuntime };
|
3
14
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["unistyles","mq","useInitialTheme","ScreenOrientation","useStyles","createStyleSheet","UnistylesRegistry","addThemes","registry","addBreakpoints","addConfig","UnistylesRuntime","runtime"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,QAAQ;AAClC,SAASC,EAAE,QAAQ,SAAS;AAC5B,SAASC,eAAe,QAAQ,SAAS;AAEzC,SAASC,iBAAiB,QAAQ,UAAU;AAC5C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,iBAAiB,GAAG;EACtBC,SAAS,EAAEP,SAAS,CAACQ,QAAQ,CAACD,SAAS;EACvCE,cAAc,EAAET,SAAS,CAACQ,QAAQ,CAACC,cAAc;EACjDC,SAAS,EAAEV,SAAS,CAACQ,QAAQ,CAACE;AAClC,CAAC;AAED,MAAMC,gBAAgB,GAAGX,SAAS,CAACY,OAAO;AAE1C,SACIX,EAAE,EACFG,SAAS,EACTF,eAAe,EACfG,gBAAgB,EAChBF,iBAAiB,EACjBG,iBAAiB,EACjBK,gBAAgB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/common.ts"],"mappings":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":""}
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,aAAa"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/mq.ts"],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/normalizer.ts"],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/unistyles.ts"],"mappings":""}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { useMemo } from 'react';
|
2
|
+
import { StyleSheet } from 'react-native';
|
3
|
+
import { parseStyle, proxifyFunction } from './utils';
|
4
|
+
import { useUnistyles } from './hooks';
|
5
|
+
export const useStyles = (stylesheet, variant) => {
|
6
|
+
const {
|
7
|
+
theme,
|
8
|
+
layout
|
9
|
+
} = useUnistyles();
|
10
|
+
const {
|
11
|
+
screenSize,
|
12
|
+
breakpoint
|
13
|
+
} = layout;
|
14
|
+
if (!stylesheet) {
|
15
|
+
return {
|
16
|
+
theme,
|
17
|
+
breakpoint,
|
18
|
+
styles: {}
|
19
|
+
};
|
20
|
+
}
|
21
|
+
const parsedStyles = useMemo(() => typeof stylesheet === 'function' ? stylesheet(theme) : stylesheet, [theme, stylesheet]);
|
22
|
+
const dynamicStyleSheet = useMemo(() => Object.entries(parsedStyles).reduce((acc, _ref) => {
|
23
|
+
let [key, value] = _ref;
|
24
|
+
const style = value;
|
25
|
+
if (typeof value === 'function') {
|
26
|
+
return {
|
27
|
+
...acc,
|
28
|
+
[key]: proxifyFunction(value, breakpoint, screenSize, variant)
|
29
|
+
};
|
30
|
+
}
|
31
|
+
return StyleSheet.create({
|
32
|
+
...acc,
|
33
|
+
[key]: parseStyle(style, breakpoint, screenSize, variant)
|
34
|
+
});
|
35
|
+
}, {}), [breakpoint, screenSize, parsedStyles, variant]);
|
36
|
+
return {
|
37
|
+
theme,
|
38
|
+
breakpoint,
|
39
|
+
styles: dynamicStyleSheet
|
40
|
+
};
|
41
|
+
};
|
42
|
+
//# sourceMappingURL=useStyles.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["useMemo","StyleSheet","parseStyle","proxifyFunction","useUnistyles","useStyles","stylesheet","variant","theme","layout","screenSize","breakpoint","styles","parsedStyles","dynamicStyleSheet","Object","entries","reduce","acc","_ref","key","value","style","create"],"sourceRoot":"../../src","sources":["useStyles.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,eAAe,QAAQ,SAAS;AAErD,SAASC,YAAY,QAAQ,SAAS;AAStC,OAAO,MAAMC,SAAS,GAAGA,CACrBC,UAAyD,EACzDC,OAAgB,KACO;EACvB,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGL,YAAY,CAAC,CAAC;EACxC,MAAM;IAAEM,UAAU;IAAEC;EAAW,CAAC,GAAGF,MAAM;EAEzC,IAAI,CAACH,UAAU,EAAE;IACb,OAAO;MACHE,KAAK;MACLG,UAAU;MACVC,MAAM,EAAE,CAAC;IACb,CAAC;EACL;EAEA,MAAMC,YAAY,GAAGb,OAAO,CAAC,MAAM,OAAOM,UAAU,KAAK,UAAU,GAC7DA,UAAU,CAACE,KAAK,CAAC,GACjBF,UAAU,EAAE,CAACE,KAAK,EAAEF,UAAU,CAAC,CAAC;EAEtC,MAAMQ,iBAAiB,GAAGd,OAAO,CAAC,MAAMe,MAAM,CACzCC,OAAO,CAACH,YAAY,CAAC,CACrBI,MAAM,CAAC,CAACC,GAAG,EAAAC,IAAA,KAAmB;IAAA,IAAjB,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;IACtB,MAAMG,KAAK,GAAGD,KAA8B;IAE5C,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MAC7B,OAAO;QACH,GAAGH,GAAG;QACN,CAACE,GAAG,GAAGjB,eAAe,CAACkB,KAAK,EAAEV,UAAU,EAAED,UAAU,EAAEH,OAAO;MACjE,CAAC;IACL;IAEA,OAAON,UAAU,CAACsB,MAAM,CAAC;MACrB,GAAGL,GAAG;MACN,CAACE,GAAG,GAAGlB,UAAU,CAAKoB,KAAK,EAAEX,UAAU,EAAED,UAAU,EAAEH,OAAO;IAChE,CAAC,CAAC;EACN,CAAC,EAAE,CAAC,CAAO,CAAC,EAAE,CAACI,UAAU,EAAED,UAAU,EAAEG,YAAY,EAAEN,OAAO,CAAC,CAA8B;EAE/F,OAAO;IACHC,KAAK;IACLG,UAAU;IACVC,MAAM,EAAEE;EACZ,CAAC;AACL,CAAC"}
|
@@ -1,25 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
*
|
7
|
-
* This function takes an object where keys represent breakpoint names and values are numeric.
|
8
|
-
* It returns a new object with the same keys but sorted based on their corresponding numeric values.
|
9
|
-
* Additionally, it validates that:
|
10
|
-
* 1. The first breakpoint starts with a value of 0.
|
11
|
-
* 2. No duplicate breakpoint values exist.
|
12
|
-
*
|
13
|
-
* If the validation fails, appropriate error messages are logged to the console.
|
14
|
-
*
|
15
|
-
* @template B - An object type where keys are strings and values are numbers.
|
16
|
-
* @param {B} breakpoints - The breakpoints object to be sorted and validated.
|
17
|
-
* @returns {B} A new object with sorted and validated breakpoints.
|
18
|
-
*
|
19
|
-
* @example
|
20
|
-
* const input = { md: 768, lg: 1024, sm: 0 }
|
21
|
-
* sortAndValidateBreakpoints(input) // returns { sm: 0, md: 768, lg: 1024 }
|
22
|
-
*/
|
1
|
+
import { unistyles } from '../core';
|
2
|
+
import { isMobile, Orientation, throwError } from './common';
|
3
|
+
import { ScreenOrientation } from '../common';
|
4
|
+
import { getKeyForUnistylesMediaQuery } from './mqParser';
|
5
|
+
import { getKeyForVariant } from './variants';
|
23
6
|
export const sortAndValidateBreakpoints = breakpoints => {
|
24
7
|
const sortedPairs = Object.entries(breakpoints).sort((breakpoint1, breakpoint2) => {
|
25
8
|
const [, value1] = breakpoint1;
|
@@ -37,22 +20,6 @@ export const sortAndValidateBreakpoints = breakpoints => {
|
|
37
20
|
}
|
38
21
|
return sortedBreakpoints;
|
39
22
|
};
|
40
|
-
|
41
|
-
/**
|
42
|
-
* Determines the appropriate breakpoint key for a given screen width based on provided breakpoints.
|
43
|
-
*
|
44
|
-
* This function takes a screen width and an object of breakpoints. It returns the key of the breakpoint
|
45
|
-
* that the screen width falls into. The breakpoints are assumed to be sorted in ascending order.
|
46
|
-
*
|
47
|
-
* @template B - An object type where keys are strings and values are numbers representing screen widths.
|
48
|
-
* @param {number} width - The screen width to determine the breakpoint for.
|
49
|
-
* @param breakpointEntries - sorted pairs of breakpoints
|
50
|
-
* @returns {keyof B & string} The key of the breakpoint that the screen width falls into.
|
51
|
-
*
|
52
|
-
* @example
|
53
|
-
* const breakpoints = { sm: 0, md: 768, lg: 1024 }
|
54
|
-
* getBreakpointFromScreenWidth(800, breakpoints) // returns 'md'
|
55
|
-
*/
|
56
23
|
export const getBreakpointFromScreenWidth = (width, breakpointEntries) => {
|
57
24
|
const [key] = breakpointEntries.find((_ref, index, otherBreakpoints) => {
|
58
25
|
let [, value] = _ref;
|
@@ -66,60 +33,54 @@ export const getBreakpointFromScreenWidth = (width, breakpointEntries) => {
|
|
66
33
|
return key;
|
67
34
|
};
|
68
35
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
* @param {ScreenSize} screenSize - An object representing the screen size to be checked against the media queries.
|
81
|
-
* @param breakpointPairs - sorted pairs of breakpoints
|
82
|
-
*
|
83
|
-
* @returns {string | number | undefined} Returns the value associated with the matching breakpoint or custom media query, or `undefined` if no match is found.
|
84
|
-
*
|
85
|
-
* @example
|
86
|
-
*
|
87
|
-
* const values = { ':w[200]': 'value1', sm: 'value2', md: 'value3' }
|
88
|
-
* const screenSize = { width: 250, height: 400 }
|
89
|
-
* const breakpoints = { sm: 300, md: 600, lg: 900 }
|
90
|
-
*
|
91
|
-
* getValueForBreakpoint(values, 'sm', screenSize, breakpoints); // 'value1'
|
92
|
-
*/
|
93
|
-
export const getValueForBreakpoint = (value, breakpoint, screenSize, breakpointPairs) => {
|
94
|
-
// the highest priority is for custom media queries
|
95
|
-
const customMediaQueries = Object.entries(value).filter(_ref2 => {
|
96
|
-
let [key] = _ref2;
|
97
|
-
return isMediaQuery(key);
|
98
|
-
});
|
99
|
-
const customMediaQueryKey = getKeyForCustomMediaQuery(customMediaQueries, screenSize);
|
100
|
-
if (customMediaQueryKey && customMediaQueryKey in value) {
|
36
|
+
// todo move it to different file
|
37
|
+
export const getValueForNestedStyle = (value, variant) => {
|
38
|
+
// the highest priority is for variants
|
39
|
+
const variantKey = getKeyForVariant(value, variant);
|
40
|
+
if (variantKey) {
|
41
|
+
return value.variants[variantKey];
|
42
|
+
}
|
43
|
+
|
44
|
+
// then custom media queries
|
45
|
+
const customMediaQueryKey = getKeyForUnistylesMediaQuery(Object.entries(value), unistyles.runtime.screen);
|
46
|
+
if (customMediaQueryKey) {
|
101
47
|
return value[customMediaQueryKey];
|
102
48
|
}
|
103
49
|
|
104
|
-
//
|
105
|
-
|
106
|
-
const
|
50
|
+
// at this point user didn't use custom media queries (:w, :h)
|
51
|
+
// check if user defined any breakpoints
|
52
|
+
const hasBreakpoints = unistyles.runtime.sortedBreakpoints.length > 0;
|
53
|
+
|
54
|
+
// if not then we can fall back to horizontal and portrait (mobile only)
|
55
|
+
if (!hasBreakpoints && isMobile && (Orientation.Landscape in value || Orientation.Portrait in value)) {
|
56
|
+
return value[unistyles.runtime.orientation === ScreenOrientation.Portrait ? Orientation.Portrait : Orientation.Landscape];
|
57
|
+
}
|
58
|
+
|
59
|
+
// let's get the current breakpoint
|
60
|
+
const breakpoint = unistyles.runtime.breakpoint;
|
61
|
+
if (!breakpoint) {
|
62
|
+
return undefined;
|
63
|
+
}
|
64
|
+
|
65
|
+
// if user defined breakpoints, then we look for the valid one
|
66
|
+
const directBreakpoint = value[breakpoint];
|
107
67
|
|
108
68
|
// if there is a direct key like 'sm' or 'md', or value for this key exists but its undefined
|
109
|
-
if (directBreakpoint ||
|
69
|
+
if (directBreakpoint || breakpoint in value) {
|
110
70
|
return directBreakpoint;
|
111
71
|
}
|
112
72
|
|
113
|
-
// there is no direct hit for breakpoint nor media-query,
|
114
|
-
const
|
115
|
-
|
116
|
-
|
73
|
+
// there is no direct hit for breakpoint nor media-query, let's simulate CSS cascading
|
74
|
+
const breakpointPairs = unistyles.runtime.sortedBreakpoints;
|
75
|
+
const currentBreakpoint = breakpointPairs.findIndex(_ref2 => {
|
76
|
+
let [key] = _ref2;
|
77
|
+
return key === breakpoint;
|
117
78
|
});
|
118
|
-
const availableBreakpoints = breakpointPairs.filter((
|
119
|
-
let [key] =
|
79
|
+
const availableBreakpoints = breakpointPairs.filter((_ref3, index) => {
|
80
|
+
let [key] = _ref3;
|
120
81
|
return index < currentBreakpoint && key && key in value;
|
121
|
-
}).map(
|
122
|
-
let [key] =
|
82
|
+
}).map(_ref4 => {
|
83
|
+
let [key] = _ref4;
|
123
84
|
return key;
|
124
85
|
});
|
125
86
|
return breakpointPairs.length > 0 ? value[availableBreakpoints[availableBreakpoints.length - 1]] : undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["throwError","
|
1
|
+
{"version":3,"names":["unistyles","isMobile","Orientation","throwError","ScreenOrientation","getKeyForUnistylesMediaQuery","getKeyForVariant","sortAndValidateBreakpoints","breakpoints","sortedPairs","Object","entries","sort","breakpoint1","breakpoint2","value1","value2","sortedBreakpoints","freeze","fromEntries","breakpointValues","values","firstBreakpoint","length","Set","size","getBreakpointFromScreenWidth","width","breakpointEntries","key","find","_ref","index","otherBreakpoints","value","minVal","maxVal","getValueForNestedStyle","variant","variantKey","variants","customMediaQueryKey","runtime","screen","hasBreakpoints","Landscape","Portrait","orientation","breakpoint","undefined","directBreakpoint","breakpointPairs","currentBreakpoint","findIndex","_ref2","availableBreakpoints","filter","_ref3","map","_ref4"],"sourceRoot":"../../../src","sources":["utils/breakpoints.ts"],"mappings":"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"}
|
@@ -5,5 +5,13 @@ export const throwError = message => {
|
|
5
5
|
export const warn = message => {
|
6
6
|
console.warn(`🦄 [react-native-unistyles]: ${message}`);
|
7
7
|
};
|
8
|
-
export const
|
8
|
+
export const isMobile = Platform.OS === 'android' || Platform.OS === 'ios';
|
9
|
+
export const isWeb = Platform.OS === 'web';
|
10
|
+
export const isIOS = Platform.OS === 'ios';
|
11
|
+
export const isAndroid = Platform.OS === 'android';
|
12
|
+
export const isServer = typeof window === 'undefined';
|
13
|
+
export const Orientation = {
|
14
|
+
Landscape: 'landscape',
|
15
|
+
Portrait: 'portrait'
|
16
|
+
};
|
9
17
|
//# sourceMappingURL=common.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Platform","throwError","message","Error","warn","console","
|
1
|
+
{"version":3,"names":["Platform","throwError","message","Error","warn","console","isMobile","OS","isWeb","isIOS","isAndroid","isServer","window","Orientation","Landscape","Portrait"],"sourceRoot":"../../../src","sources":["utils/common.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,UAAU,GAAIC,OAAe,IAAK;EAC3C,MAAM,IAAIC,KAAK,CAAE,gCAA+BD,OAAQ,EAAC,CAAC;AAC9D,CAAC;AAED,OAAO,MAAME,IAAI,GAAIF,OAAe,IAAK;EACrCG,OAAO,CAACD,IAAI,CAAE,gCAA+BF,OAAQ,EAAC,CAAC;AAC3D,CAAC;AAED,OAAO,MAAMI,QAAQ,GAAGN,QAAQ,CAACO,EAAE,KAAK,SAAS,IAAIP,QAAQ,CAACO,EAAE,KAAK,KAAK;AAC1E,OAAO,MAAMC,KAAK,GAAGR,QAAQ,CAACO,EAAE,KAAK,KAAK;AAC1C,OAAO,MAAME,KAAK,GAAGT,QAAQ,CAACO,EAAE,KAAK,KAAK;AAC1C,OAAO,MAAMG,SAAS,GAAGV,QAAQ,CAACO,EAAE,KAAK,SAAS;AAClD,OAAO,MAAMI,QAAQ,GAAG,OAAOC,MAAM,KAAK,WAAW;AAErD,OAAO,MAAMC,WAAW,GAAG;EACvBC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE;AACd,CAAU"}
|
@@ -1,5 +1,9 @@
|
|
1
1
|
export { normalizeStyles } from './normalizeStyles';
|
2
|
-
export
|
2
|
+
export * from './normalizer';
|
3
|
+
export { mq, MQSymbol } from './mq';
|
4
|
+
export { getKeyForVariant } from './variants';
|
5
|
+
export { getKeyForUnistylesMediaQuery } from './mqParser';
|
6
|
+
export { getBreakpointFromScreenWidth, sortAndValidateBreakpoints, getValueForNestedStyle } from './breakpoints';
|
3
7
|
export { proxifyFunction, parseStyle } from './styles';
|
4
|
-
export {
|
8
|
+
export { isServer, Orientation } from './common';
|
5
9
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["normalizeStyles","
|
1
|
+
{"version":3,"names":["normalizeStyles","mq","MQSymbol","getKeyForVariant","getKeyForUnistylesMediaQuery","getBreakpointFromScreenWidth","sortAndValidateBreakpoints","getValueForNestedStyle","proxifyFunction","parseStyle","isServer","Orientation"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,cAAc,cAAc;AAC5B,SAASC,EAAE,EAAEC,QAAQ,QAAQ,MAAM;AACnC,SAASC,gBAAgB,QAAQ,YAAY;AAC7C,SAASC,4BAA4B,QAAQ,YAAY;AACzD,SAASC,4BAA4B,EAAEC,0BAA0B,EAAEC,sBAAsB,QAAQ,eAAe;AAChH,SAASC,eAAe,EAAEC,UAAU,QAAQ,UAAU;AACtD,SAASC,QAAQ,EAAEC,WAAW,QAAQ,UAAU"}
|