react-native-unistyles 2.0.0-alpha.3 → 2.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/ios/UnistylesHelpers.h +4 -0
  2. package/ios/UnistylesHelpers.mm +20 -0
  3. package/ios/UnistylesModule.h +1 -3
  4. package/ios/UnistylesModule.mm +55 -65
  5. package/lib/commonjs/UnistyleRegistry.js +12 -1
  6. package/lib/commonjs/UnistyleRegistry.js.map +1 -1
  7. package/lib/commonjs/UnistylesRuntime.js +5 -2
  8. package/lib/commonjs/UnistylesRuntime.js.map +1 -1
  9. package/lib/commonjs/hooks/useDimensions.web.js +7 -5
  10. package/lib/commonjs/hooks/useDimensions.web.js.map +1 -1
  11. package/lib/commonjs/index.js +2 -1
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/types/cxx.js +4 -0
  14. package/lib/commonjs/types/cxx.js.map +1 -1
  15. package/lib/commonjs/useInitialTheme.js +1 -1
  16. package/lib/commonjs/useInitialTheme.js.map +1 -1
  17. package/lib/commonjs/utils/breakpoints.js.map +1 -1
  18. package/lib/module/UnistyleRegistry.js +12 -1
  19. package/lib/module/UnistyleRegistry.js.map +1 -1
  20. package/lib/module/UnistylesRuntime.js +5 -2
  21. package/lib/module/UnistylesRuntime.js.map +1 -1
  22. package/lib/module/hooks/useDimensions.web.js +8 -6
  23. package/lib/module/hooks/useDimensions.web.js.map +1 -1
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/types/cxx.js +4 -0
  27. package/lib/module/types/cxx.js.map +1 -1
  28. package/lib/module/useInitialTheme.js +2 -2
  29. package/lib/module/useInitialTheme.js.map +1 -1
  30. package/lib/module/utils/breakpoints.js.map +1 -1
  31. package/lib/typescript/src/UnistyleRegistry.d.ts +2 -0
  32. package/lib/typescript/src/UnistyleRegistry.d.ts.map +1 -1
  33. package/lib/typescript/src/UnistylesRuntime.d.ts +4 -40
  34. package/lib/typescript/src/UnistylesRuntime.d.ts.map +1 -1
  35. package/lib/typescript/src/global.d.ts +1 -0
  36. package/lib/typescript/src/global.d.ts.map +1 -1
  37. package/lib/typescript/src/hooks/useDimensions.web.d.ts.map +1 -1
  38. package/lib/typescript/src/index.d.ts +1 -0
  39. package/lib/typescript/src/index.d.ts.map +1 -1
  40. package/lib/typescript/src/types/cxx.d.ts +7 -2
  41. package/lib/typescript/src/types/cxx.d.ts.map +1 -1
  42. package/lib/typescript/src/useStyles.d.ts +3 -39
  43. package/lib/typescript/src/useStyles.d.ts.map +1 -1
  44. package/lib/typescript/src/useUnistyles.d.ts +2 -38
  45. package/lib/typescript/src/useUnistyles.d.ts.map +1 -1
  46. package/package.json +12 -13
  47. package/react-native-unistyles.podspec +2 -1
  48. package/src/UnistyleRegistry.ts +16 -1
  49. package/src/UnistylesRuntime.ts +6 -2
  50. package/src/global.ts +3 -1
  51. package/src/hooks/useDimensions.web.ts +9 -6
  52. package/src/index.ts +2 -0
  53. package/src/types/cxx.ts +9 -2
  54. package/src/useInitialTheme.ts +2 -2
  55. package/src/utils/breakpoints.ts +1 -1
  56. package/ios/UnistylesRuntime.h +0 -48
  57. package/ios/UnistylesRuntime.mm +0 -228
  58. package/lib/typescript/examples/expo/src/App.d.ts +0 -3
  59. package/lib/typescript/examples/expo/src/App.d.ts.map +0 -1
  60. package/lib/typescript/examples/expo/src/examples/Cxx.d.ts +0 -3
  61. package/lib/typescript/examples/expo/src/examples/Cxx.d.ts.map +0 -1
  62. package/lib/typescript/examples/expo/src/examples/index.d.ts +0 -2
  63. package/lib/typescript/examples/expo/src/examples/index.d.ts.map +0 -1
  64. package/lib/typescript/examples/expo/src/index.d.ts +0 -2
  65. package/lib/typescript/examples/expo/src/index.d.ts.map +0 -1
  66. package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts +0 -8
  67. package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts.map +0 -1
  68. package/lib/typescript/examples/expo/src/styles/index.d.ts +0 -16
  69. package/lib/typescript/examples/expo/src/styles/index.d.ts.map +0 -1
  70. package/lib/typescript/examples/expo/src/styles/theme.d.ts +0 -40
  71. package/lib/typescript/examples/expo/src/styles/theme.d.ts.map +0 -1
