UNPKG

otion

Version:

Atomic CSS-in-JS with a featherweight runtime

3 lines (2 loc) 4.48 kB
"use strict";function e(e){for(var t,n=0,r=0,s=e.length;s>=4;++r,s-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(s){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}Object.defineProperty(exports,"__esModule",{value:!0});var t=/^(br|hy|us|wr|text-si|scroll-snap-t)/,n=/^(ap|us|tab-|border-e|margin-e|margin-s|padding-e|padding-s|border-sta)/,r=/^(ap|br|hy|us|wr|mas|colu|clip-|box-de|font-k|text-e|font-fe|shape-i|text-or|text-si|border-e|margin-e|margin-s|padding-e|padding-s|border-sta|background-cl|scroll-snap-t|text-decoration-)/,s=/^(pos|background-cl)/,o={};const c="undefined"!=typeof window,i="production"!==process.env.NODE_ENV;function a(){let e=document.getElementById("__otion");return e||(e=document.createElement("style"),e.id="__otion",document.head.appendChild(e))}function l({nonce:e,target:t=a().sheet}){return t.ownerNode.nonce=e,{sheet:t,insert(e,n){try{return t.insertRule(e,n)}catch{return-1}}}}function u({nonce:e,target:t=a()}){return t.nonce=e,{sheet:t.sheet,insert:(e,n)=>(t.insertBefore(document.createTextNode(e),t.childNodes[n]),n)}}const f={insert:()=>0};function p(e){return e.trim().replace(/\s+/g," ")}const d=/^(-|f[lo].*?[^se]$|g.{6,}[^ps]$|z|o[pr]|(-w.{6})?li.*?(t|mp)$|an|(bo|s).{5}im|sca|m.{7}[ds]|ta|c.*?[st]$|wido|ini)/,h=/^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7}$)|([fl].{5}l|g.{8}$|pl))/,m=new Map([["nk",1],["sited",2],["pty",3],["cus-w",4],["ver",5],["cus",6],["cus-v",7],["tive",8],["sable",9]]);function g(e,t,n){let r=0;if(!("-"===e[1])){const t="-"===e[0]?e.slice(e.indexOf("-",1))+1:e,n=h.exec(t);r=(n?+!!n[1]||-!!n[2]:0)+1;let s=1;for(;s=t.indexOf("-",s)+1;)++r}return r*=2*(t&&m.get(t.slice(3,8))||10),r+=+n,r}function y(e){return"-"+e.toLowerCase()}function x(){let a,h,m,x;function b(){if(!a||!h||!m)throw new Error("On a custom otion instance, `setup()` must be called before usage.")}function w(e){for(let t=e;t<=72;++t)++x[t]}function $(e,t){if(1===e.type){const{selectorText:n,style:r}=e,[,s,o]=/^..([0-9a-z]+)(:.*)?/.exec(n),c=r[0];c&&w(g(c,o,!!t)),m.set(s,m.size)}else $(e.cssRules[0],!0)}function A(e,t){const n="number"!=typeof t||d.test(e)?p(""+t):t+"px";return h(e,n)}function k(e,t){if("object"!=typeof t)return A(e,t);let n="";return t.forEach(t=>{t&&(n+=";"+A(e,t))}),n.slice(1)}function v(t,n,r,s,o){let c="";for(var i in t){const l=t[i];if(null!=l)if("object"!=typeof l||Array.isArray(l)){const t=i.replace(/^ms|[A-Z]/g,y),u=k(t,l),f="_"+e(n+u),p=r;let d=m.get(f);if(null==d||p){const e=g(t,null==o?"":n.slice(o),!!p);if(null==d||s[e]>d){const t="."+f;a.insert(`${n.slice(0,o)+t+(null!=o?n.slice(o).replace(/&/g,t)+"{":"{")}${u}}${r}`,x[e]),w(e),d=m.size,m.set(f,d),p&&(s[e]=Math.max(s[e],d))}}c+=" "+f}else{let e,t=":"===i[0]||"@"===i[0]||"&"===i[0]?i:p(i).replace(/([([]) | ([)\]])| ?(:) ?/g,"$1$2$3"),a="",u=o;null==u&&(":"===t[0]||"&"===t[0]?(u=n.length,e=t.split(/,(?![^[]*?[^\\]["']\s*?\])/).map(e=>p(e).replace("&",""))):"selectors"===t?t="":"@"!==t[0]&&(t+="{",a="}")),(e||[t]).forEach(e=>{c+=v(l,n+e,a+r,s,u)})}}return c}return{setup(e){a=e.injector||(c?i?u({}):l({}):f),h=e.prefix||((e,c)=>{const i=`${e}:${function(e,t){return s.test(e)?t.replace(/(sticky|text)/,"-webkit-$1, $1"):t}(e,c)}`;let a=i;const l=function(e){return o[e]?o[e]:o[e]=1*t.test(e)|2*n.test(e)|4*r.test(e)}(e);return 1&l&&(a+=";-ms-"+i),2&l&&(a+=";-moz-"+i),4&l&&(a+=";-webkit-"+i),a}),m=new Map,x=new Uint16Array(72)},hydrate(){i&&b();const{cssRules:e}=a.sheet;for(let t=0,{length:n}=e;t<n;++t){const n=e[t];7===n.type?m.set(n.name,m.size):$(n)}},css:e=>(i&&b(),v(e,"","",new Uint16Array(72)).slice(1)),keyframes(t){let n;return i&&b(),{toString(){if(!n){let o="";for(var r in t){o+=r+"{";const e=t[r];for(var s in e){const t=e[s];null!=t&&(o+=k(s,t))}o+="}"}n="_"+e(o),m.has(n)||(a.insert(`@keyframes ${n}{${o}}`,m.size),m.set(n,m.size))}return n}}}}}const b=x();b.setup({});const w=b.setup,$=b.hydrate,A=b.css,k=b.keyframes;exports.CSSOMInjector=l,exports.DOMInjector=u,exports.NoOpInjector=f,exports.createInstance=x,exports.css=A,exports.hydrate=$,exports.keyframes=k,exports.setup=w; //# sourceMappingURL=bundle.min.js.map