@vxrn/color-scheme 1.19.3 → 1.19.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +8 -6
- package/dist/cjs/index.native.js +4 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/safeStorage.cjs +40 -0
- package/dist/cjs/safeStorage.native.js +43 -0
- package/dist/cjs/safeStorage.native.js.map +1 -0
- package/dist/cjs/safeStorage.test.cjs +49 -0
- package/dist/cjs/safeStorage.test.native.js +66 -0
- package/dist/cjs/safeStorage.test.native.js.map +1 -0
- package/dist/cjs/userScheme.cjs +9 -12
- package/dist/cjs/userScheme.native.js +11 -16
- package/dist/cjs/userScheme.native.js.map +1 -1
- package/dist/esm/index.js +8 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +8 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/safeStorage.mjs +14 -0
- package/dist/esm/safeStorage.mjs.map +1 -0
- package/dist/esm/safeStorage.native.js +14 -0
- package/dist/esm/safeStorage.native.js.map +1 -0
- package/dist/esm/safeStorage.test.mjs +50 -0
- package/dist/esm/safeStorage.test.mjs.map +1 -0
- package/dist/esm/safeStorage.test.native.js +64 -0
- package/dist/esm/safeStorage.test.native.js.map +1 -0
- package/dist/esm/userScheme.mjs +9 -12
- package/dist/esm/userScheme.mjs.map +1 -1
- package/dist/esm/userScheme.native.js +11 -16
- package/dist/esm/userScheme.native.js.map +1 -1
- package/package.json +5 -3
- package/src/index.tsx +10 -6
- package/src/safeStorage.test.ts +63 -0
- package/src/safeStorage.ts +20 -0
- package/src/userScheme.ts +13 -20
- package/types/index.d.ts.map +1 -1
- package/types/safeStorage.d.ts +3 -0
- package/types/safeStorage.d.ts.map +1 -0
- package/types/safeStorage.test.d.ts +2 -0
- package/types/safeStorage.test.d.ts.map +1 -0
- package/types/userScheme.d.ts.map +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -33,6 +33,7 @@ __export(index_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(index_exports);
|
|
35
35
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
36
|
+
var import_safeStorage = require("./safeStorage.cjs");
|
|
36
37
|
var import_userScheme = require("./userScheme.cjs");
|
|
37
38
|
var import_systemScheme = require("./systemScheme.cjs");
|
|
38
39
|
var import_userScheme2 = require("./userScheme.cjs");
|
|
@@ -50,8 +51,8 @@ function SchemeProvider({
|
|
|
50
51
|
} = (0, import_userScheme.useUserScheme)();
|
|
51
52
|
const resolvedValue = forceScheme ?? value;
|
|
52
53
|
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
53
|
-
if (!forceScheme && defaultScheme
|
|
54
|
-
if (!
|
|
54
|
+
if (!forceScheme && defaultScheme) {
|
|
55
|
+
if (!(0, import_safeStorage.getStorageItem)(storageKey)) (0, import_userScheme.setUserScheme)(defaultScheme);
|
|
55
56
|
}
|
|
56
57
|
}, [defaultScheme, forceScheme]);
|
|
57
58
|
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
@@ -69,12 +70,12 @@ d.remove('${getClassName("light")}')
|
|
|
69
70
|
d.remove('${getClassName("dark")}')
|
|
70
71
|
d.add('${getClassName(forceScheme)}')`;else {
|
|
71
72
|
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
72
|
-
const seedStorage = defaultScheme ?
|
|
73
|
+
const seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
73
74
|
scriptContent = `let d = document.documentElement.classList
|
|
74
75
|
d.remove('${getClassName("light")}')
|
|
75
76
|
d.remove('${getClassName("dark")}')
|
|
76
|
-
let e =
|
|
77
|
-
${seedStorage}
|
|
77
|
+
let e = null
|
|
78
|
+
try { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}
|
|
78
79
|
let t = 'system' === e || !e
|
|
79
80
|
? ${fallback}
|
|
80
81
|
: e === 'dark'
|
|
@@ -99,7 +100,8 @@ function MetaTheme({
|
|
|
99
100
|
} = (0, import_userScheme.useUserScheme)();
|
|
100
101
|
const forced = (0, import_userScheme.getForceScheme)();
|
|
101
102
|
const scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
102
|
-
let e1 =
|
|
103
|
+
let e1 = null
|
|
104
|
+
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
103
105
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
104
106
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
105
107
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -36,6 +36,7 @@ __export(index_exports, {
|
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
38
38
|
require("@vxrn/use-isomorphic-layout-effect");
|
|
39
|
+
require("./safeStorage.native.js");
|
|
39
40
|
var import_userScheme = require("./userScheme.native.js");
|
|
40
41
|
var import_systemScheme = require("./systemScheme.native.js");
|
|
41
42
|
var import_userScheme2 = require("./userScheme.native.js");
|
|
@@ -55,7 +56,7 @@ function SchemeProvider(param) {
|
|
|
55
56
|
} = (0, import_userScheme.useUserScheme)();
|
|
56
57
|
if (forceScheme) `${getClassName("light")}${getClassName("dark")}${getClassName(forceScheme)}`;else {
|
|
57
58
|
var fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
58
|
-
var seedStorage = defaultScheme ?
|
|
59
|
+
var seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
59
60
|
`${getClassName("light")}${getClassName("dark")}${storageKey}${seedStorage}${fallback}${getClassName("dark")}${getClassName("light")}`;
|
|
60
61
|
}
|
|
61
62
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
@@ -73,7 +74,8 @@ function MetaTheme(param) {
|
|
|
73
74
|
} = (0, import_userScheme.useUserScheme)();
|
|
74
75
|
var forced = (0, import_userScheme.getForceScheme)();
|
|
75
76
|
var scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
76
|
-
let e1 =
|
|
77
|
+
let e1 = null
|
|
78
|
+
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
77
79
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
78
80
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
79
81
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","MetaTheme","SchemeProvider","getSystemScheme","import_systemScheme","getUserScheme","import_userScheme2","onUserSchemeChange","setUserScheme","useSystemScheme","useUserScheme","module","exports","import_jsx_runtime","require","import_userScheme","storageKey","param","children","getClassName","name","defaultScheme","forceScheme","setForceScheme","fallback","seedStorage","jsxs","Fragment","color","darkColor","lightColor","forced","getForceScheme","scriptContent","jsx","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,eAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,kBAAA,CAAAD,aAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAD,kBAAA,CAAAC,kBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAF,kBAAA,CAAAE,aAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAL,mBAA0C,CAAAK,eAAA;
|
|
1
|
+
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","MetaTheme","SchemeProvider","getSystemScheme","import_systemScheme","getUserScheme","import_userScheme2","onUserSchemeChange","setUserScheme","useSystemScheme","useUserScheme","module","exports","import_jsx_runtime","require","import_userScheme","storageKey","param","children","getClassName","name","defaultScheme","forceScheme","setForceScheme","fallback","seedStorage","jsxs","Fragment","color","darkColor","lightColor","forced","getForceScheme","scriptContent","jsx","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,eAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,kBAAA,CAAAD,aAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAD,kBAAA,CAAAC,kBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAF,kBAAA,CAAAE,aAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAL,mBAA0C,CAAAK,eAAA;EAC1CC,aAAA,EAAAA,CAAA,KAAAJ,kBAA+B,CAAAI;AAE/B;AAYAC,MAAA,CAAAC,OAAA,GAAAlB,YAAiD,CAAAK,aAAA;AACjD,IAAAc,kBAAA,GAKOC,OAAA;AA2EHA,OAAA;AAzEJA,OAAM,0BAAa;AAEZ,IAAAC,iBAAS,GAAeD,OAAA;AAAA,IAC7BV,mBAAA,GAAAU,OAAA;AAAA,IACAR,kBAAgB,GAAAQ,OAAc,yBAAI;AAAA,IAClCE,UAAA;AAAA,SACAd,eAAAe,KAAA;EACF,IAOG;IAAAC,QAAA;IAAAC,YAAA,YAAAA,CAAAC,IAAA;MAED,YAAAA,IAAA;IAEA;IAAAC,aAAc;IAAAC;EAAI,IAAAL,KAAA;EAClB,IAAAF,iBAAM,CAAAQ,cAAgB,EAAeD,WAAA,aAAAA,WAAA,cAAAA,WAAA;EAErC;IAAIxB;EAAA,CAAQ,IAAI,GAAAiB,iBAAmB,CAAAL,aAAU;EAE3C,IAAAY,WAAA,KAAAH,YAAA,YAAAA,YAAA,WAAAA,YAAgC,CAAAG,WAAA,SAC9B;IACE,IAAAE,QAAI,GAACH,aAAA,OAAAA,aAAA,cAAyB,GAAG;IAC/B,IAAAI,WAAA,GAAAJ,aAAA,oCAA2BL,UAAA,MAAAK,aAAA;IAAA,GAAAF,YAC7B,YAAAA,YAAA,WAAAH,UAAA,GAAAS,WAAA,GAAAD,QAAA,GAAAL,YAAA,WAAAA,YAAA;EAAA;EACF,OACE,eAAe,IAAAN,kBAAY,CAAAa,IAAA,EAAAb,kBAAA,CAAAc,QAAA;IAAAT,QAAA,SAAAA,QAAA;EAAA;AAE/B;AACE,SAAAjB,SAAMA,CAAAgB,KAAQ;EACd;IAAAW,KAAM;IAAAC,SAAW;IAAAC;EAAa,IAAAb,KAAA;EAC9B;IAAAnB;EAAM,CAAE,OAAAiB,iBAAuB,CAAAL,aAAA;EAC/B,IAAAqB,MAAA,KAAU,EAAAhB,iBAAe,CAAAiB,cAAA;EACzB,IAAAC,aAAK,GAAUF,MAAA,GAAS,uEAAQA,MAAA,cAAAF,SAAA,GAAAC,UAAA;AAC9B;AAAmB,mCACrBd,UAAA;AAAA;AAC8B,oCAClCa,SAAA,QAAAC,UAAA;EAEA,OAAI,mBAAAjB,kBAAA,CAAAa,IAAA,EAAAb,kBAAA,CAAAc,QAAA;IAAAT,QAAA,sBAAAL,kBAAA,CAAAqB,GAAA;MAEJC,wBAAiB;MAEfC,EAAA,oBAAgB;MAAAhB,IAAA,eACR;MAAqBiB,OAAA,EAAAT,KACrB,SAAa,IAAAA,KAAO,cAAAA,KAAA,GAAA9B,KAAA,cAAA+B,SAAA,GAAAC;IAAA,mBACvB,CAAa,GAAAjB,kBAAY,CAAAqB,GAAA;MAChCC,wBAAO;MACLC,EAAA,sBAAiB;MAIjBE,uBAAoB;QAAAC,MAAA,EAAAN;MAChB;IAKJ;EAAA;AAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
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;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var safeStorage_exports = {};
|
|
24
|
+
__export(safeStorage_exports, {
|
|
25
|
+
getStorageItem: () => getStorageItem,
|
|
26
|
+
setStorageItem: () => setStorageItem
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(safeStorage_exports);
|
|
29
|
+
function getStorageItem(key) {
|
|
30
|
+
try {
|
|
31
|
+
return localStorage.getItem(key);
|
|
32
|
+
} catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function setStorageItem(key, value) {
|
|
37
|
+
try {
|
|
38
|
+
localStorage.setItem(key, value);
|
|
39
|
+
} catch {}
|
|
40
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var safeStorage_exports = {};
|
|
26
|
+
__export(safeStorage_exports, {
|
|
27
|
+
getStorageItem: () => getStorageItem,
|
|
28
|
+
setStorageItem: () => setStorageItem
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(safeStorage_exports);
|
|
31
|
+
function getStorageItem(key) {
|
|
32
|
+
try {
|
|
33
|
+
return localStorage.getItem(key);
|
|
34
|
+
} catch (unused) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function setStorageItem(key, value) {
|
|
39
|
+
try {
|
|
40
|
+
localStorage.setItem(key, value);
|
|
41
|
+
} catch (unused) {}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=safeStorage.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","safeStorage_exports","__export","getStorageItem","setStorageItem","module","exports","key","localStorage","getItem","unused","setItem"],"sources":["../../src/safeStorage.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAOOC,MAAA,CAAAC,OAAS,GAAAV,YAA2C,CAAAK,mBAAA;AACzD,SAAIE,eAAAI,GAAA;EACF;IACF,OAAQC,YAAA,CAAAC,OAAA,CAAAF,GAAA;EACN,SAAOG,MAAA;IACT;EACF;AAEO;AACL,SAAIN,eAAAG,GAAA,EAAAP,KAAA;EACF;IACFQ,YAAQ,CAAAG,OAAA,CAAAJ,GAAA,EAAAP,KAAA;EAAC,SAAAU,MAAA,GACX","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var import_vitest = require("vitest");
|
|
2
|
+
var import_safeStorage = require("./safeStorage.cjs");
|
|
3
|
+
(0, import_vitest.afterEach)(() => {
|
|
4
|
+
delete globalThis.localStorage;
|
|
5
|
+
});
|
|
6
|
+
function defineLocalStorage(descriptor) {
|
|
7
|
+
Object.defineProperty(globalThis, "localStorage", {
|
|
8
|
+
configurable: true,
|
|
9
|
+
...descriptor
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
(0, import_vitest.describe)("safeStorage", () => {
|
|
13
|
+
(0, import_vitest.it)("reads and writes through to a working localStorage", () => {
|
|
14
|
+
const store = /* @__PURE__ */new Map();
|
|
15
|
+
defineLocalStorage({
|
|
16
|
+
value: {
|
|
17
|
+
getItem: k => store.has(k) ? store.get(k) : null,
|
|
18
|
+
setItem: (k, v) => void store.set(k, v)
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
(0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark");
|
|
22
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBe("dark");
|
|
23
|
+
});
|
|
24
|
+
(0, import_vitest.it)("returns null instead of throwing when the localStorage getter throws", () => {
|
|
25
|
+
defineLocalStorage({
|
|
26
|
+
get() {
|
|
27
|
+
throw new Error('Failed to read the "localStorage" property: Access is denied.');
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
(0, import_vitest.expect)(() => (0, import_safeStorage.getStorageItem)("vxrn-scheme")).not.toThrow();
|
|
31
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBeNull();
|
|
32
|
+
(0, import_vitest.expect)(() => (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark")).not.toThrow();
|
|
33
|
+
});
|
|
34
|
+
(0, import_vitest.it)("swallows errors when setItem throws (quota / blocked)", () => {
|
|
35
|
+
defineLocalStorage({
|
|
36
|
+
value: {
|
|
37
|
+
getItem: () => null,
|
|
38
|
+
setItem: () => {
|
|
39
|
+
throw new Error("QuotaExceededError");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
(0, import_vitest.expect)(() => (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark")).not.toThrow();
|
|
44
|
+
});
|
|
45
|
+
(0, import_vitest.it)("returns null when localStorage is undefined (native)", () => {
|
|
46
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBeNull();
|
|
47
|
+
(0, import_vitest.expect)(() => (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark")).not.toThrow();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_vitest = require("vitest");
|
|
4
|
+
var import_safeStorage = require("./safeStorage.native.js");
|
|
5
|
+
(0, import_vitest.afterEach)(function () {
|
|
6
|
+
delete globalThis.localStorage;
|
|
7
|
+
});
|
|
8
|
+
function defineLocalStorage(descriptor) {
|
|
9
|
+
Object.defineProperty(globalThis, "localStorage", {
|
|
10
|
+
configurable: true,
|
|
11
|
+
...descriptor
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
(0, import_vitest.describe)("safeStorage", function () {
|
|
15
|
+
(0, import_vitest.it)("reads and writes through to a working localStorage", function () {
|
|
16
|
+
var store = /* @__PURE__ */new Map();
|
|
17
|
+
defineLocalStorage({
|
|
18
|
+
value: {
|
|
19
|
+
getItem: function getItem(k) {
|
|
20
|
+
return store.has(k) ? store.get(k) : null;
|
|
21
|
+
},
|
|
22
|
+
setItem: function setItem(k, v) {
|
|
23
|
+
return void store.set(k, v);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
(0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark");
|
|
28
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBe("dark");
|
|
29
|
+
});
|
|
30
|
+
(0, import_vitest.it)("returns null instead of throwing when the localStorage getter throws", function () {
|
|
31
|
+
defineLocalStorage({
|
|
32
|
+
get() {
|
|
33
|
+
throw new Error('Failed to read the "localStorage" property: Access is denied.');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
(0, import_vitest.expect)(function () {
|
|
37
|
+
return (0, import_safeStorage.getStorageItem)("vxrn-scheme");
|
|
38
|
+
}).not.toThrow();
|
|
39
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBeNull();
|
|
40
|
+
(0, import_vitest.expect)(function () {
|
|
41
|
+
return (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark");
|
|
42
|
+
}).not.toThrow();
|
|
43
|
+
});
|
|
44
|
+
(0, import_vitest.it)("swallows errors when setItem throws (quota / blocked)", function () {
|
|
45
|
+
defineLocalStorage({
|
|
46
|
+
value: {
|
|
47
|
+
getItem: function getItem() {
|
|
48
|
+
return null;
|
|
49
|
+
},
|
|
50
|
+
setItem: function setItem() {
|
|
51
|
+
throw new Error("QuotaExceededError");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
(0, import_vitest.expect)(function () {
|
|
56
|
+
return (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark");
|
|
57
|
+
}).not.toThrow();
|
|
58
|
+
});
|
|
59
|
+
(0, import_vitest.it)("returns null when localStorage is undefined (native)", function () {
|
|
60
|
+
(0, import_vitest.expect)((0, import_safeStorage.getStorageItem)("vxrn-scheme")).toBeNull();
|
|
61
|
+
(0, import_vitest.expect)(function () {
|
|
62
|
+
return (0, import_safeStorage.setStorageItem)("vxrn-scheme", "dark");
|
|
63
|
+
}).not.toThrow();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=safeStorage.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_vitest","require","import_safeStorage","afterEach","globalThis","localStorage","defineLocalStorage","descriptor","Object","defineProperty","configurable","describe","it","store","Map","value","getItem","k","has","get","setItem","v","set","setStorageItem","expect","getStorageItem","toBe","Error","not","toThrow","toBeNull"],"sources":["../../src/safeStorage.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAAAC,OAA+C;AAAA,IAI/CC,kBAAA,GAAAD,OAAU,0BAAM;AACd,IAAAD,aAAQ,CAAAG,SAAmB;EAC5B,OAAAC,UAAA,CAAAC,YAAA;AAED;AACE,SAAOC,kBAAeA,CAAAC,UAAY;EAAgBC,MAChD,CAAAC,cAAc,CAAAL,UAAA;IACdM,YAAG;IACJ,GAAAH;EACH;AAAA;AAGE,IAAAP,aAAA,CAAAW,QAAG;EACD,IAAAX,aAAc,CAAAY,EAAA,sDAAwB;IACtC,IAAAC,KAAA,kBAAmB,IAAAC,GAAA;IAAAR,kBACV;MAAAS,KACL;QACAC,OAAA,EAAS,SAAYA,OAAmBA,CAAAC,CAAA;UAC1C,OAAAJ,KAAA,CAAAK,GAAA,CAAAD,CAAA,IAAAJ,KAAA,CAAAM,GAAA,CAAAF,CAAA;QACD;QAEDG,OAAA,WAAAA,QAAAH,CAAA,EAAAI,CAAA;UACA,YAAAR,KAAA,CAAAS,GAAA,CAAAL,CAAA,EAAOI,CAAA;QACR;MAKD;IACE;IAAmB,EACjB,EAAAnB,kBAAM,CAAAqB,cAAA;IACJ,IAAAvB,aAAU,CAAAwB,MAAM,MAAAtB,kBAAA,CAAAuB,cAAA,kBAAAC,IAA+D;EAAA;EACjF,EACF,EAAC1B,aAAA,CAAAY,EAAA;IAEDN,kBAAA;MACAa,IAAA;QACA,UAAAQ,KAAA,gEAA4B;MAC7B;IAED;IACE,IAAA3B,aAAA,CAAAwB,MAAmB;MACjB,OAAO,IAAAtB,kBAAA,CAAAuB,cAAA;IAAA,GAAAG,GACL,CAAAC,OAAS;IAAM,IACf7B,aAAS,CAAAwB,MAAM,MAAAtB,kBAAA,CAAAuB,cAAA,kBAAAK,QAAA;IACb,IAAA9B,aAAU,CAAAwB,MAAM;MAAoB,OACtC,IAAAtB,kBAAA,CAAAqB,cAAA;IAAA,EACF,CAAAK,GAAA,CAAAC,OAAA;EAAA,EACF;EAEA,IAAA7B,aAAA,CAAAY,EAAA,yDAA4B,cAAe;IAC5CN,kBAAA;MAEDS,KAAA;QACEC,OAAA,WAAAA,QAAA,EAAO;UACP;QACD;QACFI,OAAA,WAAAA,QAAA","ignoreList":[]}
|
package/dist/cjs/userScheme.cjs
CHANGED
|
@@ -33,6 +33,7 @@ module.exports = __toCommonJS(userScheme_exports);
|
|
|
33
33
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
34
34
|
var import_react = require("react");
|
|
35
35
|
require("react-native-web");
|
|
36
|
+
var import_safeStorage = require("./safeStorage.cjs");
|
|
36
37
|
var import_systemScheme = require("./systemScheme.cjs");
|
|
37
38
|
const listeners = /* @__PURE__ */new Set();
|
|
38
39
|
const storageKey = "vxrn-scheme";
|
|
@@ -43,13 +44,11 @@ function notifyListeners() {
|
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
function restoreUnforcedScheme() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
47
|
+
const stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
48
|
+
if (stored) {
|
|
49
|
+
currentSetting = stored;
|
|
50
|
+
currentValue = stored === "system" ? resolveValue("system") : stored;
|
|
51
|
+
return;
|
|
53
52
|
}
|
|
54
53
|
currentSetting = "system";
|
|
55
54
|
currentValue = resolveValue("system");
|
|
@@ -112,7 +111,7 @@ function updateScheme(setting) {
|
|
|
112
111
|
}
|
|
113
112
|
function setUserScheme(setting) {
|
|
114
113
|
if (_forceScheme) return;
|
|
115
|
-
|
|
114
|
+
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
116
115
|
updateScheme(setting);
|
|
117
116
|
}
|
|
118
117
|
function getUserScheme() {
|
|
@@ -138,10 +137,8 @@ function useUserScheme() {
|
|
|
138
137
|
const resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
139
138
|
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
140
139
|
if (!_forceScheme) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (stored) updateScheme(stored);
|
|
144
|
-
}
|
|
140
|
+
const stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
141
|
+
if (stored) updateScheme(stored);
|
|
145
142
|
startWebListener();
|
|
146
143
|
}
|
|
147
144
|
return onUserSchemeChange((setting, value) => {
|
|
@@ -35,6 +35,7 @@ module.exports = __toCommonJS(userScheme_exports);
|
|
|
35
35
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
36
36
|
var import_react = require("react");
|
|
37
37
|
var import_react_native = require("react-native");
|
|
38
|
+
var import_safeStorage = require("./safeStorage.native.js");
|
|
38
39
|
require("./systemScheme.native.js");
|
|
39
40
|
var listeners = /* @__PURE__ */new Set();
|
|
40
41
|
var storageKey = "vxrn-scheme";
|
|
@@ -45,13 +46,11 @@ function notifyListeners() {
|
|
|
45
46
|
});
|
|
46
47
|
}
|
|
47
48
|
function restoreUnforcedScheme() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
49
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
50
|
+
if (stored) {
|
|
51
|
+
currentSetting = stored;
|
|
52
|
+
currentValue = stored === "system" ? resolveValue("system") : stored;
|
|
53
|
+
return;
|
|
55
54
|
}
|
|
56
55
|
currentSetting = "system";
|
|
57
56
|
currentValue = resolveValue("system");
|
|
@@ -72,10 +71,8 @@ function getForceScheme() {
|
|
|
72
71
|
return _forceScheme;
|
|
73
72
|
}
|
|
74
73
|
function getInitialSetting() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
78
|
-
}
|
|
74
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
75
|
+
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
79
76
|
return "system";
|
|
80
77
|
}
|
|
81
78
|
function getInitialValue(setting) {
|
|
@@ -124,7 +121,7 @@ function updateScheme(setting) {
|
|
|
124
121
|
}
|
|
125
122
|
function setUserScheme(setting) {
|
|
126
123
|
if (_forceScheme) return;
|
|
127
|
-
|
|
124
|
+
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
128
125
|
updateScheme(setting);
|
|
129
126
|
}
|
|
130
127
|
function getUserScheme() {
|
|
@@ -152,10 +149,8 @@ function useUserScheme() {
|
|
|
152
149
|
var resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
153
150
|
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function () {
|
|
154
151
|
if (!_forceScheme) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (stored) updateScheme(stored);
|
|
158
|
-
}
|
|
152
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
153
|
+
if (stored) updateScheme(stored);
|
|
159
154
|
startWebListener();
|
|
160
155
|
}
|
|
161
156
|
return onUserSchemeChange(function (setting, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","listeners","Set","storageKey","_forceScheme","notifyListeners","forEach","listener","currentSetting","currentValue","restoreUnforcedScheme","
|
|
1
|
+
{"version":3,"names":["to","__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_safeStorage","listeners","Set","storageKey","_forceScheme","notifyListeners","forEach","listener","currentSetting","currentValue","restoreUnforcedScheme","stored","getStorageItem","resolveValue","scheme","wasForced","startWebListener","getInitialSetting","getInitialValue","setting","Appearance","getColorScheme","initialSetting","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","onSystemChange2","addEventListener","updateScheme","setColorScheme","setStorageItem","add","delete","state","setState","useState","snapshot","resolvedState","useIsomorphicLayoutEffect","useMemo","set"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
+
import { getStorageItem } from "./safeStorage.mjs";
|
|
2
3
|
import { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
3
4
|
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
4
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -15,8 +16,8 @@ function SchemeProvider({
|
|
|
15
16
|
} = useUserScheme();
|
|
16
17
|
const resolvedValue = forceScheme ?? value;
|
|
17
18
|
useIsomorphicLayoutEffect(() => {
|
|
18
|
-
if (!forceScheme && defaultScheme
|
|
19
|
-
if (!
|
|
19
|
+
if (!forceScheme && defaultScheme) {
|
|
20
|
+
if (!getStorageItem(storageKey)) setUserScheme(defaultScheme);
|
|
20
21
|
}
|
|
21
22
|
}, [defaultScheme, forceScheme]);
|
|
22
23
|
useIsomorphicLayoutEffect(() => {
|
|
@@ -34,12 +35,12 @@ d.remove('${getClassName("light")}')
|
|
|
34
35
|
d.remove('${getClassName("dark")}')
|
|
35
36
|
d.add('${getClassName(forceScheme)}')`;else {
|
|
36
37
|
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
37
|
-
const seedStorage = defaultScheme ?
|
|
38
|
+
const seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
38
39
|
scriptContent = `let d = document.documentElement.classList
|
|
39
40
|
d.remove('${getClassName("light")}')
|
|
40
41
|
d.remove('${getClassName("dark")}')
|
|
41
|
-
let e =
|
|
42
|
-
${seedStorage}
|
|
42
|
+
let e = null
|
|
43
|
+
try { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}
|
|
43
44
|
let t = 'system' === e || !e
|
|
44
45
|
? ${fallback}
|
|
45
46
|
: e === 'dark'
|
|
@@ -64,7 +65,8 @@ function MetaTheme({
|
|
|
64
65
|
} = useUserScheme();
|
|
65
66
|
const forced = getForceScheme();
|
|
66
67
|
const scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
67
|
-
let e1 =
|
|
68
|
+
let e1 = null
|
|
69
|
+
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
68
70
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
69
71
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
70
72
|
return /* @__PURE__ */jsxs(Fragment, {
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","setUserScheme2","useUserScheme","useUserScheme2","getSystemScheme","useSystemScheme","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","forceScheme","value","resolvedValue","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","getStorageItem","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","setUserScheme2","useUserScheme","useUserScheme2","getSystemScheme","useSystemScheme","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","forceScheme","value","resolvedValue","toAdd","toRemove","classList","document","documentElement","remove","contains","add","scriptContent","fallback","seedStorage","suppressHydrationWarning","dangerouslySetInnerHTML","__html","MetaTheme","color","darkColor","lightColor","forced","id","content"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@vxrn/use-isomorphic-layout-effect\";\nimport { getStorageItem } from \"./safeStorage\";\nimport { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from \"./userScheme\";\nimport { getSystemScheme, useSystemScheme } from \"./systemScheme\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nconst storageKey = \"vxrn-scheme\";\nfunction SchemeProvider({ children, getClassName = (name) => `t_${name}`, defaultScheme, forceScheme }) {\n\tsetForceScheme(forceScheme ?? null);\n\tconst { value } = useUserScheme();\n\tconst resolvedValue = forceScheme ?? value;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!forceScheme && defaultScheme) {\n\t\t\tif (!getStorageItem(storageKey)) setUserScheme(defaultScheme);\n\t\t}\n\t}, [defaultScheme, forceScheme]);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconst toAdd = getClassName(resolvedValue);\n\t\tconst toRemove = getClassName(resolvedValue === \"light\" ? \"dark\" : \"light\");\n\t\tconst { classList } = document.documentElement;\n\t\tclassList.remove(toRemove);\n\t\tif (!classList.contains(toAdd)) classList.add(toAdd);\n\t}, [getClassName, resolvedValue]);\n\tlet scriptContent;\n\tif (forceScheme) scriptContent = `let d = document.documentElement.classList\nd.remove('${getClassName(\"light\")}')\nd.remove('${getClassName(\"dark\")}')\nd.add('${getClassName(forceScheme)}')`;\n\telse {\n\t\tconst fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;\n\t\tconst seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : \"\";\n\t\tscriptContent = `let d = document.documentElement.classList\nd.remove('${getClassName(\"light\")}')\nd.remove('${getClassName(\"dark\")}')\nlet e = null\ntry { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}\nlet t = 'system' === e || !e\n ? ${fallback}\n : e === 'dark'\nt ? d.add('${getClassName(\"dark\")}') : d.add('${getClassName(\"light\")}')`;\n\t}\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(\"script\", {\n\t\tsuppressHydrationWarning: true,\n\t\tdangerouslySetInnerHTML: { __html: scriptContent }\n\t}), children] });\n}\nfunction MetaTheme({ color, darkColor, lightColor }) {\n\tconst { value } = useUserScheme();\n\tconst forced = getForceScheme();\n\tconst scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === \"dark\" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')\nlet e1 = null\ntry { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}\nlet isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'\ndc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(\"meta\", {\n\t\tsuppressHydrationWarning: true,\n\t\tid: \"vxrn-theme-color\",\n\t\tname: \"theme-color\",\n\t\tcontent: color ?? (value === \"dark\" ? darkColor : lightColor)\n\t}), /* @__PURE__ */ jsx(\"script\", {\n\t\tsuppressHydrationWarning: true,\n\t\tid: \"meta-theme-hydrate\",\n\t\tdangerouslySetInnerHTML: { __html: scriptContent }\n\t})] });\n}\n\nexport { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
+
import { getStorageItem } from "./safeStorage.mjs";
|
|
2
3
|
import { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
3
4
|
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
4
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -15,8 +16,8 @@ function SchemeProvider({
|
|
|
15
16
|
} = useUserScheme();
|
|
16
17
|
const resolvedValue = forceScheme ?? value;
|
|
17
18
|
useIsomorphicLayoutEffect(() => {
|
|
18
|
-
if (!forceScheme && defaultScheme
|
|
19
|
-
if (!
|
|
19
|
+
if (!forceScheme && defaultScheme) {
|
|
20
|
+
if (!getStorageItem(storageKey)) setUserScheme(defaultScheme);
|
|
20
21
|
}
|
|
21
22
|
}, [defaultScheme, forceScheme]);
|
|
22
23
|
useIsomorphicLayoutEffect(() => {
|
|
@@ -34,12 +35,12 @@ d.remove('${getClassName("light")}')
|
|
|
34
35
|
d.remove('${getClassName("dark")}')
|
|
35
36
|
d.add('${getClassName(forceScheme)}')`;else {
|
|
36
37
|
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
37
|
-
const seedStorage = defaultScheme ?
|
|
38
|
+
const seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
38
39
|
scriptContent = `let d = document.documentElement.classList
|
|
39
40
|
d.remove('${getClassName("light")}')
|
|
40
41
|
d.remove('${getClassName("dark")}')
|
|
41
|
-
let e =
|
|
42
|
-
${seedStorage}
|
|
42
|
+
let e = null
|
|
43
|
+
try { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}
|
|
43
44
|
let t = 'system' === e || !e
|
|
44
45
|
? ${fallback}
|
|
45
46
|
: e === 'dark'
|
|
@@ -64,7 +65,8 @@ function MetaTheme({
|
|
|
64
65
|
} = useUserScheme();
|
|
65
66
|
const forced = getForceScheme();
|
|
66
67
|
const scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
67
|
-
let e1 =
|
|
68
|
+
let e1 = null
|
|
69
|
+
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
68
70
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
69
71
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
70
72
|
return /* @__PURE__ */jsxs(Fragment, {
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","setUserScheme2","useUserScheme","useUserScheme2","getSystemScheme","useSystemScheme","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","forceScheme","value","resolvedValue","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","getStorageItem","getForceScheme","getUserScheme","onUserSchemeChange","setForceScheme","setUserScheme","setUserScheme2","useUserScheme","useUserScheme2","getSystemScheme","useSystemScheme","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","forceScheme","value","resolvedValue","toAdd","toRemove","classList","document","documentElement","remove","contains","add","scriptContent","fallback","seedStorage","suppressHydrationWarning","dangerouslySetInnerHTML","__html","MetaTheme","color","darkColor","lightColor","forced","id","content"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@vxrn/use-isomorphic-layout-effect\";\nimport { getStorageItem } from \"./safeStorage\";\nimport { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from \"./userScheme\";\nimport { getSystemScheme, useSystemScheme } from \"./systemScheme\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nconst storageKey = \"vxrn-scheme\";\nfunction SchemeProvider({ children, getClassName = (name) => `t_${name}`, defaultScheme, forceScheme }) {\n\tsetForceScheme(forceScheme ?? null);\n\tconst { value } = useUserScheme();\n\tconst resolvedValue = forceScheme ?? value;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!forceScheme && defaultScheme) {\n\t\t\tif (!getStorageItem(storageKey)) setUserScheme(defaultScheme);\n\t\t}\n\t}, [defaultScheme, forceScheme]);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconst toAdd = getClassName(resolvedValue);\n\t\tconst toRemove = getClassName(resolvedValue === \"light\" ? \"dark\" : \"light\");\n\t\tconst { classList } = document.documentElement;\n\t\tclassList.remove(toRemove);\n\t\tif (!classList.contains(toAdd)) classList.add(toAdd);\n\t}, [getClassName, resolvedValue]);\n\tlet scriptContent;\n\tif (forceScheme) scriptContent = `let d = document.documentElement.classList\nd.remove('${getClassName(\"light\")}')\nd.remove('${getClassName(\"dark\")}')\nd.add('${getClassName(forceScheme)}')`;\n\telse {\n\t\tconst fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;\n\t\tconst seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : \"\";\n\t\tscriptContent = `let d = document.documentElement.classList\nd.remove('${getClassName(\"light\")}')\nd.remove('${getClassName(\"dark\")}')\nlet e = null\ntry { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}\nlet t = 'system' === e || !e\n ? ${fallback}\n : e === 'dark'\nt ? d.add('${getClassName(\"dark\")}') : d.add('${getClassName(\"light\")}')`;\n\t}\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(\"script\", {\n\t\tsuppressHydrationWarning: true,\n\t\tdangerouslySetInnerHTML: { __html: scriptContent }\n\t}), children] });\n}\nfunction MetaTheme({ color, darkColor, lightColor }) {\n\tconst { value } = useUserScheme();\n\tconst forced = getForceScheme();\n\tconst scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === \"dark\" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')\nlet e1 = null\ntry { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}\nlet isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'\ndc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(\"meta\", {\n\t\tsuppressHydrationWarning: true,\n\t\tid: \"vxrn-theme-color\",\n\t\tname: \"theme-color\",\n\t\tcontent: color ?? (value === \"dark\" ? darkColor : lightColor)\n\t}), /* @__PURE__ */ jsx(\"script\", {\n\t\tsuppressHydrationWarning: true,\n\t\tid: \"meta-theme-hydrate\",\n\t\tdangerouslySetInnerHTML: { __html: scriptContent }\n\t})] });\n}\n\nexport { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };"],"mappings":"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","ignoreList":[]}
|