Comparing version 3.0.0-beta to 3.0.0-beta2
@@ -77,3 +77,3 @@ var el = typeof document !== 'undefined' && document.createElement('div'); | ||
var doc = typeof document === 'object' && document | ||
var doc = window && typeof window.document === 'object' && window.document | ||
, validChar = function (c, ci) { return ci ? function (x) { return c.indexOf(x.toLowerCase()) > -1; } : function (x) { return c.indexOf(x) > -1; }; } | ||
@@ -86,3 +86,4 @@ , isProp = validChar('abcdefghijklmnopqrstuvwxyz-') | ||
, vendorMap = Object.create(null, {}) | ||
, vendorValuePrefix = Object.create(null, {}); | ||
, vendorValuePrefix = Object.create(null, {}) | ||
, randomId = function () { return 'bss' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6); }; | ||
@@ -105,4 +106,5 @@ properties.forEach(function (x) { | ||
var root = ref.root; if ( root === void 0 ) root = doc && doc.documentElement.style; | ||
var style = ref.style; if ( style === void 0 ) style = doc && doc.createElement('style'); | ||
var prefix = ref.prefix; if ( prefix === void 0 ) prefix = 'b' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6); | ||
var style = ref.style; if ( style === void 0 ) style = doc && typeof doc.querySelector === 'function' && doc.querySelector('.bss_style') || doc.createElement('style'); | ||
var sheet = ref.sheet; if ( sheet === void 0 ) sheet = style && style.sheet; | ||
var prefix = ref.prefix; if ( prefix === void 0 ) prefix = style && style.getAttribute('id') || randomId(); | ||
var charset = ref.charset; | ||
@@ -148,3 +150,3 @@ | ||
b.count = 0; | ||
b.rules = []; | ||
b.rules = style && style.textContent && style.textContent.split(b.prefix + '{}') || []; | ||
b.rules.vars = []; | ||
@@ -161,2 +163,3 @@ b.vars = {}; | ||
b.create = bss; | ||
b.ssr = ssr; | ||
@@ -171,2 +174,22 @@ b.prop(vendor); | ||
function ssr(str) { | ||
var index = imports + (b.charset ? 1 : 0); | ||
var rules = b.rules.slice(0, index) | ||
.concat( | ||
(str.match(new RegExp(b.prefix + '[0-9]+', 'g')) || []) | ||
.filter(function (x, i, xs) { return xs.indexOf(x) === i; }) | ||
.map(function (x) { return b.rules[index + parseInt(x.slice(b.prefix.length)) - 1]; }) | ||
).join(b.prefix + '{}'); | ||
return { | ||
sheet: '<style class="bss_style" id="' + b.prefix + '">' + rules + '</style>', | ||
vars: Object.entries(b.vars).map(function (ref) { | ||
var k = ref[0]; | ||
var v = ref[1]; | ||
return '--' + k + ':' + v.value + ';'; | ||
}) | ||
} | ||
} | ||
function classes(x, value) { | ||
@@ -285,3 +308,3 @@ var ref, ref$1; | ||
if (b.dev) { | ||
if (b.dev && style) { | ||
style.textContent = replaceVars( | ||
@@ -292,3 +315,3 @@ (b.charset ? [b.charset] : []).concat(b.rules).map(pretty).join('\n'), | ||
); | ||
} else { | ||
} else if (style && style.sheet) { | ||
try { | ||
@@ -295,0 +318,0 @@ style.sheet.insertRule(replaceVars(rule, vars, index), index + (b.charset ? 1 : 0)); |
@@ -83,3 +83,3 @@ (function (global, factory) { | ||
var doc = typeof document === 'object' && document | ||
var doc = window && typeof window.document === 'object' && window.document | ||
, validChar = function (c, ci) { return ci ? function (x) { return c.indexOf(x.toLowerCase()) > -1; } : function (x) { return c.indexOf(x) > -1; }; } | ||
@@ -92,3 +92,4 @@ , isProp = validChar('abcdefghijklmnopqrstuvwxyz-') | ||
, vendorMap = Object.create(null, {}) | ||
, vendorValuePrefix = Object.create(null, {}); | ||
, vendorValuePrefix = Object.create(null, {}) | ||
, randomId = function () { return 'bss' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6); }; | ||
@@ -111,4 +112,5 @@ properties.forEach(function (x) { | ||
var root = ref.root; if ( root === void 0 ) root = doc && doc.documentElement.style; | ||
var style = ref.style; if ( style === void 0 ) style = doc && doc.createElement('style'); | ||
var prefix = ref.prefix; if ( prefix === void 0 ) prefix = 'b' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6); | ||
var style = ref.style; if ( style === void 0 ) style = doc && typeof doc.querySelector === 'function' && doc.querySelector('.bss_style') || doc.createElement('style'); | ||
var sheet = ref.sheet; if ( sheet === void 0 ) sheet = style && style.sheet; | ||
var prefix = ref.prefix; if ( prefix === void 0 ) prefix = style && style.getAttribute('id') || randomId(); | ||
var charset = ref.charset; | ||
@@ -154,3 +156,3 @@ | ||
b.count = 0; | ||
b.rules = []; | ||
b.rules = style && style.textContent && style.textContent.split(b.prefix + '{}') || []; | ||
b.rules.vars = []; | ||
@@ -167,2 +169,3 @@ b.vars = {}; | ||
b.create = bss; | ||
b.ssr = ssr; | ||
@@ -177,2 +180,22 @@ b.prop(vendor); | ||
function ssr(str) { | ||
var index = imports + (b.charset ? 1 : 0); | ||
var rules = b.rules.slice(0, index) | ||
.concat( | ||
(str.match(new RegExp(b.prefix + '[0-9]+', 'g')) || []) | ||
.filter(function (x, i, xs) { return xs.indexOf(x) === i; }) | ||
.map(function (x) { return b.rules[index + parseInt(x.slice(b.prefix.length)) - 1]; }) | ||
).join(b.prefix + '{}'); | ||
return { | ||
sheet: '<style class="bss_style" id="' + b.prefix + '">' + rules + '</style>', | ||
vars: Object.entries(b.vars).map(function (ref) { | ||
var k = ref[0]; | ||
var v = ref[1]; | ||
return '--' + k + ':' + v.value + ';'; | ||
}) | ||
} | ||
} | ||
function classes(x, value) { | ||
@@ -291,3 +314,3 @@ var ref, ref$1; | ||
if (b.dev) { | ||
if (b.dev && style) { | ||
style.textContent = replaceVars( | ||
@@ -298,3 +321,3 @@ (b.charset ? [b.charset] : []).concat(b.rules).map(pretty).join('\n'), | ||
); | ||
} else { | ||
} else if (style && style.sheet) { | ||
try { | ||
@@ -301,0 +324,0 @@ style.sheet.insertRule(replaceVars(rule, vars, index), index + (b.charset ? 1 : 0)); |
@@ -1,2 +0,2 @@ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).b=n()}(this,(function(){"use strict";var e="undefined"!=typeof document&&document.createElement("div");function n(n,t){try{return e.style[n]="1px",e.style.setProperty(n,"1px"),"1px"===e.style[n].slice(-3)}catch(e){return!1}}var t=/^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/,r=function(e){return e.replace(/(\B[A-Z])/g,"-$1").toLowerCase()},o=function(e){return e?e.hasOwnProperty("width")?e:o(Object.getPrototypeOf(e)):{}},u=["float"].concat(Object.keys("undefined"==typeof document?{}:o(document.documentElement.style))).filter((function(e,n,t){return-1===e.indexOf("-")&&"length"!==e&&t.indexOf(e)===n})).map((function(e){return e.match(t)?"-"+r(e):r(e)})).sort(),a=function(e,n){var t;return Object.assign(e,((t={})[n.split("-").map((function(e){return e[0]})).join("")]=n,t))},i=Object.assign(u.reduce(a,{}),["align-items","bottom","background-color","border-radius","box-shadow","background-image","color","display","float","flex-direction","font-family","font-size","height","justify-content","left","line-height","letter-spacing","margin","margin-bottom","margin-left","margin-right","margin-top","opacity","padding","padding-bottom","padding-left","padding-right","padding-top","right","top","text-align","text-decoration","text-transform","width"].reduce(a,{}));function c(e){return i[e]||e}var s="object"==typeof document&&document,l=function(e,n){return n?function(n){return e.indexOf(n.toLowerCase())>-1}:function(n){return e.indexOf(n)>-1}},f=l("abcdefghijklmnopqrstuvwxyz-"),p=l("abcdefghijklmnopqrstuvwxyz0123456789-_",!0),d=l("'\""),h=l(" :"),g=l(" ,)"),m=Object.create(null,{}),v=Object.create(null,{});function x(e){void 0===e&&(e={});var t=e.root;void 0===t&&(t=s&&s.documentElement.style);var r=e.style;void 0===r&&(r=s&&s.createElement("style"));var o=e.prefix;void 0===o&&(o="b"+("000000"+(Math.random()*Math.pow(36,6)|0).toString(36)).slice(-6));var a,i,l,v=e.charset,y=(a=[],i=[],l={has:function(e){return-1!==a.indexOf(e)},get:function(e){return i[a.indexOf(e)]},set:function(e,n){return a.push(e),i.push(n),l},delete:function(e){return-1!==a.indexOf(e)&&i.splice(a.indexOf(i),1)},forEach:function(e){return a.forEach((function(n,t){return e(i[t],n,l)}))},clear:function(){return a=[],void(i=[])}}),b=t&&"undefined"!=typeof CSS&&CSS.supports("color","var(--var)"),O=[],j=[],w=[],$=0;function k(e){for(var n=[],t=arguments.length-1;t-- >0;)n[t]=arguments[t+1];var r=y.get(e)||function(){var e={name:k.prefix+ ++k.count,classes:[],toString:function(){return e.classes.join(" ")},valueOf:function(){return e.classes.join(" ")}};return e}();if(r.classes=[r.name],y.has(e))return n.forEach((function(e,n){return z(r,e)||S(r.name+"-"+(n+1),e)})),r;for(var o,u=e[0],a=1;a<e.length;a++){var i=n[a-1];if(!z(r,i)){var c=j.reduce((function(e,n){return n(e)}),(u.match(/[;\s]\s+([a-z-]+)[:\s].*$/)||[])[1]);u+=S(r.name+"-"+a,i,c,E(c,u))}u+=e[a]}return function(e,n){for(var t=[],r={prop:null,value:null,out:[],lean:!0,comma:0,end:0,quote:!1},o=[],u=!1,a=!1,i=!1,c=0;c<e.length;c++)if(c>0&&i&&!p(e[c])&&(n.name=e.slice(1,c)+"-"+n.name,i=!1),i||0===c&&"."===e[c])i=!0;else if(P(e,c,r),"}"===e[c]||c===e.length-1)A(u||a||t,c,n.name,r,o),u&&!o.length&&((a||t).push(u.selector+"{"+u.join("")+"}"),u=!1),a&&!o.length&&(t.push(a.selector+"{"+a.join("")+"}"),a=!1),o.pop();else if("{"===e[c]){var s=e.slice(r.end,c).trim();A(u||a||t,c,n.name,r,o),r.prop=r.value=null,0===s.indexOf("@supports")?a=Object.assign([],{selector:s}):"@"===s[0]?u=Object.assign([],{selector:w.reduce((function(e,n){return n(e)}),s.trim())}):o.push(s)}return t}((o=u,o.replace(/\/\/.*?(\n|$)/g,"\n").replace(/\/\*[\s\S]*?\*\//g,"")),r).forEach(q),y.set(e,r),r}return k.count=0,k.rules=[],k.rules.vars=[],k.vars={},k.debug=!1,k.dev=!1,k.charset=v,k.prefix=o,k.properties=u,k.at=function(e){return w.unshift("function"==typeof e?e:function(n){return e[n.slice(1)]||n})},k.prop=function(e){return j.unshift(e)},k.transform=function(e){return O.unshift(e)},k.create=x,k.prop((function(e){if(-1===u.indexOf(e)){if(m[e])return k.debug&&console.log(e,"prefixed to",m[e]),m[e];k.debug&&console.log(e,"not found")}return e})),k.prop(c),r&&s.head&&s.head.appendChild(r),r&&(r.id=k.prefix),k;function z(e,n){var t,r;return n&&n.classes?((t=e.classes).push.apply(t,n.classes),!0):Array.isArray(n)?((r=e.classes).push.apply(r,n.map((function(n){return e.classes})).flat()),!0):void 0}function E(e,t){return"transform"===e?t.match(/translate(3D|X|Y)?\([^)]*$/)?"px":t.match(/rotate(3D|X|Y)?\([^)]*$/)?"deg":"":n(e)&&!t.match(/\([^)]*$/)?"px":""}function S(e,n,o,u){void 0===u&&(u="");var a=k.vars[e]||(k.vars[e]={name:e,prop:o,suffix:u,change:function(e){return function(e,n,o){o=function(e,n){return e+(e.match(/[^-0-9.]/)?"":n)}(String(o),e.suffix),e.value!==o&&(e.value=o,b?t.setProperty("--"+e.name,o):e.raw&&function(e,n,t,o){if(e=e+$+(k.charset?1:0),k.dev)r.textContent=C((k.charset?[k.charset]:[]).concat(k.rules).map(M).join("\n"),k.rules.vars[e],e);else try{r.sheet.deleteRule(e),r.sheet.insertRule(C(k.rules[e],k.rules.vars[e],e),e)}catch(e){k.debug&&console.log("Ignored error:",e)}}(e.index));return e.value}(a,0,O.reduce((function(e,n){return n(e,a.prop,a.change)}),e))}});return a.change(n),a.raw=n,"var(--"+e+")"}function C(e,n,t){return t=t+$+(k.charset?1:0),n.reduce((function(e,n){return e.replace(n,k.vars[n.slice(6,-1)].value)}),e)}function q(e){var n=0===e.indexOf("@import"),t=n?0:k.rules.length,o=!b&&e.match(/var\(--[a-z0-9-]+\)/g)||[];if(o.forEach((function(e){return k.vars[e.slice(6,-1)].index=t})),$+=n?1:0,0===t?k.rules.unshift(e):k.rules.push(e),0===t?k.rules.vars.unshift(o):k.rules.vars.push(o),k.dev)r.textContent=C((k.charset?[k.charset]:[]).concat(k.rules).map(M).join("\n"),o,t);else try{r.sheet.insertRule(C(e,o,t),t+(k.charset?1:0))}catch(e){k.debug&&console.log("Ignored error:",e)}}function M(e){return e.replace(/{/g," {\n").replace(/([;{])\n*/g,"$1\n ").replace(/(.*):(.*);/g,"$1: $2;").replace(/[\s]*}/g,"\n}\n").replace(/,\s*/g,", ").replace(/@.*{[\s\S]*?}[\s]*}/g,(function(e){return e.split("\n").reduce((function(e,n,t,r){return e+(t<r.length-1?"\n":"")+(t>1&&t<r.length-2?" ":"")+n}),"")})).trim().replace("}\n\n}","}\n}")}function A(e,n,t,r,o){var u=r.out.length&&r.out.map((function(e){return e.join(":")})).join(";");u&&e.push((o.length&&"&"===o[0][0]||0===(!e.selector||e.selector.indexOf("@keyframes "))?"":"."+t+(o.length&&":"!==o[0][0]?" ":""))+o.join(" ").replace(/&/g,"."+t).replace(/ :/g,":")+"{"+u+";}"),r.end=n+1,r.out=[]}function P(e,t,r){!r.value&&null!==r.prop&&r.lean&&":"===e[t]&&(r.lean=!1),r.value||null===r.prop||","!==e[t]?!r.value&&null===r.prop&&f(e[t])?r.prop=t:"number"==typeof r.prop&&(t===e.length-1||!r.value&&(h(e[t])||r.lean&&"\n"===e[t]))&&(r.value=t+1):(r.value=r.comma,r.prop=r.out[r.out.length-1][0]),function(e,t,r){r.value&&d(e[t])&&(r.quote=!r.quote);!r.quote&&null!==r.prop&&(t===e.length-1||";"===e[t]||"}"===e[t+1]||r.lean&&","!==e[t-1]&&"\n"===e[t])&&(r.out.push(function(e){var t=e[0],r=e[1];if(!n(t=j.reduce((function(e,n){return n(e)}),t.trim())))return[t,r.trim()];for(var o="",u=0,a=!1,i=0;i<r.length;i++){if(g(r[i])||i===r.length-1){var c=r.slice(u,i+1).trim();o+=(a?c:c.replace(/(^|[( ,])([-0-9.]+)([ ,)]|$)/g,"$1$2px$3").trim())+(")"===r[i]?"":" "),u=i+1}"("!==r[i]&&")"!==r[i-1]||(a="transform"!==t||0!==r.slice(u,i).indexOf("translate"))}return[t,o.trim().replace(/[\n ]+/g," ")]}(e.slice(r.prop,t+1).match(/\s*([a-z-]+)[\s:]*([^;]+)/).slice(1))),r.end=t+1,r.comma=r.value,r.value=r.prop=null,r.lean=!0)}(e,t,r)}}u.forEach((function(e){var n=e.match(/-(ms|o|webkit|moz)-/g);if(n){var t=e.replace(/-(ms|o|webkit|moz)-/,"");if(-1===u.indexOf(t))return"flexDirection"===t&&(v.flex="-"+n[1].toLowerCase()+"-flex"),void(m[t]=e)}}));var y=x();return y.create=x,y})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).b=t()}(this,(function(){"use strict";var e="undefined"!=typeof document&&document.createElement("div");function t(t,n){try{return e.style[t]="1px",e.style.setProperty(t,"1px"),"1px"===e.style[t].slice(-3)}catch(e){return!1}}var n=/^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/,r=function(e){return e.replace(/(\B[A-Z])/g,"-$1").toLowerCase()},o=function(e){return e?e.hasOwnProperty("width")?e:o(Object.getPrototypeOf(e)):{}},u=["float"].concat(Object.keys("undefined"==typeof document?{}:o(document.documentElement.style))).filter((function(e,t,n){return-1===e.indexOf("-")&&"length"!==e&&n.indexOf(e)===t})).map((function(e){return e.match(n)?"-"+r(e):r(e)})).sort(),i=function(e,t){var n;return Object.assign(e,((n={})[t.split("-").map((function(e){return e[0]})).join("")]=t,n))},a=Object.assign(u.reduce(i,{}),["align-items","bottom","background-color","border-radius","box-shadow","background-image","color","display","float","flex-direction","font-family","font-size","height","justify-content","left","line-height","letter-spacing","margin","margin-bottom","margin-left","margin-right","margin-top","opacity","padding","padding-bottom","padding-left","padding-right","padding-top","right","top","text-align","text-decoration","text-transform","width"].reduce(i,{}));function c(e){return a[e]||e}var s=window&&"object"==typeof window.document&&window.document,l=function(e,t){return t?function(t){return e.indexOf(t.toLowerCase())>-1}:function(t){return e.indexOf(t)>-1}},f=l("abcdefghijklmnopqrstuvwxyz-"),p=l("abcdefghijklmnopqrstuvwxyz0123456789-_",!0),d=l("'\""),h=l(" :"),g=l(" ,)"),m=Object.create(null,{}),v=Object.create(null,{}),x=function(){return"bss"+("000000"+(Math.random()*Math.pow(36,6)|0).toString(36)).slice(-6)};function y(e){void 0===e&&(e={});var n=e.root;void 0===n&&(n=s&&s.documentElement.style);var r=e.style;void 0===r&&(r=s&&"function"==typeof s.querySelector&&s.querySelector(".bss_style")||s.createElement("style"));var o=e.sheet;void 0===o&&(o=r&&r.sheet);var i=e.prefix;void 0===i&&(i=r&&r.getAttribute("id")||x());var a,l,v,b=e.charset,O=(a=[],l=[],v={has:function(e){return-1!==a.indexOf(e)},get:function(e){return l[a.indexOf(e)]},set:function(e,t){return a.push(e),l.push(t),v},delete:function(e){return-1!==a.indexOf(e)&&l.splice(a.indexOf(l),1)},forEach:function(e){return a.forEach((function(t,n){return e(l[n],t,v)}))},clear:function(){return a=[],void(l=[])}}),j=n&&"undefined"!=typeof CSS&&CSS.supports("color","var(--var)"),w=[],$=[],S=[],E=0;function k(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];var r=O.get(e)||function(){var e={name:k.prefix+ ++k.count,classes:[],toString:function(){return e.classes.join(" ")},valueOf:function(){return e.classes.join(" ")}};return e}();if(r.classes=[r.name],O.has(e))return t.forEach((function(e,t){return z(r,e)||q(r.name+"-"+(t+1),e)})),r;for(var o,u=e[0],i=1;i<e.length;i++){var a=t[i-1];if(!z(r,a)){var c=$.reduce((function(e,t){return t(e)}),(u.match(/[;\s]\s+([a-z-]+)[:\s].*$/)||[])[1]);u+=q(r.name+"-"+i,a,c,C(c,u))}u+=e[i]}return function(e,t){for(var n=[],r={prop:null,value:null,out:[],lean:!0,comma:0,end:0,quote:!1},o=[],u=!1,i=!1,a=!1,c=0;c<e.length;c++)if(c>0&&a&&!p(e[c])&&(t.name=e.slice(1,c)+"-"+t.name,a=!1),a||0===c&&"."===e[c])a=!0;else if(D(e,c,r),"}"===e[c]||c===e.length-1)R(u||i||n,c,t.name,r,o),u&&!o.length&&((i||n).push(u.selector+"{"+u.join("")+"}"),u=!1),i&&!o.length&&(n.push(i.selector+"{"+i.join("")+"}"),i=!1),o.pop();else if("{"===e[c]){var s=e.slice(r.end,c).trim();R(u||i||n,c,t.name,r,o),r.prop=r.value=null,0===s.indexOf("@supports")?i=Object.assign([],{selector:s}):"@"===s[0]?u=Object.assign([],{selector:S.reduce((function(e,t){return t(e)}),s.trim())}):o.push(s)}return n}((o=u,o.replace(/\/\/.*?(\n|$)/g,"\n").replace(/\/\*[\s\S]*?\*\//g,"")),r).forEach(M),O.set(e,r),r}return k.count=0,k.rules=r&&r.textContent&&r.textContent.split(k.prefix+"{}")||[],k.rules.vars=[],k.vars={},k.debug=!1,k.dev=!1,k.charset=b,k.prefix=i,k.properties=u,k.at=function(e){return S.unshift("function"==typeof e?e:function(t){return e[t.slice(1)]||t})},k.prop=function(e){return $.unshift(e)},k.transform=function(e){return w.unshift(e)},k.create=y,k.ssr=function(e){var t=E+(k.charset?1:0),n=k.rules.slice(0,t).concat((e.match(new RegExp(k.prefix+"[0-9]+","g"))||[]).filter((function(e,t,n){return n.indexOf(e)===t})).map((function(e){return k.rules[t+parseInt(e.slice(k.prefix.length))-1]}))).join(k.prefix+"{}");return{sheet:'<style class="bss_style" id="'+k.prefix+'">'+n+"</style>",vars:Object.entries(k.vars).map((function(e){return"--"+e[0]+":"+e[1].value+";"}))}},k.prop((function(e){if(-1===u.indexOf(e)){if(m[e])return k.debug&&console.log(e,"prefixed to",m[e]),m[e];k.debug&&console.log(e,"not found")}return e})),k.prop(c),r&&s.head&&s.head.appendChild(r),r&&(r.id=k.prefix),k;function z(e,t){var n,r;return t&&t.classes?((n=e.classes).push.apply(n,t.classes),!0):Array.isArray(t)?((r=e.classes).push.apply(r,t.map((function(t){return e.classes})).flat()),!0):void 0}function C(e,n){return"transform"===e?n.match(/translate(3D|X|Y)?\([^)]*$/)?"px":n.match(/rotate(3D|X|Y)?\([^)]*$/)?"deg":"":t(e)&&!n.match(/\([^)]*$/)?"px":""}function q(e,t,o,u){void 0===u&&(u="");var i=k.vars[e]||(k.vars[e]={name:e,prop:o,suffix:u,change:function(e){return function(e,t,o){o=function(e,t){return e+(e.match(/[^-0-9.]/)?"":t)}(String(o),e.suffix),e.value!==o&&(e.value=o,j?n.setProperty("--"+e.name,o):e.raw&&function(e,t,n,o){if(e=e+E+(k.charset?1:0),k.dev)r.textContent=A((k.charset?[k.charset]:[]).concat(k.rules).map(P).join("\n"),k.rules.vars[e],e);else try{r.sheet.deleteRule(e),r.sheet.insertRule(A(k.rules[e],k.rules.vars[e],e),e)}catch(e){k.debug&&console.log("Ignored error:",e)}}(e.index));return e.value}(i,0,w.reduce((function(e,t){return t(e,i.prop,i.change)}),e))}});return i.change(t),i.raw=t,"var(--"+e+")"}function A(e,t,n){return n=n+E+(k.charset?1:0),t.reduce((function(e,t){return e.replace(t,k.vars[t.slice(6,-1)].value)}),e)}function M(e){var t=0===e.indexOf("@import"),n=t?0:k.rules.length,o=!j&&e.match(/var\(--[a-z0-9-]+\)/g)||[];if(o.forEach((function(e){return k.vars[e.slice(6,-1)].index=n})),E+=t?1:0,0===n?k.rules.unshift(e):k.rules.push(e),0===n?k.rules.vars.unshift(o):k.rules.vars.push(o),k.dev&&r)r.textContent=A((k.charset?[k.charset]:[]).concat(k.rules).map(P).join("\n"),o,n);else if(r&&r.sheet)try{r.sheet.insertRule(A(e,o,n),n+(k.charset?1:0))}catch(e){k.debug&&console.log("Ignored error:",e)}}function P(e){return e.replace(/{/g," {\n").replace(/([;{])\n*/g,"$1\n ").replace(/(.*):(.*);/g,"$1: $2;").replace(/[\s]*}/g,"\n}\n").replace(/,\s*/g,", ").replace(/@.*{[\s\S]*?}[\s]*}/g,(function(e){return e.split("\n").reduce((function(e,t,n,r){return e+(n<r.length-1?"\n":"")+(n>1&&n<r.length-2?" ":"")+t}),"")})).trim().replace("}\n\n}","}\n}")}function R(e,t,n,r,o){var u=r.out.length&&r.out.map((function(e){return e.join(":")})).join(";");u&&e.push((o.length&&"&"===o[0][0]||0===(!e.selector||e.selector.indexOf("@keyframes "))?"":"."+n+(o.length&&":"!==o[0][0]?" ":""))+o.join(" ").replace(/&/g,"."+n).replace(/ :/g,":")+"{"+u+";}"),r.end=t+1,r.out=[]}function D(e,n,r){!r.value&&null!==r.prop&&r.lean&&":"===e[n]&&(r.lean=!1),r.value||null===r.prop||","!==e[n]?!r.value&&null===r.prop&&f(e[n])?r.prop=n:"number"==typeof r.prop&&(n===e.length-1||!r.value&&(h(e[n])||r.lean&&"\n"===e[n]))&&(r.value=n+1):(r.value=r.comma,r.prop=r.out[r.out.length-1][0]),function(e,n,r){r.value&&d(e[n])&&(r.quote=!r.quote);!r.quote&&null!==r.prop&&(n===e.length-1||";"===e[n]||"}"===e[n+1]||r.lean&&","!==e[n-1]&&"\n"===e[n])&&(r.out.push(function(e){var n=e[0],r=e[1];if(!t(n=$.reduce((function(e,t){return t(e)}),n.trim())))return[n,r.trim()];for(var o="",u=0,i=!1,a=0;a<r.length;a++){if(g(r[a])||a===r.length-1){var c=r.slice(u,a+1).trim();o+=(i?c:c.replace(/(^|[( ,])([-0-9.]+)([ ,)]|$)/g,"$1$2px$3").trim())+(")"===r[a]?"":" "),u=a+1}"("!==r[a]&&")"!==r[a-1]||(i="transform"!==n||0!==r.slice(u,a).indexOf("translate"))}return[n,o.trim().replace(/[\n ]+/g," ")]}(e.slice(r.prop,n+1).match(/\s*([a-z-]+)[\s:]*([^;]+)/).slice(1))),r.end=n+1,r.comma=r.value,r.value=r.prop=null,r.lean=!0)}(e,n,r)}}u.forEach((function(e){var t=e.match(/-(ms|o|webkit|moz)-/g);if(t){var n=e.replace(/-(ms|o|webkit|moz)-/,"");if(-1===u.indexOf(n))return"flexDirection"===n&&(v.flex="-"+t[1].toLowerCase()+"-flex"),void(m[n]=e)}}));var b=y();return b.create=y,b})); | ||
//# sourceMappingURL=bss.min.js.map |
@@ -5,3 +5,3 @@ import px from './px.js' | ||
const doc = typeof document === 'object' && document | ||
const doc = window && typeof window.document === 'object' && window.document | ||
, validChar = (c, ci) => ci ? x => c.indexOf(x.toLowerCase()) > -1 : x => c.indexOf(x) > -1 | ||
@@ -15,2 +15,3 @@ , isProp = validChar('abcdefghijklmnopqrstuvwxyz-') | ||
, vendorValuePrefix = Object.create(null, {}) | ||
, randomId = () => 'bss' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6) | ||
@@ -32,4 +33,5 @@ properties.forEach(x => { | ||
root = doc && doc.documentElement.style, | ||
style = doc && doc.createElement('style'), | ||
prefix = 'b' + ('000000' + (Math.random() * Math.pow(36, 6) | 0).toString(36)).slice(-6), | ||
style = doc && typeof doc.querySelector === 'function' && doc.querySelector('.bss_style') || doc.createElement('style'), | ||
sheet = style && style.sheet, | ||
prefix = style && style.getAttribute('id') || randomId(), | ||
charset | ||
@@ -72,3 +74,3 @@ } = {}) { | ||
b.count = 0 | ||
b.rules = [] | ||
b.rules = style && style.textContent && style.textContent.split(b.prefix + '{}') || [] | ||
b.rules.vars = [] | ||
@@ -85,2 +87,3 @@ b.vars = {} | ||
b.create = bss | ||
b.ssr = ssr | ||
@@ -95,2 +98,17 @@ b.prop(vendor) | ||
function ssr(str) { | ||
const index = imports + (b.charset ? 1 : 0) | ||
const rules = b.rules.slice(0, index) | ||
.concat( | ||
(str.match(new RegExp(b.prefix + '[0-9]+', 'g')) || []) | ||
.filter((x, i, xs) => xs.indexOf(x) === i) | ||
.map(x => b.rules[index + parseInt(x.slice(b.prefix.length)) - 1]) | ||
).join(b.prefix + '{}') | ||
return { | ||
sheet: '<style class="bss_style" id="' + b.prefix + '">' + rules + '</style>', | ||
vars: Object.entries(b.vars).map(([k, v]) => '--' + k + ':' + v.value + ';') | ||
} | ||
} | ||
function classes(x, value) { | ||
@@ -206,3 +224,3 @@ if (value && value.classes) { | ||
if (b.dev) { | ||
if (b.dev && style) { | ||
style.textContent = replaceVars( | ||
@@ -213,3 +231,3 @@ (b.charset ? [b.charset] : []).concat(b.rules).map(pretty).join('\n'), | ||
) | ||
} else { | ||
} else if (style && style.sheet) { | ||
try { | ||
@@ -216,0 +234,0 @@ style.sheet.insertRule(replaceVars(rule, vars, index), index + (b.charset ? 1 : 0)) |
{ | ||
"name": "bss", | ||
"version": "3.0.0-beta", | ||
"version": "3.0.0-beta2", | ||
"description": "Better Style Sheets", | ||
@@ -5,0 +5,0 @@ "main": "dist/bss.js", |
@@ -67,2 +67,7 @@ const o = require('ospec') | ||
c white | ||
${ | ||
b` | ||
position relative | ||
` | ||
} | ||
` | ||
@@ -72,5 +77,6 @@ } | ||
` | ||
o(r.classes.length).equals(2) | ||
o(r.classes.length).equals(3) | ||
o(b.rules.pop().replace(/.*{/, '{')).equals('{background-color:blue;}') | ||
o(b.rules.pop().replace(/.*{/, '{')).equals('{color:white;}') | ||
o(b.rules.pop().replace(/.*{/, '{')).equals('{position:relative;}') | ||
}) | ||
@@ -77,0 +83,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
168475
1753