UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

3 lines (2 loc) 1.67 kB
import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import r from"classnames";import t,{useState as o,useMemo as i,useEffect as s}from"react";import{SystemTheme as n,ThemeColor as m}from"./ThemeProviderConstants.js";import{generateRandomAlphaString as a,isAnySystemThemeClassNameOnBody as c,addSystemThemeClassNameToBody as l,removeSystemThemeClassNameFromBody as d,shouldGenerateTheme as p,generateThemeCssOverride as u}from"./ThemeProviderUtils.js";import f from"../../hooks/ssr/useIsomorphicLayoutEffect.js";import{withStaticProps as h}from"../../types/withStaticProps.js";import{backwardCompatibilityForProperties as v}from"../../helpers/backwardCompatibilityForProperties.js";var y=h((function(n){var m=n.theme,h=n.children,y=n.themeClassSpecifier,C=n.systemTheme,T=n.className,P=v([n.themeConfig,m]),b=o(!1),g=e(b,2),j=g[0],w=g[1],E=i((function(){return y||a()}),[y]);return s((function(){m&&console.warn("vibe ThemeProvider: theme prop is deprecated and will be removed soon, please use themeConfig prop instead - ",m)}),[m]),f((function(){if(C&&!c())return l(C),function(){d(C)}}),[C]),s((function(){if(p(P)){if(!document.getElementById(P.name)){var e=document.createElement("style");e.type="text/css",e.id=P.name;var r=u(P,E);try{e.appendChild(document.createTextNode(r)),document.head.appendChild(e),w(!0)}catch(e){console.error("vibe ThemeProvider: error inserting theme-generated css - ",e)}return function(){document.head.removeChild(e)}}w(!0)}}),[E,P]),!j&&p(P)?null:t.createElement("div",{className:r(null==P?void 0:P.name,E,T)},h)}),{systemThemes:n,colors:m});export{y as default}; //# sourceMappingURL=ThemeProvider.js.map