@@ -3,6 +3,7 @@ import type { UnistylesThemes, UnistylesBreakpoints } from './global';
3
3
  export declare class UnistyleRegistry {
4
4
  private unistylesBridge;
5
5
  config: UnistylesConfig;
6
+ themeNames: Array<keyof UnistylesThemes>;
6
7
  themes: UnistylesThemes;
7
8
  breakpoints: UnistylesBreakpoints;
8
9
  sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>;
@@ -10,5 +11,6 @@ export declare class UnistyleRegistry {
10
11
  addThemes: (themes: UnistylesThemes) => this;
11
12
  addBreakpoints: (breakpoints: UnistylesBreakpoints) => this;
12
13
  addConfig: (config: UnistylesConfig) => this;
14
+ dangerouslyUnregister: () => void;
13
15
  }
14
16
  //# sourceMappingURL=UnistyleRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnistyleRegistry.d.ts","sourceRoot":"","sources":["../../../src/UnistyleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErE,qBAAa,gBAAgB;IAMb,OAAO,CAAC,eAAe;IAL5B,MAAM,EAAE,eAAe,CAAK;IAC5B,MAAM,EAAE,eAAe,CAAwB;IAC/C,WAAW,EAAE,oBAAoB,CAA6B;IAC9D,qBAAqB,EAAE,KAAK,CAAC,CAAC,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAK;gBAEpG,eAAe,EAAE,eAAe;IAE7C,SAAS,WAAY,eAAe,UAK1C;IAEM,cAAc,gBAAiB,oBAAoB,UAKzD;IAEM,SAAS,WAAY,eAAe,UAQ1C;CACJ"}
1
+ {"version":3,"file":"UnistyleRegistry.d.ts","sourceRoot":"","sources":["../../../src/UnistyleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErE,qBAAa,gBAAgB;IAOb,OAAO,CAAC,eAAe;IAN5B,MAAM,EAAE,eAAe,CAAK;IAC5B,UAAU,EAAE,KAAK,CAAC,MAAM,eAAe,CAAC,CAAK;IAC7C,MAAM,EAAE,eAAe,CAAwB;IAC/C,WAAW,EAAE,oBAAoB,CAA6B;IAC9D,qBAAqB,EAAE,KAAK,CAAC,CAAC,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAK;gBAEpG,eAAe,EAAE,eAAe;IAE7C,SAAS,WAAY,eAAe,UAS1C;IAEM,cAAc,gBAAiB,oBAAoB,UAKzD;IAEM,SAAS,WAAY,eAAe,UAQ1C;IAEM,qBAAqB,aAQ3B;CACJ"}
@@ -8,52 +8,16 @@ export declare class UnistylesRuntime {
8
8
  constructor(unistylesBridge: UnistylesBridge, registry: UnistyleRegistry);
9
9
  get colorScheme(): import("./types").ColorSchemeName;
10
10
  get hasAdaptiveThemes(): boolean;
11
- get sortedBreakpoints(): [keyof import("./global").UnistylesBreakpoints, number][];
12
- get themeName(): keyof UnistylesThemes;
13
- get breakpoint(): keyof import("./global").UnistylesBreakpoints;
11
+ get sortedBreakpoints(): ["default", 0 | undefined][];
12
+ get themeName(): never;
13
+ get breakpoint(): "default";
14
14
  get screen(): {
15
15
  width: number;
16
16
  height: number;
17
17
  };
18
18
  get orientation(): ScreenOrientation;
19
19
  setTheme: (name: keyof UnistylesThemes) => boolean;
20
- getTheme: (forName: keyof UnistylesThemes) => {
21
- colors: {
22
- backgroundColor: string;
23
- typography: string;
24
- accent: string;
25
- barbie: string;
26
- oak: string;
27
- sky: string;
28
- fog: string;
29
- aloes: string;
30
- blood: string;
31
- };
32
- } | {
33
- colors: {
34
- backgroundColor: string;
35
- typography: string;
36
- accent: string;
37
- barbie: string;
38
- oak: string;
39
- sky: string;
40
- fog: string;
41
- aloes: string;
42
- blood: string;
43
- };
44
- } | {
45
- colors: {
46
- backgroundColor: string;
47
- typography: string;
48
- accent: string;
49
- barbie: string;
50
- oak: string;
51
- sky: string;
52
- fog: string;
53
- aloes: string;
54
- blood: string;
55
- };
56
- };
20
+ getTheme: (forName: keyof UnistylesThemes) => never;
57
21
  setAdaptiveThemes: (enable: boolean) => void;
58
22
  private hasTheme;
59
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UnistylesRuntime.d.ts","sourceRoot":"","sources":["../../../src/UnistylesRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,qBAAa,gBAAgB;IACb,OAAO,CAAC,eAAe;IAAmB,OAAO,CAAC,QAAQ;gBAAlD,eAAe,EAAE,eAAe,EAAU,QAAQ,EAAE,gBAAgB;IAExF,IAAW,WAAW,sCAErB;IAED,IAAW,iBAAiB,YAE3B;IAED,IAAW,iBAAiB,8DAE3B;IAED,IAAW,SAAS,0BAEnB;IAED,IAAW,UAAU,kDAEpB;IAED,IAAW,MAAM;;;MAKhB;IAED,IAAW,WAAW,sBAQrB;IAEM,QAAQ,SAAU,MAAM,eAAe,aAQ7C;IAEM,QAAQ,YAAa,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAMhD;IAEM,iBAAiB,WAAY,OAAO,UAE1C;IAED,OAAO,CAAC,QAAQ,CAAgE;CACnF"}
1
+ {"version":3,"file":"UnistylesRuntime.d.ts","sourceRoot":"","sources":["../../../src/UnistylesRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,qBAAa,gBAAgB;IACb,OAAO,CAAC,eAAe;IAAmB,OAAO,CAAC,QAAQ;gBAAlD,eAAe,EAAE,eAAe,EAAU,QAAQ,EAAE,gBAAgB;IAExF,IAAW,WAAW,sCAErB;IAED,IAAW,iBAAiB,YAE3B;IAED,IAAW,iBAAiB,iCAE3B;IAED,IAAW,SAAS,UAEnB;IAED,IAAW,UAAU,cAEpB;IAED,IAAW,MAAM;;;MAKhB;IAED,IAAW,WAAW,sBAQrB;IAEM,QAAQ,SAAU,MAAM,eAAe,aAQ7C;IAEM,QAAQ,YAAa,MAAM,eAAe,WAUhD;IAEM,iBAAiB,WAAY,OAAO,UAE1C;IAED,OAAO,CAAC,QAAQ,CAAgE;CACnF"}
@@ -1,5 +1,6 @@
1
1
  export interface UnistylesThemes {
2
2
  }
3
3
  export interface UnistylesBreakpoints {
4
+ default?: 0;
4
5
  }
5
6
  //# sourceMappingURL=global.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/global.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;CAAG;AACnC,MAAM,WAAW,oBAAoB;CAAG"}
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/global.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;CAAG;AACnC,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,CAAC,CAAA;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDimensions.web.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDimensions.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,eAAO,MAAM,aAAa,QAAO,UA0BhC,CAAA"}
1
+ {"version":3,"file":"useDimensions.web.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDimensions.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,eAAO,MAAM,aAAa,QAAO,UA8BhC,CAAA"}
@@ -9,6 +9,7 @@ declare const UnistylesRegistry: {
9
9
  addBreakpoints: (breakpoints: UnistylesBreakpoints) => import("./UnistyleRegistry").UnistyleRegistry;
10
10
  addConfig: (config: import("./types").UnistylesConfig) => import("./UnistyleRegistry").UnistyleRegistry;
11
11
  };
12
+ export declare const __dangerouslyUnregister: () => void;
12
13
  export { UnistylesRuntime, UnistylesRegistry };
13
14
  export { ScreenOrientation };
14
15
  export type { UnistylesThemes, UnistylesBreakpoints };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,QAAA,MAAM,gBAAgB,+CAAoB,CAAA;AAC1C,QAAA,MAAM,iBAAiB;;;;CAItB,CAAA;AAED,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACpB,CAAA;AAED,OAAO,EACH,iBAAiB,EACpB,CAAA;AAED,YAAY,EACR,eAAe,EACf,oBAAoB,EACvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,QAAA,MAAM,gBAAgB,+CAAoB,CAAA;AAC1C,QAAA,MAAM,iBAAiB;;;;CAItB,CAAA;AAED,eAAO,MAAM,uBAAuB,YAA2C,CAAA;AAE/E,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACpB,CAAA;AAED,OAAO,EACH,iBAAiB,EACpB,CAAA;AAED,YAAY,EACR,eAAe,EACf,oBAAoB,EACvB,CAAA"}
@@ -12,7 +12,7 @@ export type UnistylesBridge = {
12
12
  screenWidth: number;
13
13
  screenHeight: number;
14
14
  hasAdaptiveThemes: boolean;
15
- theme: keyof UnistylesThemes;
15
+ themeName: keyof UnistylesThemes;
16
16
  breakpoint: keyof UnistylesBreakpoints;
17
17
  colorScheme: ColorSchemeName;
18
18
  sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>;
@@ -20,6 +20,7 @@ export type UnistylesBridge = {
20
20
  useBreakpoints(breakpoints: UnistylesBreakpoints): void;
21
21
  useTheme(name: keyof UnistylesThemes): void;
22
22
  useAdaptiveThemes(enable: boolean): void;
23
+ unregister(): void;
23
24
  };
24
25
  export declare enum CxxUnistylesEventTypes {
25
26
  Theme = "theme",
@@ -48,6 +49,10 @@ export type CxxUnistylesBreakpointEvent = {
48
49
  export type UnistylesEvents = CxxUnistylesThemeEvent | CxxUnistylesSizeEvent | CxxUnistylesBreakpointEvent;
49
50
  export declare enum UnistylesError {
50
51
  RuntimeUnavailable = "UNISTYLES_ERROR_RUNTIME_UNAVAILABLE",
51
- ThemeNotFound = "UNISTYLES_ERROR_THEME_NOT_FOUND"
52
+ ThemeNotFound = "UNISTYLES_ERROR_THEME_NOT_FOUND",
53
+ ThemeNotRegistered = "UNISTYLES_ERROR_THEME_NOT_REGISTERED",
54
+ ThemesCannotBeEmpty = "UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY",
55
+ BreakpointsCannotBeEmpty = "UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY",
56
+ BreakpointsMustStartFromZero = "UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO"
52
57
  }
53
58
  //# sourceMappingURL=cxx.d.ts.map
@@ -1 +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
+ {"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,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,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;IACjD,kBAAkB,yCAAyC;IAC3D,mBAAmB,2CAA2C;IAC9D,wBAAwB,gDAAgD;IACxE,4BAA4B,qDAAqD;CACpF"}
@@ -1,45 +1,9 @@
1
1
  import type { CreateStylesFactory, CustomNamedStyles, ExtractBreakpoints, RemoveKeysWithPrefix } from './types';
2
2
  import type { UnistylesThemes } from './global';
3
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";
4
+ export declare const useStyles: <ST extends CustomNamedStyles<ST>>(stylesheet?: ST | CreateStylesFactory<ST, never> | undefined) => {
5
+ theme: never;
6
+ breakpoint: "default";
43
7
  styles: ExtractBreakpoints<RemoveKeysWithPrefix<ST>>;
44
8
  };
45
9
  export {};
@@ -1 +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"}
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"}
@@ -1,42 +1,6 @@
1
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";
2
+ theme: never;
3
+ breakpoint: "default";
40
4
  screenSize: {
41
5
  width: number;
42
6
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useUnistyles.d.ts","sourceRoot":"","sources":["../../../src/useUnistyles.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAA"}
1
+ {"version":3,"file":"useUnistyles.d.ts","sourceRoot":"","sources":["../../../src/useUnistyles.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;;;CAoDxB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-unistyles",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.4",
4
4
  "description": "Level up your React Native StyleSheet",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -41,25 +41,24 @@
41
41
  "registry": "https://registry.npmjs.org/"
42
42
  },
43
43
  "devDependencies": {
44
- "@commitlint/config-conventional": "17.8.0",
44
+ "@commitlint/config-conventional": "18.1.0",
45
45
  "@react-native/eslint-config": "0.74.0",
46
46
  "@react-native/normalize-colors": "0.74.1",
47
47
  "@release-it/conventional-changelog": "7.0.2",
48
48
  "@testing-library/react-hooks": "8.0.1",
49
- "@types/jest": "29.5.6",
50
- "@types/react": "18.2.28",
51
- "@types/react-native": "0.72.3",
52
- "@typescript-eslint/eslint-plugin": "6.8.0",
53
- "@typescript-eslint/eslint-plugin-tslint": "6.8.0",
54
- "@typescript-eslint/parser": "6.8.0",
55
- "commitlint": "17.8.0",
56
- "concurrently": "8.2.1",
57
- "eslint": "8.51.0",
49
+ "@types/jest": "29.5.7",
50
+ "@types/react": "18.2.34",
51
+ "@typescript-eslint/eslint-plugin": "6.9.1",
52
+ "@typescript-eslint/eslint-plugin-tslint": "6.9.1",
53
+ "@typescript-eslint/parser": "6.9.1",
54
+ "commitlint": "18.2.0",
55
+ "concurrently": "8.2.2",
56
+ "eslint": "8.53.0",
58
57
  "eslint-config-codemask": "1.1.7",
59
58
  "eslint-plugin-functional": "6.0.0",
60
- "eslint-plugin-import": "2.28.1",
59
+ "eslint-plugin-import": "2.29.0",
61
60
  "eslint-plugin-jsdoc": "46.8.2",
62
- "eslint-plugin-jsx-a11y": "6.7.1",
61
+ "eslint-plugin-jsx-a11y": "6.8.0",
63
62
  "eslint-plugin-nested-if": "1.0.0",
64
63
  "eslint-plugin-no-else": "0.2.2",
65
64
  "eslint-plugin-no-loops": "0.3.0",
@@ -14,7 +14,8 @@ Pod::Spec.new do |s|
14
14
  s.source = { :git => package["repository"], :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = [
17
- "ios/*.{h,m,mm}"
17
+ "ios/*.{h,mm}",
18
+ "cxx/*.{h,cpp}"
18
19
  ]
19
20
 
20
21
  s.dependency "React-Core"
@@ -3,6 +3,7 @@ import type { UnistylesThemes, UnistylesBreakpoints } from './global'
3
3
 
4
4
  export class UnistyleRegistry {
5
5
  public config: UnistylesConfig = {}
6
+ public themeNames: Array<keyof UnistylesThemes> = []
6
7
  public themes: UnistylesThemes = {} as UnistylesThemes
7
8
  public breakpoints: UnistylesBreakpoints = {} as UnistylesBreakpoints
8
9
  public sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]> = []
@@ -11,7 +12,11 @@ export class UnistyleRegistry {
11
12
 
12
13
  public addThemes = (themes: UnistylesThemes) => {
13
14
  this.themes = themes
14
- this.unistylesBridge.themes = Object.keys(themes) as Array<keyof UnistylesThemes>
15
+
16
+ const keys = Object.keys(themes) as Array<keyof UnistylesThemes>
17
+
18
+ this.unistylesBridge.themes = keys
19
+ this.themeNames = keys
15
20
 
16
21
  return this
17
22
  }
@@ -32,4 +37,14 @@ export class UnistyleRegistry {
32
37
 
33
38
  return this
34
39
  }
40
+
41
+ public dangerouslyUnregister = () => {
42
+ this.config = {}
43
+ this.themeNames = []
44
+ this.themes = {} as UnistylesThemes
45
+ this.breakpoints = {} as UnistylesBreakpoints
46
+ this.sortedBreakpointPairs = []
47
+
48
+ this.unistylesBridge.unregister()
49
+ }
35
50
  }
@@ -19,7 +19,7 @@ export class UnistylesRuntime {
19
19
  }
20
20
 
21
21
  public get themeName() {
22
- return this.unistylesBridge.theme
22
+ return this.unistylesBridge.themeName
23
23
  }
24
24
 
25
25
  public get breakpoint() {
@@ -50,10 +50,14 @@ export class UnistylesRuntime {
50
50
  return true
51
51
  }
52
52
 
53
- return false
53
+ throw new Error(UnistylesError.ThemeNotRegistered)
54
54
  }
55
55
 
56
56
  public getTheme = (forName: keyof UnistylesThemes) => {
57
+ if (this.registry.themeNames.length === 0) {
58
+ return {} as UnistylesThemes[keyof UnistylesThemes]
59
+ }
60
+
57
61
  if (!this.hasTheme(forName)) {
58
62
  throw new Error(UnistylesError.ThemeNotFound)
59
63
  }
package/src/global.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export interface UnistylesThemes {}
2
- export interface UnistylesBreakpoints {}
2
+ export interface UnistylesBreakpoints {
3
+ default?: 0
4
+ }
@@ -1,13 +1,16 @@
1
- import { useEffect, useRef, useState } from 'react'
1
+ import { useEffect, useLayoutEffect, useRef, useState } from 'react'
2
2
  import type { ScreenSize } from '../types'
3
- import { isServer } from '../utils'
4
3
 
5
4
  export const useDimensions = (): ScreenSize => {
6
5
  const timerRef = useRef<ReturnType<typeof setTimeout>>()
7
- const [screenSize, setScreenSize] = useState<ScreenSize>({
8
- width: isServer ? 0 : window.innerWidth,
9
- height: isServer ? 0 : window.innerHeight
10
- })
6
+ const [screenSize, setScreenSize] = useState<ScreenSize>({} as ScreenSize)
7
+
8
+ useLayoutEffect(() => {
9
+ setScreenSize({
10
+ width: window.innerWidth,
11
+ height: window.innerHeight
12
+ })
13
+ }, [])
11
14
 
12
15
  useEffect(() => {
13
16
  const handleResize = () => {
package/src/index.ts CHANGED
@@ -15,6 +15,8 @@ const UnistylesRegistry = {
15
15
  addConfig
16
16
  }
17
17
 
18
+ export const __dangerouslyUnregister = unistyles.registry.dangerouslyUnregister
19
+
18
20
  export {
19
21
  UnistylesRuntime,
20
22
  UnistylesRegistry
package/src/types/cxx.ts CHANGED
@@ -17,7 +17,7 @@ export type UnistylesBridge = {
17
17
  screenWidth: number,
18
18
  screenHeight: number,
19
19
  hasAdaptiveThemes: boolean,
20
- theme: keyof UnistylesThemes,
20
+ themeName: keyof UnistylesThemes,
21
21
  breakpoint: keyof UnistylesBreakpoints,
22
22
  colorScheme: ColorSchemeName,
23
23
  sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>,
@@ -27,6 +27,9 @@ export type UnistylesBridge = {
27
27
  useBreakpoints(breakpoints: UnistylesBreakpoints): void,
28
28
  useTheme(name: keyof UnistylesThemes): void,
29
29
  useAdaptiveThemes(enable: boolean): void,
30
+
31
+ // other
32
+ unregister(): void
30
33
  }
31
34
 
32
35
  export enum CxxUnistylesEventTypes {
@@ -61,5 +64,9 @@ export type UnistylesEvents = CxxUnistylesThemeEvent | CxxUnistylesSizeEvent | C
61
64
 
62
65
  export enum UnistylesError {
63
66
  RuntimeUnavailable = 'UNISTYLES_ERROR_RUNTIME_UNAVAILABLE',
64
- ThemeNotFound = 'UNISTYLES_ERROR_THEME_NOT_FOUND'
67
+ ThemeNotFound = 'UNISTYLES_ERROR_THEME_NOT_FOUND',
68
+ ThemeNotRegistered = 'UNISTYLES_ERROR_THEME_NOT_REGISTERED',
69
+ ThemesCannotBeEmpty = 'UNISTYLES_ERROR_THEMES_CANNOT_BE_EMPTY',
70
+ BreakpointsCannotBeEmpty = 'UNISTYLES_ERROR_BREAKPOINTS_CANNOT_BE_EMPTY',
71
+ BreakpointsMustStartFromZero = 'UNISTYLES_ERROR_BREAKPOINTS_MUST_START_FROM_ZERO',
65
72
  }
@@ -1,7 +1,7 @@
1
- import { useRef } from 'react'
1
+ import { useMemo } from 'react'
2
2
  import { unistyles } from './Unistyles'
3
3
  import type { UnistylesThemes } from './global'
4
4
 
5
5
  export const useInitialTheme = (forName: keyof UnistylesThemes) => {
6
- useRef(unistyles.runtime.setTheme(forName))
6
+ useMemo(() => unistyles.runtime.setTheme(forName), [])
7
7
  }
@@ -66,7 +66,7 @@ export const sortAndValidateBreakpoints = (breakpoints: UnistylesBreakpoints): U
66
66
  export const getBreakpointFromScreenWidth = (width: number, breakpointEntries: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>): keyof UnistylesBreakpoints & string => {
67
67
  const [key] = breakpointEntries
68
68
  .find(([, value], index, otherBreakpoints) => {
69
- const minVal = value
69
+ const minVal = value as number
70
70
  const maxVal = otherBreakpoints[index + 1]?.[1]
71
71
 
72
72
  if (!maxVal) {
@@ -1,48 +0,0 @@
1
- #pragma once
2
-
3
- #import "UnistylesModule.h"
4
- #import <jsi/jsi.h>
5
- #import <vector>
6
-
7
- using namespace facebook;
8
-
9
- class JSI_EXPORT UnistylesRuntime : public jsi::HostObject {
10
- private:
11
- UnistylesThemeChangeEvent onThemeChange;
12
- UnistylesBreakpointChangeEvent onBreakpointChange;
13
-
14
- int screenWidth;
15
- int screenHeight;
16
- std::string colorScheme;
17
-
18
- public:
19
- UnistylesRuntime(
20
- UnistylesThemeChangeEvent onThemeChange,
21
- UnistylesBreakpointChangeEvent onBreakpointChange,
22
- float screenWidth,
23
- float screenHeight,
24
- std::string colorScheme
25
- ): onThemeChange(onThemeChange),
26
- onBreakpointChange(onBreakpointChange),
27
- screenWidth(screenWidth),
28
- screenHeight(screenHeight),
29
- colorScheme(colorScheme) {}
30
-
31
- bool hasAdaptiveThemes;
32
- bool supportsAutomaticColorScheme;
33
-
34
- std::string theme;
35
- std::string breakpoint;
36
- std::vector<std::string> themes;
37
- std::vector<std::pair<std::string, double>> sortedBreakpointEntries;
38
-
39
- jsi::Value get(jsi::Runtime&, const jsi::PropNameID& name) override;
40
- void set(jsi::Runtime& runtime, const jsi::PropNameID& propNameId, const jsi::Value& value) override;
41
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override;
42
-
43
- void handleScreenSizeChange(int width, int height);
44
- void handleAppearanceChange(std::string colorScheme);
45
-
46
- jsi::Value getThemeOrFail(jsi::Runtime&);
47
- std::string getBreakpointFromScreenWidth(double width, const std::vector<std::pair<std::string, double>>& sortedBreakpointEntries);
48
- };