alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
54 lines (52 loc) • 1.5 kB
JavaScript
import {
atomWithStorage
} from "../../chunks/chunk-ZHH24SIG.js";
import {
atom
} from "../../chunks/chunk-OBOPLPUQ.js";
import "../../chunks/chunk-U5RRZUYZ.js";
// src/dashboard/atoms/PreferencesAtoms.ts
var preferencesAtom = atomWithStorage(`@alinea/preferences`, {
scheme: void 0,
workspace: void 0,
size: 16,
language: void 0
});
var schemePreferenceAtom = atom(
(get) => get(preferencesAtom).scheme,
(get, set, scheme) => {
set(preferencesAtom, { ...get(preferencesAtom), scheme });
}
);
var toggleSchemePreferenceAtom = atom(null, (get, set) => {
const scheme = get(schemePreferenceAtom);
const isLight = scheme === void 0 ? window.matchMedia("(prefers-color-scheme: light)").matches : scheme === "light";
const next = isLight ? "dark" : "light";
set(schemePreferenceAtom, next);
});
var workspacePreferenceAtom = atom(
(get) => get(preferencesAtom).workspace,
(get, set, workspace) => {
set(preferencesAtom, { ...get(preferencesAtom), workspace });
}
);
var sizePreferenceAtom = atom(
(get) => get(preferencesAtom).size,
(get, set, size) => {
set(preferencesAtom, { ...get(preferencesAtom), size });
}
);
var languagePreferenceAtom = atom(
(get) => get(preferencesAtom).language,
(get, set, language) => {
set(preferencesAtom, { ...get(preferencesAtom), language });
}
);
export {
languagePreferenceAtom,
preferencesAtom,
schemePreferenceAtom,
sizePreferenceAtom,
toggleSchemePreferenceAtom,
workspacePreferenceAtom
};