@vxrn/color-scheme 2.0.0-beta.33.1 → 2.0.0-beta.45.1

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 (52) hide show
  1. package/dist/cjs/index.cjs +63 -87
  2. package/dist/cjs/index.native.cjs +75 -0
  3. package/dist/cjs/index.native.js +47 -66
  4. package/dist/cjs/index.native.js.map +1 -1
  5. package/dist/cjs/safeStorage.cjs +23 -25
  6. package/dist/cjs/safeStorage.native.cjs +40 -0
  7. package/dist/cjs/safeStorage.native.js +23 -24
  8. package/dist/cjs/safeStorage.native.js.map +1 -1
  9. package/dist/cjs/systemScheme.cjs +24 -26
  10. package/dist/cjs/systemScheme.native.cjs +59 -0
  11. package/dist/cjs/systemScheme.native.js +38 -41
  12. package/dist/cjs/systemScheme.native.js.map +1 -1
  13. package/dist/cjs/userScheme.cjs +104 -106
  14. package/dist/cjs/userScheme.native.cjs +169 -0
  15. package/dist/cjs/userScheme.native.js +116 -116
  16. package/dist/cjs/userScheme.native.js.map +1 -1
  17. package/dist/cjs/userSchemeAppearance.cjs +17 -19
  18. package/dist/cjs/userSchemeAppearance.native.cjs +39 -0
  19. package/dist/cjs/userSchemeAppearance.native.js +19 -20
  20. package/dist/cjs/userSchemeAppearance.native.js.map +1 -1
  21. package/dist/esm/index.js +44 -64
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/index.mjs +44 -64
  24. package/dist/esm/index.mjs.map +1 -1
  25. package/dist/esm/index.native.js +28 -44
  26. package/dist/esm/index.native.js.map +1 -1
  27. package/dist/esm/safeStorage.mjs +9 -8
  28. package/dist/esm/safeStorage.mjs.map +1 -1
  29. package/dist/esm/safeStorage.native.js +9 -8
  30. package/dist/esm/safeStorage.native.js.map +1 -1
  31. package/dist/esm/systemScheme.mjs +11 -9
  32. package/dist/esm/systemScheme.mjs.map +1 -1
  33. package/dist/esm/systemScheme.native.js +27 -27
  34. package/dist/esm/systemScheme.native.js.map +1 -1
  35. package/dist/esm/userScheme.mjs +87 -85
  36. package/dist/esm/userScheme.mjs.map +1 -1
  37. package/dist/esm/userScheme.native.js +99 -96
  38. package/dist/esm/userScheme.native.js.map +1 -1
  39. package/dist/esm/userSchemeAppearance.mjs +3 -1
  40. package/dist/esm/userSchemeAppearance.mjs.map +1 -1
  41. package/dist/esm/userSchemeAppearance.native.js +5 -3
  42. package/dist/esm/userSchemeAppearance.native.js.map +1 -1
  43. package/package.json +3 -3
  44. package/dist/cjs/safeStorage.test.cjs +0 -49
  45. package/dist/cjs/safeStorage.test.native.js +0 -66
  46. package/dist/cjs/safeStorage.test.native.js.map +0 -1
  47. package/dist/esm/safeStorage.test.mjs +0 -50
  48. package/dist/esm/safeStorage.test.mjs.map +0 -1
  49. package/dist/esm/safeStorage.test.native.js +0 -64
  50. package/dist/esm/safeStorage.test.native.js.map +0 -1
  51. package/types/safeStorage.test.d.ts +0 -2
  52. package/types/safeStorage.test.d.ts.map +0 -1
@@ -3,42 +3,40 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
10
  };
11
11
  var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
19
  };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
21
  var systemScheme_exports = {};
24
22
  __export(systemScheme_exports, {
25
- getSystemScheme: () => getSystemScheme,
26
- useSystemScheme: () => useSystemScheme
23
+ getSystemScheme: () => getSystemScheme,
24
+ useSystemScheme: () => useSystemScheme
27
25
  });
28
26
  module.exports = __toCommonJS(systemScheme_exports);
