UNPKG

@accelint/design-toolkit

Version:

An open-source component library to serve as part of the entire ecosystem of UX for Accelint.

4 lines (3 loc) 882 B
'use client'; import {jsx}from'react/jsx-runtime';import'client-only';import {merge}from'lodash';import {createContext,useState,useEffect,useMemo,useContext}from'react';import {designTokens}from'../tokens/tokens.js';const k={mode:"dark",tokens:{...designTokens.dark,...designTokens.static},toggleMode:r=>{}},s=createContext(k);function P({children:r,defaultMode:m,onChange:d,overrides:n}){const[o,i]=useState(m??"dark");useEffect(()=>{if(document){const{documentElement:e}=document;e.classList.remove("dark","light"),e.classList.add(o);}},[o]);const T=useMemo(()=>{const e=merge(designTokens,n);return {...e[o],...e.static}},[o,n]);return jsx(s.Provider,{value:{mode:o,tokens:T,toggleMode:e=>{i(e),d?.(e);}},children:r})}function v(){return useContext(s)}export{P as ThemeProvider,v as useTheme};//# sourceMappingURL=theme-provider.js.map //# sourceMappingURL=theme-provider.js.map