UNPKG

@guruhotel/aura-ui

Version:

⚛️ React UI library by GuruHotel

1 lines 4.74 kB
var e=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports.useSSR=exports.getTokenValue=exports.getThemeName=exports.getDocumentTheme=exports.getDocumentCSSTokens=exports.changeTheme=void 0;var t=e(require("./common")),s=e(require("./light-theme")),r=e(require("./functions/clsx")),n=require("./functions/color"),u=require("react");const l=(e,s,r=1)=>{if("undefined"==typeof document||!e)return"";let u=getComputedStyle(document.documentElement);const o=`--${t.default.prefix}-${e}-${s}`,i=u.getPropertyValue(o);if(null!=i&&i.includes("var")&&l(e,i),i&&1!==r){if(i.includes("rgb"))return(0,n.rgbToRgba)(i,r);if(i.includes("#"))return(0,n.hexToRGBA)(i,r)}return i};exports.getTokenValue=l;exports.getDocumentCSSTokens=()=>{const e=[...Object.keys(t.default.theme.colors),...Object.keys(s.default.colors)],r=[...Object.keys(t.default.theme.fonts),...Object.keys(s.default.fonts)],n=[...Object.keys(t.default.theme.fontSizes),...Object.keys(s.default.fontSizes)],u=[...Object.keys(t.default.theme.fontWeights),...Object.keys(s.default.fontWeights)],o=[...Object.keys(t.default.theme.letterSpacings),...Object.keys(s.default.letterSpacings)],i=[...Object.keys(t.default.theme.space),...Object.keys(s.default.space)],c=[...Object.keys(t.default.theme.sizes),...Object.keys(s.default.sizes)],a=[...Object.keys(t.default.theme.radii),...Object.keys(s.default.radii)],d=[...Object.keys(t.default.theme.zIndices),...Object.keys(s.default.zIndices)],f=[...Object.keys(t.default.theme.borderWeights),...Object.keys(s.default.borderWeights)],p=[...Object.keys(t.default.theme.shadows),...Object.keys(s.default.shadows)],m=[...Object.keys(t.default.theme.transitions),...Object.keys(s.default.transitions)],h=[...Object.keys(t.default.theme.breakpoints),...Object.keys(s.default.breakpoints)];return{colors:e.reduce(((e,s)=>{const r=l("colors",s);return r&&(e[s]={prefix:t.default.prefix,scale:"colors",token:s,value:r}),e}),{}),fonts:r.reduce(((e,s)=>{const r=l("fonts",s);return r&&(e[s]={prefix:t.default.prefix,scale:"fonts",token:s,value:r}),e}),{}),fontSizes:n.reduce(((e,s)=>{const r=l("fontSizes",s);return r&&(e[s]={prefix:t.default.prefix,scale:"fontSize",token:s,value:r}),e}),{}),fontWeigths:u.reduce(((e,s)=>{const r=l("fontWeights",s);return r&&(e[s]={prefix:t.default.prefix,scale:"fontWeigths",token:s,value:r}),e}),{}),letterSpacings:o.reduce(((e,s)=>{const r=l("letterSpacings",s);return r&&(e[s]={prefix:t.default.prefix,scale:"letterSpacings",token:s,value:r}),e}),{}),space:i.reduce(((e,s)=>{const r=l("space",s);return r&&(e[s]={prefix:t.default.prefix,scale:"space",token:s,value:r}),e}),{}),sizes:c.reduce(((e,s)=>{const r=l("sizes",s);return r&&(e[s]={prefix:t.default.prefix,scale:"sizes",token:s,value:r}),e}),{}),radii:a.reduce(((e,s)=>{const r=l("radii",s);return r&&(e[s]={prefix:t.default.prefix,scale:"radii",token:s,value:r}),e}),{}),zIndices:d.reduce(((e,s)=>{const r=l("zIndices",s);return r&&(e[s]={prefix:t.default.prefix,scale:"zIndices",token:s,value:r}),e}),{}),borderWeights:f.reduce(((e,s)=>{const r=l("borderWeights",s);return r&&(e[s]={prefix:t.default.prefix,scale:"borderWeights",token:s,value:r}),e}),{}),shadows:p.reduce(((e,s)=>{const r=l("shadows",s);return r&&(e[s]={prefix:t.default.prefix,scale:"shadows",token:s,value:r}),e}),{}),transitions:m.reduce(((e,s)=>{const r=l("transitions",s);return r&&(e[s]={prefix:t.default.prefix,scale:"transitions",token:s,value:r}),e}),{}),breakpoints:h.reduce(((e,s)=>{const r=l("breakpoints",s);return r&&(e[s]={prefix:t.default.prefix,scale:"breakpoints",token:s,value:r}),e}),{})}};exports.getDocumentTheme=e=>{var t,s;const r=(null==e||null==(t=e.getAttribute("style"))?void 0:t.split(";").map((e=>e.trim())).filter((e=>e.includes("color-scheme"))))||[],n=r.length>0?null==(s=r[0])?void 0:s.replace("color-scheme: ","").replace(";",""):"";return(null==e?void 0:e.getAttribute("data-theme"))||n};const o=e=>"string"==typeof e&&null!=e&&e.includes("-theme")?null==e?void 0:e.replace("-theme",""):e;exports.getThemeName=o;exports.changeTheme=e=>{var t,s;if(!document)return;const n=document.documentElement,u=(null==n||null==(t=n.getAttribute("class"))?void 0:t.split(" ").filter((e=>!(e.includes("theme")||e.includes("light")||e.includes("dark")))))||[],l=(null==n||null==(s=n.getAttribute("style"))?void 0:s.split(";").filter((e=>!e.includes("color-scheme"))).map((e=>`${e};`)))||[],i=o(e);null==n||n.setAttribute("class",(0,r.default)(u,`${i}-theme`)),null==n||n.setAttribute("style",(0,r.default)(l,`color-scheme: ${i};`))};exports.useSSR=()=>{const[e,t]=(0,u.useState)(!1);return(0,u.useEffect)((()=>{t(Boolean("undefined"!=typeof window&&window.document&&window.document.createElement))}),[]),{isBrowser:e,isServer:!e}};