29
27
  var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
30
28
  var import_react = require("react");
31
29
  const media = typeof window !== "undefined" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
32
30
  function getSystemScheme() {
33
- return media?.matches ? "dark" : "light";
31
+ return media?.matches ? "dark" : "light";
34
32
  }
35
33
  function useSystemScheme() {
36
- const [scheme, setScheme] = (0, import_react.useState)("light");
37
- (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
38
- setScheme(getSystemScheme());
39
- const onChange = () => setScheme(getSystemScheme());
40
- media?.addEventListener("change", onChange);
41
- return () => media?.removeEventListener("change", onChange);
42
- }, []);
43
- return scheme;
44
- }
34
+ const [scheme, setScheme] = (0, import_react.useState)("light");
35
+ (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
36
+ setScheme(getSystemScheme());
37
+ const onChange = () => setScheme(getSystemScheme());
38
+ media?.addEventListener("change", onChange);
39
+ return () => media?.removeEventListener("change", onChange);
40
+ }, []);
41
+ return scheme;
42
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var systemScheme_native_exports = {};
24
+ __export(systemScheme_native_exports, {
25
+ getSystemScheme: () => getSystemScheme,
26
+ useSystemScheme: () => useSystemScheme
27
+ });
28
+ module.exports = __toCommonJS(systemScheme_native_exports);
29
+ var import_react = require("react");
30
+ var import_react_native = require("react-native");
31
+ function toScheme(colorScheme) {
32
+ return colorScheme === "dark" ? "dark" : "light";
33
+ }
34
+ function getSystemScheme() {
35
+ return toScheme(import_react_native.Appearance.getColorScheme());
36
+ }
37
+ function useSystemScheme() {
38
+ var [scheme, setScheme] = (0, import_react.useState)(getSystemScheme);
39
+ (0, import_react.useEffect)(function() {
40
+ var appearanceSubscription = import_react_native.Appearance.addChangeListener(function(param) {
41
+ var { colorScheme } = param;
42
+ setScheme(toScheme(colorScheme));
43
+ });
44
+ var handleAppStateChange = function(nextAppState) {
45
+ if (nextAppState === "active") {
46
+ var currentScheme = getSystemScheme();
47
+ setScheme(function(prev) {
48
+ return prev !== currentScheme ? currentScheme : prev;
49
+ });
50
+ }
51
+ };
52
+ var appStateSubscription = import_react_native.AppState.addEventListener("change", handleAppStateChange);
53
+ return function() {
54
+ appearanceSubscription.remove();
55
+ appStateSubscription.remove();
56
+ };
57
+ }, []);
58
+ return scheme;
59
+ }
@@ -5,60 +5,57 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
12
  };
13
13
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
21
  };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
23
  var systemScheme_native_exports = {};
26
24
  __export(systemScheme_native_exports, {
27
- getSystemScheme: () => getSystemScheme,
28
- useSystemScheme: () => useSystemScheme
25
+ getSystemScheme: () => getSystemScheme,
26
+ useSystemScheme: () => useSystemScheme
29
27
  });
30
28
  module.exports = __toCommonJS(systemScheme_native_exports);
31
29
  var import_react = require("react");
32
30
  var import_react_native = require("react-native");
33
31
  function toScheme(colorScheme) {
34
- return colorScheme === "dark" ? "dark" : "light";
32
+ return colorScheme === "dark" ? "dark" : "light";
35
33
  }
36
34
  function getSystemScheme() {
37
- return toScheme(import_react_native.Appearance.getColorScheme());
35
+ return toScheme(import_react_native.Appearance.getColorScheme());
38
36
  }
