achery-ui 0.14.0 → 0.15.0
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/index.cjs +29 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +30 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -47,6 +47,7 @@ var AppBarSearchProvider = ({ children }) => {
|
|
|
47
47
|
};
|
|
48
48
|
var useAppBarSearch = () => react.useContext(AppBarSearchContext);
|
|
49
49
|
var STORAGE_KEY = "achery-theme-mode";
|
|
50
|
+
var ACCENT_STORAGE_KEY = "achery-accent";
|
|
50
51
|
var ThemeContext = react.createContext(null);
|
|
51
52
|
function getSystemTheme() {
|
|
52
53
|
if (typeof window === "undefined") return "light";
|
|
@@ -64,6 +65,14 @@ function readStoredMode(fallback) {
|
|
|
64
65
|
}
|
|
65
66
|
return fallback;
|
|
66
67
|
}
|
|
68
|
+
function readStoredAccent(fallback) {
|
|
69
|
+
try {
|
|
70
|
+
const stored = localStorage.getItem(ACCENT_STORAGE_KEY);
|
|
71
|
+
if (stored) return stored;
|
|
72
|
+
} catch {
|
|
73
|
+
}
|
|
74
|
+
return fallback;
|
|
75
|
+
}
|
|
67
76
|
function AcheryProvider({
|
|
68
77
|
children,
|
|
69
78
|
defaultTheme = "system",
|
|
@@ -75,24 +84,25 @@ function AcheryProvider({
|
|
|
75
84
|
style
|
|
76
85
|
}) {
|
|
77
86
|
const [mode, setModeState] = react.useState(() => readStoredMode(defaultTheme));
|
|
78
|
-
const [accent, setAccentState] = react.useState(defaultAccent);
|
|
87
|
+
const [accent, setAccentState] = react.useState(() => readStoredAccent(defaultAccent));
|
|
79
88
|
const [dial, setDialState] = react.useState(defaultDial);
|
|
80
89
|
const [material, setMaterialState] = react.useState(defaultMaterial);
|
|
81
90
|
const [surfaceOrigin] = react.useState(defaultSurfaceOrigin);
|
|
82
91
|
const [resolvedTheme, setResolvedTheme] = react.useState(() => resolveTheme(readStoredMode(defaultTheme)));
|
|
92
|
+
const mounted = react.useRef(false);
|
|
83
93
|
react.useEffect(() => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
94
|
+
if (!mounted.current) {
|
|
95
|
+
mounted.current = true;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (defaultTheme === "light" || defaultTheme === "dark") {
|
|
99
|
+
setModeState(defaultTheme);
|
|
100
|
+
setResolvedTheme(resolveTheme(defaultTheme));
|
|
101
|
+
}
|
|
88
102
|
setAccentState(defaultAccent);
|
|
89
|
-
}, [defaultAccent]);
|
|
90
|
-
react.useEffect(() => {
|
|
91
103
|
setDialState(defaultDial);
|
|
92
|
-
}, [defaultDial]);
|
|
93
|
-
react.useEffect(() => {
|
|
94
104
|
setMaterialState(defaultMaterial);
|
|
95
|
-
}, [defaultMaterial]);
|
|
105
|
+
}, [defaultTheme, defaultAccent, defaultDial, defaultMaterial]);
|
|
96
106
|
const setTheme = react.useCallback((next) => {
|
|
97
107
|
setModeState(next);
|
|
98
108
|
setResolvedTheme(resolveTheme(next));
|
|
@@ -104,7 +114,13 @@ function AcheryProvider({
|
|
|
104
114
|
const toggleTheme = react.useCallback(() => {
|
|
105
115
|
setTheme(resolvedTheme === "light" ? "dark" : "light");
|
|
106
116
|
}, [resolvedTheme, setTheme]);
|
|
107
|
-
const setAccent = react.useCallback((next) =>
|
|
117
|
+
const setAccent = react.useCallback((next) => {
|
|
118
|
+
setAccentState(next);
|
|
119
|
+
try {
|
|
120
|
+
localStorage.setItem(ACCENT_STORAGE_KEY, next);
|
|
121
|
+
} catch {
|
|
122
|
+
}
|
|
123
|
+
}, []);
|
|
108
124
|
const setDial = react.useCallback((next) => setDialState(next), []);
|
|
109
125
|
const setMaterial = react.useCallback((next) => setMaterialState(next), []);
|
|
110
126
|
react.useEffect(() => {
|
|
@@ -2438,6 +2454,7 @@ var searchSpacer = "AppBar_searchSpacer__uqki995";
|
|
|
2438
2454
|
function AppBar({
|
|
2439
2455
|
brandName: brandName2 = "Achery",
|
|
2440
2456
|
brandSub: brandSub2,
|
|
2457
|
+
brandLogo,
|
|
2441
2458
|
showSearch = true,
|
|
2442
2459
|
searchPlaceholder = "Search\u2026",
|
|
2443
2460
|
searchKbd: searchKbd2,
|
|
@@ -2476,7 +2493,7 @@ function AppBar({
|
|
|
2476
2493
|
}
|
|
2477
2494
|
),
|
|
2478
2495
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: brand, children: [
|
|
2479
|
-
/* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "hex", size: 20, "aria-hidden": "true" }),
|
|
2496
|
+
brandLogo ?? /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "hex", size: 20, "aria-hidden": "true" }),
|
|
2480
2497
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: brandName, children: brandName2 }),
|
|
2481
2498
|
brandSub2 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2482
2499
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: brandDivider }),
|