@rufous/ui 0.1.65 → 0.1.66
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/Contexts/rufousThemeProvider.cjs +37 -35
- package/dist/Contexts/rufousThemeProvider.js +1 -1
- package/dist/Dialogs/BaseDialog.js +5 -5
- package/dist/Dialogs/index.js +5 -5
- package/dist/TextFields/AddressLookup.js +3 -3
- package/dist/{chunk-EZ7WAUAG.js → chunk-4GPYGFPP.js} +1 -1
- package/dist/chunk-BOE27BFQ.js +71 -0
- package/dist/{chunk-3MC7I6L2.js → chunk-EB6MPFGC.js} +3 -3
- package/dist/main.cjs +38 -36
- package/dist/main.js +14 -14
- package/package.json +1 -1
- package/dist/chunk-NNKORPBI.js +0 -69
|
@@ -191,53 +191,55 @@ var APP_THEMES = {
|
|
|
191
191
|
// lib/Contexts/rufousThemeProvider.tsx
|
|
192
192
|
var RufousThemeContext = (0, import_react.createContext)(null);
|
|
193
193
|
var RufousThemeProvider = ({ children }) => {
|
|
194
|
-
const [
|
|
195
|
-
const [
|
|
194
|
+
const [committedThemeKey, setCommittedThemeKey] = (0, import_react.useState)("default");
|
|
195
|
+
const [previewThemeKey, setPreviewThemeKey] = (0, import_react.useState)("default");
|
|
196
|
+
const [settings, setSettings] = (0, import_react.useState)(null);
|
|
197
|
+
const getGeneralSettings = async () => {
|
|
198
|
+
try {
|
|
199
|
+
const theme = localStorage.getItem("theme") || "default";
|
|
200
|
+
setCommittedThemeKey(theme);
|
|
201
|
+
setPreviewThemeKey(theme);
|
|
202
|
+
} catch (err) {
|
|
203
|
+
console.error("Error fetching general settings:", err);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
196
206
|
(0, import_react.useEffect)(() => {
|
|
197
|
-
|
|
198
|
-
const savedMode = localStorage.getItem("themeMode") || "light";
|
|
199
|
-
setColorScheme(savedScheme);
|
|
200
|
-
setMode(savedMode);
|
|
207
|
+
getGeneralSettings();
|
|
201
208
|
}, []);
|
|
202
|
-
const toggleMode = () => {
|
|
203
|
-
const newMode = mode === "light" ? "dark" : "light";
|
|
204
|
-
setMode(newMode);
|
|
205
|
-
localStorage.setItem("themeMode", newMode);
|
|
206
|
-
};
|
|
207
|
-
const changeScheme = (scheme) => {
|
|
208
|
-
setColorScheme(scheme);
|
|
209
|
-
localStorage.setItem("colorScheme", scheme);
|
|
210
|
-
};
|
|
211
|
-
const saveTheme = () => {
|
|
212
|
-
localStorage.setItem("themeMode", mode);
|
|
213
|
-
localStorage.setItem("colorScheme", colorScheme);
|
|
214
|
-
};
|
|
215
|
-
const updateSettings = (settings) => {
|
|
216
|
-
if (settings.theme) setColorScheme(settings.theme);
|
|
217
|
-
if (settings.mode) setMode(settings.mode);
|
|
218
|
-
};
|
|
219
209
|
const fullTheme = (0, import_react.useMemo)(() => {
|
|
220
210
|
return {
|
|
221
|
-
themeKey:
|
|
222
|
-
customStyles: APP_THEMES[
|
|
211
|
+
themeKey: previewThemeKey || settings.theme,
|
|
212
|
+
customStyles: APP_THEMES[previewThemeKey || settings.theme]
|
|
223
213
|
};
|
|
224
|
-
}, [
|
|
214
|
+
}, [previewThemeKey, settings]);
|
|
215
|
+
const previewTheme = (key) => setPreviewThemeKey(key);
|
|
216
|
+
const saveTheme = (inputKey) => {
|
|
217
|
+
const key = inputKey || previewThemeKey || settings.theme;
|
|
218
|
+
localStorage.setItem("theme", key);
|
|
219
|
+
setCommittedThemeKey(key);
|
|
220
|
+
};
|
|
221
|
+
const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
|
|
225
222
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
226
223
|
RufousThemeContext.Provider,
|
|
227
224
|
{
|
|
228
225
|
value: {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
toggleMode,
|
|
232
|
-
changeScheme,
|
|
233
|
-
previewTheme: fullTheme,
|
|
226
|
+
theme: fullTheme,
|
|
227
|
+
previewTheme,
|
|
234
228
|
saveTheme,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
229
|
+
cancelTheme,
|
|
230
|
+
currentThemeKey: previewThemeKey,
|
|
231
|
+
committedThemeKey,
|
|
232
|
+
settings,
|
|
233
|
+
updateSettings: (v) => setSettings(v)
|
|
238
234
|
}
|
|
239
235
|
},
|
|
240
|
-
/* @__PURE__ */ import_react.default.createElement(
|
|
236
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
237
|
+
"div",
|
|
238
|
+
{
|
|
239
|
+
className: `theme-${previewThemeKey || committedThemeKey || "default"}`
|
|
240
|
+
},
|
|
241
|
+
children
|
|
242
|
+
)
|
|
241
243
|
);
|
|
242
244
|
};
|
|
243
245
|
var useRufousTheme = () => (0, import_react.useContext)(RufousThemeContext);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseDialog_default
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-4GPYGFPP.js";
|
|
4
4
|
import "../chunk-E5RTHYCU.js";
|
|
5
5
|
import "../chunk-EZI3QGYJ.js";
|
|
6
6
|
import "../chunk-QTGVW36I.js";
|
|
@@ -54,15 +54,13 @@ import "../chunk-XPJVVKOU.js";
|
|
|
54
54
|
import "../chunk-GL43GPEM.js";
|
|
55
55
|
import "../chunk-FZCFFVXW.js";
|
|
56
56
|
import "../chunk-N26C33E6.js";
|
|
57
|
+
import "../chunk-EB6MPFGC.js";
|
|
58
|
+
import "../chunk-UPCMMCPQ.js";
|
|
57
59
|
import "../chunk-AH6RCYDL.js";
|
|
58
60
|
import "../chunk-3IBCGGN3.js";
|
|
59
61
|
import "../chunk-MNPAE2ZF.js";
|
|
60
62
|
import "../chunk-Q5XKCUE3.js";
|
|
61
|
-
import "../chunk-3MC7I6L2.js";
|
|
62
|
-
import "../chunk-UPCMMCPQ.js";
|
|
63
63
|
import "../chunk-X357WQOT.js";
|
|
64
|
-
import "../chunk-NNKORPBI.js";
|
|
65
|
-
import "../chunk-S7BNFVQO.js";
|
|
66
64
|
import "../chunk-7KRG7VNW.js";
|
|
67
65
|
import "../chunk-J6E3UO2W.js";
|
|
68
66
|
import "../chunk-GJGRMMAQ.js";
|
|
@@ -73,6 +71,8 @@ import "../chunk-BMMDUQDJ.js";
|
|
|
73
71
|
import "../chunk-R3GARAVJ.js";
|
|
74
72
|
import "../chunk-YRLN3TBF.js";
|
|
75
73
|
import "../chunk-CTBYVXFP.js";
|
|
74
|
+
import "../chunk-BOE27BFQ.js";
|
|
75
|
+
import "../chunk-S7BNFVQO.js";
|
|
76
76
|
import "../chunk-LI4N7JWK.js";
|
|
77
77
|
export {
|
|
78
78
|
BaseDialog_default as default
|
package/dist/Dialogs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseDialog_default
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-4GPYGFPP.js";
|
|
4
4
|
import "../chunk-E5RTHYCU.js";
|
|
5
5
|
import "../chunk-EZI3QGYJ.js";
|
|
6
6
|
import "../chunk-QTGVW36I.js";
|
|
@@ -54,15 +54,13 @@ import "../chunk-XPJVVKOU.js";
|
|
|
54
54
|
import "../chunk-GL43GPEM.js";
|
|
55
55
|
import "../chunk-FZCFFVXW.js";
|
|
56
56
|
import "../chunk-N26C33E6.js";
|
|
57
|
+
import "../chunk-EB6MPFGC.js";
|
|
58
|
+
import "../chunk-UPCMMCPQ.js";
|
|
57
59
|
import "../chunk-AH6RCYDL.js";
|
|
58
60
|
import "../chunk-3IBCGGN3.js";
|
|
59
61
|
import "../chunk-MNPAE2ZF.js";
|
|
60
62
|
import "../chunk-Q5XKCUE3.js";
|
|
61
|
-
import "../chunk-3MC7I6L2.js";
|
|
62
|
-
import "../chunk-UPCMMCPQ.js";
|
|
63
63
|
import "../chunk-X357WQOT.js";
|
|
64
|
-
import "../chunk-NNKORPBI.js";
|
|
65
|
-
import "../chunk-S7BNFVQO.js";
|
|
66
64
|
import "../chunk-7KRG7VNW.js";
|
|
67
65
|
import "../chunk-J6E3UO2W.js";
|
|
68
66
|
import "../chunk-GJGRMMAQ.js";
|
|
@@ -73,6 +71,8 @@ import "../chunk-BMMDUQDJ.js";
|
|
|
73
71
|
import "../chunk-R3GARAVJ.js";
|
|
74
72
|
import "../chunk-YRLN3TBF.js";
|
|
75
73
|
import "../chunk-CTBYVXFP.js";
|
|
74
|
+
import "../chunk-BOE27BFQ.js";
|
|
75
|
+
import "../chunk-S7BNFVQO.js";
|
|
76
76
|
import "../chunk-LI4N7JWK.js";
|
|
77
77
|
export {
|
|
78
78
|
BaseDialog_default as BaseDialog
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AddressLookup_default
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-EB6MPFGC.js";
|
|
4
4
|
import "../chunk-UPCMMCPQ.js";
|
|
5
|
-
import "../chunk-NNKORPBI.js";
|
|
6
|
-
import "../chunk-S7BNFVQO.js";
|
|
7
5
|
import "../chunk-CTBYVXFP.js";
|
|
6
|
+
import "../chunk-BOE27BFQ.js";
|
|
7
|
+
import "../chunk-S7BNFVQO.js";
|
|
8
8
|
import "../chunk-LI4N7JWK.js";
|
|
9
9
|
export {
|
|
10
10
|
AddressLookup_default as default
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import {
|
|
2
|
+
APP_THEMES
|
|
3
|
+
} from "./chunk-S7BNFVQO.js";
|
|
4
|
+
|
|
5
|
+
// lib/Contexts/rufousThemeProvider.tsx
|
|
6
|
+
import React, {
|
|
7
|
+
createContext,
|
|
8
|
+
useContext,
|
|
9
|
+
useEffect,
|
|
10
|
+
useMemo,
|
|
11
|
+
useState
|
|
12
|
+
} from "react";
|
|
13
|
+
var RufousThemeContext = createContext(null);
|
|
14
|
+
var RufousThemeProvider = ({ children }) => {
|
|
15
|
+
const [committedThemeKey, setCommittedThemeKey] = useState("default");
|
|
16
|
+
const [previewThemeKey, setPreviewThemeKey] = useState("default");
|
|
17
|
+
const [settings, setSettings] = useState(null);
|
|
18
|
+
const getGeneralSettings = async () => {
|
|
19
|
+
try {
|
|
20
|
+
const theme = localStorage.getItem("theme") || "default";
|
|
21
|
+
setCommittedThemeKey(theme);
|
|
22
|
+
setPreviewThemeKey(theme);
|
|
23
|
+
} catch (err) {
|
|
24
|
+
console.error("Error fetching general settings:", err);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
getGeneralSettings();
|
|
29
|
+
}, []);
|
|
30
|
+
const fullTheme = useMemo(() => {
|
|
31
|
+
return {
|
|
32
|
+
themeKey: previewThemeKey || settings.theme,
|
|
33
|
+
customStyles: APP_THEMES[previewThemeKey || settings.theme]
|
|
34
|
+
};
|
|
35
|
+
}, [previewThemeKey, settings]);
|
|
36
|
+
const previewTheme = (key) => setPreviewThemeKey(key);
|
|
37
|
+
const saveTheme = (inputKey) => {
|
|
38
|
+
const key = inputKey || previewThemeKey || settings.theme;
|
|
39
|
+
localStorage.setItem("theme", key);
|
|
40
|
+
setCommittedThemeKey(key);
|
|
41
|
+
};
|
|
42
|
+
const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
|
|
43
|
+
return /* @__PURE__ */ React.createElement(
|
|
44
|
+
RufousThemeContext.Provider,
|
|
45
|
+
{
|
|
46
|
+
value: {
|
|
47
|
+
theme: fullTheme,
|
|
48
|
+
previewTheme,
|
|
49
|
+
saveTheme,
|
|
50
|
+
cancelTheme,
|
|
51
|
+
currentThemeKey: previewThemeKey,
|
|
52
|
+
committedThemeKey,
|
|
53
|
+
settings,
|
|
54
|
+
updateSettings: (v) => setSettings(v)
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
/* @__PURE__ */ React.createElement(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: `theme-${previewThemeKey || committedThemeKey || "default"}`
|
|
61
|
+
},
|
|
62
|
+
children
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
var useRufousTheme = () => useContext(RufousThemeContext);
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
RufousThemeProvider,
|
|
70
|
+
useRufousTheme
|
|
71
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FloatingInput
|
|
3
3
|
} from "./chunk-UPCMMCPQ.js";
|
|
4
|
-
import {
|
|
5
|
-
useRufousTheme
|
|
6
|
-
} from "./chunk-NNKORPBI.js";
|
|
7
4
|
import {
|
|
8
5
|
circularProgress_default
|
|
9
6
|
} from "./chunk-CTBYVXFP.js";
|
|
7
|
+
import {
|
|
8
|
+
useRufousTheme
|
|
9
|
+
} from "./chunk-BOE27BFQ.js";
|
|
10
10
|
|
|
11
11
|
// lib/TextFields/AddressLookup.tsx
|
|
12
12
|
import React, { useState, useRef, useEffect } from "react";
|
package/dist/main.cjs
CHANGED
|
@@ -29973,53 +29973,55 @@ var BaseDialog_default = BaseDialog;
|
|
|
29973
29973
|
var import_react14 = __toESM(require("react"), 1);
|
|
29974
29974
|
var RufousThemeContext = (0, import_react14.createContext)(null);
|
|
29975
29975
|
var RufousThemeProvider = ({ children }) => {
|
|
29976
|
-
const [
|
|
29977
|
-
const [
|
|
29976
|
+
const [committedThemeKey, setCommittedThemeKey] = (0, import_react14.useState)("default");
|
|
29977
|
+
const [previewThemeKey, setPreviewThemeKey] = (0, import_react14.useState)("default");
|
|
29978
|
+
const [settings, setSettings] = (0, import_react14.useState)(null);
|
|
29979
|
+
const getGeneralSettings = async () => {
|
|
29980
|
+
try {
|
|
29981
|
+
const theme = localStorage.getItem("theme") || "default";
|
|
29982
|
+
setCommittedThemeKey(theme);
|
|
29983
|
+
setPreviewThemeKey(theme);
|
|
29984
|
+
} catch (err) {
|
|
29985
|
+
console.error("Error fetching general settings:", err);
|
|
29986
|
+
}
|
|
29987
|
+
};
|
|
29978
29988
|
(0, import_react14.useEffect)(() => {
|
|
29979
|
-
|
|
29980
|
-
const savedMode = localStorage.getItem("themeMode") || "light";
|
|
29981
|
-
setColorScheme(savedScheme);
|
|
29982
|
-
setMode(savedMode);
|
|
29989
|
+
getGeneralSettings();
|
|
29983
29990
|
}, []);
|
|
29984
|
-
const toggleMode = () => {
|
|
29985
|
-
const newMode = mode === "light" ? "dark" : "light";
|
|
29986
|
-
setMode(newMode);
|
|
29987
|
-
localStorage.setItem("themeMode", newMode);
|
|
29988
|
-
};
|
|
29989
|
-
const changeScheme = (scheme) => {
|
|
29990
|
-
setColorScheme(scheme);
|
|
29991
|
-
localStorage.setItem("colorScheme", scheme);
|
|
29992
|
-
};
|
|
29993
|
-
const saveTheme = () => {
|
|
29994
|
-
localStorage.setItem("themeMode", mode);
|
|
29995
|
-
localStorage.setItem("colorScheme", colorScheme);
|
|
29996
|
-
};
|
|
29997
|
-
const updateSettings = (settings) => {
|
|
29998
|
-
if (settings.theme) setColorScheme(settings.theme);
|
|
29999
|
-
if (settings.mode) setMode(settings.mode);
|
|
30000
|
-
};
|
|
30001
29991
|
const fullTheme = (0, import_react14.useMemo)(() => {
|
|
30002
29992
|
return {
|
|
30003
|
-
themeKey:
|
|
30004
|
-
customStyles: APP_THEMES[
|
|
30005
|
-
};
|
|
30006
|
-
}, [
|
|
29993
|
+
themeKey: previewThemeKey || settings.theme,
|
|
29994
|
+
customStyles: APP_THEMES[previewThemeKey || settings.theme]
|
|
29995
|
+
};
|
|
29996
|
+
}, [previewThemeKey, settings]);
|
|
29997
|
+
const previewTheme = (key) => setPreviewThemeKey(key);
|
|
29998
|
+
const saveTheme = (inputKey) => {
|
|
29999
|
+
const key = inputKey || previewThemeKey || settings.theme;
|
|
30000
|
+
localStorage.setItem("theme", key);
|
|
30001
|
+
setCommittedThemeKey(key);
|
|
30002
|
+
};
|
|
30003
|
+
const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
|
|
30007
30004
|
return /* @__PURE__ */ import_react14.default.createElement(
|
|
30008
30005
|
RufousThemeContext.Provider,
|
|
30009
30006
|
{
|
|
30010
30007
|
value: {
|
|
30011
|
-
|
|
30012
|
-
|
|
30013
|
-
toggleMode,
|
|
30014
|
-
changeScheme,
|
|
30015
|
-
previewTheme: fullTheme,
|
|
30008
|
+
theme: fullTheme,
|
|
30009
|
+
previewTheme,
|
|
30016
30010
|
saveTheme,
|
|
30017
|
-
|
|
30018
|
-
|
|
30019
|
-
|
|
30011
|
+
cancelTheme,
|
|
30012
|
+
currentThemeKey: previewThemeKey,
|
|
30013
|
+
committedThemeKey,
|
|
30014
|
+
settings,
|
|
30015
|
+
updateSettings: (v) => setSettings(v)
|
|
30020
30016
|
}
|
|
30021
30017
|
},
|
|
30022
|
-
/* @__PURE__ */ import_react14.default.createElement(
|
|
30018
|
+
/* @__PURE__ */ import_react14.default.createElement(
|
|
30019
|
+
"div",
|
|
30020
|
+
{
|
|
30021
|
+
className: `theme-${previewThemeKey || committedThemeKey || "default"}`
|
|
30022
|
+
},
|
|
30023
|
+
children
|
|
30024
|
+
)
|
|
30023
30025
|
);
|
|
30024
30026
|
};
|
|
30025
30027
|
var useRufousTheme = () => (0, import_react14.useContext)(RufousThemeContext);
|
package/dist/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseDialog_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4GPYGFPP.js";
|
|
4
4
|
import "./chunk-E5RTHYCU.js";
|
|
5
5
|
import {
|
|
6
6
|
unsubscribeIcon_default
|
|
@@ -158,6 +158,12 @@ import {
|
|
|
158
158
|
import {
|
|
159
159
|
downloadPdfIcon_default
|
|
160
160
|
} from "./chunk-N26C33E6.js";
|
|
161
|
+
import {
|
|
162
|
+
AddressLookup_default
|
|
163
|
+
} from "./chunk-EB6MPFGC.js";
|
|
164
|
+
import {
|
|
165
|
+
FloatingInput
|
|
166
|
+
} from "./chunk-UPCMMCPQ.js";
|
|
161
167
|
import {
|
|
162
168
|
activateUserIcon_default
|
|
163
169
|
} from "./chunk-AH6RCYDL.js";
|
|
@@ -170,22 +176,9 @@ import {
|
|
|
170
176
|
import {
|
|
171
177
|
closeIcon_default
|
|
172
178
|
} from "./chunk-Q5XKCUE3.js";
|
|
173
|
-
import {
|
|
174
|
-
AddressLookup_default
|
|
175
|
-
} from "./chunk-3MC7I6L2.js";
|
|
176
|
-
import {
|
|
177
|
-
FloatingInput
|
|
178
|
-
} from "./chunk-UPCMMCPQ.js";
|
|
179
179
|
import {
|
|
180
180
|
Checkbox
|
|
181
181
|
} from "./chunk-X357WQOT.js";
|
|
182
|
-
import {
|
|
183
|
-
RufousThemeProvider,
|
|
184
|
-
useRufousTheme
|
|
185
|
-
} from "./chunk-NNKORPBI.js";
|
|
186
|
-
import {
|
|
187
|
-
APP_THEMES
|
|
188
|
-
} from "./chunk-S7BNFVQO.js";
|
|
189
182
|
import "./chunk-7KRG7VNW.js";
|
|
190
183
|
import {
|
|
191
184
|
DataGrid
|
|
@@ -210,6 +203,13 @@ import {
|
|
|
210
203
|
import {
|
|
211
204
|
circularProgress_default
|
|
212
205
|
} from "./chunk-CTBYVXFP.js";
|
|
206
|
+
import {
|
|
207
|
+
RufousThemeProvider,
|
|
208
|
+
useRufousTheme
|
|
209
|
+
} from "./chunk-BOE27BFQ.js";
|
|
210
|
+
import {
|
|
211
|
+
APP_THEMES
|
|
212
|
+
} from "./chunk-S7BNFVQO.js";
|
|
213
213
|
import "./chunk-LI4N7JWK.js";
|
|
214
214
|
export {
|
|
215
215
|
APP_THEMES,
|
package/package.json
CHANGED
package/dist/chunk-NNKORPBI.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
APP_THEMES
|
|
3
|
-
} from "./chunk-S7BNFVQO.js";
|
|
4
|
-
|
|
5
|
-
// lib/Contexts/rufousThemeProvider.tsx
|
|
6
|
-
import React, {
|
|
7
|
-
createContext,
|
|
8
|
-
useContext,
|
|
9
|
-
useEffect,
|
|
10
|
-
useMemo,
|
|
11
|
-
useState
|
|
12
|
-
} from "react";
|
|
13
|
-
var RufousThemeContext = createContext(null);
|
|
14
|
-
var RufousThemeProvider = ({ children }) => {
|
|
15
|
-
const [colorScheme, setColorScheme] = useState("rufous");
|
|
16
|
-
const [mode, setMode] = useState("light");
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
const savedScheme = localStorage.getItem("colorScheme") || "rufous";
|
|
19
|
-
const savedMode = localStorage.getItem("themeMode") || "light";
|
|
20
|
-
setColorScheme(savedScheme);
|
|
21
|
-
setMode(savedMode);
|
|
22
|
-
}, []);
|
|
23
|
-
const toggleMode = () => {
|
|
24
|
-
const newMode = mode === "light" ? "dark" : "light";
|
|
25
|
-
setMode(newMode);
|
|
26
|
-
localStorage.setItem("themeMode", newMode);
|
|
27
|
-
};
|
|
28
|
-
const changeScheme = (scheme) => {
|
|
29
|
-
setColorScheme(scheme);
|
|
30
|
-
localStorage.setItem("colorScheme", scheme);
|
|
31
|
-
};
|
|
32
|
-
const saveTheme = () => {
|
|
33
|
-
localStorage.setItem("themeMode", mode);
|
|
34
|
-
localStorage.setItem("colorScheme", colorScheme);
|
|
35
|
-
};
|
|
36
|
-
const updateSettings = (settings) => {
|
|
37
|
-
if (settings.theme) setColorScheme(settings.theme);
|
|
38
|
-
if (settings.mode) setMode(settings.mode);
|
|
39
|
-
};
|
|
40
|
-
const fullTheme = useMemo(() => {
|
|
41
|
-
return {
|
|
42
|
-
themeKey: colorScheme,
|
|
43
|
-
customStyles: APP_THEMES[colorScheme][mode]
|
|
44
|
-
};
|
|
45
|
-
}, [colorScheme, mode]);
|
|
46
|
-
return /* @__PURE__ */ React.createElement(
|
|
47
|
-
RufousThemeContext.Provider,
|
|
48
|
-
{
|
|
49
|
-
value: {
|
|
50
|
-
colorScheme,
|
|
51
|
-
mode,
|
|
52
|
-
toggleMode,
|
|
53
|
-
changeScheme,
|
|
54
|
-
previewTheme: fullTheme,
|
|
55
|
-
saveTheme,
|
|
56
|
-
updateSettings,
|
|
57
|
-
theme: APP_THEMES[colorScheme][mode],
|
|
58
|
-
themeConfig: APP_THEMES[colorScheme][mode]
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
/* @__PURE__ */ React.createElement("div", { className: `rufous-theme-root scheme-${colorScheme} mode-${mode}` }, children)
|
|
62
|
-
);
|
|
63
|
-
};
|
|
64
|
-
var useRufousTheme = () => useContext(RufousThemeContext);
|
|
65
|
-
|
|
66
|
-
export {
|
|
67
|
-
RufousThemeProvider,
|
|
68
|
-
useRufousTheme
|
|
69
|
-
};
|