39
37
  function useSystemScheme() {
40
- var [scheme, setScheme] = (0, import_react.useState)(getSystemScheme);
41
- (0, import_react.useEffect)(function () {
42
- var appearanceSubscription = import_react_native.Appearance.addChangeListener(function (param) {
43
- var {
44
- colorScheme
45
- } = param;
46
- setScheme(toScheme(colorScheme));
47
- });
48
- var handleAppStateChange = function (nextAppState) {
49
- if (nextAppState === "active") {
50
- var currentScheme = getSystemScheme();
51
- setScheme(function (prev) {
52
- return prev !== currentScheme ? currentScheme : prev;
53
- });
54
- }
55
- };
56
- var appStateSubscription = import_react_native.AppState.addEventListener("change", handleAppStateChange);
57
- return function () {
58
- appearanceSubscription.remove();
59
- appStateSubscription.remove();
60
- };
61
- }, []);
62
- return scheme;
38
+ var [scheme, setScheme] = (0, import_react.useState)(getSystemScheme);
39
+ (0, import_react.useEffect)(function() {
40
+ var appearanceSubscription = import_react_native.Appearance.addChangeListener(function(param) {
41
+ var { colorScheme } = param;
42
+ setScheme(toScheme(colorScheme));
43
+ });
44
+ var handleAppStateChange = function(nextAppState) {
45
+ if (nextAppState === "active") {
46
+ var currentScheme = getSystemScheme();
47
+ setScheme(function(prev) {
48
+ return prev !== currentScheme ? currentScheme : prev;
49
+ });
50
+ }
51
+ };
52
+ var appStateSubscription = import_react_native.AppState.addEventListener("change", handleAppStateChange);
53
+ return function() {
54
+ appearanceSubscription.remove();
55
+ appStateSubscription.remove();
56
+ };
57
+ }, []);
58
+ return scheme;
63
59
  }
60
+
64
61
  //# sourceMappingURL=systemScheme.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["systemScheme_native_exports","__export","getSystemScheme","useSystemScheme","module","exports","__toCommonJS","import_react","require","import_react_native","toScheme","colorScheme","Appearance","getColorScheme","scheme","setScheme","useState","useEffect","appearanceSubscription","addChangeListener","param","handleAppStateChange","nextAppState","currentScheme","prev","appStateSubscription","AppState","addEventListener","remove"],"sources":["../../src/systemScheme.native.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,2BAAA;AAAA,IAAAO,YAAA,GAAoCC,OAAA;AACpC,IAAAC,mBAAA,GAAqCD,OAAA;AACrC,SAASE,SAASC,WAAA,EAAa;EAC3B,OAAOA,WAAA,KAAgB,SAAS,SAAS;AAC7C;AACO,SAAST,gBAAA,EAAkB;EAC9B,OAAOQ,QAAA,CAASD,mBAAA,CAAAG,UAAA,CAAWC,cAAA,CAAe,CAAC;AAC/C;AACO,SAASV,gBAAA,EAAkB;EAC9B,IAAI,CAACW,MAAA,EAAQC,SAAS,QAAIR,YAAA,CAAAS,QAAA,EAASd,eAAe;EAClD,IAAAK,YAAA,CAAAU,SAAA,EAAU,YAAW;IAEjB,IAAIC,sBAAA,GAAyBT,mBAAA,CAAAG,UAAA,CAAWO,iBAAA,CAAkB,UAASC,KAAA,EAAO;MACtE,IAAI;QAAET;MAAY,IAAIS,KAAA;MACtBL,SAAA,CAAUL,QAAA,CAASC,WAAW,CAAC;IACnC,CAAC;IAGD,IAAIU,oBAAA,GAAuB,SAAAA,CAASC,YAAA,EAAc;MAC9C,IAAIA,YAAA,KAAiB,UAAU;QAC3B,IAAIC,aAAA,GAAgBrB,eAAA,CAAgB;QACpCa,SAAA,CAAU,UAASS,IAAA,EAAM;UACrB,OAAOA,IAAA,KAASD,aAAA,GAAgBA,aAAA,GAAgBC,IAAA;QACpD,CAAC;MACL;IACJ;IACA,IAAIC,oBAAA,GAAuBhB,mBAAA,CAAAiB,QAAA,CAASC,gBAAA,CAAiB,UAAUN,oBAAoB;IACnF,OAAO,YAAW;MACdH,sBAAA,CAAuBU,MAAA,CAAO;MAC9BH,oBAAA,CAAqBG,MAAA,CAAO;IAChC;EACJ,GAAG,EAAE;EACL,OAAOd,MAAA;AACX","ignoreList":[]}
