UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

54 lines (52 loc) 1.5 kB
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 };