next-yak
Version:
next-yak is a CSS-in-JS solution tailored for Next.js that seamlessly combines the expressive power of styled-components syntax with efficient build-time extraction of CSS using Next.js's built-in CSS configuration
5 lines (4 loc) • 3.26 kB
JavaScript
;var B=Object.create;var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var s in e)m(t,s,{get:e[s],enumerable:!0})},I=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of v(e))!J.call(t,n)&&n!==s&&m(t,n,{get:()=>e[n],enumerable:!(r=E(e,n))||r.enumerable});return t};var D=(t,e,s)=>(s=t!=null?B(w(t)):{},I(e||!t||!t.__esModule?m(s,"default",{value:t,enumerable:!0}):s,t)),L=t=>I(m({},"__esModule",{value:!0}),t);var V={};X(V,{YakThemeProvider:()=>u.YakThemeProvider,atoms:()=>C,css:()=>k,keyframes:()=>P,styled:()=>R,useTheme:()=>u.useTheme});module.exports=L(V);var u=require("next-yak/context");var C=(...t)=>{let e=t.join(" ");return()=>({className:e})};var k=(t,...e)=>{let s=[];for(let r of e)typeof r=="function"&&s.push(r);return s.length===0?{className:"",style:void 0}:r=>{for(let n=0;n<s.length;n++)_(r,s[n]);return{className:"",style:void 0}}};function _(t,e){let s=e(t);for(;typeof s=="function";)s=s(t);return s}var P=(t,...e)=>"";var y=Symbol("yak");function x(...t){let e=[],s=[],r={};for(let n of t)if(typeof n=="string")e.push(n);else if(typeof n=="function")s.push(n);else if(typeof n=="object"&&"style"in n)for(let o in n.style){let a=n.style[o];typeof a=="function"?s.push(i=>({style:{[o]:String(h(i,a))}})):r[o]=a}if(s.length===0){let n=e.join(" ");return()=>({className:n,style:r})}return n=>{let o=[...e],a={...r};for(let i=0;i<s.length;i++)$(n,s[i],o,a);return{className:o.join(" "),style:a}}}var $=(t,e,s,r)=>{let n=e(t);for(;n;){if(typeof n=="function"){n=n(t);continue}else if(typeof n=="object"&&("className"in n&&n.className&&s.push(n.className),"style"in n&&n.style))for(let o in n.style)r[o]=n.style[o];break}},h=(t,e)=>{let s=e(t);if(typeof s=="function")return h(t,s);if(process.env.NODE_ENV==="development"&&typeof s!="string"&&typeof s!="number"&&!(s instanceof String))throw new Error(`Dynamic CSS functions must return a string or number but returned ${JSON.stringify(s)}
Dynamic CSS function: ${e.toString()}
`);return s};var b=D(require("react"),1),F=require("next-yak/context"),H={},K=t=>Object.assign(N(t),{attrs:e=>N(t,e)}),N=(t,e)=>{let s=typeof t!="string"&&y in t,[r,n]=s?t[y]:[],o=W(e,n);return(a,...i)=>{let d=x(a,...i),g=c=>{let l=o||d.length?(0,F.useTheme)():H,p="$__attrs"in c?{theme:l,...c}:f({theme:l,...c,$__attrs:!0},o?.({theme:l,...c})),S=d(p),{theme:Y,...M}=p,A=Y===l?M:p,T=s?A:U(A);return T.className=j(T.className,S.className),T.style="style"in T?{...T.style,...S.style}:S.style,r?r(T):b.default.createElement(t,{...T})};return Object.assign(g,{[y]:[g,o]})}},O=K,U=t=>{let e={};for(let s in t)!s.startsWith("$")&&t[s]!==void 0&&(e[s]=t[s]);return e},j=(t,e)=>{if(!(!t&&!e))return t?e?t+" "+e:t:e},f=(t,e)=>e?(t.className===e.className||!e.className)&&(t.style===e.style||!e.style)?{...t,...e}:{...t,...e,className:j(t.className,e.className),style:{...t.style||{},...e.style||{}}}:t,W=(t,e)=>{let s=t&&(typeof t=="function"?t:()=>t);return s&&e?r=>{let n=e(r);return f(n,s(f(r,n)))}:s||e};var R=new Proxy(O,{get(t,e){return t(e)}});0&&(module.exports={YakThemeProvider,atoms,css,keyframes,styled,useTheme});
//# sourceMappingURL=index.cjs.map