1
+ {"version":3,"file":"systemScheme.native.js","names":[],"sources":["cjs/systemScheme.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar systemScheme_native_exports = {};\n__export(systemScheme_native_exports, {\n getSystemScheme: () => getSystemScheme,\n useSystemScheme: () => useSystemScheme\n});\nmodule.exports = __toCommonJS(systemScheme_native_exports);\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nfunction toScheme(colorScheme) {\n return colorScheme === \"dark\" ? \"dark\" : \"light\";\n}\nfunction getSystemScheme() {\n return toScheme(import_react_native.Appearance.getColorScheme());\n}\nfunction useSystemScheme() {\n var [scheme, setScheme] = (0, import_react.useState)(getSystemScheme);\n (0, import_react.useEffect)(function() {\n var appearanceSubscription = import_react_native.Appearance.addChangeListener(function(param) {\n var { colorScheme } = param;\n setScheme(toScheme(colorScheme));\n });\n var handleAppStateChange = function(nextAppState) {\n if (nextAppState === \"active\") {\n var currentScheme = getSystemScheme();\n setScheme(function(prev) {\n return prev !== currentScheme ? currentScheme : prev;\n });\n }\n };\n var appStateSubscription = import_react_native.AppState.addEventListener(\"change\", handleAppStateChange);\n return function() {\n appearanceSubscription.remove();\n appStateSubscription.remove();\n };\n }, []);\n return scheme;\n}\n//# sourceMappingURL=systemScheme.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,8BAA8B,CAAC;AACnC,SAAS,6BAA6B;CACpC,uBAAuB;CACvB,uBAAuB;AACzB,CAAC;AACD,OAAO,UAAU,aAAa,2BAA2B;AACzD,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,sBAAsB,QAAQ,cAAc;AAChD,SAAS,SAAS,aAAa;CAC7B,OAAO,gBAAgB,SAAS,SAAS;AAC3C;AACA,SAAS,kBAAkB;CACzB,OAAO,SAAS,oBAAoB,WAAW,eAAe,CAAC;AACjE;AACA,SAAS,kBAAkB;CACzB,IAAI,CAAC,QAAQ,cAAc,GAAG,aAAa,SAAQ,CAAE,eAAe;CACpE,CAAC,GAAG,aAAa,UAAS,CAAE,WAAW;EACrC,IAAI,yBAAyB,oBAAoB,WAAW,kBAAkB,SAAS,OAAO;GAC5F,IAAI,EAAE,gBAAgB;GACtB,UAAU,SAAS,WAAW,CAAC;EACjC,CAAC;EACD,IAAI,uBAAuB,SAAS,cAAc;GAChD,IAAI,iBAAiB,UAAU;IAC7B,IAAI,gBAAgB,gBAAgB;IACpC,UAAU,SAAS,MAAM;KACvB,OAAO,SAAS,gBAAgB,gBAAgB;IAClD,CAAC;GACH;EACF;EACA,IAAI,uBAAuB,oBAAoB,SAAS,iBAAiB,UAAU,oBAAoB;EACvG,OAAO,WAAW;GAChB,uBAAuB,OAAO;GAC9B,qBAAqB,OAAO;EAC9B;CACF,GAAG,CAAC,CAAC;CACL,OAAO;AACT"}
@@ -3,31 +3,29 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
10
  };
11
11
  var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
19
  };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
21
  var userScheme_exports = {};
24
22
  __export(userScheme_exports, {
25
- getForceScheme: () => getForceScheme,
26
- getUserScheme: () => getUserScheme,
27
- onUserSchemeChange: () => onUserSchemeChange,
28
- setForceScheme: () => setForceScheme,
29
- setUserScheme: () => setUserScheme,
30
- useUserScheme: () => useUserScheme
23
+ getForceScheme: () => getForceScheme,
24
+ getUserScheme: () => getUserScheme,
25
+ onUserSchemeChange: () => onUserSchemeChange,
26
+ setForceScheme: () => setForceScheme,
27
+ setUserScheme: () => setUserScheme,
28
+ useUserScheme: () => useUserScheme
31
29
  });
