@vxrn/color-scheme 1.25.4 → 1.25.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/package.json +2 -2
- package/dist/cjs/index.cjs +0 -121
- package/dist/cjs/index.native.js +0 -96
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/safeStorage.cjs +0 -40
- package/dist/cjs/safeStorage.native.js +0 -43
- package/dist/cjs/safeStorage.native.js.map +0 -1
- package/dist/cjs/safeStorage.test.cjs +0 -49
- package/dist/cjs/safeStorage.test.native.js +0 -66
- package/dist/cjs/safeStorage.test.native.js.map +0 -1
- package/dist/cjs/systemScheme.cjs +0 -44
- package/dist/cjs/systemScheme.native.js +0 -64
- package/dist/cjs/systemScheme.native.js.map +0 -1
- package/dist/cjs/userScheme.cjs +0 -156
- package/dist/cjs/userScheme.native.js +0 -171
- package/dist/cjs/userScheme.native.js.map +0 -1
- package/dist/cjs/userSchemeAppearance.cjs +0 -35
- package/dist/cjs/userSchemeAppearance.native.js +0 -42
- package/dist/cjs/userSchemeAppearance.native.js.map +0 -1
- package/dist/esm/index.js +0 -88
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs +0 -88
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -58
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/safeStorage.mjs +0 -14
- package/dist/esm/safeStorage.mjs.map +0 -1
- package/dist/esm/safeStorage.native.js +0 -14
- package/dist/esm/safeStorage.native.js.map +0 -1
- package/dist/esm/safeStorage.test.mjs +0 -50
- package/dist/esm/safeStorage.test.mjs.map +0 -1
- package/dist/esm/safeStorage.test.native.js +0 -64
- package/dist/esm/safeStorage.test.native.js.map +0 -1
- package/dist/esm/systemScheme.mjs +0 -18
- package/dist/esm/systemScheme.mjs.map +0 -1
- package/dist/esm/systemScheme.native.js +0 -35
- package/dist/esm/systemScheme.native.js.map +0 -1
- package/dist/esm/userScheme.mjs +0 -125
- package/dist/esm/userScheme.mjs.map +0 -1
- package/dist/esm/userScheme.native.js +0 -137
- package/dist/esm/userScheme.native.js.map +0 -1
- package/dist/esm/userSchemeAppearance.mjs +0 -8
- package/dist/esm/userSchemeAppearance.mjs.map +0 -1
- package/dist/esm/userSchemeAppearance.native.js +0 -12
- package/dist/esm/userSchemeAppearance.native.js.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/safeStorage.d.ts.map +0 -1
- package/types/safeStorage.test.d.ts.map +0 -1
- package/types/systemScheme.d.ts.map +0 -1
- package/types/systemScheme.native.d.ts.map +0 -1
- package/types/userScheme.d.ts.map +0 -1
- package/types/userSchemeAppearance.d.ts.map +0 -1
- package/types/userSchemeAppearance.native.d.ts.map +0 -1
package/dist/cjs/userScheme.cjs
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
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 userScheme_exports = {};
|
|
24
|
-
__export(userScheme_exports, {
|
|
25
|
-
getForceScheme: () => getForceScheme,
|
|
26
|
-
getUserScheme: () => getUserScheme,
|
|
27
|
-
onUserSchemeChange: () => onUserSchemeChange,
|
|
28
|
-
setForceScheme: () => setForceScheme,
|
|
29
|
-
setUserScheme: () => setUserScheme,
|
|
30
|
-
useUserScheme: () => useUserScheme
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(userScheme_exports);
|
|
33
|
-
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
34
|
-
var import_react = require("react");
|
|
35
|
-
var import_safeStorage = require("./safeStorage.cjs");
|
|
36
|
-
var import_systemScheme = require("./systemScheme.cjs");
|
|
37
|
-
require("./userSchemeAppearance.cjs");
|
|
38
|
-
const listeners = /* @__PURE__ */new Set();
|
|
39
|
-
const storageKey = "vxrn-scheme";
|
|
40
|
-
let _forceScheme = null;
|
|
41
|
-
function notifyListeners() {
|
|
42
|
-
listeners.forEach(listener => {
|
|
43
|
-
listener(currentSetting, currentValue);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function restoreUnforcedScheme() {
|
|
47
|
-
const stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
48
|
-
if (stored) {
|
|
49
|
-
currentSetting = stored;
|
|
50
|
-
currentValue = stored === "system" ? resolveValue("system") : stored;
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
currentSetting = "system";
|
|
54
|
-
currentValue = resolveValue("system");
|
|
55
|
-
}
|
|
56
|
-
function setForceScheme(scheme) {
|
|
57
|
-
const wasForced = _forceScheme;
|
|
58
|
-
if (wasForced === scheme) return;
|
|
59
|
-
_forceScheme = scheme;
|
|
60
|
-
if (scheme) {
|
|
61
|
-
currentSetting = scheme;
|
|
62
|
-
currentValue = scheme;
|
|
63
|
-
} else if (wasForced) {
|
|
64
|
-
restoreUnforcedScheme();
|
|
65
|
-
startWebListener();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function getForceScheme() {
|
|
69
|
-
return _forceScheme;
|
|
70
|
-
}
|
|
71
|
-
function getInitialSetting() {
|
|
72
|
-
return "system";
|
|
73
|
-
}
|
|
74
|
-
function getInitialValue(setting) {
|
|
75
|
-
return "light";
|
|
76
|
-
}
|
|
77
|
-
const initialSetting = getInitialSetting();
|
|
78
|
-
let currentSetting = initialSetting;
|
|
79
|
-
let currentValue = getInitialValue(initialSetting);
|
|
80
|
-
let isWebListening = false;
|
|
81
|
-
function startWebListener() {
|
|
82
|
-
if (isWebListening) return;
|
|
83
|
-
isWebListening = true;
|
|
84
|
-
const matcher = typeof window !== "undefined" ? window.matchMedia?.("(prefers-color-scheme: dark)") : null;
|
|
85
|
-
const onSystemChange = () => {
|
|
86
|
-
if (currentSetting === "system") updateValueFromSystem();
|
|
87
|
-
};
|
|
88
|
-
onSystemChange();
|
|
89
|
-
matcher?.addEventListener?.("change", onSystemChange);
|
|
90
|
-
}
|
|
91
|
-
function resolveValue(setting) {
|
|
92
|
-
if (setting === "system") return (0, import_systemScheme.getSystemScheme)();
|
|
93
|
-
return setting;
|
|
94
|
-
}
|
|
95
|
-
function updateValueFromSystem() {
|
|
96
|
-
if (_forceScheme) return;
|
|
97
|
-
const value = resolveValue("system");
|
|
98
|
-
if (value !== currentValue) {
|
|
99
|
-
currentValue = value;
|
|
100
|
-
notifyListeners();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function updateScheme(setting) {
|
|
104
|
-
if (_forceScheme) return;
|
|
105
|
-
const value = setting === "system" ? resolveValue("system") : setting;
|
|
106
|
-
if (value !== currentValue || currentSetting !== setting) {
|
|
107
|
-
currentSetting = setting;
|
|
108
|
-
currentValue = value;
|
|
109
|
-
notifyListeners();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function setUserScheme(setting) {
|
|
113
|
-
if (_forceScheme) return;
|
|
114
|
-
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
115
|
-
updateScheme(setting);
|
|
116
|
-
}
|
|
117
|
-
function getUserScheme() {
|
|
118
|
-
if (_forceScheme) return {
|
|
119
|
-
setting: _forceScheme,
|
|
120
|
-
value: _forceScheme
|
|
121
|
-
};
|
|
122
|
-
return {
|
|
123
|
-
setting: currentSetting,
|
|
124
|
-
value: currentValue
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
function onUserSchemeChange(listener) {
|
|
128
|
-
listeners.add(listener);
|
|
129
|
-
listener(currentSetting, currentValue);
|
|
130
|
-
return () => {
|
|
131
|
-
listeners.delete(listener);
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function useUserScheme() {
|
|
135
|
-
const [state, setState] = (0, import_react.useState)(() => getUserScheme());
|
|
136
|
-
const snapshot = getUserScheme();
|
|
137
|
-
const resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
138
|
-
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
139
|
-
if (!_forceScheme) {
|
|
140
|
-
const stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
141
|
-
if (stored) updateScheme(stored);
|
|
142
|
-
startWebListener();
|
|
143
|
-
}
|
|
144
|
-
return onUserSchemeChange((setting, value) => {
|
|
145
|
-
setState({
|
|
146
|
-
setting,
|
|
147
|
-
value
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
}, []);
|
|
151
|
-
return (0, import_react.useMemo)(() => ({
|
|
152
|
-
setting: resolvedState.setting,
|
|
153
|
-
value: resolvedState.value,
|
|
154
|
-
set: setUserScheme
|
|
155
|
-
}), [resolvedState.setting, resolvedState.value]);
|
|
156
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
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 userScheme_exports = {};
|
|
26
|
-
__export(userScheme_exports, {
|
|
27
|
-
getForceScheme: () => getForceScheme,
|
|
28
|
-
getUserScheme: () => getUserScheme,
|
|
29
|
-
onUserSchemeChange: () => onUserSchemeChange,
|
|
30
|
-
setForceScheme: () => setForceScheme,
|
|
31
|
-
setUserScheme: () => setUserScheme,
|
|
32
|
-
useUserScheme: () => useUserScheme
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(userScheme_exports);
|
|
35
|
-
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
36
|
-
var import_react = require("react");
|
|
37
|
-
var import_safeStorage = require("./safeStorage.native.js");
|
|
38
|
-
require("./systemScheme.native.js");
|
|
39
|
-
var import_userSchemeAppearance = require("./userSchemeAppearance.native.js");
|
|
40
|
-
var listeners = /* @__PURE__ */new Set();
|
|
41
|
-
var storageKey = "vxrn-scheme";
|
|
42
|
-
var _forceScheme = null;
|
|
43
|
-
function notifyListeners() {
|
|
44
|
-
listeners.forEach(function (listener) {
|
|
45
|
-
listener(currentSetting, currentValue);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function restoreUnforcedScheme() {
|
|
49
|
-
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
50
|
-
if (stored) {
|
|
51
|
-
currentSetting = stored;
|
|
52
|
-
currentValue = stored === "system" ? resolveValue("system") : stored;
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
currentSetting = "system";
|
|
56
|
-
currentValue = resolveValue("system");
|
|
57
|
-
}
|
|
58
|
-
function setForceScheme(scheme) {
|
|
59
|
-
var wasForced = _forceScheme;
|
|
60
|
-
if (wasForced === scheme) return;
|
|
61
|
-
_forceScheme = scheme;
|
|
62
|
-
if (scheme) {
|
|
63
|
-
currentSetting = scheme;
|
|
64
|
-
currentValue = scheme;
|
|
65
|
-
} else if (wasForced) {
|
|
66
|
-
restoreUnforcedScheme();
|
|
67
|
-
startWebListener();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
function getForceScheme() {
|
|
71
|
-
return _forceScheme;
|
|
72
|
-
}
|
|
73
|
-
function getInitialSetting() {
|
|
74
|
-
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
75
|
-
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
76
|
-
return "system";
|
|
77
|
-
}
|
|
78
|
-
function getInitialValue(setting) {
|
|
79
|
-
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
80
|
-
return setting;
|
|
81
|
-
}
|
|
82
|
-
var initialSetting = getInitialSetting();
|
|
83
|
-
var currentSetting = initialSetting;
|
|
84
|
-
var currentValue = getInitialValue(initialSetting);
|
|
85
|
-
(0, import_userSchemeAppearance.addAppearanceChangeListener)(function () {
|
|
86
|
-
if (currentSetting === "system") updateValueFromSystem();
|
|
87
|
-
});
|
|
88
|
-
var isWebListening = false;
|
|
89
|
-
function startWebListener() {
|
|
90
|
-
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
91
|
-
if (isWebListening) return;
|
|
92
|
-
isWebListening = true;
|
|
93
|
-
var matcher = typeof window !== "undefined" ? (_window_matchMedia = (_window = window).matchMedia) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.call(_window, "(prefers-color-scheme: dark)") : null;
|
|
94
|
-
var onSystemChange = function () {
|
|
95
|
-
if (currentSetting === "system") updateValueFromSystem();
|
|
96
|
-
};
|
|
97
|
-
onSystemChange();
|
|
98
|
-
matcher === null || matcher === void 0 || (_matcher_addEventListener = matcher.addEventListener) == null || _matcher_addEventListener.call(matcher, "change", onSystemChange);
|
|
99
|
-
}
|
|
100
|
-
function resolveValue(setting) {
|
|
101
|
-
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
102
|
-
return setting;
|
|
103
|
-
}
|
|
104
|
-
function updateValueFromSystem() {
|
|
105
|
-
if (_forceScheme) return;
|
|
106
|
-
var value = resolveValue("system");
|
|
107
|
-
if (value !== currentValue) {
|
|
108
|
-
currentValue = value;
|
|
109
|
-
notifyListeners();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function updateScheme(setting) {
|
|
113
|
-
if (_forceScheme) return;
|
|
114
|
-
var value = setting === "system" ? resolveValue("system") : setting;
|
|
115
|
-
if (value !== currentValue || currentSetting !== setting) {
|
|
116
|
-
currentSetting = setting;
|
|
117
|
-
currentValue = value;
|
|
118
|
-
if (setting !== "system") (0, import_userSchemeAppearance.setAppearanceScheme)(value);else (0, import_userSchemeAppearance.setAppearanceScheme)("unspecified");
|
|
119
|
-
notifyListeners();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function setUserScheme(setting) {
|
|
123
|
-
if (_forceScheme) return;
|
|
124
|
-
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
125
|
-
updateScheme(setting);
|
|
126
|
-
}
|
|
127
|
-
function getUserScheme() {
|
|
128
|
-
if (_forceScheme) return {
|
|
129
|
-
setting: _forceScheme,
|
|
130
|
-
value: _forceScheme
|
|
131
|
-
};
|
|
132
|
-
return {
|
|
133
|
-
setting: currentSetting,
|
|
134
|
-
value: currentValue
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
function onUserSchemeChange(listener) {
|
|
138
|
-
listeners.add(listener);
|
|
139
|
-
listener(currentSetting, currentValue);
|
|
140
|
-
return function () {
|
|
141
|
-
listeners.delete(listener);
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
function useUserScheme() {
|
|
145
|
-
var [state, setState] = (0, import_react.useState)(function () {
|
|
146
|
-
return getUserScheme();
|
|
147
|
-
});
|
|
148
|
-
var snapshot = getUserScheme();
|
|
149
|
-
var resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
150
|
-
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function () {
|
|
151
|
-
if (!_forceScheme) {
|
|
152
|
-
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
153
|
-
if (stored) updateScheme(stored);
|
|
154
|
-
startWebListener();
|
|
155
|
-
}
|
|
156
|
-
return onUserSchemeChange(function (setting, value) {
|
|
157
|
-
setState({
|
|
158
|
-
setting,
|
|
159
|
-
value
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
}, []);
|
|
163
|
-
return (0, import_react.useMemo)(function () {
|
|
164
|
-
return {
|
|
165
|
-
setting: resolvedState.setting,
|
|
166
|
-
value: resolvedState.value,
|
|
167
|
-
set: setUserScheme
|
|
168
|
-
};
|
|
169
|
-
}, [resolvedState.setting, resolvedState.value]);
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=userScheme.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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_safeStorage","import_userSchemeAppearance","listeners","Set","storageKey","_forceScheme","notifyListeners","forEach","listener","currentSetting","currentValue","restoreUnforcedScheme","stored","getStorageItem","resolveValue","scheme","wasForced","startWebListener","getInitialSetting","getInitialValue","setting","getAppearanceScheme","initialSetting","addAppearanceChangeListener","updateValueFromSystem","isWebListening","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","updateScheme","setAppearanceScheme","setStorageItem","add","delete","state","setState","useState","snapshot","resolvedState","useIsomorphicLayoutEffect","useMemo","set"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA,kBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EACAC,aAAA,EAAAA,CAAA,KAAkCA;AAClC;AACAC,MAAA,CAAAC,OAAA,GAAAd,YAA6C,CAAAK,kBAAA;AAC7C,IAAAU,mCAIO,GAAAC,OAAA;AAeP,IAAAC,YAAM,GAAYD,OAAA;AAClB,IAAAE,kBAAmB,GAAAF,OAAA;AAGnBA,OAAI,2BAA8B;AAElC,IAAAG,2BAA2B,GAAAH,OAAA;AACzB,IAAAI,SAAU,kBAAS,IAAaC,GAAA;AAC9B,IAAAC,UAAS,gBAAgB;AAAY,IACtCC,YAAA;AACH,SAAAC,gBAAA;EAEAJ,SAAS,CAAAK,OAAA,WAAAC,QAAwB;IAC/BA,QAAM,CAAAC,cAAS,EAAAC,YAAA;EACf;AACE;AACA,SAAAC,qBAA0BA,CAAA;EAC1B,IAAAC,MAAA,OAAAZ,kBAAA,CAAAa,cAAA,EAAAT,UAAA;EAAA,IACFQ,MAAA;IAEAH,cAAA,GAAiBG,MAAA;IACjBF,YAAA,GAAeE,MAAA,aAAa,GAAQE,YAAA,aAAAF,MAAA;IACtC;EAOO;EACLH,cAAM,WAAY;EAElBC,YAAI,GAAAI,YAAsB;AAE1B;AAEA,SAAItB,cAAQA,CAAAuB,MAAA;EACV,IAAAC,SAAA,GAAAX,YAAiB;EACjB,IAAAW,SAAA,KAAeD,MAAA;EAAAV,YACN,GAAAU,MAAA;EACT,IAAAA,MAAA;IACAN,cAAA,GAAAM,MAAiB;IACnBL,YAAA,GAAAK,MAAA;EACF,WAAAC,SAAA;IAEOL,qBAAS;IACdM,gBAAO;EACT;AAGA;AACE,SAAI5B,cAAYA,CAAA;EACd,OAAAgB,YAAM;AACN;AACE,SAAAa,iBAAOA,CAAA;EAAA,IACTN,MAAA,OAAAZ,kBAAA,CAAAa,cAAA,EAAAT,UAAA;EAAA,IACFQ,MAAA,gBAAAA,MAAA,eAAAA,MAAA,sBAAAA,MAAA;EAEA,eAAO;AACT;AAEA,SAASO,gBAAgBC,OAAA,EAAgC;EACvD,IAAAA,OAAI,KAAQ,QAAI,aAAmBnB,2BAAU,CAAAoB,mBAAA;EAC3C,OAAID,OAAA;AACF;AAA2B,IAC7BE,cAAA,GAAAJ,iBAAA;AACA,IAAAT,cAAO,GAAAa,cAAA;AAAA,IACTZ,YAAA,GAAAS,eAAA,CAAAG,cAAA;AAEA,IAAArB,2BAAO,CAAAsB,2BAAA;EACT,IAAAd,cAAA,eAAAe,qBAAA;AACA;AACA,IAAIC,cAAA,GAAgC;AACpC,SAAIR,gBAAuBA,CAAA;EAG3B,IAAIS,kBAAY,EAAAC,OAAA,EAAAC,yBAA6B;EAC3C,IAAAH,cAAA;EACEA,cAAI;EACF,IAAAI,OAAA,UAAAC,MAAsB,oBAAAJ,kBAAA,IAAAC,OAAA,GAAAG,MAAA,EAAAC,UAAA,cAAAL,kBAAA,uBAAAA,kBAAA,CAAAM,IAAA,CAAAL,OAAA;EAAA,IACxBM,cAAA,YAAAA,CAAA;IACF,IAACxB,cAAA,eAAAe,qBAAA;EACH;EAGAS,cAAI;EACJJ,OAAA,KAAS,QAAAA,OAAmB,gBAAAD,yBAAA,GAAAC,OAAA,CAAAK,gBAAA,aAAAN,yBAAA,CAAAI,IAAA,CAAAH,OAAA,YAAAI,cAAA;AAC1B;AACA,SAAAnB,YAAiBA,CAAAM,OAAA;EAEjB,IAAAA,OAAM,aACG,WAAW,EAAAnB,2BACP,CAAAoB,mBAAa;EAG1B,OAAMD,OAAA;AACJ;AACE,SAAAI,qBAAsBA,CAAA;EAAA,IACxBnB,YAAA;EAAA,IACFnB,KAAA,GAAA4B,YAAA;EAEA,IAAA5B,KAAA,KAAAwB,YAAe;IACfA,YAAS,GAAAxB,KAAA;IACXoB,eAAA;EAEA;AACE;AACE,SAAI6B,YAAYA,CAAAf,OAAA;EACd,IAAAf,YAAO;EAAoB,IAC7BnB,KAAA,GAAAkC,OAAA,gBAAAN,YAAA,aAAAM,OAAA;EACA,IAAAlC,KAAA,KAAOwB,YAAA,IAAAD,cAAA,KAAAW,OAAgB;IACzBX,cAAA,GAAAW,OAAA;IACAV,YAAO,GAAAxB,KAAA;IACT,IAAAkC,OAAA,mBAAAnB,2BAAA,CAAAmC,mBAAA,EAAAlD,KAAA,OAGA,EAAS,EAAAe,2BAAwB,CAAAmC,mBAAA;IAC/B9B,eAAI,EAAc;EAClB;AACA;AACE,SAAAb,aAAeA,CAAA2B,OAAA;EAEf,IAAAf,YAAA;EAAgB,CAClB,GAAAL,kBAAA,CAAAqC,cAAA,EAAAjC,UAAA,EAAAgB,OAAA;EACFe,YAAA,CAAAf,OAAA;AAEA;AACE,SAAI9B,aAAcA,CAAA;EAClB,IAAAe,YAAc;IAEde,OAAI,EAAAf,YAAU;IACZnB,KAAA,EAAAmB;EACA;EAEA,OAAI;IAGFe,OAAA,EAAIX,cAAY;IACdvB,KAAA,EAAAwB;EAAyB;AAGzB;AAAiC,SACnCnB,mBAAAiB,QAAA;EAAAN,SACF,CAAAoC,GAAA,CAAA9B,QAAA;EAEAA,QAAA,CAAAC,cAAgB,EAAAC,YAAA;EAAA,OAClB;IACFR,SAAA,CAAAqC,MAAA,CAAA/B,QAAA;EAQO;AACL;AACA,SAAAd,cAAA;EACA,KAAA8C,KAAA,EAAAC,QAAa,CAAO,OAAA1C,YAAA,CAAA2C,QAAA;IACtB,OAAApD,aAAA;EAOO;EACL,IAAAqD,QAAI,GAAArD,aAAuB;EAC3B,IAAAsD,aAAS,GAASJ,KAAA,CAAApB,OAAA,KAAgBuB,QAAO,CAAAvB,OAAA,IAAaoB,KAAA,CAAAtD,KAAA,KAAAyD,QAAA,CAAAzD,KAAA,GAAAsD,KAAA,GAAAG,QAAA;EACxD,IAAA9C,mCAAA,CAAAgD,yBAAA;IAQO,KAAAxC,YAAS;MACd,IAAAO,MAAU,GAAI,IAAAZ,kBAAQ,CAAAa,cAAA,EAAAT,UAAA;MACtB,IAAAQ,MAAS,EAAAuB,YAAgB,CAAAvB,MAAA;MACzBK,gBAAa;IACX;IACF,OAAA1B,kBAAA,WAAA6B,OAAA,EAAAlC,KAAA;MACFuD,QAAA;QAeOrB,OAAS;QACdlC;MACA;IACA;EAKA;EACE,OAAI,CAAC,GAAAa,YAAc,CAAA+C,OAAA;IAEjB;MACA1B,OAAI,EAAAwB,aAAQ,CAAAxB,OAAA;MACVlC,KAAA,EAAA0D,aAAa,CAAA1D,KAAM;MAAA6D,GACrB,EAAAtD;IACA;EAAiB,GACnB,CAAAmD,aAAA,CAAAxB,OAAA,EAAAwB,aAAA,CAAA1D,KAAA;AAGA","ignoreList":[]}
|
|
@@ -1,35 +0,0 @@
|
|
|
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 userSchemeAppearance_exports = {};
|
|
24
|
-
__export(userSchemeAppearance_exports, {
|
|
25
|
-
addAppearanceChangeListener: () => addAppearanceChangeListener,
|
|
26
|
-
getAppearanceScheme: () => getAppearanceScheme,
|
|
27
|
-
setAppearanceScheme: () => setAppearanceScheme
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(userSchemeAppearance_exports);
|
|
30
|
-
var import_systemScheme = require("./systemScheme.cjs");
|
|
31
|
-
function getAppearanceScheme() {
|
|
32
|
-
return (0, import_systemScheme.getSystemScheme)();
|
|
33
|
-
}
|
|
34
|
-
function setAppearanceScheme(_scheme) {}
|
|
35
|
-
function addAppearanceChangeListener(_listener) {}
|
|
@@ -1,42 +0,0 @@
|
|
|
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 userSchemeAppearance_native_exports = {};
|
|
26
|
-
__export(userSchemeAppearance_native_exports, {
|
|
27
|
-
addAppearanceChangeListener: () => addAppearanceChangeListener,
|
|
28
|
-
getAppearanceScheme: () => getAppearanceScheme,
|
|
29
|
-
setAppearanceScheme: () => setAppearanceScheme
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(userSchemeAppearance_native_exports);
|
|
32
|
-
var import_react_native = require("react-native");
|
|
33
|
-
function getAppearanceScheme() {
|
|
34
|
-
return import_react_native.Appearance.getColorScheme() === "dark" ? "dark" : "light";
|
|
35
|
-
}
|
|
36
|
-
function setAppearanceScheme(scheme) {
|
|
37
|
-
import_react_native.Appearance.setColorScheme(scheme);
|
|
38
|
-
}
|
|
39
|
-
function addAppearanceChangeListener(listener) {
|
|
40
|
-
import_react_native.Appearance.addChangeListener(listener);
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=userSchemeAppearance.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["userSchemeAppearance_native_exports","__export","addAppearanceChangeListener","getAppearanceScheme","setAppearanceScheme","module","exports","__toCommonJS","import_react_native","require","Appearance","getColorScheme","scheme","setColorScheme","listener","addChangeListener"],"sources":["../../src/userSchemeAppearance.native.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mCAAA;AAAAC,QAAA,CAAAD,mCAAA;EAAAE,2BAAA,EAAAA,CAAA,KAAAA,2BAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAP,mCAAA;AAAA,IAAAQ,mBAAA,GAA2BC,OAAA;AACpB,SAASN,oBAAA,EAAsB;EAClC,OAAOK,mBAAA,CAAAE,UAAA,CAAWC,cAAA,CAAe,MAAM,SAAS,SAAS;AAC7D;AACO,SAASP,oBAAoBQ,MAAA,EAAQ;EACxCJ,mBAAA,CAAAE,UAAA,CAAWG,cAAA,CAAeD,MAAM;AACpC;AACO,SAASV,4BAA4BY,QAAA,EAAU;EAClDN,mBAAA,CAAAE,UAAA,CAAWK,iBAAA,CAAkBD,QAAQ;AACzC","ignoreList":[]}
|
package/dist/esm/index.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
-
import { getStorageItem } from "./safeStorage.mjs";
|
|
3
|
-
import { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
4
|
-
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
5
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
const storageKey = "vxrn-scheme";
|
|
7
|
-
function SchemeProvider({
|
|
8
|
-
children,
|
|
9
|
-
getClassName = name => `t_${name}`,
|
|
10
|
-
defaultScheme,
|
|
11
|
-
forceScheme
|
|
12
|
-
}) {
|
|
13
|
-
setForceScheme(forceScheme ?? null);
|
|
14
|
-
const {
|
|
15
|
-
value
|
|
16
|
-
} = useUserScheme();
|
|
17
|
-
const resolvedValue = forceScheme ?? value;
|
|
18
|
-
useIsomorphicLayoutEffect(() => {
|
|
19
|
-
if (!forceScheme && defaultScheme) {
|
|
20
|
-
if (!getStorageItem(storageKey)) setUserScheme(defaultScheme);
|
|
21
|
-
}
|
|
22
|
-
}, [defaultScheme, forceScheme]);
|
|
23
|
-
useIsomorphicLayoutEffect(() => {
|
|
24
|
-
const toAdd = getClassName(resolvedValue);
|
|
25
|
-
const toRemove = getClassName(resolvedValue === "light" ? "dark" : "light");
|
|
26
|
-
const {
|
|
27
|
-
classList
|
|
28
|
-
} = document.documentElement;
|
|
29
|
-
classList.remove(toRemove);
|
|
30
|
-
if (!classList.contains(toAdd)) classList.add(toAdd);
|
|
31
|
-
}, [getClassName, resolvedValue]);
|
|
32
|
-
let scriptContent;
|
|
33
|
-
if (forceScheme) scriptContent = `let d = document.documentElement.classList
|
|
34
|
-
d.remove('${getClassName("light")}')
|
|
35
|
-
d.remove('${getClassName("dark")}')
|
|
36
|
-
d.add('${getClassName(forceScheme)}')`;else {
|
|
37
|
-
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
38
|
-
const seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
39
|
-
scriptContent = `let d = document.documentElement.classList
|
|
40
|
-
d.remove('${getClassName("light")}')
|
|
41
|
-
d.remove('${getClassName("dark")}')
|
|
42
|
-
let e = null
|
|
43
|
-
try { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}
|
|
44
|
-
let t = 'system' === e || !e
|
|
45
|
-
? ${fallback}
|
|
46
|
-
: e === 'dark'
|
|
47
|
-
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')`;
|
|
48
|
-
}
|
|
49
|
-
return /* @__PURE__ */jsxs(Fragment, {
|
|
50
|
-
children: [/* @__PURE__ */jsx("script", {
|
|
51
|
-
suppressHydrationWarning: true,
|
|
52
|
-
dangerouslySetInnerHTML: {
|
|
53
|
-
__html: scriptContent
|
|
54
|
-
}
|
|
55
|
-
}), children]
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function MetaTheme({
|
|
59
|
-
color,
|
|
60
|
-
darkColor,
|
|
61
|
-
lightColor
|
|
62
|
-
}) {
|
|
63
|
-
const {
|
|
64
|
-
value
|
|
65
|
-
} = useUserScheme();
|
|
66
|
-
const forced = getForceScheme();
|
|
67
|
-
const scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
68
|
-
let e1 = null
|
|
69
|
-
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
70
|
-
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
71
|
-
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
72
|
-
return /* @__PURE__ */jsxs(Fragment, {
|
|
73
|
-
children: [/* @__PURE__ */jsx("meta", {
|
|
74
|
-
suppressHydrationWarning: true,
|
|
75
|
-
id: "vxrn-theme-color",
|
|
76
|
-
name: "theme-color",
|
|
77
|
-
content: color ?? (value === "dark" ? darkColor : lightColor)
|
|
78
|
-
}), /* @__PURE__ */jsx("script", {
|
|
79
|
-
suppressHydrationWarning: true,
|
|
80
|
-
id: "meta-theme-hydrate",
|
|
81
|
-
dangerouslySetInnerHTML: {
|
|
82
|
-
__html: scriptContent
|
|
83
|
-
}
|
|
84
|
-
})]
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
88
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":"AAAA,SAASA,yBAAyB,QAAQ,oCAAoC;AAC9E,SAASC,cAAc,QAAQ,mBAAe;AAC9C,SAASC,cAAc,EAAEC,aAAa,EAAEC,kBAAkB,EAAEC,cAAc,EAAEC,aAAa,EAAEA,aAAa,IAAIC,cAAc,EAAEC,aAAa,EAAEA,aAAa,IAAIC,cAAc,QAAQ,kBAAc;AAChM,SAASC,eAAe,EAAEC,eAAe,QAAQ,oBAAgB;AACjE,SAASC,QAAQ,EAAEC,GAAG,EAAEC,IAAI,QAAQ,mBAAmB;AAEvD,MAAMC,UAAU,GAAG,aAAa;AAChC,SAASC,cAAcA,CAAC;EAAEC,QAAQ;EAAEC,YAAY,GAAIC,IAAI,IAAK,KAAKA,IAAI,EAAE;EAAEC,aAAa;EAAEC;AAAY,CAAC,EAAE;EACvGhB,cAAc,CAACgB,WAAW,IAAI,IAAI,CAAC;EACnC,MAAM;IAAEC;EAAM,CAAC,GAAGd,aAAa,CAAC,CAAC;EACjC,MAAMe,aAAa,GAAGF,WAAW,IAAIC,KAAK;EAC1CtB,yBAAyB,CAAC,MAAM;IAC/B,IAAI,CAACqB,WAAW,IAAID,aAAa,EAAE;MAClC,IAAI,CAACnB,cAAc,CAACc,UAAU,CAAC,EAAET,aAAa,CAACc,aAAa,CAAC;IAC9D;EACD,CAAC,EAAE,CAACA,aAAa,EAAEC,WAAW,CAAC,CAAC;EAChCrB,yBAAyB,CAAC,MAAM;IAC/B,MAAMwB,KAAK,GAAGN,YAAY,CAACK,aAAa,CAAC;IACzC,MAAME,QAAQ,GAAGP,YAAY,CAACK,aAAa,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3E,MAAM;MAAEG;IAAU,CAAC,GAAGC,QAAQ,CAACC,eAAe;IAC9CF,SAAS,CAACG,MAAM,CAACJ,QAAQ,CAAC;IAC1B,IAAI,CAACC,SAAS,CAACI,QAAQ,CAACN,KAAK,CAAC,EAAEE,SAAS,CAACK,GAAG,CAACP,KAAK,CAAC;EACrD,CAAC,EAAE,CAACN,YAAY,EAAEK,aAAa,CAAC,CAAC;EACjC,IAAIS,aAAa;EACjB,IAAIX,WAAW,EAAEW,aAAa,GAAG;AAClC,YAAYd,YAAY,CAAC,OAAO,CAAC;AACjC,YAAYA,YAAY,CAAC,MAAM,CAAC;AAChC,SAASA,YAAY,CAACG,WAAW,CAAC,IAAI,CAAC,KACjC;IACJ,MAAMY,QAAQ,GAAGb,aAAa,GAAG,IAAIA,aAAa,cAAc,GAAG,2DAA2D;IAC9H,MAAMc,WAAW,GAAGd,aAAa,GAAG,iCAAiCL,UAAU,MAAMK,aAAa,KAAK,GAAG,EAAE;IAC5GY,aAAa,GAAG;AAClB,YAAYd,YAAY,CAAC,OAAO,CAAC;AACjC,YAAYA,YAAY,CAAC,MAAM,CAAC;AAChC;AACA,kCAAkCH,UAAU,KAAKmB,WAAW;AAC5D;AACA,MAAMD,QAAQ;AACd;AACA,aAAaf,YAAY,CAAC,MAAM,CAAC,eAAeA,YAAY,CAAC,OAAO,CAAC,IAAI;EACxE;EACA,OAAO,eAAgBJ,IAAI,CAACF,QAAQ,EAAE;IAAEK,QAAQ,EAAE,CAAC,eAAgBJ,GAAG,CAAC,QAAQ,EAAE;MAChFsB,wBAAwB,EAAE,IAAI;MAC9BC,uBAAuB,EAAE;QAAEC,MAAM,EAAEL;MAAc;IAClD,CAAC,CAAC,EAAEf,QAAQ;EAAE,CAAC,CAAC;AACjB;AACA,SAASqB,SAASA,CAAC;EAAEC,KAAK;EAAEC,SAAS;EAAEC;AAAW,CAAC,EAAE;EACpD,MAAM;IAAEnB;EAAM,CAAC,GAAGd,aAAa,CAAC,CAAC;EACjC,MAAMkC,MAAM,GAAGxC,cAAc,CAAC,CAAC;EAC/B,MAAM8B,aAAa,GAAGU,MAAM,GAAG,uEAAuEA,MAAM,KAAK,MAAM,GAAGF,SAAS,GAAGC,UAAU,IAAI,GAAG;AACxJ;AACA,mCAAmC1B,UAAU;AAC7C;AACA,oCAAoCyB,SAAS,QAAQC,UAAU,IAAI;EAClE,OAAO,eAAgB3B,IAAI,CAACF,QAAQ,EAAE;IAAEK,QAAQ,EAAE,CAAC,eAAgBJ,GAAG,CAAC,MAAM,EAAE;MAC9EsB,wBAAwB,EAAE,IAAI;MAC9BQ,EAAE,EAAE,kBAAkB;MACtBxB,IAAI,EAAE,aAAa;MACnByB,OAAO,EAAEL,KAAK,KAAKjB,KAAK,KAAK,MAAM,GAAGkB,SAAS,GAAGC,UAAU;IAC7D,CAAC,CAAC,EAAE,eAAgB5B,GAAG,CAAC,QAAQ,EAAE;MACjCsB,wBAAwB,EAAE,IAAI;MAC9BQ,EAAE,EAAE,oBAAoB;MACxBP,uBAAuB,EAAE;QAAEC,MAAM,EAAEL;MAAc;IAClD,CAAC,CAAC;EAAE,CAAC,CAAC;AACP;AAEA,SAASM,SAAS,EAAEtB,cAAc,EAAEN,eAAe,EAAEP,aAAa,EAAEC,kBAAkB,EAAEG,cAAc,IAAID,aAAa,EAAEK,eAAe,EAAEF,cAAc,IAAID,aAAa","ignoreList":[]}
|
package/dist/esm/index.mjs
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
-
import { getStorageItem } from "./safeStorage.mjs";
|
|
3
|
-
import { getForceScheme, getUserScheme, onUserSchemeChange, setForceScheme, setUserScheme, setUserScheme as setUserScheme2, useUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
4
|
-
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
5
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
const storageKey = "vxrn-scheme";
|
|
7
|
-
function SchemeProvider({
|
|
8
|
-
children,
|
|
9
|
-
getClassName = name => `t_${name}`,
|
|
10
|
-
defaultScheme,
|
|
11
|
-
forceScheme
|
|
12
|
-
}) {
|
|
13
|
-
setForceScheme(forceScheme ?? null);
|
|
14
|
-
const {
|
|
15
|
-
value
|
|
16
|
-
} = useUserScheme();
|
|
17
|
-
const resolvedValue = forceScheme ?? value;
|
|
18
|
-
useIsomorphicLayoutEffect(() => {
|
|
19
|
-
if (!forceScheme && defaultScheme) {
|
|
20
|
-
if (!getStorageItem(storageKey)) setUserScheme(defaultScheme);
|
|
21
|
-
}
|
|
22
|
-
}, [defaultScheme, forceScheme]);
|
|
23
|
-
useIsomorphicLayoutEffect(() => {
|
|
24
|
-
const toAdd = getClassName(resolvedValue);
|
|
25
|
-
const toRemove = getClassName(resolvedValue === "light" ? "dark" : "light");
|
|
26
|
-
const {
|
|
27
|
-
classList
|
|
28
|
-
} = document.documentElement;
|
|
29
|
-
classList.remove(toRemove);
|
|
30
|
-
if (!classList.contains(toAdd)) classList.add(toAdd);
|
|
31
|
-
}, [getClassName, resolvedValue]);
|
|
32
|
-
let scriptContent;
|
|
33
|
-
if (forceScheme) scriptContent = `let d = document.documentElement.classList
|
|
34
|
-
d.remove('${getClassName("light")}')
|
|
35
|
-
d.remove('${getClassName("dark")}')
|
|
36
|
-
d.add('${getClassName(forceScheme)}')`;else {
|
|
37
|
-
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : `window.matchMedia('(prefers-color-scheme: dark)').matches`;
|
|
38
|
-
const seedStorage = defaultScheme ? `;if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
39
|
-
scriptContent = `let d = document.documentElement.classList
|
|
40
|
-
d.remove('${getClassName("light")}')
|
|
41
|
-
d.remove('${getClassName("dark")}')
|
|
42
|
-
let e = null
|
|
43
|
-
try { e = localStorage.getItem('${storageKey}')${seedStorage} } catch (_e) {}
|
|
44
|
-
let t = 'system' === e || !e
|
|
45
|
-
? ${fallback}
|
|
46
|
-
: e === 'dark'
|
|
47
|
-
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')`;
|
|
48
|
-
}
|
|
49
|
-
return /* @__PURE__ */jsxs(Fragment, {
|
|
50
|
-
children: [/* @__PURE__ */jsx("script", {
|
|
51
|
-
suppressHydrationWarning: true,
|
|
52
|
-
dangerouslySetInnerHTML: {
|
|
53
|
-
__html: scriptContent
|
|
54
|
-
}
|
|
55
|
-
}), children]
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function MetaTheme({
|
|
59
|
-
color,
|
|
60
|
-
darkColor,
|
|
61
|
-
lightColor
|
|
62
|
-
}) {
|
|
63
|
-
const {
|
|
64
|
-
value
|
|
65
|
-
} = useUserScheme();
|
|
66
|
-
const forced = getForceScheme();
|
|
67
|
-
const scriptContent = forced ? `document.getElementById('vxrn-theme-color').setAttribute('content','${forced === "dark" ? darkColor : lightColor}')` : `let dc = document.getElementById('vxrn-theme-color')
|
|
68
|
-
let e1 = null
|
|
69
|
-
try { e1 = localStorage.getItem('${storageKey}') } catch (_e) {}
|
|
70
|
-
let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
|
|
71
|
-
dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')`;
|
|
72
|
-
return /* @__PURE__ */jsxs(Fragment, {
|
|
73
|
-
children: [/* @__PURE__ */jsx("meta", {
|
|
74
|
-
suppressHydrationWarning: true,
|
|
75
|
-
id: "vxrn-theme-color",
|
|
76
|
-
name: "theme-color",
|
|
77
|
-
content: color ?? (value === "dark" ? darkColor : lightColor)
|
|
78
|
-
}), /* @__PURE__ */jsx("script", {
|
|
79
|
-
suppressHydrationWarning: true,
|
|
80
|
-
id: "meta-theme-hydrate",
|
|
81
|
-
dangerouslySetInnerHTML: {
|
|
82
|
-
__html: scriptContent
|
|
83
|
-
}
|
|
84
|
-
})]
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
88
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|