@guruhotel/aura-ui
Version:
⚛️ React UI library by GuruHotel
1 lines • 2.21 kB
JavaScript
var e=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports.default=void 0;var t=c(require("react")),r=e(require("./css-baseline")),n=require("@react-aria/ssr"),u=c(require("./theme-context")),o=e(require("./functions/deep-merge")),a=require("./functions/object"),l=require("./utils"),s=require("react/jsx-runtime");function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=u?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(n,o,a):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var d=({theme:e,disableBaseline:i=!1,children:c})=>{const{isBrowser:d}=(0,l.useSSR)(),[f,m]=(0,t.useState)(u.defaultContext.type),p=e=>{m((t=>t!==e?e:t))},v=e=>{const t=(0,l.getDocumentTheme)(e);t&&p(t)},b=(0,t.useMemo)((()=>{const e=d?(0,l.getDocumentCSSTokens)():{},t=(0,o.default)((0,a.copyObject)(u.defaultContext.theme),e),r=(0,l.getThemeName)(f);return{theme:t,type:r,isDark:"dark"===r}}),[f,d]);return(0,t.useEffect)((()=>{var e,t,r;v(null==(e=document)?void 0:e.documentElement);const n=new MutationObserver((e=>{var t;if(e&&e.length>0&&"BODY"===(null==(t=e[0])?void 0:t.target.nodeName)){var r,n,u;const e=null==(r=document)||null==(n=r.body)||null==(u=n.dataset)?void 0:u.theme;e&&p(e)}else{var o;v(null==(o=document)?void 0:o.documentElement)}}));return n.observe(null==(t=document)?void 0:t.documentElement,{attributes:!0,attributeFilter:["data-theme","style"]}),n.observe(null==(r=document)?void 0:r.body,{attributes:!0,attributeFilter:["data-theme","style"]}),()=>n.disconnect()}),[]),(0,t.useEffect)((()=>{d&&e&&null!=e&&e.className&&((0,l.changeTheme)(e.className),p((0,l.getThemeName)(e.className)))}),[d,e]),(0,s.jsx)(n.SSRProvider,{children:(0,s.jsxs)(u.default.Provider,{value:b,children:[!i&&(0,s.jsx)(r.default,{}),c]})})};exports.default=d,module.exports=exports.default;