32
30
  module.exports = __toCommonJS(userScheme_exports);
33
31
  var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
@@ -35,122 +33,122 @@ var import_react = require("react");
35
33
  var import_safeStorage = require("./safeStorage.cjs");
36
34
  var import_systemScheme = require("./systemScheme.cjs");
37
35
  require("./userSchemeAppearance.cjs");
38
- const listeners = /* @__PURE__ */new Set();
36
+ const listeners = /* @__PURE__ */ new Set();
39
37
  const storageKey = "vxrn-scheme";
40
38
  let _forceScheme = null;
41
39
  function notifyListeners() {
42
- listeners.forEach(listener => {
43
- listener(currentSetting, currentValue);
44
- });
40
+ listeners.forEach((listener) => {
41
+ listener(currentSetting, currentValue);
42
+ });
45
43
  }
46
44
  function restoreUnforcedScheme() {
47
- const stored = (0, import_safeStorage.getStorageItem)(storageKey);
48
- if (stored) {
49
- currentSetting = stored;
50
- currentValue = stored === "system" ? resolveValue("system") : stored;
51
- return;
52
- }
53
- currentSetting = "system";
54
- currentValue = resolveValue("system");
45
+ const stored = (0, import_safeStorage.getStorageItem)(storageKey);
46
+ if (stored) {
47
+ currentSetting = stored;
48
+ currentValue = stored === "system" ? resolveValue("system") : stored;
49
+ return;
50
+ }
51
+ currentSetting = "system";
52
+ currentValue = resolveValue("system");
55
53
  }
56
54
  function setForceScheme(scheme) {
57
- const wasForced = _forceScheme;
58
- if (wasForced === scheme) return;
59
- _forceScheme = scheme;
60
- if (scheme) {
61
- currentSetting = scheme;
62
- currentValue = scheme;
63
- } else if (wasForced) {
64
- restoreUnforcedScheme();
65
- startWebListener();
66
- }
55
+ const wasForced = _forceScheme;
56
+ if (wasForced === scheme) return;
57
+ _forceScheme = scheme;
58
+ if (scheme) {
59
+ currentSetting = scheme;
60
+ currentValue = scheme;
61
+ } else if (wasForced) {
62
+ restoreUnforcedScheme();
63
+ startWebListener();
64
+ }
67
65
  }
68
66
  function getForceScheme() {
69
- return _forceScheme;
67
+ return _forceScheme;
70
68
  }
71
69
  function getInitialSetting() {
72
- return "system";
70
+ return "system";
73
71
  }
74
72
  function getInitialValue(setting) {
75
- return "light";
73
+ return "light";
76
74
  }
77
75
  const initialSetting = getInitialSetting();
78
76
  let currentSetting = initialSetting;
79
77
  let currentValue = getInitialValue(initialSetting);
80
78
  let isWebListening = false;
81
79
  function startWebListener() {
82
- if (isWebListening) return;
83
- isWebListening = true;
84
- const matcher = typeof window !== "undefined" ? window.matchMedia?.("(prefers-color-scheme: dark)") : null;
85
- const onSystemChange = () => {
86
- if (currentSetting === "system") updateValueFromSystem();
87
- };
88
- onSystemChange();
89
- matcher?.addEventListener?.("change", onSystemChange);
80
+ if (isWebListening) return;
81
+ isWebListening = true;
82
+ const matcher = typeof window !== "undefined" ? window.matchMedia?.("(prefers-color-scheme: dark)") : null;
83
+ const onSystemChange = () => {
84
+ if (currentSetting === "system") updateValueFromSystem();
85
+ };
86
+ onSystemChange();
87
+ matcher?.addEventListener?.("change", onSystemChange);
90
88
  }
