react-native-unistyles 2.0.0-alpha.7 → 2.0.0-alpha.8
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/lib/commonjs/{types/cxx.js → common.js} +6 -6
- package/lib/commonjs/common.js.map +1 -0
- package/lib/commonjs/core/UnistyleRegistry.js.map +1 -0
- package/lib/commonjs/{Unistyles.js → core/Unistyles.js} +2 -7
- package/lib/commonjs/core/Unistyles.js.map +1 -0
- package/lib/commonjs/core/UnistylesModule.js.map +1 -0
- package/lib/commonjs/{UnistylesRuntime.js → core/UnistylesRuntime.js} +5 -5
- 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/hooks/index.js +10 -3
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/{useInitialTheme.js → hooks/useInitialTheme.js} +2 -2
- 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 +8 -8
- 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 +4 -4
- 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/unistyles.js +6 -0
- package/lib/commonjs/types/unistyles.js.map +1 -0
- package/lib/commonjs/useStyles.js +7 -4
- package/lib/commonjs/useStyles.js.map +1 -1
- package/lib/commonjs/utils/breakpoints.js +18 -20
- package/lib/commonjs/utils/breakpoints.js.map +1 -1
- package/lib/commonjs/utils/index.js +10 -38
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/mq.js +67 -53
- package/lib/commonjs/utils/mq.js.map +1 -1
- package/lib/commonjs/utils/mqParser.js +86 -0
- package/lib/commonjs/utils/mqParser.js.map +1 -0
- package/lib/commonjs/utils/styles.js.map +1 -1
- package/lib/module/{types/cxx.js → common.js} +6 -6
- package/lib/module/common.js.map +1 -0
- package/lib/module/core/UnistyleRegistry.js.map +1 -0
- package/lib/module/{Unistyles.js → core/Unistyles.js} +1 -6
- package/lib/module/core/Unistyles.js.map +1 -0
- package/lib/module/core/UnistylesModule.js.map +1 -0
- package/lib/module/{UnistylesRuntime.js → core/UnistylesRuntime.js} +1 -1
- 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/hooks/index.js +2 -1
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/{useInitialTheme.js → hooks/useInitialTheme.js} +1 -1
- 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 +7 -7
- 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 +1 -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/unistyles.js +2 -0
- package/lib/module/types/unistyles.js.map +1 -0
- package/lib/module/useStyles.js +6 -3
- package/lib/module/useStyles.js.map +1 -1
- package/lib/module/utils/breakpoints.js +14 -16
- package/lib/module/utils/breakpoints.js.map +1 -1
- package/lib/module/utils/index.js +2 -2
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/mq.js +65 -51
- package/lib/module/utils/mq.js.map +1 -1
- package/lib/module/utils/mqParser.js +79 -0
- package/lib/module/utils/mqParser.js.map +1 -0
- package/lib/module/utils/styles.js.map +1 -1
- package/lib/typescript/src/common.d.ts +17 -0
- package/lib/typescript/src/common.d.ts.map +1 -0
- package/lib/typescript/src/{UnistyleRegistry.d.ts → core/UnistyleRegistry.d.ts} +2 -2
- package/lib/typescript/src/core/UnistyleRegistry.d.ts.map +1 -0
- package/lib/typescript/src/{Unistyles.d.ts → core/Unistyles.d.ts} +0 -3
- package/lib/typescript/src/core/Unistyles.d.ts.map +1 -0
- package/lib/typescript/src/core/UnistylesModule.d.ts.map +1 -0
- package/lib/typescript/src/{UnistylesRuntime.d.ts → core/UnistylesRuntime.d.ts} +6 -6
- 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/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 +10 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/breakpoints.d.ts +5 -9
- 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 +9 -4
- package/lib/typescript/src/types/core.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +5 -4
- 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/{cxx.d.ts → unistyles.d.ts} +4 -22
- package/lib/typescript/src/types/unistyles.d.ts.map +1 -0
- package/lib/typescript/src/useStyles.d.ts +8 -6
- package/lib/typescript/src/useStyles.d.ts.map +1 -1
- package/lib/typescript/src/utils/breakpoints.d.ts +2 -2
- package/lib/typescript/src/utils/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/utils/index.d.ts +2 -2
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/mq.d.ts +15 -9
- package/lib/typescript/src/utils/mq.d.ts.map +1 -1
- 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/styles.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/common.ts +18 -0
- package/src/{UnistyleRegistry.ts → core/UnistyleRegistry.ts} +2 -2
- package/src/{Unistyles.ts → core/Unistyles.ts} +2 -9
- package/src/{UnistylesRuntime.ts → core/UnistylesRuntime.ts} +3 -3
- package/src/core/index.ts +1 -0
- package/src/hooks/index.ts +2 -1
- package/src/{useInitialTheme.ts → hooks/useInitialTheme.ts} +2 -2
- package/src/hooks/useUnistyles.ts +55 -0
- package/src/index.ts +10 -8
- package/src/types/breakpoints.ts +6 -11
- package/src/types/common.ts +2 -0
- package/src/types/core.ts +10 -4
- package/src/types/index.ts +5 -9
- package/src/types/mq.ts +3 -0
- package/src/types/{cxx.ts → unistyles.ts} +3 -24
- package/src/useStyles.ts +15 -8
- package/src/utils/breakpoints.ts +13 -12
- package/src/utils/index.ts +2 -9
- package/src/utils/mq.ts +75 -46
- package/src/utils/mqParser.ts +99 -0
- package/src/utils/styles.ts +2 -2
- package/lib/commonjs/UnistyleRegistry.js.map +0 -1
- package/lib/commonjs/Unistyles.js.map +0 -1
- package/lib/commonjs/UnistylesEngine.js +0 -26
- package/lib/commonjs/UnistylesEngine.js.map +0 -1
- package/lib/commonjs/UnistylesModule.js.map +0 -1
- package/lib/commonjs/UnistylesRuntime.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 -34
- package/lib/commonjs/hooks/useDimensions.web.js.map +0 -1
- package/lib/commonjs/types/cxx.js.map +0 -1
- package/lib/commonjs/types/mediaQueries.js +0 -2
- package/lib/commonjs/useInitialTheme.js.map +0 -1
- package/lib/commonjs/useUnistyles.js +0 -51
- package/lib/commonjs/useUnistyles.js.map +0 -1
- package/lib/commonjs/utils/mediaQueries.js +0 -98
- package/lib/commonjs/utils/mediaQueries.js.map +0 -1
- package/lib/module/UnistyleRegistry.js.map +0 -1
- package/lib/module/Unistyles.js.map +0 -1
- package/lib/module/UnistylesEngine.js +0 -19
- package/lib/module/UnistylesEngine.js.map +0 -1
- package/lib/module/UnistylesModule.js.map +0 -1
- package/lib/module/UnistylesRuntime.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 -27
- package/lib/module/hooks/useDimensions.web.js.map +0 -1
- package/lib/module/types/cxx.js.map +0 -1
- package/lib/module/types/mediaQueries.js +0 -2
- package/lib/module/useInitialTheme.js.map +0 -1
- package/lib/module/useUnistyles.js +0 -44
- package/lib/module/useUnistyles.js.map +0 -1
- package/lib/module/utils/mediaQueries.js +0 -85
- package/lib/module/utils/mediaQueries.js.map +0 -1
- package/lib/typescript/src/UnistyleRegistry.d.ts.map +0 -1
- package/lib/typescript/src/Unistyles.d.ts.map +0 -1
- package/lib/typescript/src/UnistylesEngine.d.ts +0 -11
- package/lib/typescript/src/UnistylesEngine.d.ts.map +0 -1
- package/lib/typescript/src/UnistylesModule.d.ts.map +0 -1
- package/lib/typescript/src/UnistylesRuntime.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/cxx.d.ts.map +0 -1
- package/lib/typescript/src/types/mediaQueries.d.ts +0 -10
- package/lib/typescript/src/types/mediaQueries.d.ts.map +0 -1
- package/lib/typescript/src/useInitialTheme.d.ts +0 -3
- package/lib/typescript/src/useInitialTheme.d.ts.map +0 -1
- package/lib/typescript/src/useUnistyles.d.ts +0 -10
- package/lib/typescript/src/useUnistyles.d.ts.map +0 -1
- package/lib/typescript/src/utils/mediaQueries.d.ts +0 -11
- package/lib/typescript/src/utils/mediaQueries.d.ts.map +0 -1
- package/src/UnistylesEngine.ts +0 -24
- package/src/hooks/useDimensions.ts +0 -4
- package/src/hooks/useDimensions.web.ts +0 -34
- package/src/types/mediaQueries.ts +0 -15
- package/src/useUnistyles.ts +0 -61
- package/src/utils/mediaQueries.ts +0 -152
- /package/lib/commonjs/{UnistyleRegistry.js → core/UnistyleRegistry.js} +0 -0
- /package/lib/commonjs/{UnistylesModule.js → core/UnistylesModule.js} +0 -0
- /package/lib/module/{UnistyleRegistry.js → core/UnistyleRegistry.js} +0 -0
- /package/lib/module/{UnistylesModule.js → core/UnistylesModule.js} +0 -0
- /package/lib/typescript/src/{UnistylesModule.d.ts → core/UnistylesModule.d.ts} +0 -0
- /package/src/{UnistylesModule.ts → core/UnistylesModule.ts} +0 -0
|
@@ -1,16 +1,11 @@
|
|
|
1
|
+
import { CxxUnistylesEventTypes, ScreenOrientation } from '../common';
|
|
1
2
|
import type { UnistylesThemes, UnistylesBreakpoints } from '../global';
|
|
2
|
-
import type { ScreenSize } from './
|
|
3
|
-
import type {
|
|
4
|
-
export type Optional<T> = T | undefined;
|
|
5
|
-
export type Nullable<T> = T | null;
|
|
3
|
+
import type { NestedKeys, ScreenSize } from './core';
|
|
4
|
+
import type { Optional } from './common';
|
|
6
5
|
export type ColorSchemeName = Optional<'light' | 'dark'>;
|
|
7
6
|
export type UnistylesConfig = {
|
|
8
7
|
adaptiveThemes?: boolean;
|
|
9
8
|
};
|
|
10
|
-
export declare enum ScreenOrientation {
|
|
11
|
-
Portrait = 1,
|
|
12
|
-
Landscape = 2
|
|
13
|
-
}
|
|
14
9
|
export type UnistylesBridge = {
|
|
15
10
|
screenWidth: number;
|
|
16
11
|
screenHeight: number;
|
|
@@ -25,10 +20,6 @@ export type UnistylesBridge = {
|
|
|
25
20
|
useAdaptiveThemes(enable: boolean): void;
|
|
26
21
|
unregister(): void;
|
|
27
22
|
};
|
|
28
|
-
export declare enum CxxUnistylesEventTypes {
|
|
29
|
-
Theme = "theme",
|
|
30
|
-
Layout = "layout"
|
|
31
|
-
}
|
|
32
23
|
export type UnistylesThemeEvent = {
|
|
33
24
|
type: CxxUnistylesEventTypes.Theme;
|
|
34
25
|
payload: {
|
|
@@ -44,16 +35,7 @@ export type UnistylesMobileLayoutEvent = {
|
|
|
44
35
|
};
|
|
45
36
|
};
|
|
46
37
|
export type UnistylesEvents = UnistylesThemeEvent | UnistylesMobileLayoutEvent;
|
|
47
|
-
export declare enum UnistylesError {
|
|
48
|
-
RuntimeUnavailable = "UNISTYLES_ERROR_RUNTIME_UNAVAILABLE",
|
|
49
|
-
ThemeNotFound = "UNISTYLES_ERROR_THEME_NOT_FOUND",
|
|
50
|
-
ThemeNotRegistered = "UNISTYLES_ERROR_THEME_NOT_REGISTERED",
|
|
51
|
-
ThemesCannotBeEmpty = "UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY",
|
|
52
|
-
BreakpointsCannotBeEmpty = "UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY",
|
|
53
|
-
BreakpointsMustStartFromZero = "UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO"
|
|
54
|
-
}
|
|
55
38
|
export interface UnistylesEngine {
|
|
56
|
-
isMediaQuery(key: string): boolean;
|
|
57
39
|
didMatchMediaQuery(keys: NestedKeys): Optional<string>;
|
|
58
40
|
}
|
|
59
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=unistyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unistyles.d.ts","sourceRoot":"","sources":["../../../../src/types/unistyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;AAExD,MAAM,MAAM,eAAe,GAAG;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAE1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,UAAU,EAAE,MAAM,oBAAoB,CAAC;IACvC,WAAW,EAAE,eAAe,CAAC;IAC7B,qBAAqB,EAAE,KAAK,CAAC,CAAC,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAG7G,MAAM,EAAE,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC;IACrC,cAAc,CAAC,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAGzC,UAAU,IAAI,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC;IACnC,OAAO,EAAE;QACL,SAAS,EAAE,MAAM,eAAe,CAAA;KACnC,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE;QACL,MAAM,EAAE,UAAU,CAAC;QACnB,UAAU,EAAE,MAAM,oBAAoB,CAAC;QACvC,WAAW,EAAE,iBAAiB,CAAA;KACjC,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,0BAA0B,CAAA;AAE9E,MAAM,WAAW,eAAe;IAC5B,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC1D"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { CreateStylesFactory, CustomNamedStyles,
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
theme:
|
|
5
|
-
breakpoint: keyof
|
|
6
|
-
styles:
|
|
1
|
+
import type { CreateStylesFactory, CustomNamedStyles, ReactNativeStyleSheet, UnistylesTheme } from './types';
|
|
2
|
+
import type { UnistylesBreakpoints } from './global';
|
|
3
|
+
type ParsedStylesheet<ST extends CustomNamedStyles<ST>> = {
|
|
4
|
+
theme: UnistylesTheme;
|
|
5
|
+
breakpoint: keyof UnistylesBreakpoints;
|
|
6
|
+
styles: ReactNativeStyleSheet<ST>;
|
|
7
7
|
};
|
|
8
|
+
export declare const useStyles: <ST extends CustomNamedStyles<ST>>(stylesheet?: ST | CreateStylesFactory<ST, never> | undefined) => ParsedStylesheet<ST>;
|
|
9
|
+
export {};
|
|
8
10
|
//# sourceMappingURL=useStyles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStyles.d.ts","sourceRoot":"","sources":["../../../src/useStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"useStyles.d.ts","sourceRoot":"","sources":["../../../src/useStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,KAAK,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,CAAC,EAAE,CAAC,IAAI;IACtD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,MAAM,oBAAoB,CAAC;IACvC,MAAM,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,SAAS,0HAuCrB,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MediaQuery } from '../types';
|
|
2
2
|
import type { UnistylesBreakpoints } from '../global';
|
|
3
3
|
export declare const sortAndValidateBreakpoints: (breakpoints: UnistylesBreakpoints) => UnistylesBreakpoints;
|
|
4
4
|
export declare const getBreakpointFromScreenWidth: (width: number, breakpointEntries: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>) => keyof UnistylesBreakpoints & string;
|
|
5
|
-
export declare const getValueForBreakpoint: (value: Record<keyof UnistylesBreakpoints |
|
|
5
|
+
export declare const getValueForBreakpoint: (value: Record<keyof UnistylesBreakpoints | MediaQuery, string | number | undefined>) => string | number | undefined;
|
|
6
6
|
//# sourceMappingURL=breakpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/utils/breakpoints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/utils/breakpoints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,0BAA0B,gBAAiB,oBAAoB,KAAG,oBAuB9E,CAAA;AAED,eAAO,MAAM,4BAA4B,UAAW,MAAM,qBAAqB,MAAM,CAAC,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,KAAG,MAAM,oBAAoB,GAAG,MAcnM,CAAA;AAED,eAAO,MAAM,qBAAqB,UAAW,OAAO,MAAM,oBAAoB,GAAG,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,KAAG,MAAM,GAAG,MAAM,GAAG,SAmD7I,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { normalizeStyles } from './normalizeStyles';
|
|
2
2
|
export * from './normalizer';
|
|
3
|
-
export { mq } from './mq';
|
|
3
|
+
export { mq, MQSymbol } from './mq';
|
|
4
|
+
export { getKeyForUnistylesMediaQuery } from './mqParser';
|
|
4
5
|
export { getBreakpointFromScreenWidth, sortAndValidateBreakpoints, getValueForBreakpoint } from './breakpoints';
|
|
5
6
|
export { proxifyFunction, parseStyle } from './styles';
|
|
6
7
|
export { isServer, Orientation } from './common';
|
|
7
|
-
export { extractValues, getKeyForCustomMediaQuery, isMediaQuery, isWithinTheHeight, isWithinTheWidth, isWithinTheWidthAndHeight } from './mediaQueries';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC/G,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
import type { MediaQuery, Nullable } from '../types';
|
|
1
2
|
import type { UnistylesBreakpoints } from '../global';
|
|
2
|
-
declare const MQSymbol: unique symbol;
|
|
3
|
+
export declare const MQSymbol: unique symbol;
|
|
3
4
|
type MQValue = keyof UnistylesBreakpoints | number;
|
|
5
|
+
type MQHandler = {
|
|
6
|
+
w(wMin?: Nullable<MQValue>, wMax?: MQValue): WidthHandler;
|
|
7
|
+
width(wMin?: Nullable<MQValue>, wMax?: MQValue): WidthHandler;
|
|
8
|
+
h(hMin?: Nullable<MQValue>, hMax?: MQValue): HeightHandler;
|
|
9
|
+
height(hMin?: Nullable<MQValue>, hMax?: MQValue): HeightHandler;
|
|
10
|
+
};
|
|
4
11
|
type HeightHandler = {
|
|
5
|
-
|
|
6
|
-
|
|
12
|
+
w(wMin?: Nullable<MQValue>, wMax?: MQValue): MediaQuery;
|
|
13
|
+
width(wMin?: Nullable<MQValue>, wMax?: MQValue): MediaQuery;
|
|
14
|
+
} & MediaQuery;
|
|
7
15
|
type WidthHandler = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
width: (wMin?: MQValue, wMax?: MQValue) => WidthHandler;
|
|
13
|
-
};
|
|
16
|
+
h(hMin?: Nullable<MQValue>, hMax?: MQValue): MediaQuery;
|
|
17
|
+
height(hMin?: Nullable<MQValue>, hMax?: MQValue): MediaQuery;
|
|
18
|
+
} & MediaQuery;
|
|
19
|
+
export declare const mq: MQHandler;
|
|
14
20
|
export {};
|
|
15
21
|
//# sourceMappingURL=mq.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mq.d.ts","sourceRoot":"","sources":["../../../../src/utils/mq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGrD,
|
|
1
|
+
{"version":3,"file":"mq.d.ts","sourceRoot":"","sources":["../../../../src/utils/mq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGrD,eAAO,MAAM,QAAQ,eAAyB,CAAA;AAE9C,KAAK,OAAO,GAAG,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAElD,KAAK,SAAS,GAAG;IACb,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9D,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAAA;CAClE,CAAA;AAED,KAAK,aAAa,GAAG;IACjB,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;CAC9D,GAAG,UAAU,CAAA;AAEd,KAAK,YAAY,GAAG;IAChB,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;CAC/D,GAAG,UAAU,CAAA;AAsEd,eAAO,MAAM,EAAE,WAYb,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/mqParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAkFhE,eAAO,MAAM,4BAA4B,yCAA0C,UAAU,qBAgB5F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAc,MAAM,UAAU,CAAA;AAGzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGrD,eAAO,MAAM,eAAe,OACpB,QAAQ,cAAc,MAAM,oBAAoB,GAAG,MAAM,cACjD,UAAU,KACvB,QAGD,CAAA;AAEF,eAAO,MAAM,eAAe,8BAA6B,OAMxD,CAAA;AAED,eAAO,MAAM,UAAU,+CAEP,MAAM,oBAAoB,GAAG,MAAM,cACnC,UAAU,MA6CzB,CAAA"}
|
package/package.json
CHANGED
package/src/common.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export enum CxxUnistylesEventTypes {
|
|
2
|
+
Theme = 'theme',
|
|
3
|
+
Layout = 'layout'
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export enum UnistylesError {
|
|
7
|
+
RuntimeUnavailable = 'UNISTYLES_ERROR_RUNTIME_UNAVAILABLE',
|
|
8
|
+
ThemeNotFound = 'UNISTYLES_ERROR_THEME_NOT_FOUND',
|
|
9
|
+
ThemeNotRegistered = 'UNISTYLES_ERROR_THEME_NOT_REGISTERED',
|
|
10
|
+
ThemesCannotBeEmpty = 'UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY',
|
|
11
|
+
BreakpointsCannotBeEmpty = 'UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY',
|
|
12
|
+
BreakpointsMustStartFromZero = 'UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum ScreenOrientation {
|
|
16
|
+
Portrait = 1,
|
|
17
|
+
Landscape = 2
|
|
18
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { UnistylesBridge, UnistylesConfig } from '
|
|
2
|
-
import type {
|
|
1
|
+
import type { UnistylesBridge, UnistylesConfig } from '../types'
|
|
2
|
+
import type { UnistylesBreakpoints, UnistylesThemes } from '../global'
|
|
3
3
|
|
|
4
4
|
export class UnistyleRegistry {
|
|
5
5
|
public config: UnistylesConfig = {}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { UnistylesModule } from './UnistylesModule'
|
|
2
2
|
import { UnistylesRuntime } from './UnistylesRuntime'
|
|
3
|
-
import { UnistylesBuiltInEngine } from './UnistylesEngine'
|
|
4
3
|
import { UnistyleRegistry } from './UnistyleRegistry'
|
|
5
|
-
import type { UnistylesBridge } from '
|
|
6
|
-
import { UnistylesError } from '
|
|
4
|
+
import type { UnistylesBridge } from '../types'
|
|
5
|
+
import { UnistylesError } from '../common'
|
|
7
6
|
|
|
8
7
|
class Unistyles {
|
|
9
8
|
private _runtime: UnistylesRuntime
|
|
10
|
-
private _engine: UnistylesBuiltInEngine
|
|
11
9
|
private _registry: UnistyleRegistry
|
|
12
10
|
private _bridge: UnistylesBridge
|
|
13
11
|
|
|
@@ -22,7 +20,6 @@ class Unistyles {
|
|
|
22
20
|
this._bridge = global.__UNISTYLES__ as UnistylesBridge
|
|
23
21
|
this._registry = new UnistyleRegistry(this._bridge)
|
|
24
22
|
this._runtime = new UnistylesRuntime(this._bridge, this._registry)
|
|
25
|
-
this._engine = new UnistylesBuiltInEngine(this._registry, this._runtime)
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
public get registry() {
|
|
@@ -32,10 +29,6 @@ class Unistyles {
|
|
|
32
29
|
public get runtime() {
|
|
33
30
|
return this._runtime
|
|
34
31
|
}
|
|
35
|
-
|
|
36
|
-
public get engine() {
|
|
37
|
-
return this._engine
|
|
38
|
-
}
|
|
39
32
|
}
|
|
40
33
|
|
|
41
34
|
export const unistyles = new Unistyles()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ScreenOrientation, UnistylesError } from '../common'
|
|
2
|
+
import type { UnistylesBridge } from '../types'
|
|
3
|
+
import type { UnistylesThemes } from '../global'
|
|
2
4
|
import type { UnistyleRegistry } from './UnistyleRegistry'
|
|
3
|
-
import { ScreenOrientation, UnistylesError } from './types'
|
|
4
|
-
import type { UnistylesThemes } from './global'
|
|
5
5
|
|
|
6
6
|
export class UnistylesRuntime {
|
|
7
7
|
constructor(private unistylesBridge: UnistylesBridge, private registry: UnistyleRegistry) {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { unistyles } from './Unistyles'
|
package/src/hooks/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { useInitialTheme } from './useInitialTheme'
|
|
2
|
+
export { useUnistyles } from './useUnistyles'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from 'react'
|
|
2
|
-
import { unistyles } from '
|
|
3
|
-
import type { UnistylesThemes } from '
|
|
2
|
+
import { unistyles } from '../core'
|
|
3
|
+
import type { UnistylesThemes } from '../global'
|
|
4
4
|
|
|
5
5
|
export const useInitialTheme = (forName: keyof UnistylesThemes) => {
|
|
6
6
|
useMemo(() => unistyles.runtime.setTheme(forName), [])
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { NativeEventEmitter, NativeModules } from 'react-native'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import { unistyles } from '../core'
|
|
4
|
+
import { CxxUnistylesEventTypes } from '../common'
|
|
5
|
+
import type { UnistylesEvents, UnistylesMobileLayoutEvent, UnistylesThemeEvent } from '../types'
|
|
6
|
+
|
|
7
|
+
const unistylesEvents = new NativeEventEmitter(NativeModules.Unistyles)
|
|
8
|
+
|
|
9
|
+
export const useUnistyles = () => {
|
|
10
|
+
const [theme, setTheme] = useState(unistyles.runtime.getTheme(unistyles.runtime.themeName))
|
|
11
|
+
const [layout, setLayout] = useState({
|
|
12
|
+
breakpoint: unistyles.runtime.breakpoint,
|
|
13
|
+
orientation: unistyles.runtime.orientation,
|
|
14
|
+
screenSize: {
|
|
15
|
+
width: unistyles.runtime.screen.width,
|
|
16
|
+
height: unistyles.runtime.screen.height
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
const subscription = unistylesEvents.addListener(
|
|
22
|
+
'onChange',
|
|
23
|
+
(event: UnistylesEvents) => {
|
|
24
|
+
switch (event.type) {
|
|
25
|
+
case CxxUnistylesEventTypes.Theme: {
|
|
26
|
+
const themeEvent = event as UnistylesThemeEvent
|
|
27
|
+
|
|
28
|
+
return setTheme(unistyles.runtime.getTheme(themeEvent.payload.themeName))
|
|
29
|
+
}
|
|
30
|
+
case CxxUnistylesEventTypes.Layout: {
|
|
31
|
+
const layoutEvent = event as UnistylesMobileLayoutEvent
|
|
32
|
+
|
|
33
|
+
return setLayout({
|
|
34
|
+
breakpoint: layoutEvent.payload.breakpoint,
|
|
35
|
+
orientation: layoutEvent.payload.orientation,
|
|
36
|
+
screenSize: {
|
|
37
|
+
width: layoutEvent.payload.screen.width,
|
|
38
|
+
height: layoutEvent.payload.screen.height
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
default:
|
|
43
|
+
return
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
return subscription.remove
|
|
49
|
+
}, [])
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
theme,
|
|
53
|
+
layout
|
|
54
|
+
}
|
|
55
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { unistyles } from './
|
|
1
|
+
import { unistyles } from './core'
|
|
2
|
+
import { mq } from './utils'
|
|
3
|
+
import { useInitialTheme } from './hooks'
|
|
2
4
|
import type { UnistylesThemes, UnistylesBreakpoints } from './global'
|
|
3
|
-
import { ScreenOrientation } from './
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { useInitialTheme } from './useInitialTheme'
|
|
7
|
-
|
|
8
|
-
export { useStyles } from './useStyles'
|
|
9
|
-
export { createStyleSheet } from './createStyleSheet'
|
|
5
|
+
import { ScreenOrientation } from './common'
|
|
6
|
+
import { useStyles } from './useStyles'
|
|
7
|
+
import { createStyleSheet } from './createStyleSheet'
|
|
10
8
|
|
|
11
9
|
const { addThemes, addBreakpoints, addConfig } = unistyles.registry
|
|
12
10
|
const UnistylesRuntime = unistyles.runtime
|
|
@@ -24,6 +22,10 @@ export {
|
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
export {
|
|
25
|
+
mq,
|
|
26
|
+
useInitialTheme,
|
|
27
|
+
useStyles,
|
|
28
|
+
createStyleSheet,
|
|
27
29
|
ScreenOrientation
|
|
28
30
|
}
|
|
29
31
|
|
package/src/types/breakpoints.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import type { OpaqueColorValue } from 'react-native'
|
|
2
2
|
import type { UnistylesBreakpoints } from '../global'
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
export type ScreenSize = {
|
|
6
|
-
width: number,
|
|
7
|
-
height: number
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export type CreateStylesFactory<ST, Theme> = (theme: Theme) => ST
|
|
3
|
+
import type { MediaQuery } from './mq'
|
|
11
4
|
|
|
12
5
|
type WithEmptyObject<V> = keyof V extends never ? {} : V
|
|
13
6
|
|
|
14
|
-
|
|
7
|
+
type ExtractBreakpoints<T> = T extends Partial<Record<keyof UnistylesBreakpoints & string, infer V>>
|
|
15
8
|
? WithEmptyObject<V>
|
|
16
9
|
: T extends (...args: infer A) => infer R
|
|
17
10
|
? (...args: A) => ExtractBreakpoints<R>
|
|
@@ -23,12 +16,14 @@ export type ExtractBreakpoints<T> = T extends Partial<Record<keyof UnistylesBrea
|
|
|
23
16
|
: T[K]
|
|
24
17
|
}
|
|
25
18
|
|
|
26
|
-
|
|
19
|
+
type RemoveKeysWithPrefix<T> = T extends (...args: Array<any>) => infer R
|
|
27
20
|
? (...args: Parameters<T>) => RemoveKeysWithPrefix<R>
|
|
28
21
|
: T extends object
|
|
29
22
|
? T extends OpaqueColorValue
|
|
30
23
|
? string
|
|
31
24
|
: T extends Record<string, infer _V>
|
|
32
|
-
? { [K in keyof T as K extends
|
|
25
|
+
? { [K in keyof T as K extends MediaQuery ? keyof UnistylesBreakpoints & string : K]: RemoveKeysWithPrefix<T[K]> }
|
|
33
26
|
: { [K in keyof T]: RemoveKeysWithPrefix<T[K]> }
|
|
34
27
|
: T
|
|
28
|
+
|
|
29
|
+
export type ReactNativeStyleSheet<T> = ExtractBreakpoints<RemoveKeysWithPrefix<T>>
|
package/src/types/core.ts
CHANGED
|
@@ -14,14 +14,19 @@ import type {
|
|
|
14
14
|
TranslateYTransform
|
|
15
15
|
} from 'react-native/Libraries/StyleSheet/StyleSheetTypes'
|
|
16
16
|
import type { ImageStyle, TextStyle, ViewStyle } from 'react-native'
|
|
17
|
-
import type { MediaQueries } from './mediaQueries'
|
|
18
17
|
import type { UnistylesBreakpoints, UnistylesThemes } from '../global'
|
|
18
|
+
import type { MediaQuery } from './mq'
|
|
19
19
|
|
|
20
20
|
type ShadowOffset = {
|
|
21
21
|
width: number,
|
|
22
22
|
height: number
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
export type ScreenSize = {
|
|
26
|
+
width: number,
|
|
27
|
+
height: number
|
|
28
|
+
}
|
|
29
|
+
|
|
25
30
|
type TransformStyles =
|
|
26
31
|
& PerpectiveTransform
|
|
27
32
|
& RotateTransform
|
|
@@ -44,9 +49,9 @@ type UnistyleNested = {
|
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
type UniStyle<V> = {
|
|
47
|
-
[innerKey in keyof UnistylesBreakpoints]
|
|
52
|
+
[innerKey in keyof UnistylesBreakpoints]?: V
|
|
48
53
|
} | {
|
|
49
|
-
[innerKey in
|
|
54
|
+
[innerKey in MediaQuery]: V
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
type DeepUniStyle<T> = {
|
|
@@ -72,5 +77,6 @@ export type CustomNamedStyles<T> = {
|
|
|
72
77
|
: StaticStyles
|
|
73
78
|
}
|
|
74
79
|
|
|
75
|
-
export type NestedKeys = Array<[keyof UnistylesBreakpoints |
|
|
80
|
+
export type NestedKeys = Array<[keyof UnistylesBreakpoints | MediaQuery, string | number | undefined]>
|
|
76
81
|
export type UnistylesTheme = UnistylesThemes[keyof UnistylesThemes]
|
|
82
|
+
export type CreateStylesFactory<ST, Theme> = (theme: Theme) => ST
|
package/src/types/index.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
export * from './normalizer'
|
|
2
|
-
export * from './
|
|
3
|
-
export type {
|
|
4
|
-
export type {
|
|
5
|
-
export type {
|
|
6
|
-
|
|
7
|
-
CreateStylesFactory,
|
|
8
|
-
ExtractBreakpoints,
|
|
9
|
-
RemoveKeysWithPrefix
|
|
10
|
-
} from './breakpoints'
|
|
2
|
+
export * from './unistyles'
|
|
3
|
+
export type { Optional, Nullable } from './common'
|
|
4
|
+
export type { MediaQuery } from './mq'
|
|
5
|
+
export type { CustomNamedStyles, NestedKeys, UnistylesTheme, CreateStylesFactory, ScreenSize } from './core'
|
|
6
|
+
export type { ReactNativeStyleSheet } from './breakpoints'
|
package/src/types/mq.ts
ADDED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
+
import { CxxUnistylesEventTypes, ScreenOrientation } from '../common'
|
|
1
2
|
import type { UnistylesThemes, UnistylesBreakpoints } from '../global'
|
|
2
|
-
import type { ScreenSize } from './
|
|
3
|
-
import type {
|
|
3
|
+
import type { NestedKeys, ScreenSize } from './core'
|
|
4
|
+
import type { Optional } from './common'
|
|
4
5
|
|
|
5
|
-
export type Optional<T> = T | undefined
|
|
6
|
-
export type Nullable<T> = T | null
|
|
7
6
|
export type ColorSchemeName = Optional<'light' | 'dark'>
|
|
8
7
|
|
|
9
8
|
export type UnistylesConfig = {
|
|
10
9
|
adaptiveThemes?: boolean
|
|
11
10
|
}
|
|
12
11
|
|
|
13
|
-
export enum ScreenOrientation {
|
|
14
|
-
Portrait = 1,
|
|
15
|
-
Landscape = 2
|
|
16
|
-
}
|
|
17
|
-
|
|
18
12
|
export type UnistylesBridge = {
|
|
19
13
|
// getters
|
|
20
14
|
screenWidth: number,
|
|
@@ -35,11 +29,6 @@ export type UnistylesBridge = {
|
|
|
35
29
|
unregister(): void
|
|
36
30
|
}
|
|
37
31
|
|
|
38
|
-
export enum CxxUnistylesEventTypes {
|
|
39
|
-
Theme = 'theme',
|
|
40
|
-
Layout = 'layout'
|
|
41
|
-
}
|
|
42
|
-
|
|
43
32
|
export type UnistylesThemeEvent = {
|
|
44
33
|
type: CxxUnistylesEventTypes.Theme,
|
|
45
34
|
payload: {
|
|
@@ -58,16 +47,6 @@ export type UnistylesMobileLayoutEvent = {
|
|
|
58
47
|
|
|
59
48
|
export type UnistylesEvents = UnistylesThemeEvent | UnistylesMobileLayoutEvent
|
|
60
49
|
|
|
61
|
-
export enum UnistylesError {
|
|
62
|
-
RuntimeUnavailable = 'UNISTYLES_ERROR_RUNTIME_UNAVAILABLE',
|
|
63
|
-
ThemeNotFound = 'UNISTYLES_ERROR_THEME_NOT_FOUND',
|
|
64
|
-
ThemeNotRegistered = 'UNISTYLES_ERROR_THEME_NOT_REGISTERED',
|
|
65
|
-
ThemesCannotBeEmpty = 'UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY',
|
|
66
|
-
BreakpointsCannotBeEmpty = 'UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY',
|
|
67
|
-
BreakpointsMustStartFromZero = 'UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO',
|
|
68
|
-
}
|
|
69
|
-
|
|
70
50
|
export interface UnistylesEngine {
|
|
71
|
-
isMediaQuery(key: string): boolean,
|
|
72
51
|
didMatchMediaQuery(keys: NestedKeys): Optional<string>,
|
|
73
52
|
}
|
package/src/useStyles.ts
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { useMemo } from 'react'
|
|
2
2
|
import { StyleSheet } from 'react-native'
|
|
3
3
|
import { parseStyle, proxifyFunction } from './utils'
|
|
4
|
-
import type { CreateStylesFactory, CustomNamedStyles,
|
|
5
|
-
import { useUnistyles } from './
|
|
6
|
-
import type {
|
|
4
|
+
import type { CreateStylesFactory, CustomNamedStyles, ReactNativeStyleSheet, UnistylesTheme } from './types'
|
|
5
|
+
import { useUnistyles } from './hooks'
|
|
6
|
+
import type { UnistylesBreakpoints } from './global'
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
type ParsedStylesheet<ST extends CustomNamedStyles<ST>> = {
|
|
9
|
+
theme: UnistylesTheme,
|
|
10
|
+
breakpoint: keyof UnistylesBreakpoints,
|
|
11
|
+
styles: ReactNativeStyleSheet<ST>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const useStyles = <ST extends CustomNamedStyles<ST>>(stylesheet?: ST | CreateStylesFactory<ST, UnistylesTheme>): ParsedStylesheet<ST> => {
|
|
15
|
+
const { theme, layout } = useUnistyles()
|
|
16
|
+
const { screenSize, breakpoint } = layout
|
|
10
17
|
|
|
11
18
|
if (!stylesheet) {
|
|
12
19
|
return {
|
|
13
20
|
theme,
|
|
14
21
|
breakpoint,
|
|
15
|
-
styles: {} as
|
|
22
|
+
styles: {} as ReactNativeStyleSheet<ST>
|
|
16
23
|
}
|
|
17
24
|
}
|
|
18
25
|
|
|
@@ -36,11 +43,11 @@ export const useStyles = <ST extends CustomNamedStyles<ST>>(stylesheet?: ST | Cr
|
|
|
36
43
|
...acc,
|
|
37
44
|
[key]: parseStyle<ST>(style, breakpoint, screenSize)
|
|
38
45
|
})
|
|
39
|
-
}, {} as ST), [breakpoint, screenSize, parsedStyles])
|
|
46
|
+
}, {} as ST), [breakpoint, screenSize, parsedStyles]) as ReactNativeStyleSheet<ST>
|
|
40
47
|
|
|
41
48
|
return {
|
|
42
49
|
theme,
|
|
43
50
|
breakpoint,
|
|
44
|
-
styles: dynamicStyleSheet
|
|
51
|
+
styles: dynamicStyleSheet
|
|
45
52
|
}
|
|
46
53
|
}
|
package/src/utils/breakpoints.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { unistyles } from '../
|
|
1
|
+
import { unistyles } from '../core'
|
|
2
2
|
import { isMobile, Orientation, throwError } from './common'
|
|
3
|
-
import type {
|
|
4
|
-
import { ScreenOrientation } from '../types'
|
|
3
|
+
import type { MediaQuery, NestedKeys } from '../types'
|
|
5
4
|
import type { UnistylesBreakpoints } from '../global'
|
|
5
|
+
import { ScreenOrientation } from '../common'
|
|
6
|
+
import { getKeyForUnistylesMediaQuery } from './mqParser'
|
|
6
7
|
|
|
7
8
|
export const sortAndValidateBreakpoints = (breakpoints: UnistylesBreakpoints): UnistylesBreakpoints => {
|
|
8
9
|
const sortedPairs = Object
|
|
@@ -45,15 +46,14 @@ export const getBreakpointFromScreenWidth = (width: number, breakpointEntries: A
|
|
|
45
46
|
return key
|
|
46
47
|
}
|
|
47
48
|
|
|
48
|
-
export const getValueForBreakpoint = (value: Record<keyof UnistylesBreakpoints |
|
|
49
|
+
export const getValueForBreakpoint = (value: Record<keyof UnistylesBreakpoints | MediaQuery, string | number | undefined>): string | number | undefined => {
|
|
49
50
|
// the highest priority is for custom media queries
|
|
50
|
-
const
|
|
51
|
-
.entries(value)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const customMediaQueryKey = unistyles.engine.didMatchMediaQuery(customMediaQueries) as keyof typeof value
|
|
51
|
+
const customMediaQueryKey = getKeyForUnistylesMediaQuery(
|
|
52
|
+
Object.entries(value) as NestedKeys,
|
|
53
|
+
unistyles.runtime.screen
|
|
54
|
+
) as keyof typeof value
|
|
55
55
|
|
|
56
|
-
if (customMediaQueryKey
|
|
56
|
+
if (customMediaQueryKey) {
|
|
57
57
|
return value[customMediaQueryKey]
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -61,8 +61,8 @@ export const getValueForBreakpoint = (value: Record<keyof UnistylesBreakpoints |
|
|
|
61
61
|
// check if user defined any breakpoints
|
|
62
62
|
const hasBreakpoints = unistyles.runtime.sortedBreakpoints.length > 0
|
|
63
63
|
|
|
64
|
-
// if not then we can
|
|
65
|
-
if (!hasBreakpoints && isMobile && (Orientation.Landscape in
|
|
64
|
+
// if not then we can fall back to horizontal and portrait (mobile only)
|
|
65
|
+
if (!hasBreakpoints && isMobile && (Orientation.Landscape in value || Orientation.Portrait in value)) {
|
|
66
66
|
return value[
|
|
67
67
|
unistyles.runtime.orientation === ScreenOrientation.Portrait
|
|
68
68
|
? Orientation.Portrait
|
|
@@ -70,6 +70,7 @@ export const getValueForBreakpoint = (value: Record<keyof UnistylesBreakpoints |
|
|
|
70
70
|
]
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
// let's get the current breakpoint
|
|
73
74
|
const breakpoint = unistyles.runtime.breakpoint
|
|
74
75
|
|
|
75
76
|
if (!breakpoint) {
|
package/src/utils/index.ts
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
export { normalizeStyles } from './normalizeStyles'
|
|
2
2
|
export * from './normalizer'
|
|
3
|
-
export { mq } from './mq'
|
|
3
|
+
export { mq, MQSymbol } from './mq'
|
|
4
|
+
export { getKeyForUnistylesMediaQuery } from './mqParser'
|
|
4
5
|
export { getBreakpointFromScreenWidth, sortAndValidateBreakpoints, getValueForBreakpoint } from './breakpoints'
|
|
5
6
|
export { proxifyFunction, parseStyle } from './styles'
|
|
6
7
|
export { isServer, Orientation } from './common'
|
|
7
|
-
export {
|
|
8
|
-
extractValues,
|
|
9
|
-
getKeyForCustomMediaQuery,
|
|
10
|
-
isMediaQuery,
|
|
11
|
-
isWithinTheHeight,
|
|
12
|
-
isWithinTheWidth,
|
|
13
|
-
isWithinTheWidthAndHeight
|
|
14
|
-
} from './mediaQueries'
|