@vxrn/color-scheme 1.2.85 → 1.2.86

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.
@@ -32,8 +32,15 @@ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-e
32
32
  import_systemScheme = require("./systemScheme.cjs");
33
33
  const listeners = /* @__PURE__ */new Set(),
34
34
  storageKey = "vxrn-scheme";
35
- let currentSetting = "system",
36
- currentValue = "light",
35
+ function getInitialSetting() {
36
+ return "system";
37
+ }
38
+ function getInitialValue(setting) {
39
+ return "light";
40
+ }
41
+ const initialSetting = getInitialSetting();
42
+ let currentSetting = initialSetting,
43
+ currentValue = getInitialValue(initialSetting),
37
44
  isWebListening = !1;
38
45
  function startWebListener() {
39
46
  if (isWebListening) return;
@@ -22,7 +22,14 @@ __export(userScheme_exports, {
22
22
  module.exports = __toCommonJS(userScheme_exports);
23
23
  var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"), import_react = require("react"), import_react_native = require("react-native-web"), import_systemScheme = require("./systemScheme");
24
24
  const listeners = /* @__PURE__ */ new Set(), storageKey = "vxrn-scheme";
25
- let currentSetting = "system", currentValue = "light", isWebListening = !1;
25
+ function getInitialSetting() {
26
+ return "system";
27
+ }
28
+ function getInitialValue(setting) {
29
+ return "light";
30
+ }
31
+ const initialSetting = getInitialSetting();
32
+ let currentSetting = initialSetting, currentValue = getInitialValue(initialSetting), isWebListening = !1;
26
33
  function startWebListener() {
27
34
  if (isWebListening) return;
28
35
  isWebListening = !0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/userScheme.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAC1C,eAAkC,kBAClC,sBAA2B,yBAC3B,sBAA6C;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAEnB,IAAI,iBAAgC,UAChC,eAAuB,SAiBvB,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,eAIP,qCAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAMf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAMf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAM,cAAc,CAAC;AAExD,4EAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,OAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAC1C,eAAkC,kBAClC,sBAA2B,yBAC3B,sBAA6C;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAGnB,SAAS,oBAAmC;AAU1C,SAAO;AACT;AAEA,SAAS,gBAAgB,SAAgC;AAQvD,SAAO;AACT;AACA,MAAM,iBAAiB,kBAAkB;AACzC,IAAI,iBAAgC,gBAChC,eAAuB,gBAAgB,cAAc,GAYrD,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,eAIP,qCAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAEf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAaf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAM,cAAc,CAAC;AAExD,4EAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,OAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
5
5
  "names": []
6
6
  }
@@ -33,14 +33,23 @@ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-e
33
33
  import_react_native = require("react-native"),
34
34
  import_systemScheme = require("./systemScheme.native.js"),
35
35
  listeners = /* @__PURE__ */new Set(),
36
- storageKey = "vxrn-scheme",
37
- currentSetting = "system",
38
- currentValue = "light";
36
+ storageKey = "vxrn-scheme";
37
+ function getInitialSetting() {
38
+ if (typeof localStorage < "u") {
39
+ var stored = localStorage.getItem(storageKey);
40
+ if (stored === "light" || stored === "dark" || stored === "system") return stored;
41
+ }
42
+ return "system";
43
+ }
44
+ function getInitialValue(setting) {
45
+ return setting === "system" ? import_react_native.Appearance.getColorScheme() || "light" : setting;
46
+ }
47
+ var initialSetting = getInitialSetting(),
48
+ currentSetting = initialSetting,
49
+ currentValue = getInitialValue(initialSetting);
39
50
  import_react_native.Appearance.addChangeListener(function (next) {
40
51
  currentSetting === "system" && next.colorScheme && updateValueFromSystem();
41
52
  });
42
- var cur = import_react_native.Appearance.getColorScheme();
43
- cur && currentSetting === "system" && (currentValue = cur);
44
53
  var isWebListening = !1;
45
54
  function startWebListener() {
46
55
  var _window_matchMedia, _window, _matcher_addEventListener;
@@ -58,13 +67,13 @@ function resolveValue(setting) {
58
67
  }
59
68
  function updateValueFromSystem() {
60
69
  var value = resolveValue("system");
61
- value !== currentValue && (currentValue = value, import_react_native.Appearance.setColorScheme(value), listeners.forEach(function (l) {
70
+ value !== currentValue && (currentValue = value, listeners.forEach(function (l) {
62
71
  l(currentSetting, currentValue);
63
72
  }));
64
73
  }
65
74
  function updateScheme(setting) {
66
75
  var value = setting === "system" ? resolveValue("system") : setting;
67
- (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, import_react_native.Appearance.setColorScheme(value), listeners.forEach(function (l) {
76
+ (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, setting !== "system" ? import_react_native.Appearance.setColorScheme(value) : import_react_native.Appearance.setColorScheme(null), listeners.forEach(function (l) {
68
77
  l(currentSetting, currentValue);
69
78
  }));
70
79
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","currentSetting","currentValue","Appearance","addChangeListener","next","colorScheme","updateValueFromSystem","cur","getColorScheme","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","setting","setColorScheme","forEach","l","updateScheme","localStorage","setItem","listener","add","delete","state","setState","useState","useIsomorphicLayoutEffect","stored","getItem","dispose"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","Appearance","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","forEach","l","updateScheme","setColorScheme","setItem","listener","add","delete","state","setState","useState","useIsomorphicLayoutEffect"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,14 @@ import { useState, useMemo } from "react";
3
3
 
4
4
  import { getSystemScheme } from "./systemScheme";
5
5
  const listeners = /* @__PURE__ */ new Set(), storageKey = "vxrn-scheme";
6
- let currentSetting = "system", currentValue = "light", isWebListening = !1;
6
+ function getInitialSetting() {
7
+ return "system";
8
+ }
9
+ function getInitialValue(setting) {
10
+ return "light";
11
+ }
12
+ const initialSetting = getInitialSetting();
13
+ let currentSetting = initialSetting, currentValue = getInitialValue(initialSetting), isWebListening = !1;
7
14
  function startWebListener() {
8
15
  if (isWebListening) return;
9
16
  isWebListening = !0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/userScheme.ts"],
4
- "mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,UAAU,eAAe;AAClC,OAA2B;AAC3B,SAAS,uBAAoC;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAEnB,IAAI,iBAAgC,UAChC,eAAuB,SAiBvB,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,WAIP,gBAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAMf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAMf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM,cAAc,CAAC;AAExD,mCAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,GAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
4
+ "mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,UAAU,eAAe;AAClC,OAA2B;AAC3B,SAAS,uBAAoC;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAGnB,SAAS,oBAAmC;AAU1C,SAAO;AACT;AAEA,SAAS,gBAAgB,SAAgC;AAQvD,SAAO;AACT;AACA,MAAM,iBAAiB,kBAAkB;AACzC,IAAI,iBAAgC,gBAChC,eAAuB,gBAAgB,cAAc,GAYrD,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,WAIP,gBAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAEf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAaf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM,cAAc,CAAC;AAExD,mCAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,GAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
5
5
  "names": []
6
6
  }
@@ -3,8 +3,15 @@ import { useState, useMemo } from "react";
3
3
  import { getSystemScheme } from "./systemScheme.mjs";
4
4
  const listeners = /* @__PURE__ */new Set(),
5
5
  storageKey = "vxrn-scheme";
6
- let currentSetting = "system",
7
- currentValue = "light",
6
+ function getInitialSetting() {
7
+ return "system";
8
+ }
9
+ function getInitialValue(setting) {
10
+ return "light";
11
+ }
12
+ const initialSetting = getInitialSetting();
13
+ let currentSetting = initialSetting,
14
+ currentValue = getInitialValue(initialSetting),
8
15
  isWebListening = !1;
9
16
  function startWebListener() {
10
17
  if (isWebListening) return;
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","getSystemScheme","listeners","Set","storageKey","currentSetting","currentValue","isWebListening","startWebListener","matcher","window","matchMedia","onSystemChange","updateValueFromSystem","addEventListener","resolveValue","setting","value","forEach","l","updateScheme","setUserScheme","localStorage","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState","stored","getItem","dispose","set"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,QAAA,EAAUC,OAAA,QAAe;AAElC,SAASC,eAAA,QAAoC;AAe7C,MAAMC,SAAA,GAAY,mBAAIC,GAAA,CAAoB;EACpCC,UAAA,GAAa;AAEnB,IAAIC,cAAA,GAAgC;EAChCC,YAAA,GAAuB;EAiBvBC,cAAA,GAAiB;AACrB,SAASC,iBAAA,EAAmB;EAC1B,IAAID,cAAA,EAAgB;EACpBA,cAAA,GAAiB;EAEjB,MAAME,OAAA,GACJ,OAAOC,MAAA,GAAW,MACdA,MAAA,CAAOC,UAAA,GAAa,8BAA8B,IAClD;IAEAC,cAAA,GAAiBA,CAAA,KAAM;MACvBP,cAAA,KAAmB,YACrBQ,qBAAA,CAAsB;IAE1B;EAEAD,cAAA,CAAe,GACfH,OAAA,EAASK,gBAAA,GAAmB,UAAUF,cAAc;AACtD;AAEA,SAASG,aAAaC,OAAA,EAAgC;EACpD,OAAIA,OAAA,KAAY,WAIPf,eAAA,CAAgB,IAElBe,OAAA;AACT;AAGA,SAASH,sBAAA,EAAwB;EAC/B,MAAMI,KAAA,GAAQF,YAAA,CAAa,QAAQ;EAC/BE,KAAA,KAAUX,YAAA,KACZA,YAAA,GAAeW,KAAA,EAMff,SAAA,CAAUgB,OAAA,CAASC,CAAA,IAAM;IACvBA,CAAA,CAAEd,cAAA,EAAgBC,YAAY;EAChC,CAAC;AAEL;AAEA,SAASc,aAAaJ,OAAA,EAAwB;EAC5C,MAAMC,KAAA,GAAQD,OAAA,KAAY,WAAWD,YAAA,CAAa,QAAQ,IAAIC,OAAA;EAE9D,CAAIC,KAAA,KAAUX,YAAA,IAAgBD,cAAA,KAAmBW,OAAA,MAC/CX,cAAA,GAAiBW,OAAA,EACjBV,YAAA,GAAeW,KAAA,EAMff,SAAA,CAAUgB,OAAA,CAASC,CAAA,IAAM;IACvBA,CAAA,CAAEd,cAAA,EAAgBC,YAAY;EAChC,CAAC;AAEL;AAQO,SAASe,cAAcL,OAAA,EAAwB;EAChD,OAAOM,YAAA,GAAiB,OAC1BA,YAAA,CAAaC,OAAA,CAAQnB,UAAA,EAAYY,OAAO,GAE1CI,YAAA,CAAaJ,OAAO;AACtB;AAOO,SAASQ,cAAA,EAA2D;EACzE,OAAO;IAAER,OAAA,EAASX,cAAA;IAAgBY,KAAA,EAAOX;EAAa;AACxD;AAQO,SAASmB,mBAAmBC,QAAA,EAA0B;EAC3D,OAAAxB,SAAA,CAAUyB,GAAA,CAAID,QAAQ,GACtBA,QAAA,CAASrB,cAAA,EAAgBC,YAAY,GAC9B,MAAM;IACXJ,SAAA,CAAU0B,MAAA,CAAOF,QAAQ;EAC3B;AACF;AAeO,SAASG,cAAA,EAA4B;EAC1C,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIhC,QAAA,CAAS,MAAMyB,aAAA,CAAc,CAAC;EAExD,OAAA1B,yBAAA,CAA0B,MAAM;IAE9B,IAAI,OAAOwB,YAAA,GAAiB,KAAa;MACvC,MAAMU,MAAA,GAASV,YAAA,CAAaW,OAAA,CAAQ7B,UAAU;MAC1C4B,MAAA,IACFZ,YAAA,CAAaY,MAAM;IAEvB;IAEA,MAAME,OAAA,GAAUT,kBAAA,CAAmB,CAACT,OAAA,EAASC,KAAA,KAAU;MACrDc,QAAA,CAAS;QAAEf,OAAA;QAASC;MAAM,CAAC;IAC7B,CAAC;IAED,OAAAT,gBAAA,CAAiB,GAEV0B,OAAA;EACT,GAAG,EAAE,GAEElC,OAAA,CACL,OAAO;IACLgB,OAAA,EAASc,KAAA,CAAMd,OAAA;IACfC,KAAA,EAAOa,KAAA,CAAMb,KAAA;IACbkB,GAAA,EAAKd;EACP,IACA,CAACS,KAAA,CAAMd,OAAA,EAASc,KAAA,CAAMb,KAAK,CAC7B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","getSystemScheme","listeners","Set","storageKey","getInitialSetting","getInitialValue","setting","initialSetting","currentSetting","currentValue","isWebListening","startWebListener","matcher","window","matchMedia","onSystemChange","updateValueFromSystem","addEventListener","resolveValue","value","forEach","l","updateScheme","setUserScheme","localStorage","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState","stored","getItem","dispose","set"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,14 +3,23 @@ import { useState, useMemo } from "react";
3
3
  import { Appearance } from "react-native";
4
4
  import { getSystemScheme } from "./systemScheme.native.js";
5
5
  var listeners = /* @__PURE__ */new Set(),
6
- storageKey = "vxrn-scheme",
7
- currentSetting = "system",
8
- currentValue = "light";
6
+ storageKey = "vxrn-scheme";
7
+ function getInitialSetting() {
8
+ if (typeof localStorage < "u") {
9
+ var stored = localStorage.getItem(storageKey);
10
+ if (stored === "light" || stored === "dark" || stored === "system") return stored;
11
+ }
12
+ return "system";
13
+ }
14
+ function getInitialValue(setting) {
15
+ return setting === "system" ? Appearance.getColorScheme() || "light" : setting;
16
+ }
17
+ var initialSetting = getInitialSetting(),
18
+ currentSetting = initialSetting,
19
+ currentValue = getInitialValue(initialSetting);
9
20
  Appearance.addChangeListener(function (next) {
10
21
  currentSetting === "system" && next.colorScheme && updateValueFromSystem();
11
22
  });
12
- var cur = Appearance.getColorScheme();
13
- cur && currentSetting === "system" && (currentValue = cur);
14
23
  var isWebListening = !1;
15
24
  function startWebListener() {
16
25
  var _window_matchMedia, _window, _matcher_addEventListener;
@@ -28,13 +37,13 @@ function resolveValue(setting) {
28
37
  }
29
38
  function updateValueFromSystem() {
30
39
  var value = resolveValue("system");
31
- value !== currentValue && (currentValue = value, Appearance.setColorScheme(value), listeners.forEach(function (l) {
40
+ value !== currentValue && (currentValue = value, listeners.forEach(function (l) {
32
41
  l(currentSetting, currentValue);
33
42
  }));
34
43
  }
35
44
  function updateScheme(setting) {
36
45
  var value = setting === "system" ? resolveValue("system") : setting;
37
- (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, Appearance.setColorScheme(value), listeners.forEach(function (l) {
46
+ (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, setting !== "system" ? Appearance.setColorScheme(value) : Appearance.setColorScheme(null), listeners.forEach(function (l) {
38
47
  l(currentSetting, currentValue);
39
48
  }));
40
49
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","Appearance","getSystemScheme","listeners","Set","storageKey","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","cur","getColorScheme","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","setting","value","setColorScheme","forEach","l","updateScheme","setUserScheme","localStorage","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState","stored","getItem","dispose"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","Appearance","getSystemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","value","forEach","l","updateScheme","setColorScheme","setUserScheme","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/color-scheme",
3
- "version": "1.2.85",
3
+ "version": "1.2.86",
4
4
  "sideEffects": false,
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -33,7 +33,7 @@
33
33
  "watch": "tamagui-build --watch"
34
34
  },
35
35
  "dependencies": {
36
- "@vxrn/use-isomorphic-layout-effect": "1.2.85"
36
+ "@vxrn/use-isomorphic-layout-effect": "1.2.86"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@tamagui/build": "^1.144.3",
package/src/userScheme.ts CHANGED
@@ -19,8 +19,33 @@ type SchemeListener = (setting: SchemeSetting, value: Scheme) => void
19
19
  const listeners = new Set<SchemeListener>()
20
20
  const storageKey = 'vxrn-scheme'
21
21
 
22
- let currentSetting: SchemeSetting = 'system'
23
- let currentValue: Scheme = 'light'
22
+ // eagerly init from localStorage on module load (native only - web uses effect for SSR)
23
+ function getInitialSetting(): SchemeSetting {
24
+ if (process.env.TAMAGUI_TARGET === 'native') {
25
+ if (typeof localStorage !== 'undefined') {
26
+ const stored = localStorage.getItem(storageKey)
27
+ if (stored === 'light' || stored === 'dark' || stored === 'system') {
28
+ return stored
29
+ }
30
+ }
31
+ }
32
+ // web: always return system for SSR compat
33
+ return 'system'
34
+ }
35
+
36
+ function getInitialValue(setting: SchemeSetting): Scheme {
37
+ if (process.env.TAMAGUI_TARGET === 'native') {
38
+ if (setting === 'system') {
39
+ return Appearance.getColorScheme() || 'light'
40
+ }
41
+ return setting
42
+ }
43
+ // web: always return 'light' for SSR compatibility
44
+ return 'light'
45
+ }
46
+ const initialSetting = getInitialSetting()
47
+ let currentSetting: SchemeSetting = initialSetting
48
+ let currentValue: Scheme = getInitialValue(initialSetting)
24
49
 
25
50
  // native: set up listener at module level
26
51
  if (process.env.TAMAGUI_TARGET === 'native') {
@@ -29,11 +54,6 @@ if (process.env.TAMAGUI_TARGET === 'native') {
29
54
  updateValueFromSystem()
30
55
  }
31
56
  })
32
-
33
- const cur = Appearance.getColorScheme()
34
- if (cur && currentSetting === 'system') {
35
- currentValue = cur
36
- }
37
57
  }
38
58
 
39
59
  // web: lazy listener setup for SSR safety
@@ -72,11 +92,7 @@ function updateValueFromSystem() {
72
92
  const value = resolveValue('system')
73
93
  if (value !== currentValue) {
74
94
  currentValue = value
75
-
76
- if (process.env.TAMAGUI_TARGET === 'native') {
77
- Appearance.setColorScheme(value)
78
- }
79
-
95
+ // don't call Appearance.setColorScheme when following system - it breaks the listener
80
96
  listeners.forEach((l) => {
81
97
  l(currentSetting, currentValue)
82
98
  })
@@ -91,7 +107,14 @@ function updateScheme(setting: SchemeSetting) {
91
107
  currentValue = value
92
108
 
93
109
  if (process.env.TAMAGUI_TARGET === 'native') {
94
- Appearance.setColorScheme(value)
110
+ // only call setColorScheme for explicit light/dark
111
+ // calling it breaks the Appearance.addChangeListener for system changes
112
+ if (setting !== 'system') {
113
+ Appearance.setColorScheme(value)
114
+ } else {
115
+ // reset to null to re-enable system tracking
116
+ Appearance.setColorScheme(null)
117
+ }
95
118
  }
96
119
 
97
120
  listeners.forEach((l) => {
@@ -1 +1 @@
1
- {"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,OAAO,EAAE,aAAa,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;AAsFrE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,QAKnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,cAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C"}
1
+ {"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,OAAO,EAAE,aAAa,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;AA6GrE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,QAKnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,cAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C"}