91
89
  function resolveValue(setting) {
92
- if (setting === "system") return (0, import_systemScheme.getSystemScheme)();
93
- return setting;
90
+ if (setting === "system") return (0, import_systemScheme.getSystemScheme)();
91
+ return setting;
94
92
  }
95
93
  function updateValueFromSystem() {
96
- if (_forceScheme) return;
97
- const value = resolveValue("system");
98
- if (value !== currentValue) {
99
- currentValue = value;
100
- notifyListeners();
101
- }
94
+ if (_forceScheme) return;
95
+ const value = resolveValue("system");
96
+ if (value !== currentValue) {
97
+ currentValue = value;
98
+ notifyListeners();
99
+ }
102
100
  }
103
101
  function updateScheme(setting) {
104
- if (_forceScheme) return;
105
- const value = setting === "system" ? resolveValue("system") : setting;
106
- if (value !== currentValue || currentSetting !== setting) {
107
- currentSetting = setting;
108
- currentValue = value;
109
- notifyListeners();
110
- }
102
+ if (_forceScheme) return;
103
+ const value = setting === "system" ? resolveValue("system") : setting;
104
+ if (value !== currentValue || currentSetting !== setting) {
105
+ currentSetting = setting;
106
+ currentValue = value;
107
+ notifyListeners();
108
+ }
111
109
  }
112
110
  function setUserScheme(setting) {
113
- if (_forceScheme) return;
114
- (0, import_safeStorage.setStorageItem)(storageKey, setting);
115
- updateScheme(setting);
111
+ if (_forceScheme) return;
112
+ (0, import_safeStorage.setStorageItem)(storageKey, setting);
113
+ updateScheme(setting);
116
114
  }
117
115
  function getUserScheme() {
118
- if (_forceScheme) return {
119
- setting: _forceScheme,
120
- value: _forceScheme
121
- };
122
- return {
123
- setting: currentSetting,
124
- value: currentValue
125
- };
116
+ if (_forceScheme) return {
117
+ setting: _forceScheme,
118
+ value: _forceScheme
119
+ };
120
+ return {
121
+ setting: currentSetting,
122
+ value: currentValue
123
+ };
126
124
  }
127
125
  function onUserSchemeChange(listener) {
128
- listeners.add(listener);
129
- listener(currentSetting, currentValue);
130
- return () => {
131
- listeners.delete(listener);
132
- };
126
+ listeners.add(listener);
127
+ listener(currentSetting, currentValue);
128
+ return () => {
129
+ listeners.delete(listener);
130
+ };
133
131
  }
134
132
  function useUserScheme() {
135
- const [state, setState] = (0, import_react.useState)(() => getUserScheme());
136
- const snapshot = getUserScheme();
137
- const resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
138
- (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
139
- if (!_forceScheme) {
140
- const stored = (0, import_safeStorage.getStorageItem)(storageKey);
141
- if (stored) updateScheme(stored);
142
- startWebListener();
143
- }
144
- return onUserSchemeChange((setting, value) => {
145
- setState({
146
- setting,
147
- value
148
- });
149
- });
150
- }, []);
151
- return (0, import_react.useMemo)(() => ({
152
- setting: resolvedState.setting,
153
- value: resolvedState.value,
154
- set: setUserScheme
155
- }), [resolvedState.setting, resolvedState.value]);
156
- }
133
+ const [state, setState] = (0, import_react.useState)(() => getUserScheme());
134
+ const snapshot = getUserScheme();
135
+ const resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
136
+ (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
137
+ if (!_forceScheme) {
138
+ const stored = (0, import_safeStorage.getStorageItem)(storageKey);
139
+ if (stored) updateScheme(stored);
140
+ startWebListener();
141
+ }
142
+ return onUserSchemeChange((setting, value) => {
143
+ setState({
144
+ setting,
145
+ value
146
+ });
147
+ });
148
+ }, []);
149
+ return (0, import_react.useMemo)(() => ({
150
+ setting: resolvedState.setting,
151
+ value: resolvedState.value,
152
+ set: setUserScheme
153
+ }), [resolvedState.setting, resolvedState.value]);
154
+ }