@vxrn/color-scheme 2.0.0-beta.33.1 → 2.0.0-beta.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +63 -87
- package/dist/cjs/index.native.cjs +75 -0
- package/dist/cjs/index.native.js +47 -66
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/safeStorage.cjs +23 -25
- package/dist/cjs/safeStorage.native.cjs +40 -0
- package/dist/cjs/safeStorage.native.js +23 -24
- package/dist/cjs/safeStorage.native.js.map +1 -1
- package/dist/cjs/systemScheme.cjs +24 -26
- package/dist/cjs/systemScheme.native.cjs +59 -0
- package/dist/cjs/systemScheme.native.js +38 -41
- package/dist/cjs/systemScheme.native.js.map +1 -1
- package/dist/cjs/userScheme.cjs +104 -106
- package/dist/cjs/userScheme.native.cjs +169 -0
- package/dist/cjs/userScheme.native.js +116 -116
- package/dist/cjs/userScheme.native.js.map +1 -1
- package/dist/cjs/userSchemeAppearance.cjs +17 -19
- package/dist/cjs/userSchemeAppearance.native.cjs +39 -0
- package/dist/cjs/userSchemeAppearance.native.js +19 -20
- package/dist/cjs/userSchemeAppearance.native.js.map +1 -1
- package/dist/esm/index.js +44 -64
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +44 -64
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +28 -44
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/safeStorage.mjs +9 -8
- package/dist/esm/safeStorage.mjs.map +1 -1
- package/dist/esm/safeStorage.native.js +9 -8
- package/dist/esm/safeStorage.native.js.map +1 -1
- package/dist/esm/systemScheme.mjs +11 -9
- package/dist/esm/systemScheme.mjs.map +1 -1
- package/dist/esm/systemScheme.native.js +27 -27
- package/dist/esm/systemScheme.native.js.map +1 -1
- package/dist/esm/userScheme.mjs +87 -85
- package/dist/esm/userScheme.mjs.map +1 -1
- package/dist/esm/userScheme.native.js +99 -96
- package/dist/esm/userScheme.native.js.map +1 -1
- package/dist/esm/userSchemeAppearance.mjs +3 -1
- package/dist/esm/userSchemeAppearance.mjs.map +1 -1
- package/dist/esm/userSchemeAppearance.native.js +5 -3
- package/dist/esm/userSchemeAppearance.native.js.map +1 -1
- package/package.json +3 -3
- 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/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/types/safeStorage.test.d.ts +0 -2
- package/types/safeStorage.test.d.ts.map +0 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var 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.native.js");
|
|
36
|
+
require("./systemScheme.native.js");
|
|
37
|
+
var import_userSchemeAppearance = require("./userSchemeAppearance.native.js");
|
|
38
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
39
|
+
var storageKey = "vxrn-scheme";
|
|
40
|
+
var _forceScheme = null;
|
|
41
|
+
function notifyListeners() {
|
|
42
|
+
listeners.forEach(function(listener) {
|
|
43
|
+
listener(currentSetting, currentValue);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function restoreUnforcedScheme() {
|
|
47
|
+
var 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
|
+
var 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
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
73
|
+
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
74
|
+
return "system";
|
|
75
|
+
}
|
|
76
|
+
function getInitialValue(setting) {
|
|
77
|
+
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
78
|
+
return setting;
|
|
79
|
+
}
|
|
80
|
+
var initialSetting = getInitialSetting();
|
|
81
|
+
var currentSetting = initialSetting;
|
|
82
|
+
var currentValue = getInitialValue(initialSetting);
|
|
83
|
+
(0, import_userSchemeAppearance.addAppearanceChangeListener)(function() {
|
|
84
|
+
if (currentSetting === "system") updateValueFromSystem();
|
|
85
|
+
});
|
|
86
|
+
var isWebListening = false;
|
|
87
|
+
function startWebListener() {
|
|
88
|
+
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
89
|
+
if (isWebListening) return;
|
|
90
|
+
isWebListening = true;
|
|
91
|
+
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;
|
|
92
|
+
var onSystemChange = function() {
|
|
93
|
+
if (currentSetting === "system") updateValueFromSystem();
|
|
94
|
+
};
|
|
95
|
+
onSystemChange();
|
|
96
|
+
matcher === null || matcher === void 0 || (_matcher_addEventListener = matcher.addEventListener) == null || _matcher_addEventListener.call(matcher, "change", onSystemChange);
|
|
97
|
+
}
|
|
98
|
+
function resolveValue(setting) {
|
|
99
|
+
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
100
|
+
return setting;
|
|
101
|
+
}
|
|
102
|
+
function updateValueFromSystem() {
|
|
103
|
+
if (_forceScheme) return;
|
|
104
|
+
var value = resolveValue("system");
|
|
105
|
+
if (value !== currentValue) {
|
|
106
|
+
currentValue = value;
|
|
107
|
+
notifyListeners();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function updateScheme(setting) {
|
|
111
|
+
if (_forceScheme) return;
|
|
112
|
+
var value = setting === "system" ? resolveValue("system") : setting;
|
|
113
|
+
if (value !== currentValue || currentSetting !== setting) {
|
|
114
|
+
currentSetting = setting;
|
|
115
|
+
currentValue = value;
|
|
116
|
+
if (setting !== "system") (0, import_userSchemeAppearance.setAppearanceScheme)(value);
|
|
117
|
+
else (0, import_userSchemeAppearance.setAppearanceScheme)("unspecified");
|
|
118
|
+
notifyListeners();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function setUserScheme(setting) {
|
|
122
|
+
if (_forceScheme) return;
|
|
123
|
+
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
124
|
+
updateScheme(setting);
|
|
125
|
+
}
|
|
126
|
+
function getUserScheme() {
|
|
127
|
+
if (_forceScheme) return {
|
|
128
|
+
setting: _forceScheme,
|
|
129
|
+
value: _forceScheme
|
|
130
|
+
};
|
|
131
|
+
return {
|
|
132
|
+
setting: currentSetting,
|
|
133
|
+
value: currentValue
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function onUserSchemeChange(listener) {
|
|
137
|
+
listeners.add(listener);
|
|
138
|
+
listener(currentSetting, currentValue);
|
|
139
|
+
return function() {
|
|
140
|
+
listeners.delete(listener);
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function useUserScheme() {
|
|
144
|
+
var [state, setState] = (0, import_react.useState)(function() {
|
|
145
|
+
return getUserScheme();
|
|
146
|
+
});
|
|
147
|
+
var snapshot = getUserScheme();
|
|
148
|
+
var resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
149
|
+
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function() {
|
|
150
|
+
if (!_forceScheme) {
|
|
151
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
152
|
+
if (stored) updateScheme(stored);
|
|
153
|
+
startWebListener();
|
|
154
|
+
}
|
|
155
|
+
return onUserSchemeChange(function(setting, value) {
|
|
156
|
+
setState({
|
|
157
|
+
setting,
|
|
158
|
+
value
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}, []);
|
|
162
|
+
return (0, import_react.useMemo)(function() {
|
|
163
|
+
return {
|
|
164
|
+
setting: resolvedState.setting,
|
|
165
|
+
value: resolvedState.value,
|
|
166
|
+
set: setUserScheme
|
|
167
|
+
};
|
|
168
|
+
}, [resolvedState.setting, resolvedState.value]);
|
|
169
|
+
}
|
|
@@ -5,31 +5,29 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
12
|
};
|
|
13
13
|
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
21
|
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
23
|
var userScheme_exports = {};
|
|
26
24
|
__export(userScheme_exports, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
getForceScheme: () => getForceScheme,
|
|
26
|
+
getUserScheme: () => getUserScheme,
|
|
27
|
+
onUserSchemeChange: () => onUserSchemeChange,
|
|
28
|
+
setForceScheme: () => setForceScheme,
|
|
29
|
+
setUserScheme: () => setUserScheme,
|
|
30
|
+
useUserScheme: () => useUserScheme
|
|
33
31
|
});
|
|
34
32
|
module.exports = __toCommonJS(userScheme_exports);
|
|
35
33
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect");
|
|
@@ -37,135 +35,137 @@ var import_react = require("react");
|
|
|
37
35
|
var import_safeStorage = require("./safeStorage.native.js");
|
|
38
36
|
require("./systemScheme.native.js");
|
|
39
37
|
var import_userSchemeAppearance = require("./userSchemeAppearance.native.js");
|
|
40
|
-
var listeners = /* @__PURE__ */new Set();
|
|
38
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
41
39
|
var storageKey = "vxrn-scheme";
|
|
42
40
|
var _forceScheme = null;
|
|
43
41
|
function notifyListeners() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
listeners.forEach(function(listener) {
|
|
43
|
+
listener(currentSetting, currentValue);
|
|
44
|
+
});
|
|
47
45
|
}
|
|
48
46
|
function restoreUnforcedScheme() {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
var 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");
|
|
57
55
|
}
|
|
58
56
|
function setForceScheme(scheme) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
var 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
|
+
}
|
|
69
67
|
}
|
|
70
68
|
function getForceScheme() {
|
|
71
|
-
|
|
69
|
+
return _forceScheme;
|
|
72
70
|
}
|
|
73
71
|
function getInitialSetting() {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
73
|
+
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
74
|
+
return "system";
|
|
77
75
|
}
|
|
78
76
|
function getInitialValue(setting) {
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
78
|
+
return setting;
|
|
81
79
|
}
|
|
82
80
|
var initialSetting = getInitialSetting();
|
|
83
81
|
var currentSetting = initialSetting;
|
|
84
82
|
var currentValue = getInitialValue(initialSetting);
|
|
85
|
-
(0, import_userSchemeAppearance.addAppearanceChangeListener)(function
|
|
86
|
-
|
|
83
|
+
(0, import_userSchemeAppearance.addAppearanceChangeListener)(function() {
|
|
84
|
+
if (currentSetting === "system") updateValueFromSystem();
|
|
87
85
|
});
|
|
88
86
|
var isWebListening = false;
|
|
89
87
|
function startWebListener() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
88
|
+
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
89
|
+
if (isWebListening) return;
|
|
90
|
+
isWebListening = true;
|
|
91
|
+
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;
|
|
92
|
+
var onSystemChange = function() {
|
|
93
|
+
if (currentSetting === "system") updateValueFromSystem();
|
|
94
|
+
};
|
|
95
|
+
onSystemChange();
|
|
96
|
+
matcher === null || matcher === void 0 || (_matcher_addEventListener = matcher.addEventListener) == null || _matcher_addEventListener.call(matcher, "change", onSystemChange);
|
|
99
97
|
}
|
|
100
98
|
function resolveValue(setting) {
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
if (setting === "system") return (0, import_userSchemeAppearance.getAppearanceScheme)();
|
|
100
|
+
return setting;
|
|
103
101
|
}
|
|
104
102
|
function updateValueFromSystem() {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
103
|
+
if (_forceScheme) return;
|
|
104
|
+
var value = resolveValue("system");
|
|
105
|
+
if (value !== currentValue) {
|
|
106
|
+
currentValue = value;
|
|
107
|
+
notifyListeners();
|
|
108
|
+
}
|
|
111
109
|
}
|
|
112
110
|
function updateScheme(setting) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
if (_forceScheme) return;
|
|
112
|
+
var value = setting === "system" ? resolveValue("system") : setting;
|
|
113
|
+
if (value !== currentValue || currentSetting !== setting) {
|
|
114
|
+
currentSetting = setting;
|
|
115
|
+
currentValue = value;
|
|
116
|
+
if (setting !== "system") (0, import_userSchemeAppearance.setAppearanceScheme)(value);
|
|
117
|
+
else (0, import_userSchemeAppearance.setAppearanceScheme)("unspecified");
|
|
118
|
+
notifyListeners();
|
|
119
|
+
}
|
|
121
120
|
}
|
|
122
121
|
function setUserScheme(setting) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
if (_forceScheme) return;
|
|
123
|
+
(0, import_safeStorage.setStorageItem)(storageKey, setting);
|
|
124
|
+
updateScheme(setting);
|
|
126
125
|
}
|
|
127
126
|
function getUserScheme() {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
127
|
+
if (_forceScheme) return {
|
|
128
|
+
setting: _forceScheme,
|
|
129
|
+
value: _forceScheme
|
|
130
|
+
};
|
|
131
|
+
return {
|
|
132
|
+
setting: currentSetting,
|
|
133
|
+
value: currentValue
|
|
134
|
+
};
|
|
136
135
|
}
|
|
137
136
|
function onUserSchemeChange(listener) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
137
|
+
listeners.add(listener);
|
|
138
|
+
listener(currentSetting, currentValue);
|
|
139
|
+
return function() {
|
|
140
|
+
listeners.delete(listener);
|
|
141
|
+
};
|
|
143
142
|
}
|
|
144
143
|
function useUserScheme() {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
144
|
+
var [state, setState] = (0, import_react.useState)(function() {
|
|
145
|
+
return getUserScheme();
|
|
146
|
+
});
|
|
147
|
+
var snapshot = getUserScheme();
|
|
148
|
+
var resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;
|
|
149
|
+
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function() {
|
|
150
|
+
if (!_forceScheme) {
|
|
151
|
+
var stored = (0, import_safeStorage.getStorageItem)(storageKey);
|
|
152
|
+
if (stored) updateScheme(stored);
|
|
153
|
+
startWebListener();
|
|
154
|
+
}
|
|
155
|
+
return onUserSchemeChange(function(setting, value) {
|
|
156
|
+
setState({
|
|
157
|
+
setting,
|
|
158
|
+
value
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}, []);
|
|
162
|
+
return (0, import_react.useMemo)(function() {
|
|
163
|
+
return {
|
|
164
|
+
setting: resolvedState.setting,
|
|
165
|
+
value: resolvedState.value,
|
|
166
|
+
set: setUserScheme
|
|
167
|
+
};
|
|
168
|
+
}, [resolvedState.setting, resolvedState.value]);
|
|
170
169
|
}
|
|
170
|
+
|
|
171
171
|
//# sourceMappingURL=userScheme.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"userScheme.native.js","names":[],"sources":["cjs/userScheme.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: () => from[key],\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar userScheme_exports = {};\n__export(userScheme_exports, {\n\tgetForceScheme: () => getForceScheme,\n\tgetUserScheme: () => getUserScheme,\n\tonUserSchemeChange: () => onUserSchemeChange,\n\tsetForceScheme: () => setForceScheme,\n\tsetUserScheme: () => setUserScheme,\n\tuseUserScheme: () => useUserScheme\n});\nmodule.exports = __toCommonJS(userScheme_exports);\nvar import_use_isomorphic_layout_effect = require(\"@vxrn/use-isomorphic-layout-effect\");\nvar import_react = require(\"react\");\nvar import_safeStorage = require(\"./safeStorage\");\nrequire(\"./systemScheme\");\nvar import_userSchemeAppearance = require(\"./userSchemeAppearance\");\nvar listeners = /* @__PURE__ */ new Set();\nvar storageKey = \"vxrn-scheme\";\nvar _forceScheme = null;\nfunction notifyListeners() {\n\tlisteners.forEach(function(listener) {\n\t\tlistener(currentSetting, currentValue);\n\t});\n}\nfunction restoreUnforcedScheme() {\n\tvar stored = (0, import_safeStorage.getStorageItem)(storageKey);\n\tif (stored) {\n\t\tcurrentSetting = stored;\n\t\tcurrentValue = stored === \"system\" ? resolveValue(\"system\") : stored;\n\t\treturn;\n\t}\n\tcurrentSetting = \"system\";\n\tcurrentValue = resolveValue(\"system\");\n}\nfunction setForceScheme(scheme) {\n\tvar wasForced = _forceScheme;\n\tif (wasForced === scheme) return;\n\t_forceScheme = scheme;\n\tif (scheme) {\n\t\tcurrentSetting = scheme;\n\t\tcurrentValue = scheme;\n\t} else if (wasForced) {\n\t\trestoreUnforcedScheme();\n\t\tstartWebListener();\n\t}\n}\nfunction getForceScheme() {\n\treturn _forceScheme;\n}\nfunction getInitialSetting() {\n\tvar stored = (0, import_safeStorage.getStorageItem)(storageKey);\n\tif (stored === \"light\" || stored === \"dark\" || stored === \"system\") return stored;\n\treturn \"system\";\n}\nfunction getInitialValue(setting) {\n\tif (setting === \"system\") return (0, import_userSchemeAppearance.getAppearanceScheme)();\n\treturn setting;\n}\nvar initialSetting = getInitialSetting();\nvar currentSetting = initialSetting;\nvar currentValue = getInitialValue(initialSetting);\n(0, import_userSchemeAppearance.addAppearanceChangeListener)(function() {\n\tif (currentSetting === \"system\") updateValueFromSystem();\n});\nvar isWebListening = false;\nfunction startWebListener() {\n\tvar _window_matchMedia, _window, _matcher_addEventListener;\n\tif (isWebListening) return;\n\tisWebListening = true;\n\tvar 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;\n\tvar onSystemChange = function() {\n\t\tif (currentSetting === \"system\") updateValueFromSystem();\n\t};\n\tonSystemChange();\n\tmatcher === null || matcher === void 0 || (_matcher_addEventListener = matcher.addEventListener) == null || _matcher_addEventListener.call(matcher, \"change\", onSystemChange);\n}\nfunction resolveValue(setting) {\n\tif (setting === \"system\") return (0, import_userSchemeAppearance.getAppearanceScheme)();\n\treturn setting;\n}\nfunction updateValueFromSystem() {\n\tif (_forceScheme) return;\n\tvar value = resolveValue(\"system\");\n\tif (value !== currentValue) {\n\t\tcurrentValue = value;\n\t\tnotifyListeners();\n\t}\n}\nfunction updateScheme(setting) {\n\tif (_forceScheme) return;\n\tvar value = setting === \"system\" ? resolveValue(\"system\") : setting;\n\tif (value !== currentValue || currentSetting !== setting) {\n\t\tcurrentSetting = setting;\n\t\tcurrentValue = value;\n\t\tif (setting !== \"system\") (0, import_userSchemeAppearance.setAppearanceScheme)(value);\n\t\telse (0, import_userSchemeAppearance.setAppearanceScheme)(\"unspecified\");\n\t\tnotifyListeners();\n\t}\n}\nfunction setUserScheme(setting) {\n\tif (_forceScheme) return;\n\t(0, import_safeStorage.setStorageItem)(storageKey, setting);\n\tupdateScheme(setting);\n}\nfunction getUserScheme() {\n\tif (_forceScheme) return {\n\t\tsetting: _forceScheme,\n\t\tvalue: _forceScheme\n\t};\n\treturn {\n\t\tsetting: currentSetting,\n\t\tvalue: currentValue\n\t};\n}\nfunction onUserSchemeChange(listener) {\n\tlisteners.add(listener);\n\tlistener(currentSetting, currentValue);\n\treturn function() {\n\t\tlisteners.delete(listener);\n\t};\n}\nfunction useUserScheme() {\n\tvar [state, setState] = (0, import_react.useState)(function() {\n\t\treturn getUserScheme();\n\t});\n\tvar snapshot = getUserScheme();\n\tvar resolvedState = state.setting === snapshot.setting && state.value === snapshot.value ? state : snapshot;\n\t(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function() {\n\t\tif (!_forceScheme) {\n\t\t\tvar stored = (0, import_safeStorage.getStorageItem)(storageKey);\n\t\t\tif (stored) updateScheme(stored);\n\t\t\tstartWebListener();\n\t\t}\n\t\treturn onUserSchemeChange(function(setting, value) {\n\t\t\tsetState({\n\t\t\t\tsetting,\n\t\t\t\tvalue\n\t\t\t});\n\t\t});\n\t}, []);\n\treturn (0, import_react.useMemo)(function() {\n\t\treturn {\n\t\t\tsetting: resolvedState.setting,\n\t\t\tvalue: resolvedState.value,\n\t\t\tset: setUserScheme\n\t\t};\n\t}, [resolvedState.setting, resolvedState.value]);\n}\n//# sourceMappingURL=userScheme.js.map\n"],"mappings":"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"}
|
|
@@ -3,33 +3,31 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
10
|
};
|
|
11
11
|
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
21
|
var userSchemeAppearance_exports = {};
|
|
24
22
|
__export(userSchemeAppearance_exports, {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
addAppearanceChangeListener: () => addAppearanceChangeListener,
|
|
24
|
+
getAppearanceScheme: () => getAppearanceScheme,
|
|
25
|
+
setAppearanceScheme: () => setAppearanceScheme
|
|
28
26
|
});
|
|
29
27
|
module.exports = __toCommonJS(userSchemeAppearance_exports);
|
|
30
28
|
var import_systemScheme = require("./systemScheme.cjs");
|
|
31
29
|
function getAppearanceScheme() {
|
|
32
|
-
|
|
30
|
+
return (0, import_systemScheme.getSystemScheme)();
|
|
33
31
|
}
|
|
34
32
|
function setAppearanceScheme(_scheme) {}
|
|
35
|
-
function addAppearanceChangeListener(_listener) {}
|
|
33
|
+
function addAppearanceChangeListener(_listener) {}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var userSchemeAppearance_native_exports = {};
|
|
24
|
+
__export(userSchemeAppearance_native_exports, {
|
|
25
|
+
addAppearanceChangeListener: () => addAppearanceChangeListener,
|
|
26
|
+
getAppearanceScheme: () => getAppearanceScheme,
|
|
27
|
+
setAppearanceScheme: () => setAppearanceScheme
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(userSchemeAppearance_native_exports);
|
|
30
|
+
var import_react_native = require("react-native");
|
|
31
|
+
function getAppearanceScheme() {
|
|
32
|
+
return import_react_native.Appearance.getColorScheme() === "dark" ? "dark" : "light";
|
|
33
|
+
}
|
|
34
|
+
function setAppearanceScheme(scheme) {
|
|
35
|
+
import_react_native.Appearance.setColorScheme(scheme);
|
|
36
|
+
}
|
|
37
|
+
function addAppearanceChangeListener(listener) {
|
|
38
|
+
import_react_native.Appearance.addChangeListener(listener);
|
|
39
|
+
}
|