@vxrn/color-scheme 1.2.28 → 1.2.29
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 +34 -58
- package/dist/cjs/index.js +27 -56
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/index.native.js +23 -52
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/systemScheme.cjs +40 -0
- package/dist/cjs/systemScheme.js +34 -0
- package/dist/cjs/systemScheme.js.map +6 -0
- package/dist/cjs/systemScheme.native.js +48 -0
- package/dist/cjs/systemScheme.native.js.map +1 -0
- package/dist/cjs/userScheme.cjs +95 -0
- package/dist/cjs/userScheme.js +80 -0
- package/dist/cjs/userScheme.js.map +6 -0
- package/dist/cjs/userScheme.native.js +109 -0
- package/dist/cjs/userScheme.native.js.map +1 -0
- package/dist/esm/index.js +29 -62
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +28 -52
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +18 -47
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/systemScheme.js +19 -0
- package/dist/esm/systemScheme.js.map +6 -0
- package/dist/esm/systemScheme.mjs +16 -0
- package/dist/esm/systemScheme.mjs.map +1 -0
- package/dist/esm/systemScheme.native.js +21 -0
- package/dist/esm/systemScheme.native.js.map +1 -0
- package/dist/esm/userScheme.js +67 -0
- package/dist/esm/userScheme.js.map +6 -0
- package/dist/esm/userScheme.mjs +68 -0
- package/dist/esm/userScheme.mjs.map +1 -0
- package/dist/esm/userScheme.native.js +80 -0
- package/dist/esm/userScheme.native.js.map +1 -0
- package/package.json +2 -3
- package/src/index.tsx +28 -85
- package/src/systemScheme.native.ts +21 -0
- package/src/systemScheme.ts +26 -0
- package/src/userScheme.ts +149 -0
- package/types/index.d.ts +9 -15
- package/types/index.d.ts.map +1 -1
- package/types/systemScheme.d.ts +4 -0
- package/types/systemScheme.d.ts.map +1 -0
- package/types/systemScheme.native.d.ts +4 -0
- package/types/systemScheme.native.d.ts.map +1 -0
- package/types/userScheme.d.ts +20 -0
- package/types/userScheme.d.ts.map +1 -0
|
@@ -0,0 +1,80 @@
|
|
|
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)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
+
var userScheme_exports = {};
|
|
16
|
+
__export(userScheme_exports, {
|
|
17
|
+
getUserScheme: () => getUserScheme,
|
|
18
|
+
onUserSchemeChange: () => onUserSchemeChange,
|
|
19
|
+
setUserScheme: () => setUserScheme,
|
|
20
|
+
useUserScheme: () => useUserScheme
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(userScheme_exports);
|
|
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
|
+
const listeners = /* @__PURE__ */ new Set(), storageKey = "vxrn-scheme";
|
|
25
|
+
let currentSetting = "system", currentValue = "light", isWebListening = !1;
|
|
26
|
+
function startWebListener() {
|
|
27
|
+
if (isWebListening) return;
|
|
28
|
+
isWebListening = !0;
|
|
29
|
+
const matcher = typeof window < "u" ? window.matchMedia?.("(prefers-color-scheme: dark)") : null, onSystemChange = () => {
|
|
30
|
+
currentSetting === "system" && updateValueFromSystem();
|
|
31
|
+
};
|
|
32
|
+
onSystemChange(), matcher?.addEventListener?.("change", onSystemChange);
|
|
33
|
+
}
|
|
34
|
+
function resolveValue(setting) {
|
|
35
|
+
return setting === "system" ? (0, import_systemScheme.getSystemScheme)() : setting;
|
|
36
|
+
}
|
|
37
|
+
function updateValueFromSystem() {
|
|
38
|
+
const value = resolveValue("system");
|
|
39
|
+
value !== currentValue && (currentValue = value, listeners.forEach((l) => {
|
|
40
|
+
l(currentSetting, currentValue);
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
function updateScheme(setting) {
|
|
44
|
+
const value = setting === "system" ? resolveValue("system") : setting;
|
|
45
|
+
(value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, listeners.forEach((l) => {
|
|
46
|
+
l(currentSetting, currentValue);
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
function setUserScheme(setting) {
|
|
50
|
+
typeof localStorage < "u" && localStorage.setItem(storageKey, setting), updateScheme(setting);
|
|
51
|
+
}
|
|
52
|
+
function getUserScheme() {
|
|
53
|
+
return { setting: currentSetting, value: currentValue };
|
|
54
|
+
}
|
|
55
|
+
function onUserSchemeChange(listener) {
|
|
56
|
+
return listeners.add(listener), listener(currentSetting, currentValue), () => {
|
|
57
|
+
listeners.delete(listener);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function useUserScheme() {
|
|
61
|
+
const [state, setState] = (0, import_react.useState)(() => getUserScheme());
|
|
62
|
+
return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
63
|
+
if (typeof localStorage < "u") {
|
|
64
|
+
const stored = localStorage.getItem(storageKey);
|
|
65
|
+
stored && updateScheme(stored);
|
|
66
|
+
}
|
|
67
|
+
const dispose = onUserSchemeChange((setting, value) => {
|
|
68
|
+
setState({ setting, value });
|
|
69
|
+
});
|
|
70
|
+
return startWebListener(), dispose;
|
|
71
|
+
}, []), (0, import_react.useMemo)(
|
|
72
|
+
() => ({
|
|
73
|
+
setting: state.setting,
|
|
74
|
+
value: state.value,
|
|
75
|
+
set: setUserScheme
|
|
76
|
+
}),
|
|
77
|
+
[state.setting, state.value]
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=userScheme.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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,MAAc,OAAO,aAAa,8BAA8B,IAAI,MAElF,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;AAEO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAEO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAEO,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
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
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: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: !0
|
|
22
|
+
}), mod);
|
|
23
|
+
var userScheme_exports = {};
|
|
24
|
+
__export(userScheme_exports, {
|
|
25
|
+
getUserScheme: () => getUserScheme,
|
|
26
|
+
onUserSchemeChange: () => onUserSchemeChange,
|
|
27
|
+
setUserScheme: () => setUserScheme,
|
|
28
|
+
useUserScheme: () => useUserScheme
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(userScheme_exports);
|
|
31
|
+
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
|
|
32
|
+
import_react = require("react"),
|
|
33
|
+
import_react_native = require("react-native"),
|
|
34
|
+
import_systemScheme = require("./systemScheme.native.js"),
|
|
35
|
+
listeners = /* @__PURE__ */new Set(),
|
|
36
|
+
storageKey = "vxrn-scheme",
|
|
37
|
+
currentSetting = "system",
|
|
38
|
+
currentValue = "light";
|
|
39
|
+
import_react_native.Appearance.addChangeListener(function (next) {
|
|
40
|
+
currentSetting === "system" && next.colorScheme && updateValueFromSystem();
|
|
41
|
+
});
|
|
42
|
+
var cur = import_react_native.Appearance.getColorScheme();
|
|
43
|
+
cur && currentSetting === "system" && (currentValue = cur);
|
|
44
|
+
var isWebListening = !1;
|
|
45
|
+
function startWebListener() {
|
|
46
|
+
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
47
|
+
if (!isWebListening) {
|
|
48
|
+
isWebListening = !0;
|
|
49
|
+
var matcher = typeof window < "u" ? (_window_matchMedia = (_window = window).matchMedia) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.call(_window, "(prefers-color-scheme: dark)") : null,
|
|
50
|
+
onSystemChange = function () {
|
|
51
|
+
currentSetting === "system" && updateValueFromSystem();
|
|
52
|
+
};
|
|
53
|
+
onSystemChange(), matcher == null || (_matcher_addEventListener = matcher.addEventListener) === null || _matcher_addEventListener === void 0 || _matcher_addEventListener.call(matcher, "change", onSystemChange);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function resolveValue(setting) {
|
|
57
|
+
return setting === "system" ? import_react_native.Appearance.getColorScheme() || "light" : setting;
|
|
58
|
+
}
|
|
59
|
+
function updateValueFromSystem() {
|
|
60
|
+
var value = resolveValue("system");
|
|
61
|
+
value !== currentValue && (currentValue = value, import_react_native.Appearance.setColorScheme(value), listeners.forEach(function (l) {
|
|
62
|
+
l(currentSetting, currentValue);
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
function updateScheme(setting) {
|
|
66
|
+
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) {
|
|
68
|
+
l(currentSetting, currentValue);
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
function setUserScheme(setting) {
|
|
72
|
+
typeof localStorage < "u" && localStorage.setItem(storageKey, setting), updateScheme(setting);
|
|
73
|
+
}
|
|
74
|
+
function getUserScheme() {
|
|
75
|
+
return {
|
|
76
|
+
setting: currentSetting,
|
|
77
|
+
value: currentValue
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function onUserSchemeChange(listener) {
|
|
81
|
+
return listeners.add(listener), listener(currentSetting, currentValue), function () {
|
|
82
|
+
listeners.delete(listener);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function useUserScheme() {
|
|
86
|
+
var [state, setState] = (0, import_react.useState)(function () {
|
|
87
|
+
return getUserScheme();
|
|
88
|
+
});
|
|
89
|
+
return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function () {
|
|
90
|
+
if (typeof localStorage < "u") {
|
|
91
|
+
var stored = localStorage.getItem(storageKey);
|
|
92
|
+
stored && updateScheme(stored);
|
|
93
|
+
}
|
|
94
|
+
var dispose = onUserSchemeChange(function (setting, value) {
|
|
95
|
+
setState({
|
|
96
|
+
setting,
|
|
97
|
+
value
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
return startWebListener(), dispose;
|
|
101
|
+
}, []), (0, import_react.useMemo)(function () {
|
|
102
|
+
return {
|
|
103
|
+
setting: state.setting,
|
|
104
|
+
value: state.value,
|
|
105
|
+
set: setUserScheme
|
|
106
|
+
};
|
|
107
|
+
}, [state.setting, state.value]);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=userScheme.native.js.map
|
|
@@ -0,0 +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":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,79 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
setColorScheme,
|
|
3
|
-
useColorScheme as useColorSchemeBase,
|
|
4
|
-
useColorSchemeSetting
|
|
5
|
-
} from "@vxrn/universal-color-scheme";
|
|
6
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { useUserScheme } from "./userScheme";
|
|
3
|
+
import { getSystemScheme, useSystemScheme } from "./systemScheme";
|
|
4
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme";
|
|
9
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
const storageKey = "vxrn-scheme"
|
|
11
|
-
setSchemeSetting("system");
|
|
12
|
-
}, getSetting = () => typeof localStorage < "u" && localStorage.getItem(storageKey) || "system", SchemeContext = createContext({
|
|
13
|
-
setting: "system",
|
|
14
|
-
scheme: "light"
|
|
15
|
-
}), useColorScheme = () => {
|
|
16
|
-
const [state] = useColorSchemeBase();
|
|
17
|
-
return [state, setSchemeSetting];
|
|
18
|
-
};
|
|
19
|
-
function useSchemeSetting() {
|
|
20
|
-
return [useContext(SchemeContext), setSchemeSetting];
|
|
21
|
-
}
|
|
22
|
-
function setSchemeSetting(next) {
|
|
23
|
-
typeof localStorage < "u" && localStorage.setItem(storageKey, next), setColorScheme(next);
|
|
24
|
-
}
|
|
6
|
+
const storageKey = "vxrn-scheme";
|
|
25
7
|
function SchemeProvider({
|
|
26
8
|
children,
|
|
27
|
-
// defaults to tamagui-compatible
|
|
28
9
|
getClassName = (name) => `t_${name}`
|
|
29
10
|
}) {
|
|
30
|
-
const
|
|
11
|
+
const { value } = useUserScheme();
|
|
31
12
|
return useIsomorphicLayoutEffect(() => {
|
|
32
|
-
|
|
33
|
-
const toAdd = getClassName(colorScheme), { classList } = document.documentElement;
|
|
13
|
+
const toAdd = getClassName(value), { classList } = document.documentElement;
|
|
34
14
|
if (!classList.contains(toAdd)) {
|
|
35
|
-
const toRemove =
|
|
15
|
+
const toRemove = value === "light" ? "dark" : "light";
|
|
36
16
|
classList.remove(getClassName(toRemove)), classList.add(toAdd);
|
|
37
17
|
}
|
|
38
|
-
}, [
|
|
18
|
+
}, [value]), /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
39
19
|
/* @__PURE__ */ jsx(
|
|
40
20
|
"script",
|
|
41
21
|
{
|
|
42
22
|
dangerouslySetInnerHTML: {
|
|
43
23
|
__html: `let d = document.documentElement.classList
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
`
|
|
24
|
+
d.remove('${getClassName("light")}')
|
|
25
|
+
d.remove('${getClassName("dark")}')
|
|
26
|
+
let e = localStorage.getItem('${storageKey}')
|
|
27
|
+
let t = 'system' === e || !e
|
|
28
|
+
? window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
29
|
+
: e === 'dark'
|
|
30
|
+
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
|
|
31
|
+
`
|
|
53
32
|
}
|
|
54
33
|
}
|
|
55
34
|
),
|
|
56
|
-
|
|
57
|
-
SchemeContext.Provider,
|
|
58
|
-
{
|
|
59
|
-
value: useMemo(
|
|
60
|
-
() => ({
|
|
61
|
-
scheme: colorScheme,
|
|
62
|
-
setting: colorSchemeSetting
|
|
63
|
-
}),
|
|
64
|
-
[colorScheme, colorSchemeSetting]
|
|
65
|
-
),
|
|
66
|
-
children
|
|
67
|
-
}
|
|
68
|
-
)
|
|
35
|
+
children
|
|
69
36
|
] });
|
|
70
37
|
}
|
|
71
|
-
|
|
38
|
+
function MetaTheme({
|
|
72
39
|
color,
|
|
73
40
|
darkColor,
|
|
74
41
|
lightColor
|
|
75
|
-
})
|
|
76
|
-
const
|
|
42
|
+
}) {
|
|
43
|
+
const { value } = useUserScheme();
|
|
77
44
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
78
45
|
/* @__PURE__ */ jsx(
|
|
79
46
|
"meta",
|
|
@@ -82,7 +49,7 @@ const MetaTheme = ({
|
|
|
82
49
|
suppressHydrationWarning: !0,
|
|
83
50
|
id: "vxrn-theme-color",
|
|
84
51
|
name: "theme-color",
|
|
85
|
-
content: color ?? (
|
|
52
|
+
content: color ?? (value === "dark" ? darkColor : lightColor)
|
|
86
53
|
}
|
|
87
54
|
),
|
|
88
55
|
/* @__PURE__ */ jsx(
|
|
@@ -95,20 +62,20 @@ let dc = document.getElementById('vxrn-theme-color')
|
|
|
95
62
|
let e1 = localStorage.getItem('${storageKey}')
|
|
96
63
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
97
64
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
98
|
-
|
|
65
|
+
`
|
|
99
66
|
}
|
|
100
67
|
}
|
|
101
68
|
)
|
|
102
69
|
] });
|
|
103
|
-
}
|
|
70
|
+
}
|
|
104
71
|
export {
|
|
105
72
|
MetaTheme,
|
|
106
73
|
SchemeProvider,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
74
|
+
getSystemScheme,
|
|
75
|
+
getUserScheme,
|
|
76
|
+
onUserSchemeChange,
|
|
77
|
+
setUserScheme,
|
|
78
|
+
useSystemScheme,
|
|
79
|
+
useUserScheme2 as useUserScheme
|
|
113
80
|
};
|
|
114
81
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.tsx"],
|
|
4
|
-
"mappings": "AAAA
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "AAAA,SAAS,iCAAiC;AAE1C,SAAS,qBAAqB;AAO9B,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,eAAe,oBAAoB,eAAe,iBAAAA,sBAAqB;AA0B5E,mBAEI,KAFJ;AAxBJ,MAAM,aAAa;AAEZ,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,eAAe,CAAC,SAAS,KAAK,IAAI;AACpC,GAGG;AACD,QAAM,EAAE,MAAM,IAAI,cAAc;AAG9B,mCAA0B,MAAM;AAC9B,UAAM,QAAQ,aAAa,KAAK,GAC1B,EAAE,UAAU,IAAI,SAAS;AAC/B,QAAI,CAAC,UAAU,SAAS,KAAK,GAAG;AAC9B,YAAM,WAAW,UAAU,UAAU,SAAS;AAC9C,gBAAU,OAAO,aAAa,QAAQ,CAAC,GACvC,UAAU,IAAI,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC,GAIV,iCAEI;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,yBAAyB;AAAA,UACvB,QAAQ;AAAA,YACR,aAAa,OAAO,CAAC;AAAA,YACrB,aAAa,MAAM,CAAC;AAAA,gCACA,UAAU;AAAA;AAAA;AAAA;AAAA,aAI7B,aAAa,MAAM,CAAC,eAAe,aAAa,OAAO,CAAC;AAAA;AAAA,QAE3D;AAAA;AAAA,IACF;AAAA,IAED;AAAA,KACH;AAEJ;AAEO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,EAAE,MAAM,IAAI,cAAc;AAEhC,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,0BAAwB;AAAA,QACxB,IAAG;AAAA,QACH,MAAK;AAAA,QACL,SAAS,UAAU,UAAU,SAAS,YAAY;AAAA;AAAA,IACpD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA,iCAEe,UAAU;AAAA;AAAA,oCAEP,SAAS,QAAQ,UAAU;AAAA;AAAA,QAEvD;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
|
|
5
|
+
"names": ["useUserScheme"]
|
|
6
6
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,80 +1,56 @@
|
|
|
1
|
-
import { setColorScheme, useColorScheme as useColorSchemeBase, useColorSchemeSetting } from "@vxrn/universal-color-scheme";
|
|
2
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { useUserScheme } from "./userScheme.mjs";
|
|
3
|
+
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
4
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
const storageKey = "vxrn-scheme"
|
|
7
|
-
clearColorSchemeSetting = () => {
|
|
8
|
-
setSchemeSetting("system");
|
|
9
|
-
},
|
|
10
|
-
getSetting = () => typeof localStorage < "u" && localStorage.getItem(storageKey) || "system",
|
|
11
|
-
SchemeContext = createContext({
|
|
12
|
-
setting: "system",
|
|
13
|
-
scheme: "light"
|
|
14
|
-
}),
|
|
15
|
-
useColorScheme = () => {
|
|
16
|
-
const [state] = useColorSchemeBase();
|
|
17
|
-
return [state, setSchemeSetting];
|
|
18
|
-
};
|
|
19
|
-
function useSchemeSetting() {
|
|
20
|
-
return [useContext(SchemeContext), setSchemeSetting];
|
|
21
|
-
}
|
|
22
|
-
function setSchemeSetting(next) {
|
|
23
|
-
typeof localStorage < "u" && localStorage.setItem(storageKey, next), setColorScheme(next);
|
|
24
|
-
}
|
|
6
|
+
const storageKey = "vxrn-scheme";
|
|
25
7
|
function SchemeProvider({
|
|
26
8
|
children,
|
|
27
|
-
// defaults to tamagui-compatible
|
|
28
9
|
getClassName = name => `t_${name}`
|
|
29
10
|
}) {
|
|
30
|
-
const
|
|
31
|
-
|
|
11
|
+
const {
|
|
12
|
+
value
|
|
13
|
+
} = useUserScheme();
|
|
32
14
|
return useIsomorphicLayoutEffect(() => {
|
|
33
|
-
|
|
34
|
-
const toAdd = getClassName(colorScheme),
|
|
15
|
+
const toAdd = getClassName(value),
|
|
35
16
|
{
|
|
36
17
|
classList
|
|
37
18
|
} = document.documentElement;
|
|
38
19
|
if (!classList.contains(toAdd)) {
|
|
39
|
-
const toRemove =
|
|
20
|
+
const toRemove = value === "light" ? "dark" : "light";
|
|
40
21
|
classList.remove(getClassName(toRemove)), classList.add(toAdd);
|
|
41
22
|
}
|
|
42
|
-
}, [
|
|
23
|
+
}, [value]), /* @__PURE__ */jsxs(Fragment, {
|
|
43
24
|
children: [/* @__PURE__ */jsx("script", {
|
|
44
25
|
dangerouslySetInnerHTML: {
|
|
45
26
|
__html: `let d = document.documentElement.classList
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`
|
|
27
|
+
d.remove('${getClassName("light")}')
|
|
28
|
+
d.remove('${getClassName("dark")}')
|
|
29
|
+
let e = localStorage.getItem('${storageKey}')
|
|
30
|
+
let t = 'system' === e || !e
|
|
31
|
+
? window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
32
|
+
: e === 'dark'
|
|
33
|
+
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
|
|
34
|
+
`
|
|
55
35
|
}
|
|
56
|
-
}),
|
|
57
|
-
value: useMemo(() => ({
|
|
58
|
-
scheme: colorScheme,
|
|
59
|
-
setting: colorSchemeSetting
|
|
60
|
-
}), [colorScheme, colorSchemeSetting]),
|
|
61
|
-
children
|
|
62
|
-
})]
|
|
36
|
+
}), children]
|
|
63
37
|
});
|
|
64
38
|
}
|
|
65
|
-
|
|
39
|
+
function MetaTheme({
|
|
66
40
|
color,
|
|
67
41
|
darkColor,
|
|
68
42
|
lightColor
|
|
69
|
-
})
|
|
70
|
-
const
|
|
43
|
+
}) {
|
|
44
|
+
const {
|
|
45
|
+
value
|
|
46
|
+
} = useUserScheme();
|
|
71
47
|
return /* @__PURE__ */jsxs(Fragment, {
|
|
72
48
|
children: [/* @__PURE__ */jsx("meta", {
|
|
73
49
|
itemProp: "__deopt",
|
|
74
50
|
suppressHydrationWarning: !0,
|
|
75
51
|
id: "vxrn-theme-color",
|
|
76
52
|
name: "theme-color",
|
|
77
|
-
content: color ?? (
|
|
53
|
+
content: color ?? (value === "dark" ? darkColor : lightColor)
|
|
78
54
|
}), /* @__PURE__ */jsx("script", {
|
|
79
55
|
id: "meta-theme-hydrate",
|
|
80
56
|
dangerouslySetInnerHTML: {
|
|
@@ -83,10 +59,10 @@ let dc = document.getElementById('vxrn-theme-color')
|
|
|
83
59
|
let e1 = localStorage.getItem('${storageKey}')
|
|
84
60
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
85
61
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
86
|
-
|
|
62
|
+
`
|
|
87
63
|
}
|
|
88
64
|
})]
|
|
89
65
|
});
|
|
90
|
-
}
|
|
91
|
-
export { MetaTheme, SchemeProvider,
|
|
66
|
+
}
|
|
67
|
+
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
92
68
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme2","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","value","toAdd","classList","document","documentElement","contains","toRemove","remove","add","dangerouslySetInnerHTML","__html","MetaTheme","color","darkColor","lightColor","itemProp","suppressHydrationWarning","id","content"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAE1C,SAASC,aAAA,QAAqB;AAO9B,SAASC,eAAA,EAAiBC,eAAA,QAAuB;AACjD,SAASC,aAAA,EAAeC,kBAAA,EAAoBC,aAAA,EAAeL,aAAA,IAAAM,cAAA,QAAqB;AA0B5E,SAAAC,QAAA,EAEIC,GAAA,EAFJC,IAAA;AAxBJ,MAAMC,UAAA,GAAa;AAEZ,SAASC,eAAe;EAC7BC,QAAA;EACAC,YAAA,GAAgBC,IAAA,IAAS,KAAKA,IAAI;AACpC,GAGG;EACD,MAAM;IAAEC;EAAM,IAAIf,aAAA,CAAc;EAG9B,OAAAD,yBAAA,CAA0B,MAAM;IAC9B,MAAMiB,KAAA,GAAQH,YAAA,CAAaE,KAAK;MAC1B;QAAEE;MAAU,IAAIC,QAAA,CAASC,eAAA;IAC/B,IAAI,CAACF,SAAA,CAAUG,QAAA,CAASJ,KAAK,GAAG;MAC9B,MAAMK,QAAA,GAAWN,KAAA,KAAU,UAAU,SAAS;MAC9CE,SAAA,CAAUK,MAAA,CAAOT,YAAA,CAAaQ,QAAQ,CAAC,GACvCJ,SAAA,CAAUM,GAAA,CAAIP,KAAK;IACrB;EACF,GAAG,CAACD,KAAK,CAAC,GAIV,eAAAN,IAAA,CAAAF,QAAA;IAEIK,QAAA,kBAAAJ,GAAA,CAAC;MACCgB,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA,YACRZ,YAAA,CAAa,OAAO,CAAC;AAAA,YACrBA,YAAA,CAAa,MAAM,CAAC;AAAA,gCACAH,UAAU;AAAA;AAAA;AAAA;AAAA,aAI7BG,YAAA,CAAa,MAAM,CAAC,eAAeA,YAAA,CAAa,OAAO,CAAC;AAAA;MAE3D;IAAA,CACF,GAEDD,QAAA;EAAA,CACH;AAEJ;AAEO,SAASc,UAAU;EACxBC,KAAA;EACAC,SAAA;EACAC;AACF,GAIG;EACD,MAAM;IAAEd;EAAM,IAAIf,aAAA,CAAc;EAEhC,OACE,eAAAS,IAAA,CAAAF,QAAA;IACEK,QAAA,kBAAAJ,GAAA,CAAC;MACCsB,QAAA,EAAS;MACTC,wBAAA,EAAwB;MACxBC,EAAA,EAAG;MACHlB,IAAA,EAAK;MACLmB,OAAA,EAASN,KAAA,KAAUZ,KAAA,KAAU,SAASa,SAAA,GAAYC,UAAA;IAAA,CACpD,GACA,eAAArB,GAAA,CAAC;MACCwB,EAAA,EAAG;MACHR,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA;AAAA,iCAEef,UAAU;AAAA;AAAA,oCAEPkB,SAAS,QAAQC,UAAU;AAAA;MAEvD;IAAA,CACF;EAAA,CACF;AAEJ","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,69 +1,40 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { setColorScheme, useColorScheme as useColorSchemeBase, useColorSchemeSetting } from "@vxrn/universal-color-scheme";
|
|
3
2
|
import "@vxrn/use-isomorphic-layout-effect";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
setSchemeSetting("system");
|
|
9
|
-
};
|
|
10
|
-
var SchemeContext = /* @__PURE__ */createContext({
|
|
11
|
-
setting: "system",
|
|
12
|
-
scheme: "light"
|
|
13
|
-
}),
|
|
14
|
-
useColorScheme = function () {
|
|
15
|
-
var [state] = useColorSchemeBase();
|
|
16
|
-
return [state, setSchemeSetting];
|
|
17
|
-
};
|
|
18
|
-
function useSchemeSetting() {
|
|
19
|
-
var values = useContext(SchemeContext);
|
|
20
|
-
return [values, setSchemeSetting];
|
|
21
|
-
}
|
|
22
|
-
function setSchemeSetting(next) {
|
|
23
|
-
typeof localStorage < "u" && localStorage.setItem(storageKey, next), setColorScheme(next);
|
|
24
|
-
}
|
|
3
|
+
import { useUserScheme } from "./userScheme.native.js";
|
|
4
|
+
import { getSystemScheme, useSystemScheme } from "./systemScheme.native.js";
|
|
5
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.native.js";
|
|
6
|
+
var storageKey = "vxrn-scheme";
|
|
25
7
|
function SchemeProvider(param) {
|
|
26
8
|
var {
|
|
27
9
|
children,
|
|
28
|
-
// defaults to tamagui-compatible
|
|
29
10
|
getClassName = function (name) {
|
|
30
11
|
return `t_${name}`;
|
|
31
12
|
}
|
|
32
13
|
} = param,
|
|
33
|
-
|
|
34
|
-
|
|
14
|
+
{
|
|
15
|
+
value
|
|
16
|
+
} = useUserScheme();
|
|
35
17
|
return /* @__PURE__ */_jsxs(_Fragment, {
|
|
36
|
-
children: [null,
|
|
37
|
-
value: useMemo(function () {
|
|
38
|
-
return {
|
|
39
|
-
scheme: colorScheme,
|
|
40
|
-
setting: colorSchemeSetting
|
|
41
|
-
};
|
|
42
|
-
}, [colorScheme, colorSchemeSetting]),
|
|
43
|
-
children
|
|
44
|
-
})]
|
|
18
|
+
children: [null, children]
|
|
45
19
|
});
|
|
46
20
|
}
|
|
47
|
-
|
|
21
|
+
function MetaTheme(param) {
|
|
48
22
|
var {
|
|
49
23
|
color,
|
|
50
24
|
darkColor,
|
|
51
25
|
lightColor
|
|
52
26
|
} = param,
|
|
53
|
-
|
|
27
|
+
{
|
|
28
|
+
value
|
|
29
|
+
} = useUserScheme();
|
|
54
30
|
return /* @__PURE__ */_jsxs(_Fragment, {
|
|
55
|
-
children: [/*
|
|
56
|
-
/* maybe bug in safari or react */
|
|
57
|
-
/* @__PURE__ */_jsx("meta", {
|
|
31
|
+
children: [/* @__PURE__ */_jsx("meta", {
|
|
58
32
|
itemProp: "__deopt",
|
|
59
|
-
// because the script below runs before render it actually ruins our nice ssr logic here
|
|
60
|
-
// instead we just avoid the warning its a single tag
|
|
61
33
|
suppressHydrationWarning: !0,
|
|
62
34
|
id: "vxrn-theme-color",
|
|
63
35
|
name: "theme-color",
|
|
64
|
-
content: color ?? (
|
|
65
|
-
}), /*
|
|
66
|
-
/* @__PURE__ */_jsx("script", {
|
|
36
|
+
content: color ?? (value === "dark" ? darkColor : lightColor)
|
|
37
|
+
}), /* @__PURE__ */_jsx("script", {
|
|
67
38
|
id: "meta-theme-hydrate",
|
|
68
39
|
dangerouslySetInnerHTML: {
|
|
69
40
|
__html: `
|
|
@@ -71,10 +42,10 @@ let dc = document.getElementById('vxrn-theme-color')
|
|
|
71
42
|
let e1 = localStorage.getItem('${storageKey}')
|
|
72
43
|
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
73
44
|
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
74
|
-
|
|
45
|
+
`
|
|
75
46
|
}
|
|
76
47
|
})]
|
|
77
48
|
});
|
|
78
|
-
}
|
|
79
|
-
export { MetaTheme, SchemeProvider,
|
|
49
|
+
}
|
|
50
|
+
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
80
51
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme2","storageKey","SchemeProvider","param","children","getClassName","name","value","MetaTheme","color","darkColor","lightColor","itemProp","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAiC,IAAAC,SAAA;AAE1C,2CAA8B;AAO9B,SAASC,aAAA,QAAiB;AAC1B,SAASC,eAAe,EAAAC,eAAA,QAAoB,0BAAe;AA0BvD,SAAAC,aAEI,EAFJC,kBAAA,EAAAC,aAAA,EAAAL,aAAA,IAAAM,cAAA;AAxBJ,IAAAC,UAAM,gBAAa;AAEZ,SAASC,eAAeC,KAAA;EAC7B;MAAAC,QAAA;MAAAC,YAAA,YAAAA,CAAAC,IAAA;QACA,YAAAA,IAAgB;MAClB;IAGG,IAAAH,KAAA;IAAA;MAAAI;IAAA,IAAAb,aAAA;EACD,OAAM,eAAYH,KAAA,CAAAE,SAAc;IAG9BW,QAAA,GACE,IAAM,EAENA,QAAK;EAEH;AACmB;AACrB,SACEI,SAIJA,CAAAL,KAAA;EAEI;MAAAM,KAAA;MAAAC,SAAA;MAAAC;IAAA,IAAAR,KAAA;IAAA;MAAAI;IAAA,IAAAb,aAAA;EAAA,OAAC,eAAAH,KAAA,CAAAE,SAAA;IAAAW,QAAA,kBACCf,IAAA,OAAyB;MAAAuB,QACvB,EAAQ;MAAAC,wBACY,EAAC;MAAAC,EAAA,EACrB,kBAAa;MAAOR,IAAA;MACUS,OAAA,EAAAN,KAAA,KAAAF,KAAA,cAAAG,SAAA,GAAAC,UAAA;IAAA,mBAAAtB,IAAA;MAAAyB,EAAA,sBAIV;MAAqCE,uBAAA;QAE3DC,MAAA;AAAA;AAAA,iCACFhB,UAAA;AAAA;AAED,oCACHS,SAAA,QAAAC,UAAA;AAEJ;MAEO;IACL;EAEA;AACF;AAKE,SAEAH,SACE,EACEN,cAAA,EAAAP,eAAC,EAAAE,aAAA,EAAAC,kBACU,EAAAC,aACT,EAAwBH,eACrB,EAAAI,cACE,IAAAN,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
const media = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
|
|
4
|
+
function getSystemScheme() {
|
|
5
|
+
return media?.matches ? "dark" : "light";
|
|
6
|
+
}
|
|
7
|
+
function useSystemScheme() {
|
|
8
|
+
const [scheme, setScheme] = useState("light");
|
|
9
|
+
return useIsomorphicLayoutEffect(() => {
|
|
10
|
+
setScheme(getSystemScheme());
|
|
11
|
+
const onChange = () => setScheme(getSystemScheme());
|
|
12
|
+
return media?.addEventListener("change", onChange), () => media?.removeEventListener("change", onChange);
|
|
13
|
+
}, []), scheme;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
getSystemScheme,
|
|
17
|
+
useSystemScheme
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=systemScheme.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/systemScheme.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AAIzB,MAAM,QACJ,OAAO,SAAW,OAAe,OAAO,aACpC,OAAO,WAAW,8BAA8B,IAChD;AAEC,SAAS,kBAA0B;AACxC,SAAO,OAAO,UAAU,SAAS;AACnC;AAEO,SAAS,kBAA0B;AACxC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAiB,OAAO;AAEpD,mCAA0B,MAAM;AAC9B,cAAU,gBAAgB,CAAC;AAC3B,UAAM,WAAW,MAAM,UAAU,gBAAgB,CAAC;AAClD,kBAAO,iBAAiB,UAAU,QAAQ,GACnC,MAAM,OAAO,oBAAoB,UAAU,QAAQ;AAAA,EAC5D,GAAG,CAAC,CAAC,GAEE;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|