react-native-unistyles 2.0.0-alpha.1 → 2.0.0-alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +4 -4
- package/ios/UnistylesModule.h +12 -0
- package/ios/UnistylesModule.mm +163 -0
- package/ios/UnistylesRuntime.h +48 -0
- package/ios/UnistylesRuntime.mm +228 -0
- package/lib/commonjs/UnistyleRegistry.js +34 -0
- package/lib/commonjs/UnistyleRegistry.js.map +1 -0
- package/lib/commonjs/Unistyles.js +36 -0
- package/lib/commonjs/Unistyles.js.map +1 -0
- package/lib/commonjs/UnistylesEngine.js +22 -0
- package/lib/commonjs/UnistylesEngine.js.map +1 -0
- package/lib/commonjs/UnistylesModule.js +9 -0
- package/lib/commonjs/UnistylesModule.js.map +1 -0
- package/lib/commonjs/UnistylesRuntime.js +63 -0
- package/lib/commonjs/UnistylesRuntime.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/useDimensions.web.js +3 -2
- package/lib/commonjs/hooks/useDimensions.web.js.map +1 -1
- package/lib/commonjs/index.js +33 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/cxx.js +23 -0
- package/lib/commonjs/types/cxx.js.map +1 -0
- package/lib/commonjs/types/index.js +26 -0
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/types/normalizer.js +6 -0
- package/lib/commonjs/types/normalizer.js.map +1 -0
- package/lib/commonjs/useInitialTheme.js +13 -0
- package/lib/commonjs/useInitialTheme.js.map +1 -0
- package/lib/commonjs/useStyles.js +48 -0
- package/lib/commonjs/useStyles.js.map +1 -0
- package/lib/commonjs/useUnistyles.js +57 -0
- package/lib/commonjs/useUnistyles.js.map +1 -0
- package/lib/commonjs/utils/breakpoints.js +4 -2
- package/lib/commonjs/utils/breakpoints.js.map +1 -1
- package/lib/commonjs/utils/common.js +3 -3
- package/lib/commonjs/utils/common.js.map +1 -1
- package/lib/commonjs/utils/index.js +34 -0
- 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/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 +7 -7
- package/lib/commonjs/utils/styles.js.map +1 -1
- package/lib/module/UnistyleRegistry.js +27 -0
- package/lib/module/UnistyleRegistry.js.map +1 -0
- package/lib/module/Unistyles.js +30 -0
- package/lib/module/Unistyles.js.map +1 -0
- package/lib/module/UnistylesEngine.js +15 -0
- package/lib/module/UnistylesEngine.js.map +1 -0
- package/lib/module/UnistylesModule.js +3 -0
- package/lib/module/UnistylesModule.js.map +1 -0
- package/lib/module/UnistylesRuntime.js +56 -0
- package/lib/module/UnistylesRuntime.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/useDimensions.web.js +3 -2
- package/lib/module/hooks/useDimensions.web.js.map +1 -1
- package/lib/module/index.js +18 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/cxx.js +17 -0
- package/lib/module/types/cxx.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/normalizer.js +2 -0
- package/lib/module/types/normalizer.js.map +1 -0
- package/lib/module/useInitialTheme.js +6 -0
- package/lib/module/useInitialTheme.js.map +1 -0
- package/lib/module/useStyles.js +42 -0
- package/lib/module/useStyles.js.map +1 -0
- package/lib/module/useUnistyles.js +50 -0
- package/lib/module/useUnistyles.js.map +1 -0
- package/lib/module/utils/breakpoints.js +4 -3
- package/lib/module/utils/breakpoints.js.map +1 -1
- package/lib/module/utils/common.js +2 -1
- package/lib/module/utils/common.js.map +1 -1
- package/lib/module/utils/index.js +2 -0
- 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/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 +7 -8
- package/lib/module/utils/styles.js.map +1 -1
- package/lib/typescript/examples/expo/src/App.d.ts +3 -0
- package/lib/typescript/examples/expo/src/App.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/examples/Cxx.d.ts +3 -0
- package/lib/typescript/examples/expo/src/examples/Cxx.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/examples/index.d.ts +2 -0
- package/lib/typescript/examples/expo/src/examples/index.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/index.d.ts +2 -0
- package/lib/typescript/examples/expo/src/index.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts +8 -0
- package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/styles/index.d.ts +16 -0
- package/lib/typescript/examples/expo/src/styles/index.d.ts.map +1 -0
- package/lib/typescript/examples/expo/src/styles/theme.d.ts +40 -0
- package/lib/typescript/examples/expo/src/styles/theme.d.ts.map +1 -0
- package/lib/typescript/src/UnistyleRegistry.d.ts +14 -0
- package/lib/typescript/src/UnistyleRegistry.d.ts.map +1 -0
- package/lib/typescript/src/Unistyles.d.ts +16 -0
- package/lib/typescript/src/Unistyles.d.ts.map +1 -0
- package/lib/typescript/src/UnistylesEngine.d.ts +8 -0
- package/lib/typescript/src/UnistylesEngine.d.ts.map +1 -0
- package/lib/typescript/src/UnistylesModule.d.ts +6 -0
- package/lib/typescript/src/UnistylesModule.d.ts.map +1 -0
- package/lib/typescript/src/UnistylesRuntime.d.ts +60 -0
- package/lib/typescript/src/UnistylesRuntime.d.ts.map +1 -0
- package/lib/typescript/src/createStyleSheet.d.ts +6 -0
- package/lib/typescript/src/createStyleSheet.d.ts.map +1 -0
- package/lib/typescript/src/global.d.ts +5 -0
- package/lib/typescript/src/global.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDimensions.web.d.ts.map +1 -1
- 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 +6 -7
- package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/types/core.d.ts +4 -4
- package/lib/typescript/src/types/core.d.ts.map +1 -1
- package/lib/typescript/src/types/cxx.d.ts +53 -0
- package/lib/typescript/src/types/cxx.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +4 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- 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/useInitialTheme.d.ts +3 -0
- package/lib/typescript/src/useInitialTheme.d.ts.map +1 -0
- package/lib/typescript/src/useStyles.d.ts +46 -0
- package/lib/typescript/src/useStyles.d.ts.map +1 -0
- package/lib/typescript/src/useUnistyles.d.ts +45 -0
- package/lib/typescript/src/useUnistyles.d.ts.map +1 -0
- package/lib/typescript/src/utils/breakpoints.d.ts +5 -4
- package/lib/typescript/src/utils/breakpoints.d.ts.map +1 -1
- package/lib/typescript/src/utils/common.d.ts +2 -1
- package/lib/typescript/src/utils/common.d.ts.map +1 -1
- package/lib/typescript/src/utils/index.d.ts +2 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- 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 +4 -3
- package/lib/typescript/src/utils/styles.d.ts.map +1 -1
- package/package.json +13 -3
- package/react-native-unistyles.podspec +21 -0
- package/src/UnistyleRegistry.ts +35 -0
- package/src/Unistyles.ts +41 -0
- package/src/UnistylesEngine.ts +15 -0
- package/src/UnistylesModule.ts +7 -0
- package/src/UnistylesRuntime.ts +69 -0
- package/src/createStyleSheet.ts +12 -0
- package/src/global.ts +2 -0
- package/src/hooks/useDimensions.web.ts +3 -2
- package/src/index.ts +30 -2
- package/src/types/breakpoints.ts +9 -11
- package/src/types/core.ts +6 -6
- package/src/types/cxx.ts +65 -0
- package/src/types/index.ts +4 -3
- package/src/types/normalizer.ts +29 -0
- package/src/useInitialTheme.ts +7 -0
- package/src/useStyles.ts +49 -0
- package/src/useUnistyles.ts +66 -0
- package/src/utils/breakpoints.ts +16 -14
- package/src/utils/common.ts +2 -1
- package/src/utils/index.ts +2 -0
- package/src/utils/module.d.ts +3 -0
- package/src/utils/normalizeStyles.web.ts +21 -42
- package/src/utils/normalizer.ts +99 -0
- package/src/utils/styles.ts +17 -19
- 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/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/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/src/UnistylesTheme.tsx +0 -17
- package/src/__tests__/createUnistyles.spec.tsx +0 -192
- package/src/createUnistyles.ts +0 -70
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAErD,KAAK,YAAY,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,eAAe,GACd,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,cAAc,GACd,eAAe,CAAA;AAErB,KAAK,cAAc,CAAC,CAAC,IAAI;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI;KACjB,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B,GAAG;KACC,QAAQ,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC;CACjC,GAAG,CAAC,CAAA;AAEL,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACrC,CAAA;AAGD,KAAK,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,kBAAkB,CAAA;AAEpE,KAAK,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;AACpE,KAAK,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;AACpE,KAAK,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;AAEtE,MAAM,MAAM,YAAY,CAAC,CAAC,IACpB,YAAY,CAAC,CAAC,CAAC,GACf,YAAY,CAAC,CAAC,CAAC,GACf,aAAa,CAAC,CAAC,CAAC,GAChB,cAAc,CAAC,CAAC,CAAC,CAAA;AAEvB,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,YAAY,CAAC,oBAAoB,CAAC,GAC/E,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,oBAAoB,CAAC,GAClD,YAAY,CAAC,oBAAoB,CAAC;CAC3C,CAAA"}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import type { UnistylesThemes, UnistylesBreakpoints } from '../global';
|
2
|
+
export type Nullable<T> = T | null;
|
3
|
+
export type ColorSchemeName = 'light' | 'dark' | undefined;
|
4
|
+
export type UnistylesConfig = {
|
5
|
+
adaptiveThemes?: boolean;
|
6
|
+
};
|
7
|
+
export declare enum ScreenOrientation {
|
8
|
+
Portrait = 1,
|
9
|
+
Landscape = 2
|
10
|
+
}
|
11
|
+
export type UnistylesBridge = {
|
12
|
+
screenWidth: number;
|
13
|
+
screenHeight: number;
|
14
|
+
hasAdaptiveThemes: boolean;
|
15
|
+
theme: keyof UnistylesThemes;
|
16
|
+
breakpoint: keyof UnistylesBreakpoints;
|
17
|
+
colorScheme: ColorSchemeName;
|
18
|
+
sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>;
|
19
|
+
themes: Array<keyof UnistylesThemes>;
|
20
|
+
useBreakpoints(breakpoints: UnistylesBreakpoints): void;
|
21
|
+
useTheme(name: keyof UnistylesThemes): void;
|
22
|
+
useAdaptiveThemes(enable: boolean): void;
|
23
|
+
};
|
24
|
+
export declare enum CxxUnistylesEventTypes {
|
25
|
+
Theme = "theme",
|
26
|
+
Size = "size",
|
27
|
+
Breakpoint = "breakpoint"
|
28
|
+
}
|
29
|
+
export type CxxUnistylesThemeEvent = {
|
30
|
+
type: CxxUnistylesEventTypes.Theme;
|
31
|
+
payload: {
|
32
|
+
themeName: keyof UnistylesThemes;
|
33
|
+
};
|
34
|
+
};
|
35
|
+
export type CxxUnistylesSizeEvent = {
|
36
|
+
type: CxxUnistylesEventTypes.Size;
|
37
|
+
payload: {
|
38
|
+
width: number;
|
39
|
+
height: number;
|
40
|
+
};
|
41
|
+
};
|
42
|
+
export type CxxUnistylesBreakpointEvent = {
|
43
|
+
type: CxxUnistylesEventTypes.Breakpoint;
|
44
|
+
payload: {
|
45
|
+
breakpoint: keyof UnistylesBreakpoints;
|
46
|
+
};
|
47
|
+
};
|
48
|
+
export type UnistylesEvents = CxxUnistylesThemeEvent | CxxUnistylesSizeEvent | CxxUnistylesBreakpointEvent;
|
49
|
+
export declare enum UnistylesError {
|
50
|
+
RuntimeUnavailable = "UNISTYLES_ERROR_RUNTIME_UNAVAILABLE",
|
51
|
+
ThemeNotFound = "UNISTYLES_ERROR_THEME_NOT_FOUND"
|
52
|
+
}
|
53
|
+
//# sourceMappingURL=cxx.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cxx.d.ts","sourceRoot":"","sources":["../../../../src/types/cxx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEtE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAClC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,oBAAY,iBAAiB;IACzB,QAAQ,IAAI;IACZ,SAAS,IAAI;CAChB;AAED,MAAM,MAAM,eAAe,GAAG;IAE1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,eAAe,CAAC;IAC7B,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;CAC5C,CAAA;AAED,oBAAY,sBAAsB;IAC9B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,eAAe;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC;IACnC,OAAO,EAAE;QACL,SAAS,EAAE,MAAM,eAAe,CAAA;KACnC,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACtC,IAAI,EAAE,sBAAsB,CAAC,UAAU,CAAC;IACxC,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,oBAAoB,CAAA;KACzC,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,2BAA2B,CAAA;AAE1G,oBAAY,cAAc;IACtB,kBAAkB,wCAAwC;IAC1D,aAAa,oCAAoC;CACpD"}
|
@@ -1,3 +1,6 @@
|
|
1
|
+
export * from './normalizer';
|
2
|
+
export * from './cxx';
|
1
3
|
export type { CustomNamedStyles } from './core';
|
2
|
-
export type {
|
4
|
+
export type { MediaQueries } from './mediaQueries';
|
5
|
+
export type { ScreenSize, CreateStylesFactory, ExtractBreakpoints, RemoveKeysWithPrefix } from './breakpoints';
|
3
6
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,YAAY,EACR,UAAU,EACV,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EACR,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,eAAe,CAAA"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import type { ShadowStyleIOS, TextStyle, TransformsStyle } from 'react-native';
|
2
|
+
type TransformArrayElement<T> = T extends Array<infer U> ? U : never;
|
3
|
+
type BoxShadow = Required<ShadowStyleIOS>;
|
4
|
+
type TextShadow = Required<Pick<TextStyle, 'textShadowColor' | 'textShadowOffset' | 'textShadowRadius'>>;
|
5
|
+
type Transforms = Array<TransformArrayElement<TransformsStyle['transform']>>;
|
6
|
+
type NormalizedBoxShadow = {
|
7
|
+
shadowColor: undefined;
|
8
|
+
shadowOffset: undefined;
|
9
|
+
shadowOpacity: undefined;
|
10
|
+
shadowRadius: undefined;
|
11
|
+
boxShadow?: string;
|
12
|
+
};
|
13
|
+
type NormalizedTextShadow = {
|
14
|
+
textShadowColor: undefined;
|
15
|
+
textShadowOffset: undefined;
|
16
|
+
textShadowRadius: undefined;
|
17
|
+
textShadow?: string;
|
18
|
+
};
|
19
|
+
export type { BoxShadow, TextShadow, Transforms, NormalizedBoxShadow, NormalizedTextShadow };
|
20
|
+
//# sourceMappingURL=normalizer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../../src/types/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9E,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpE,KAAK,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;AACzC,KAAK,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAA;AACxG,KAAK,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAE5E,KAAK,mBAAmB,GAAG;IACvB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,eAAe,EAAE,SAAS,CAAA;IAC1B,gBAAgB,EAAE,SAAS,CAAA;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,YAAY,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACvB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useInitialTheme.d.ts","sourceRoot":"","sources":["../../../src/useInitialTheme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,eAAe,YAAa,MAAM,eAAe,SAE7D,CAAA"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import type { CreateStylesFactory, CustomNamedStyles, ExtractBreakpoints, RemoveKeysWithPrefix } from './types';
|
2
|
+
import type { UnistylesThemes } from './global';
|
3
|
+
type T = UnistylesThemes[keyof UnistylesThemes];
|
4
|
+
export declare const useStyles: <ST extends CustomNamedStyles<ST>>(stylesheet?: ST | CreateStylesFactory<ST, T> | undefined) => {
|
5
|
+
theme: {
|
6
|
+
colors: {
|
7
|
+
backgroundColor: string;
|
8
|
+
typography: string;
|
9
|
+
accent: string;
|
10
|
+
barbie: string;
|
11
|
+
oak: string;
|
12
|
+
sky: string;
|
13
|
+
fog: string;
|
14
|
+
aloes: string;
|
15
|
+
blood: string;
|
16
|
+
};
|
17
|
+
} | {
|
18
|
+
colors: {
|
19
|
+
backgroundColor: string;
|
20
|
+
typography: string;
|
21
|
+
accent: string;
|
22
|
+
barbie: string;
|
23
|
+
oak: string;
|
24
|
+
sky: string;
|
25
|
+
fog: string;
|
26
|
+
aloes: string;
|
27
|
+
blood: string;
|
28
|
+
};
|
29
|
+
} | {
|
30
|
+
colors: {
|
31
|
+
backgroundColor: string;
|
32
|
+
typography: string;
|
33
|
+
accent: string;
|
34
|
+
barbie: string;
|
35
|
+
oak: string;
|
36
|
+
sky: string;
|
37
|
+
fog: string;
|
38
|
+
aloes: string;
|
39
|
+
blood: string;
|
40
|
+
};
|
41
|
+
};
|
42
|
+
breakpoint: "xs" | "sm" | "md" | "lg" | "xl";
|
43
|
+
styles: ExtractBreakpoints<RemoveKeysWithPrefix<ST>>;
|
44
|
+
};
|
45
|
+
export {};
|
46
|
+
//# sourceMappingURL=useStyles.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useStyles.d.ts","sourceRoot":"","sources":["../../../src/useStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,eAAe,CAAC,CAAA;AAE/C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCrB,CAAA"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
export declare const useUnistyles: () => {
|
2
|
+
theme: {
|
3
|
+
colors: {
|
4
|
+
backgroundColor: string;
|
5
|
+
typography: string;
|
6
|
+
accent: string;
|
7
|
+
barbie: string;
|
8
|
+
oak: string;
|
9
|
+
sky: string;
|
10
|
+
fog: string;
|
11
|
+
aloes: string;
|
12
|
+
blood: string;
|
13
|
+
};
|
14
|
+
} | {
|
15
|
+
colors: {
|
16
|
+
backgroundColor: string;
|
17
|
+
typography: string;
|
18
|
+
accent: string;
|
19
|
+
barbie: string;
|
20
|
+
oak: string;
|
21
|
+
sky: string;
|
22
|
+
fog: string;
|
23
|
+
aloes: string;
|
24
|
+
blood: string;
|
25
|
+
};
|
26
|
+
} | {
|
27
|
+
colors: {
|
28
|
+
backgroundColor: string;
|
29
|
+
typography: string;
|
30
|
+
accent: string;
|
31
|
+
barbie: string;
|
32
|
+
oak: string;
|
33
|
+
sky: string;
|
34
|
+
fog: string;
|
35
|
+
aloes: string;
|
36
|
+
blood: string;
|
37
|
+
};
|
38
|
+
};
|
39
|
+
breakpoint: "xs" | "sm" | "md" | "lg" | "xl";
|
40
|
+
screenSize: {
|
41
|
+
width: number;
|
42
|
+
height: number;
|
43
|
+
};
|
44
|
+
};
|
45
|
+
//# sourceMappingURL=useUnistyles.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useUnistyles.d.ts","sourceRoot":"","sources":["../../../src/useUnistyles.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAA"}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import type {
|
1
|
+
import type { ScreenSize, MediaQueries } from '../types';
|
2
|
+
import type { UnistylesBreakpoints } from '../global';
|
2
3
|
/**
|
3
4
|
* Sorts the breakpoints object based on its numeric values in ascending order and validates them.
|
4
5
|
*
|
@@ -18,7 +19,7 @@ import type { Breakpoints, ScreenSize, SortedBreakpointEntries } from '../types'
|
|
18
19
|
* const input = { md: 768, lg: 1024, sm: 0 }
|
19
20
|
* sortAndValidateBreakpoints(input) // returns { sm: 0, md: 768, lg: 1024 }
|
20
21
|
*/
|
21
|
-
export declare const sortAndValidateBreakpoints:
|
22
|
+
export declare const sortAndValidateBreakpoints: (breakpoints: UnistylesBreakpoints) => UnistylesBreakpoints;
|
22
23
|
/**
|
23
24
|
* Determines the appropriate breakpoint key for a given screen width based on provided breakpoints.
|
24
25
|
*
|
@@ -34,7 +35,7 @@ export declare const sortAndValidateBreakpoints: <B extends Breakpoints>(breakpo
|
|
34
35
|
* const breakpoints = { sm: 0, md: 768, lg: 1024 }
|
35
36
|
* getBreakpointFromScreenWidth(800, breakpoints) // returns 'md'
|
36
37
|
*/
|
37
|
-
export declare const getBreakpointFromScreenWidth:
|
38
|
+
export declare const getBreakpointFromScreenWidth: (width: number, breakpointEntries: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>) => keyof UnistylesBreakpoints & string;
|
38
39
|
/**
|
39
40
|
* Retrieves the value associated with a given breakpoint or custom media query based on the provided screen size.
|
40
41
|
*
|
@@ -59,5 +60,5 @@ export declare const getBreakpointFromScreenWidth: <B extends Breakpoints>(width
|
|
59
60
|
*
|
60
61
|
* getValueForBreakpoint(values, 'sm', screenSize, breakpoints); // 'value1'
|
61
62
|
*/
|
62
|
-
export declare const getValueForBreakpoint:
|
63
|
+
export declare const getValueForBreakpoint: (value: Record<keyof UnistylesBreakpoints | MediaQueries, string | number | undefined>, breakpoint: keyof UnistylesBreakpoints, screenSize: ScreenSize) => string | number | undefined;
|
63
64
|
//# sourceMappingURL=breakpoints.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/utils/breakpoints.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/utils/breakpoints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,0BAA0B,gBAAiB,oBAAoB,KAAG,oBAuB9E,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,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;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,UACvB,OAAO,MAAM,oBAAoB,GAAG,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,cACzE,MAAM,oBAAoB,cAC1B,UAAU,KACvB,MAAM,GAAG,MAAM,GAAG,SAgCpB,CAAA"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
export declare const throwError: (message: string) => never;
|
2
2
|
export declare const warn: (message: string) => void;
|
3
|
-
export declare const isWeb:
|
3
|
+
export declare const isWeb: boolean;
|
4
|
+
export declare const isServer: boolean;
|
4
5
|
//# sourceMappingURL=common.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/utils/common.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,YAAa,MAAM,UAEzC,CAAA;AAED,eAAO,MAAM,IAAI,YAAa,MAAM,SAEnC,CAAA;AAED,eAAO,MAAM,KAAK,
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/utils/common.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,YAAa,MAAM,UAEzC,CAAA;AAED,eAAO,MAAM,IAAI,YAAa,MAAM,SAEnC,CAAA;AAED,eAAO,MAAM,KAAK,SAAwB,CAAA;AAC1C,eAAO,MAAM,QAAQ,SAAgC,CAAA"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
export { normalizeStyles } from './normalizeStyles';
|
2
|
+
export * from './normalizer';
|
2
3
|
export { getBreakpointFromScreenWidth, sortAndValidateBreakpoints, getValueForBreakpoint } from './breakpoints';
|
3
4
|
export { proxifyFunction, parseStyle } from './styles';
|
5
|
+
export { isServer } from './common';
|
4
6
|
export { extractValues, getKeyForCustomMediaQuery, isMediaQuery, isWithinTheHeight, isWithinTheWidth, isWithinTheWidthAndHeight } from './mediaQueries';
|
5
7
|
//# 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,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC/G,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EACH,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,gBAAgB,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,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,MAAM,UAAU,CAAA;AACnC,OAAO,EACH,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,gBAAgB,CAAA"}
|
@@ -1,2 +1,5 @@
|
|
1
|
-
|
1
|
+
import type { Transforms } from '../types';
|
2
|
+
export declare const normalizeStyles: <T extends Required<import("react-native").ShadowStyleIOS> | Required<Pick<import("react-native").TextStyle, "textShadowColor" | "textShadowOffset" | "textShadowRadius">> | {
|
3
|
+
transform: Transforms;
|
4
|
+
}>(style: T) => T;
|
2
5
|
//# sourceMappingURL=normalizeStyles.web.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"normalizeStyles.web.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeStyles.web.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"normalizeStyles.web.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeStyles.web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoE,UAAU,EAAE,MAAM,UAAU,CAAA;AAuD5G,eAAO,MAAM,eAAe;;iBAwB3B,CAAA"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { TextShadow, Transforms, BoxShadow } from '../types';
|
2
|
+
type Preprocessor = {
|
3
|
+
createTextShadowValue(style: TextShadow): string;
|
4
|
+
createBoxShadowValue(style: Required<BoxShadow>): string;
|
5
|
+
createTransformValue(transforms: Required<Transforms>): string;
|
6
|
+
};
|
7
|
+
export declare const normalizeColor: (color: string, opacity?: number) => string;
|
8
|
+
export declare const normalizeNumericValue: (value: number) => string | number;
|
9
|
+
export declare const preprocessor: Preprocessor;
|
10
|
+
export {};
|
11
|
+
//# sourceMappingURL=normalizer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEjE,KAAK,YAAY,GAAG;IAChB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IACjD,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACzD,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;CAClE,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,MAAM,YAAW,MAAM,WAyB5D,CAAA;AAED,eAAO,MAAM,qBAAqB,UAAW,MAAM,oBAAiC,CAAA;AAwDpF,eAAO,MAAM,YAAY,EAAE,YAI1B,CAAA"}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import type {
|
1
|
+
import type { CustomNamedStyles, ScreenSize } from '../types';
|
2
|
+
import type { UnistylesBreakpoints } from '../global';
|
2
3
|
/**
|
3
4
|
* Proxies a function to parse its return value for custom media queries or breakpoints.
|
4
5
|
*
|
@@ -20,7 +21,7 @@ import type { Breakpoints, CustomNamedStyles, ScreenSize, SortedBreakpointEntrie
|
|
20
21
|
* const proxifiedFunction = proxifyFunction(myFunction, 'sm', screenSize, breakpoints)
|
21
22
|
* proxifiedFunction() // parsed style based on screenSize and breakpoints
|
22
23
|
*/
|
23
|
-
export declare const proxifyFunction:
|
24
|
+
export declare const proxifyFunction: (fn: Function, breakpoint: keyof UnistylesBreakpoints & string, screenSize: ScreenSize) => Function;
|
24
25
|
/**
|
25
26
|
* Parses a style object to resolve custom media queries or breakpoints based on the provided screen size and breakpoints.
|
26
27
|
*
|
@@ -46,5 +47,5 @@ export declare const proxifyFunction: <B extends Breakpoints>(fn: Function, brea
|
|
46
47
|
* const parsedStyle = parseStyle(style, 'sm', screenSize, breakpoints)
|
47
48
|
* // { fontSize: '12px' }
|
48
49
|
*/
|
49
|
-
export declare const parseStyle: <T
|
50
|
+
export declare const parseStyle: <T>(style: CustomNamedStyles<T>, breakpoint: keyof UnistylesBreakpoints & string, screenSize: ScreenSize) => T;
|
50
51
|
//# sourceMappingURL=styles.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,OACpB,QAAQ,cAAc,MAAM,oBAAoB,GAAG,MAAM,cACjD,UAAU,KACvB,QAGD,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,UAAU,+CAEP,MAAM,oBAAoB,GAAG,MAAM,cACnC,UAAU,MAiDzB,CAAA"}
|
package/package.json
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-unistyles",
|
3
|
-
"version": "2.0.0-alpha.
|
3
|
+
"version": "2.0.0-alpha.3",
|
4
4
|
"description": "Level up your React Native StyleSheet",
|
5
5
|
"scripts": {
|
6
6
|
"test": "jest",
|
7
|
+
"test:coverage": "jest --coverage",
|
7
8
|
"tsc": "node_modules/typescript/bin/tsc --noEmit",
|
8
9
|
"lint": "eslint . --ext .ts,.tsx",
|
9
10
|
"prepare": "husky install && bob build",
|
@@ -18,7 +19,10 @@
|
|
18
19
|
"files": [
|
19
20
|
"src",
|
20
21
|
"lib",
|
22
|
+
"ios",
|
23
|
+
"react-native-unistyles.podspec",
|
21
24
|
"!**/*.spec.ts",
|
25
|
+
"!**/*.spec.tsx",
|
22
26
|
"!**/.*"
|
23
27
|
],
|
24
28
|
"keywords": [
|
@@ -39,6 +43,7 @@
|
|
39
43
|
"devDependencies": {
|
40
44
|
"@commitlint/config-conventional": "17.8.0",
|
41
45
|
"@react-native/eslint-config": "0.74.0",
|
46
|
+
"@react-native/normalize-colors": "0.74.1",
|
42
47
|
"@release-it/conventional-changelog": "7.0.2",
|
43
48
|
"@testing-library/react-hooks": "8.0.1",
|
44
49
|
"@types/jest": "29.5.6",
|
@@ -72,6 +77,7 @@
|
|
72
77
|
"typescript": "5.2.2"
|
73
78
|
},
|
74
79
|
"peerDependencies": {
|
80
|
+
"@react-native/normalize-colors": "*",
|
75
81
|
"react": "*",
|
76
82
|
"react-native": "*",
|
77
83
|
"react-native-web": "*"
|
@@ -82,7 +88,7 @@
|
|
82
88
|
}
|
83
89
|
},
|
84
90
|
"workspaces": [
|
85
|
-
"
|
91
|
+
"examples/expo",
|
86
92
|
"docs"
|
87
93
|
],
|
88
94
|
"packageManager": "yarn@3.6.1",
|
@@ -92,9 +98,13 @@
|
|
92
98
|
"jest": {
|
93
99
|
"preset": "react-native",
|
94
100
|
"modulePathIgnorePatterns": [
|
95
|
-
"<rootDir>/
|
101
|
+
"<rootDir>/examples/expo/node_modules",
|
102
|
+
"<rootDir>/examples/ssr/node_modules",
|
96
103
|
"<rootDir>/docs/node_modules",
|
97
104
|
"<rootDir>/lib/"
|
105
|
+
],
|
106
|
+
"coverageReporters": [
|
107
|
+
"html"
|
98
108
|
]
|
99
109
|
},
|
100
110
|
"commitlint": {
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
4
|
+
|
5
|
+
Pod::Spec.new do |s|
|
6
|
+
s.name = package["name"]
|
7
|
+
s.version = package["version"]
|
8
|
+
s.summary = package["description"]
|
9
|
+
s.homepage = package["homepage"]
|
10
|
+
s.license = package["license"]
|
11
|
+
s.authors = package["author"]
|
12
|
+
|
13
|
+
s.platforms = { :ios => min_ios_version_supported }
|
14
|
+
s.source = { :git => package["repository"], :tag => "#{s.version}" }
|
15
|
+
|
16
|
+
s.source_files = [
|
17
|
+
"ios/*.{h,m,mm}"
|
18
|
+
]
|
19
|
+
|
20
|
+
s.dependency "React-Core"
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import type { UnistylesBridge, UnistylesConfig } from './types'
|
2
|
+
import type { UnistylesThemes, UnistylesBreakpoints } from './global'
|
3
|
+
|
4
|
+
export class UnistyleRegistry {
|
5
|
+
public config: UnistylesConfig = {}
|
6
|
+
public themes: UnistylesThemes = {} as UnistylesThemes
|
7
|
+
public breakpoints: UnistylesBreakpoints = {} as UnistylesBreakpoints
|
8
|
+
public sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]> = []
|
9
|
+
|
10
|
+
constructor(private unistylesBridge: UnistylesBridge) {}
|
11
|
+
|
12
|
+
public addThemes = (themes: UnistylesThemes) => {
|
13
|
+
this.themes = themes
|
14
|
+
this.unistylesBridge.themes = Object.keys(themes) as Array<keyof UnistylesThemes>
|
15
|
+
|
16
|
+
return this
|
17
|
+
}
|
18
|
+
|
19
|
+
public addBreakpoints = (breakpoints: UnistylesBreakpoints) => {
|
20
|
+
this.unistylesBridge.useBreakpoints(breakpoints)
|
21
|
+
this.sortedBreakpointPairs = this.unistylesBridge.sortedBreakpointPairs
|
22
|
+
|
23
|
+
return this
|
24
|
+
}
|
25
|
+
|
26
|
+
public addConfig = (config: UnistylesConfig) => {
|
27
|
+
this.config = config
|
28
|
+
|
29
|
+
if (config.adaptiveThemes) {
|
30
|
+
this.unistylesBridge.useAdaptiveThemes(config.adaptiveThemes)
|
31
|
+
}
|
32
|
+
|
33
|
+
return this
|
34
|
+
}
|
35
|
+
}
|
package/src/Unistyles.ts
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
import { UnistylesModule } from './UnistylesModule'
|
2
|
+
import { UnistylesRuntime } from './UnistylesRuntime'
|
3
|
+
import { UnistylesEngine } from './UnistylesEngine'
|
4
|
+
import { UnistyleRegistry } from './UnistyleRegistry'
|
5
|
+
import type { UnistylesBridge } from './types'
|
6
|
+
import { UnistylesError } from './types'
|
7
|
+
|
8
|
+
class Unistyles {
|
9
|
+
private _runtime: UnistylesRuntime
|
10
|
+
private _engine: UnistylesEngine
|
11
|
+
private _registry: UnistyleRegistry
|
12
|
+
private _bridge: UnistylesBridge
|
13
|
+
|
14
|
+
constructor() {
|
15
|
+
const isInstalled = UnistylesModule?.install() ?? false
|
16
|
+
|
17
|
+
if (!isInstalled) {
|
18
|
+
throw new Error(UnistylesError.RuntimeUnavailable)
|
19
|
+
}
|
20
|
+
|
21
|
+
// @ts-ignore
|
22
|
+
this._bridge = global.__UNISTYLES__ as UnistylesBridge
|
23
|
+
this._registry = new UnistyleRegistry(this._bridge)
|
24
|
+
this._runtime = new UnistylesRuntime(this._bridge, this._registry)
|
25
|
+
this._engine = new UnistylesEngine(this._registry, this._runtime)
|
26
|
+
}
|
27
|
+
|
28
|
+
public get registry() {
|
29
|
+
return this._registry
|
30
|
+
}
|
31
|
+
|
32
|
+
public get runtime() {
|
33
|
+
return this._runtime
|
34
|
+
}
|
35
|
+
|
36
|
+
public get engine() {
|
37
|
+
return this._engine
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
export const unistyles = new Unistyles()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { UnistyleRegistry } from './UnistyleRegistry'
|
2
|
+
import type { UnistylesRuntime } from './UnistylesRuntime'
|
3
|
+
|
4
|
+
// todo implement engine
|
5
|
+
export class UnistylesEngine {
|
6
|
+
// @ts-ignore
|
7
|
+
constructor(private registry: UnistyleRegistry, private runtime: UnistylesRuntime) {
|
8
|
+
this.registry = registry
|
9
|
+
this.runtime = runtime
|
10
|
+
}
|
11
|
+
|
12
|
+
// UnistylesEngine.parseStyleSheet
|
13
|
+
// UnistylesEngine.parseStyle
|
14
|
+
// UnistylesEngine.proxify
|
15
|
+
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import type { UnistylesBridge } from './types'
|
2
|
+
import type { UnistyleRegistry } from './UnistyleRegistry'
|
3
|
+
import { ScreenOrientation, UnistylesError } from './types'
|
4
|
+
import type { UnistylesThemes } from './global'
|
5
|
+
|
6
|
+
export class UnistylesRuntime {
|
7
|
+
constructor(private unistylesBridge: UnistylesBridge, private registry: UnistyleRegistry) {}
|
8
|
+
|
9
|
+
public get colorScheme() {
|
10
|
+
return this.unistylesBridge.colorScheme
|
11
|
+
}
|
12
|
+
|
13
|
+
public get hasAdaptiveThemes() {
|
14
|
+
return this.unistylesBridge.hasAdaptiveThemes
|
15
|
+
}
|
16
|
+
|
17
|
+
public get sortedBreakpoints() {
|
18
|
+
return this.registry.sortedBreakpointPairs
|
19
|
+
}
|
20
|
+
|
21
|
+
public get themeName() {
|
22
|
+
return this.unistylesBridge.theme
|
23
|
+
}
|
24
|
+
|
25
|
+
public get breakpoint() {
|
26
|
+
return this.unistylesBridge.breakpoint
|
27
|
+
}
|
28
|
+
|
29
|
+
public get screen() {
|
30
|
+
return {
|
31
|
+
width: this.unistylesBridge.screenWidth,
|
32
|
+
height: this.unistylesBridge.screenHeight
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
public get orientation() {
|
37
|
+
const { width, height } = this.screen
|
38
|
+
|
39
|
+
if (width > height) {
|
40
|
+
return ScreenOrientation.Landscape
|
41
|
+
}
|
42
|
+
|
43
|
+
return ScreenOrientation.Portrait
|
44
|
+
}
|
45
|
+
|
46
|
+
public setTheme = (name: keyof UnistylesThemes) => {
|
47
|
+
if (name !== this.themeName && this.hasTheme(name)) {
|
48
|
+
this.unistylesBridge.useTheme(name)
|
49
|
+
|
50
|
+
return true
|
51
|
+
}
|
52
|
+
|
53
|
+
return false
|
54
|
+
}
|
55
|
+
|
56
|
+
public getTheme = (forName: keyof UnistylesThemes) => {
|
57
|
+
if (!this.hasTheme(forName)) {
|
58
|
+
throw new Error(UnistylesError.ThemeNotFound)
|
59
|
+
}
|
60
|
+
|
61
|
+
return this.registry.themes[forName]
|
62
|
+
}
|
63
|
+
|
64
|
+
public setAdaptiveThemes = (enable: boolean) => {
|
65
|
+
this.unistylesBridge.useAdaptiveThemes(enable)
|
66
|
+
}
|
67
|
+
|
68
|
+
private hasTheme = (name: keyof UnistylesThemes) => name in this.registry.themes
|
69
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import type { CustomNamedStyles } from './types'
|
2
|
+
import type { UnistylesThemes } from './global'
|
3
|
+
|
4
|
+
type T = UnistylesThemes[keyof UnistylesThemes]
|
5
|
+
|
6
|
+
export const createStyleSheet = <S extends CustomNamedStyles<S>, X>(styles: S | CustomNamedStyles<S> | X | ((theme: T) => X | CustomNamedStyles<X>)): S | X => {
|
7
|
+
if (typeof styles === 'function') {
|
8
|
+
return styles as X
|
9
|
+
}
|
10
|
+
|
11
|
+
return styles as S
|
12
|
+
}
|
package/src/global.ts
ADDED
@@ -1,11 +1,12 @@
|
|
1
1
|
import { useEffect, useRef, useState } from 'react'
|
2
2
|
import type { ScreenSize } from '../types'
|
3
|
+
import { isServer } from '../utils'
|
3
4
|
|
4
5
|
export const useDimensions = (): ScreenSize => {
|
5
6
|
const timerRef = useRef<ReturnType<typeof setTimeout>>()
|
6
7
|
const [screenSize, setScreenSize] = useState<ScreenSize>({
|
7
|
-
width: window.innerWidth,
|
8
|
-
height: window.innerHeight
|
8
|
+
width: isServer ? 0 : window.innerWidth,
|
9
|
+
height: isServer ? 0 : window.innerHeight
|
9
10
|
})
|
10
11
|
|
11
12
|
useEffect(() => {
|