@thi.ng/meta-css 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -1
- package/README.md +506 -36
- package/index.js +6 -6
- package/package.json +6 -6
- package/specs/anim.json +5 -5
- package/specs/borders.json +29 -27
- package/specs/colors.json +54 -72
- package/specs/cursor.json +5 -6
- package/specs/dimensions.json +30 -30
- package/specs/display.json +5 -7
- package/specs/grid.json +27 -29
- package/specs/lists.json +4 -5
- package/specs/margins.json +21 -12
- package/specs/overflow.json +5 -19
- package/specs/positions.json +14 -18
- package/specs/shadow.json +26 -0
- package/specs/typography.json +75 -68
package/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
`)}}var
|
|
4
|
-
`]:[],...
|
|
5
|
-
`),A0(X,V);const Q=await X.ctx({logger:new m1(process.stderr,X.name,"INFO"),format:J?C1:P0,opts:Y.result,inputs:Y.rest},U);if(await U.fn(Q),X.post)await X.post(Q,U)}catch(W){process.stderr.write(W.message+"\n\n"),process.exit(1)}},A0=(X,Z)=>{process.stderr.write(Z1(X.opts,Z)),process.exit(1)},o8=(X)=>["\nAvailable commands:\n",...Object.keys(X).map((Z)=>`${q1(16)(Z)}: ${X[Z].desc}`),"\n"].join("\n");import{existsSync as i8,mkdirSync as a8,statSync as t8} from"fs";import{sep as c8} from"path";var v0=(X)=>{const Z=X.substring(0,X.lastIndexOf(c8));return Z.length>0&&!i8(Z)?(a8(Z,{recursive:!0}),!0):!1},L0=(X)=>t8(X).isDirectory();var T=(X)=>typeof X==="function";var M=(X)=>typeof X==="string";import{readdirSync as r8,statSync as P5} from"fs";import{sep as s8} from"path";function*S0(X,Z="",J,V=Infinity,W=0){if(W>=V)return;const U=XX(Z);for(let B of r8(X).sort()){const Y=X+s8+B;try{if(L0(Y))yield*S0(Y,Z,J,V,W+1);else if(U(Y))yield Y}catch(Q){J&&J.warn(`ignoring file: ${B} (${Q.message})`)}}}var _0=(X,Z="",J=Infinity,V)=>S0(X,Z,V,J,0);var e8=(X)=>M(X)?new RegExp(`${X.replace(/\./g,"\\.")}\$`):X,XX=(X)=>T(X)?X:(X=e8(X),(Z)=>X.test(Z));import{readFileSync as JX} from"fs";import{writeFileSync as ZX} from"fs";var y0=(X,Z,J,V,W=!1)=>{if(V&&V.info(`${W?"[dryrun] ":""}writing file: ${X}`),W)return;v0(X),ZX(X,Z,!J&&M(Z)?"utf-8":J)};var E=(X,Z,J="utf-8")=>{return Z&&Z.debug("reading file:",X),JX(X,J)},l1=(X,Z,J,V=!1)=>y0(X,w(Z)?Z.join("\n"):Z,"utf-8",J,V);var b=(X,Z)=>JSON.parse(E(X,Z));var M1=Object.freeze({level:H.NONE,enabled:()=>!1,fine(){},debug(){},info(){},warn(){},severe(){}});import{join as fX} from"path";var VX=R(()=>"Assertion failed"),h=(typeof process!=="undefined"&&process.env!==void 0?!0:import.meta.env?import.meta.env.MODE!=="production"||!!import.meta.env.UMBRELLA_ASSERTS||!!import.meta.env.VITE_UMBRELLA_ASSERTS:!0)?(X,Z)=>{if(typeof X==="function"&&!X()||!X)throw new VX(typeof Z==="function"?Z():Z)}:()=>{};var F1=(X)=>X!=null&&typeof X!=="function"&&X.length!==void 0;var h0=(X)=>{return(X==null||!X[Symbol.iterator])&&C(`value is not iterable: ${X}`),X};var f0=(X)=>F1(X)?X:[...h0(X)];var V1=(X)=>X[X.length-1];var WX=R(()=>"illegal arity"),o=(X)=>{throw new WX(X)};var UX=R(()=>"illegal state"),i=(X)=>{throw new UX(X)};var d1=function(...X){let[Z,J,V,W,U,B,Y,Q,z,K]=X;switch(X.length){case 0:o(0);case 1:return Z;case 2:return(...q)=>Z(J(...q));case 3:return(...q)=>Z(J(V(...q)));case 4:return(...q)=>Z(J(V(W(...q))));case 5:return(...q)=>Z(J(V(W(U(...q)))));case 6:return(...q)=>Z(J(V(W(U(B(...q))))));case 7:return(...q)=>Z(J(V(W(U(B(Y(...q)))))));case 8:return(...q)=>Z(J(V(W(U(B(Y(Q(...q))))))));case 9:return(...q)=>Z(J(V(W(U(B(Y(Q(z(...q)))))))));case 10:default:const $=(...q)=>Z(J(V(W(U(B(Y(Q(z(K(...q))))))))));return X.length===10?$:d1($,...X.slice(10))}};var m0=(X,Z)=>new Promise((J)=>setTimeout(()=>J(X),Z));var u0=(X)=>X;var g0=["-moz-","-ms-","-o-","-webkit-"],a={rules:"",ruleSep:",",valSep:"",decls:"",declStart:"{",declEnd:"}",indent:"",comments:!1},w1={rules:"\n",ruleSep:", ",valSep:" ",decls:"\n",declStart:" {\n",declEnd:"}\n",indent:" ",comments:!0};var D=(X)=>X!=null&&typeof X[Symbol.iterator]==="function";var P1=(X,Z)=>X!=null&&typeof X[Z]==="function";var f=(X)=>P1(X,"xform")?X.xform():X;var v=function(...X){return X=X.map(f),d1.apply(null,X)};var N1=(X)=>X!=null&&typeof X!=="string"&&typeof X[Symbol.iterator]==="function";var t=(X,Z)=>[X[0],X[1],Z];var L=Symbol(),p1=()=>{};class o1{value;constructor(X){this.value=X}deref(){return this.value}}var G=(X)=>X instanceof o1;var _=(X)=>X instanceof o1?X.deref():X;var O1=function(...X){const Z=X[0],J=Z[0],V=Z[1],W=Z[2];X=YX(X);const U=X[0]==null?J():X[0],B=X[1];return _(V(P1(B,"$reduce")?B.$reduce(W,U):F1(B)?BX(W,U,B):QX(W,U,B)))};var YX=(X)=>X.length===2?[void 0,X[1]]:X.length===3?[X[1],X[2]]:o(X.length),BX=(X,Z,J)=>{for(let V=0,W=J.length;V<W;V++)if(Z=X(Z,J[V]),G(Z)){Z=Z.deref();break}return Z},QX=(X,Z,J)=>{for(let V of J)if(Z=X(Z,V),G(Z)){Z=Z.deref();break}return Z},c=(X,Z)=>[X,(J)=>J,Z];var D1=function(X){return X?[...X]:c(()=>[],(Z,J)=>(Z.push(J),Z))};function*G1(X,Z){const J=f(X)(D1()),V=J[1],W=J[2];for(let U of Z){const B=W([],U);if(G(B)){yield*_(V(B.deref()));return}if(B.length)yield*B}yield*_(V([]))}function*m(X,Z){const J=f(X)([p1,p1,(V,W)=>W])[2];for(let V of Z){let W=J(L,V);if(G(W)){if(W=_(W.deref()),W!==L)yield W;return}if(W!==L)yield W}}var j1=(X,Z,J=m)=>{const V=Z.length-1;return D(Z[V])?Z.length>1?J(X.apply(null,Z.slice(0,V)),Z[V]):J(X(),Z[0]):void 0};var i1=function(X,Z){return D(Z)?G1(i1(X),M(Z)?[Z]:Z):(J)=>{const V=J[2],W=(U,B)=>{const Y=X(B);if(Y){for(let Q of Y)if(U=W(U,Q),G(U))break;return U}return V(U,B)};return t(J,W)}};var x0=function(X){return i1((Z)=>N1(Z)?Z:void 0,X)};var P=function(X,Z){return D(Z)?m(P(X),Z):(J)=>{const V=J[2];return t(J,(W,U)=>V(W,X(U)))}};function*k1(...X){const Z=X.length-1;if(Z<0)return;const J=new Array(Z+1).fill(0),V=X.map(f0),W=V.reduce((U,B)=>U*B.length,1);for(let U=0;U<W;U++){const B=[];for(let Y=Z;Y>=0;Y--){const Q=V[Y];let z=J[Y];if(z===Q.length)J[Y]=z=0,Y>0&&J[Y-1]++;B[Y]=Q[z]}J[Z]++,yield B}}function*n0(X,Z=Infinity){while(Z-- >0)yield X}var a1=function(X,Z){X=X||"";let J=!0;return Z?[...Z].join(X):c(()=>"",(V,W)=>(V=J?V+W:V+X+W,J=!1,V))};var T1=function(...X){return KX(T1,O1,X)};var KX=(X,Z,J)=>{let V,W;switch(J.length){case 4:W=J[3],V=J[2];break;case 3:W=J[2];break;case 2:return P((U)=>X(J[0],J[1],U));default:o(J.length)}return Z(f(J[0])(J[1]),V,W)};var zX=new Set,qX=":[",l0=v(x0(),P((X)=>qX.indexOf(X.charAt(0))>=0?X:" "+X)),$X=(X,Z)=>v(X,P((J)=>M(J)&&J.indexOf(" .")==0?J+Z:J)),r=(X,Z,J,V)=>{const W=J.length,U=[];let B,Y;const Q=(z,K)=>{let $=null;if(w(K))r(X,t1(Z,U),K,V);else if(D(K)&&!M(K))r(X,t1(Z,U),[...K],V);else if((Y=T(K))||($=V.fns[K]))if(!Z.length){if($)return $.apply(null,J.slice(z+1))(X,V),!0;K(X,V)}else if(Y)Q(z,K());else C(`quoted fn ('${K}') only allowed at head position`);else if(k(K))B=Object.assign(B||{},K);else if(K!=null)U.push(K)};for(let z=0;z<W;z++)if(Q(z,J[z]))return X;return B&&X.push(CX(Z,U,B,V)),X},t1=(X,Z)=>X.length?[...k1(X,Z)]:Z,CX=(X,Z,J,V)=>{const W=V.format,U=I1(V),B=V.scope?$X(l0,V.scope):l0;return[U,T1(P((Y)=>T1(B,a1(),w(Y)?Y:[Y]).trim()),a1(W.ruleSep),t1(X,Z)),W.declStart,c1(J,V),U,W.declEnd].join("")},c1=(X,Z)=>{const J=Z.format,V=Z.autoprefix||zX,W=I1(Z,Z.depth+1),U=[];for(let B in X)if(X.hasOwnProperty(B)){let Y=X[B];if(T(Y))Y=Y(X);if(w(Y))Y=Y.map((Q)=>w(Q)?Q.join(" "):Q).join(J.ruleSep);if(V.has(B))for(let Q of Z.vendors)U.push(`${W}${Q}${B}:${J.valSep}${Y};`);U.push(`${W}${B}:${J.valSep}${Y};`)}return U.join(J.decls)+J.decls},I1=(X,Z=X.depth)=>Z>1?[...n0(X.format.indent,Z)].join(""):Z>0?X.format.indent:"";var p0=(X,Z,J)=>(V,W)=>{const U=I1(W);return V.push(`${U}${X} ${HX(Z)}${W.format.declStart}`),W.depth++,r(V,[],J,W),W.depth--,V.push(U+W.format.declEnd),V},HX=(X)=>{if(M(X))return X;const Z=[];for(let J in X)if(X.hasOwnProperty(J)){let V=X[J];if(V===!0)V=d0.has(J)?J:`(${J})`;else if(V===!1)V="not "+(d0.has(J)?J:`(${J})`);else if(V==="only")V+=" "+J;else V=`(${J}:${V})`;Z.push(V)}return Z.join(" and ")},d0=new Set(["all","print","screen"]);var W1=(X,Z)=>{return Z={format:a,vendors:g0,fns:{},depth:0,...Z},w(Z.autoprefix)&&(Z.autoprefix=new Set(Z.autoprefix)),k(X)?c1(X,Z):T(X)?X([],Z).join(Z.format.rules):r([],[],w(X)?X:N1(X)?[...X]:C("invalid rules"),Z).join(Z.format.rules)};var R1=(X,Z)=>p0("@media",X,Z);var E1=4,o0=(X)=>E1=X,r1=(X)=>X===(X|0)?String(X):X.toFixed(E1).replace(/^0./,".").replace(/0+$/,"");var s1=(X)=>`${r1(X)}rem`,i0=(X)=>`${r1(X)}%`,a0=(X)=>`${r1(X)}px`;var N=((X)=>{return X[X.IDLE=0]="IDLE",X[X.ACTIVE=1]="ACTIVE",X[X.DONE=2]="DONE",X[X.UNSUBSCRIBED=3]="UNSUBSCRIBED",X[X.ERROR=4]="ERROR",X})(N||{}),I=((X)=>{return X[X.NEVER=0]="NEVER",X[X.FIRST=1]="FIRST",X[X.LAST=2]="LAST",X})(I||{});var MX=0,FX=()=>MX++,u=(X,Z)=>!Z||!Z.id?{...Z,id:X+"-"+FX()}:Z;var O=M1;class S{constructor(X,Z){this.wrapped=X,Z=u("sub",{closeIn:I.LAST,closeOut:I.LAST,cache:!0,...Z}),this.parent=Z.parent,this.id=Z.id,this.closeIn=Z.closeIn,this.closeOut=Z.closeOut,this.cacheLast=Z.cache,Z.xform&&(this.xform=Z.xform(D1()))}id;closeIn;closeOut;parent;__owner;xform;cacheLast;last=L;state=N.IDLE;subs=[];deref(){return this.last!==L?this.last:void 0}getState(){return this.state}setState(X){this.state=X}subscribe(X,Z={}){this.ensureState();let J;if(X instanceof S&&!Z.xform)X.ensureState(),h(!X.parent,`sub '${X.id}' already has a parent`),X.parent=this,J=X;else J=new S(X,{...Z,parent:this});return this.subs.push(J),this.setState(N.ACTIVE),J.setState(N.ACTIVE),this.last!=L&&J.next(this.last),J}transform(...X){let Z,J;if(k(V1(X)))J=X.pop(),Z={error:J.error};return this.subscribe(Z,u("xform",X.length>0?{...J,xform:v(...X)}:J))}map(X,Z){return this.transform(P(X),Z||{})}unsubscribe(X){return X?this.unsubscribeChild(X):this.unsubscribeSelf()}unsubscribeSelf(){return O.debug(this.id,"unsub self"),this.parent&&this.parent.unsubscribe(this),this.state<N.UNSUBSCRIBED&&(this.state=N.UNSUBSCRIBED),this.release(),!0}unsubscribeChild(X){O.debug(this.id,"unsub child",X.id);const Z=this.subs.indexOf(X);if(Z>=0){if(this.subs.splice(Z,1),this.closeOut===I.FIRST||!this.subs.length&&this.closeOut!==I.NEVER)this.unsubscribe();return!0}return!1}next(X){if(this.state>=N.DONE)return;this.xform?this.dispatchXform(X):this.dispatch(X)}done(){if(O.debug(this.id,"entering done()"),this.state>=N.DONE)return;if(this.xform){if(!this.dispatchXformDone())return}if(this.state=N.DONE,this.dispatchTo("done"))this.state<N.UNSUBSCRIBED&&this.unsubscribe();O.debug(this.id,"exiting done()")}error(X){const Z=this.wrapped,J=Z&&Z.error;return J&&O.debug(this.id,"attempting wrapped error handler"),J&&Z.error(X)||this.unhandledError(X)}unhandledError(X){return(O!==M1?O:console).warn(this.id,"unhandled error:",X),this.unsubscribe(),this.state=N.ERROR,!1}dispatchTo(X,Z){let J=this.wrapped;if(J)try{J[X]&&J[X](Z)}catch(W){if(!this.error(W))return!1}const V=X==="next"?this.subs:[...this.subs];for(let W=V.length;W-- >0;){J=V[W];try{J[X]&&J[X](Z)}catch(U){if(X==="error"||!J.error||!J.error(U))return this.unhandledError(U)}}return!0}dispatch(X){O.debug(this.id,"dispatch",X),this.cacheLast&&(this.last=X),this.dispatchTo("next",X)}dispatchXform(X){let Z;try{Z=this.xform[2]([],X)}catch(J){this.error(J);return}if(this.dispatchXformVals(Z))G(Z)&&this.done()}dispatchXformDone(){let X;try{X=this.xform[1]([])}catch(Z){return this.error(Z)}return this.dispatchXformVals(X)}dispatchXformVals(X){const Z=_(X);for(let J=0,V=Z.length;J<V&&this.state<N.DONE;J++)this.dispatch(Z[J]);return this.state<N.ERROR}ensureState(){if(this.state>=N.DONE)i(`operation not allowed in state ${this.state}`)}release(){this.subs.length=0,delete this.parent,delete this.xform,delete this.last}}var t0=(X,Z)=>{const J=new c0(Z);return J.next(X),J};class c0 extends S{src;_cancel;_inited;constructor(X,Z){const[J,V]=T(X)?[X,Z||{}]:[void 0,X||{}];super(V.error?{error:V.error}:void 0,u("stream",V));this.src=J,this._inited=!1}subscribe(X,Z={}){const J=super.subscribe(X,Z);if(!this._inited){if(this.src)try{this._cancel=this.src(this)||(()=>{return})}catch(V){let W=this.wrapped;if(!W||!W.error||!W.error(V))this.unhandledError(V)}this._inited=!0}return J}unsubscribe(X){const Z=super.unsubscribe(X);if(Z&&(!X||(!this.subs||!this.subs.length)&&this.closeOut!==I.NEVER))this.cancel();return Z}done(){this.cancel(),super.done(),delete this.src,delete this._cancel}error(X){if(super.error(X))return!0;return this.cancel(),!1}cancel(){if(this._cancel){O.debug(this.id,"cancel");const X=this._cancel;delete this._cancel,X()}}}var r0=(X,Z)=>X===I.FIRST||X===I.LAST&&!Z;var e1=function(X){return X?O1(e1(),X):c(()=>({}),(Z,[J,V])=>(Z[J]=V,Z))};var X0=function(X,Z){return D(Z)?m(X0(X),Z):P(T(X)?(J)=>[X(J),J]:(J)=>[X,J])};var Z0=function(...X){const Z=j1(Z0,X);if(Z)return Z;const J=X[0],V=X[1]!==!1;return P((W)=>{const U=V?{}:W;for(let B in W)U[B]=J(W[B]);return U})};var J0=function(...X){const Z=j1(J0,X,G1);if(Z)return Z;const{key:J,mergeOnly:V,reset:W,all:U,backPressure:B}={key:u0,mergeOnly:!1,reset:!0,all:!0,backPressure:0,...X[1]},Y=w(X[0])?new Set(X[0]):X[0],Q=new Set,z=new Map;let K={};const $=([q,j,g])=>{let x=!0;if(V||B<1)return[q,(F)=>{if(W&&U&&Q.size>0||!W&&x)F=g(F,K),K={},Q.clear(),x=!1;return j(F)},(F,X1)=>{const A=J(X1);if(Y.has(A)){if(K[A]=X1,Q.add(A),V||s0(Y,Q))if(F=g(F,K),x=!1,W)K={},Q.clear();else K={...K}}return F}];else return[q,(F)=>{if(U&&Q.size>0)F=g(F,e0(z,Q)),z.clear(),Q.clear();return j(F)},(F,X1)=>{const A=J(X1);if(Y.has(A)){let B1=z.get(A);!B1&&z.set(A,B1=[]),B1.length>=B&&i(`max back pressure (${B}) exceeded for input: ${String(A)}`),B1.push(X1),Q.add(A);while(s0(Y,Q))if(F=g(F,e0(z,Q)),x=!1,G(F))break}return F}]};return $.keys=()=>Y,$.clear=()=>{z.clear(),Y.clear(),Q.clear(),K={}},$.add=(q)=>{Y.add(q)},$.delete=(q,j=!0)=>{if(z.delete(q),Y.delete(q),j)Q.delete(q),delete K[q]},$},s0=(X,Z)=>{if(Z.size<X.size)return!1;for(let J of X)if(!Z.has(J))return!1;return!0},e0=(X,Z)=>{const J={};for(let V of Z){const W=X.get(V);J[V]=W.shift(),!W.length&&Z.delete(V)}return J};var X8=(X,Z)=>{let J=!0;for(let V of Z)J=X.removeID(V)&&J;return J};var Z8=(X)=>new J8(X);class J8 extends S{sources;idSources;realSourceIDs;invRealSourceIDs;psync;clean;constructor(X){const Z=J0(new Set,{key:(V)=>V[0],mergeOnly:X.mergeOnly===!0,reset:X.reset===!0,all:X.all!==!1,backPressure:X.backPressure||0}),J=Z0((V)=>V[1]);super(void 0,u("streamsync",{...X,xform:X.xform?v(Z,J,X.xform):v(Z,J)}));this.sources=new Map,this.realSourceIDs=new Map,this.invRealSourceIDs=new Map,this.idSources=new Map,this.psync=Z,this.clean=!!X.clean,X.src&&this.addAll(X.src)}add(X,Z){Z||(Z=X.id),this.ensureState(),this.psync.add(Z),this.realSourceIDs.set(Z,X.id),this.invRealSourceIDs.set(X.id,Z),this.idSources.set(X.id,X),this.sources.set(X,X.subscribe({next:(J)=>J[1]instanceof S?this.add(J[1]):this.next(J),done:()=>this.markDone(X),__owner:this},{xform:X0(Z),id:`in-${Z}`}))}addAll(X){for(let Z in X)this.psync.add(Z);for(let Z in X)this.add(X[Z],Z)}remove(X){const Z=this.sources.get(X);if(Z){const J=this.invRealSourceIDs.get(X.id);return O.info(`removing src: ${X.id} (${J})`),this.psync.delete(J,this.clean),this.realSourceIDs.delete(J),this.invRealSourceIDs.delete(X.id),this.idSources.delete(X.id),this.sources.delete(X),Z.unsubscribe(),!0}return!1}removeID(X){const Z=this.getSourceForID(X);return Z?this.remove(Z):!1}removeAll(X){for(let J of X)this.psync.delete(this.invRealSourceIDs.get(J.id));let Z=!0;for(let J of X)Z=this.remove(J)&&Z;return Z}removeAllIDs(X){return X8(this,X)}getSourceForID(X){return this.idSources.get(this.realSourceIDs.get(X))}getSources(){const X={};for(let[Z,J]of this.idSources)X[this.invRealSourceIDs.get(Z)]=J;return X}unsubscribe(X){if(!X){O.debug(this.id,"unsub sources");for(let Z of this.sources.values())Z.unsubscribe();this.sources.clear(),this.psync.clear(),this.realSourceIDs.clear(),this.invRealSourceIDs.clear(),this.idSources.clear()}return super.unsubscribe(X)}markDone(X){this.remove(X),r0(this.closeIn,this.sources.size)&&this.done()}}var V0=n((X,Z=" ")=>{const J=l(String(Z),X);return(V,W)=>{if(V==null)return J;return V=V.toString(),W=W!==void 0?W:V.length,W<X?J.substring(W)+V:V}}),D2=V0(2,"0"),V8=V0(3,"0"),G2=V0(4,"0");var W0=function(X,Z){return D(Z)?m(W0(X),Z):(J)=>{const V=J[2];return t(J,(W,U)=>X(U)?V(W,U):W)}};import{watch as PX} from"fs";import{resolve as Y1} from"path";var W8={specs:z1({alias:"s",optional:!1,desc:"Path to generated JSON defs"})},A1={include:p({alias:"I",desc:"Include CSS files (prepend)"})},s={pretty:d({alias:"p",desc:"Pretty print output"})},b1={noHeader:d({desc:"Don't emit generated header comment"})},U8={watch:d({alias:"w",desc:"Watch input files for changes"})};import{resolve as wX} from"path";var e=(X,Z,J)=>{Z=M(Z)?Z:Z.join("\n"),X?l1(wX(X),Z,J):console.log(Z)},v1=({info:{name:X,version:Z}})=>`/*! ${X} v${Z} - generated by thi.ng/meta-css @ ${(new Date()).toISOString()} */`;var B8={desc:"Transpile & bundle meta stylesheets to CSS",opts:{...W8,...A1,...s,...b1,...U8,force:p({alias:"f",desc:"CSS classes to force include (wildcards are supported, @-prefix will read from file)",delim:","})},fn:async(X)=>{const Z=b(Y1(X.opts.specs),X.logger),J=GX(Z,X.opts.force||[],X.logger);if(X.opts.watch)await NX(X,Z,J);else Q8(X,Z,J,X.inputs.map((V)=>E(Y1(V),X.logger)))}},NX=async(X,Z,J)=>{let V=!0;const W=()=>{X.logger.info("closing watchers..."),U.forEach((B)=>B.watcher.close()),V=!1},U=X.inputs.map((B,Y)=>{B=Y1(B);const Q=t0(E(B,X.logger),{id:`in${V8(Y)}`});return{input:Q,watcher:PX(B,{},(z)=>{if(z==="change")try{Q.next(E(B,X.logger))}catch(K){X.logger.warn(K.message),W()}else X.logger.warn("input removed:",B),W()})}});Z8({src:e1(P(({input:B})=>[B.id,B],U))}).subscribe({next(B){try{Q8(X,Z,J,Object.keys(B).sort().map((Y)=>B[Y]))}catch(Y){X.logger.warn(Y.message)}}}),process.on("SIGINT",W);while(V)await m0(null,250)},Q8=({logger:X,opts:{include:Z,noHeader:J,out:V,pretty:W}},U,B,Y)=>{const Q={logger:X,specs:U,format:W?w1:a,mediaQueryIDs:new Set(Object.keys(U.media)),mediaQueryRules:{...B.mediaQueryRules},plainRules:{...B.plainRules}},z=Z?Z.map((K)=>E(Y1(K),X).trim()):[];if(!J)z.push(v1(U));Y.forEach((K)=>jX(K,Q)),DX(z,Q),OX(z,Q),e(V,z,X)},OX=(X,{logger:Z,specs:J,format:V,mediaQueryRules:W})=>{for(let U in W){const B=z8(W[U],J);Z.debug("mediaquery rules",U,B),X.push(W1(R1(IX(J.media,U),B),{format:V}))}},DX=(X,{logger:Z,specs:J,format:V,plainRules:W})=>{const U=z8(W,J);Z.debug("plain rules",U),X.push(W1(U,{format:V}))},GX=(X,Z,J)=>{const V=new Set(Object.keys(X.media)),W=new Set(Object.keys(X.defs)),U={},B={};if(Z.length&&Z[0][0]==="@")Z=[...y(E(Y1(Z[0].substring(1)),J))];for(let Y of Z){if(!Y||Y.startsWith("//"))continue;const{token:Q,query:z}=q8(Y,V);let K;if(Q.includes("*")){const $=new RegExp(`^${Q.replace("*",".*")}\$`);K=[...W0((q)=>$.test(q),W)]}else if(W.has(Q))K=[Q];else{J.warn(`unknown include rule ID: ${Y}, skipping...`);continue}for(let $ of K)J.debug("including class:",$),z?$8(U,z,`.${$}`,$):C8(B,`.${$}`,$)}return{mediaQueryRules:U,plainRules:B}},jX=(X,{specs:Z,mediaQueryIDs:J,mediaQueryRules:V,plainRules:W})=>{const U=U1(),B=U1(U),Y={root:U,curr:B,scopes:[B]};for(let Q of y(X)){if(!Q||/^\s*\/\//.test(Q))continue;for(let z of y(Q,/\s+/g)){if(!z)continue;let K=Y.curr;switch(K.state){case"sel":case"nest":if(z==="{"){if(K.state==="sel")K.sel=K.sel.map(($)=>$.replace(",","")),K.path=kX(Y.scopes);K.state="class"}else if(z==="}")Y8(Y);else{const $=V1(K.sel);if(!$||$.endsWith(","))K.sel.push(z);else K.sel[K.sel.length-1]+=" "+z}break;case"class":if(z==="{")K.state="nest",Y.scopes.push(Y.curr=U1(K));else if(z==="}")Y8(Y);else{let{token:$,query:q}=q8(z,J);if(!Z.defs[$])C(`unknown rule ID: ${$}`);if(q)$8(V,q,K.path,$);else C8(W,K.path,$)}break;default:i(K.state)}}}},U0=":",K8="///",U1=(X)=>({state:"sel",sel:X?[]:["<root>"],path:"",parent:X}),Y8=(X)=>{const Z=!X.curr.sel.length;if(h(!!X.curr.parent,"stack underflow"),X.scopes.pop(),X.scopes.length>0){if(X.curr=V1(X.scopes),!Z&&X.curr.state==="nest")X.scopes.push(X.curr=U1(X.curr))}else X.scopes.push(X.curr=U1(X.root))},kX=(X)=>X.map((Z)=>Z.sel.join(",")).join(K8),z8=(X,Z)=>Object.entries(X).map(([J,V])=>TX(J,V,Z)),TX=(X,Z,J)=>{const V=[];let W=V;const U=X.split(K8);for(let B=0;B<U.length;B++){const Y=U[B].split(",");if(B==U.length-1)Y.push(Object.assign({},...P((Q)=>J.defs[Q],Z)));W.push(Y),W=Y}return V[0]},q8=(X,Z)=>{if(/^::?/.test(X))return{token:X};const J=X.lastIndexOf(U0);if(J<0)return{token:X};const V=X.substring(0,J);if(!V.split(U0).every((U)=>Z.has(U)))C(`invalid media query in token: ${X}`);return{token:X.substring(J+1),query:V}},IX=(X,Z)=>Z.split(U0).reduce((J,V)=>Object.assign(J,X[V]),{}),$8=(X,Z,J,V)=>{if(!X[Z])X[Z]={};(X[Z][J]||(X[Z][J]=new Set)).add(V)},C8=(X,Z,J)=>(X[Z]||(X[Z]=new Set)).add(J);import{resolve as H8} from"path";var F8={desc:"Export entire generated framework as CSS",opts:{...A1,...s,...b1,media:p({alias:"m",desc:"Media query IDs (use 'ALL' for all)",delim:","})},inputs:1,fn:async(X)=>{const{logger:Z,opts:{include:J,media:V,noHeader:W,pretty:U,out:B},inputs:Y}=X,Q=b(H8(Y[0]),Z),z=J?J.map((K)=>E(H8(K),Z).trim()):[];if(!W)z.push(v1(Q));z.push(RX(Q,V,U,Z)),e(B,z,Z)}},RX=(X,Z,J,V)=>{const W=M8("",X);if(Z){const U=Z[0]==="ALL"?Object.keys(X.media):Z;for(let B of U)if(X.media[B])W.push(R1(X.media[B],M8("-"+B,X)));else V.warn(`invalid media query ID: ${B}, skipping...`)}return W1(W,{format:J?w1:a})},M8=(X,Z)=>Object.entries(Z.defs).map(([J,V])=>[`.${J}${X}`,V]);import{statSync as EX} from"fs";import{resolve as AX} from"path";var w8={px:a0,rem:s1,"%":i0,norm:(X)=>parseFloat((X*0.01).toFixed(E1))},P8={"":[""],a:[""],h:["-left","-right"],v:["-top","-bottom"],t:["-top"],top:["top"],b:["-bottom"],bottom:["bottom"],r:["-right"],right:["right"],l:["-left"],left:["left"],x:["-x"],y:["-y"]},bX={all:["a","h","v","t","r","b","l"],trbl:["t","r","b","l"],TRBL:["top","right","bottom","left"],atrbl:["a","t","r","b","l"],h:["l","r"],v:["t","b"],xy:["x","y"],axy:["a","x","y"]},N8={desc:"Generate framework rules from specs",opts:{...s,prec:C0({default:3,desc:"Number of fractional digits"})},inputs:1,fn:async(X)=>{const{logger:Z,opts:{prec:J,out:V,pretty:W},inputs:U}=X,B=AX(U[0]);if(!EX(B).isDirectory())C(`${B} is not a directory`);const Y={info:{name:"TODO",version:"0.0.0"},media:{},defs:{}};for(let Q of _0(B,".json")){const z=b(Q,Z);Object.assign(Y.info,z.info),Object.assign(Y.media,z.media),vX(z,Y.defs,J)}e(V,JSON.stringify(Y,null,W?4:0),Z)}},vX=(X,Z={},J=3)=>{o0(J);for(let V of X.specs){const W=hX(V.var);if(V.def)for(let U of W)_X(Z,X,V,U);else{const U=M(V.prop)?[V.prop]:V.prop;for(let B of W){const Y=[...k1(U,P8[B])].map((Q)=>Q.join(""));LX(Z,X,{...V,prefix:V.prefix+B,prop:Y},B)}}}return Z},LX=(X,Z,J,V)=>{const W=J.prefix.replace("*",V),U=yX(J.prop,V),B=G8(Z,J);j8(Z,J.items).forEach((Q,z)=>{const K=O8(W,J.index,Q,z);h(!X[K],`duplicate rule ID: ${K}`);const $=D8(Q,B);X[K]=U.reduce((q,j)=>(q[j]=$,q),{})})},_X=(X,Z,J,V)=>{const W=J.prefix.replace("*",V),U=G8(Z,J),B=j8(Z,J.items),Y=P8[V];B.forEach((Q,z)=>{const K=O8(W,J.index,Q,z);h(!X[K],`duplicate rule ID: ${K}`);const $=D8(Q,U),q=Object.entries(J.def).reduce((j,[g,x])=>(j[g.replace("*",Y)]=x.replace("*",$),j),{});X[K]=q})},O8=(X,Z,J,V)=>X+SX(Z,J,V),SX=(X,Z,J)=>{if(X===void 0)return"";switch(X){case"i":return J;case"i1":return J+1;case"v":return Z;default:C(`invalid index type: ${X}`)}},D8=(X,Z)=>Z?Z(X):X,G8=(X,{unit:Z,items:J})=>{if(Z===void 0)return s1;if(Z===null)return k(J)?(V)=>J[V]:(V)=>V;if(w8[Z])return w8[Z];return X.tables?.[Z]?(V)=>X.tables[Z][V]:C(`invalid unit: ${Z}`)},j8=(X,Z)=>{let J=Z;if(M(J))J=X.tables?.[J]||C(`invalid index: ${J}`);if(k(J))return Object.keys(J);return w(J)?J:C(Z)},yX=(X,Z)=>(M(X)?[X]:X).map((J)=>J.replace("*",Z)),hX=(X)=>{if(!X)return[""];if(M(X))return bX[X]||C(`invalid variation: ${X}`);return X};var Y0=b(fX(import.meta.dir,"package.json"));b0({name:"metacss",opts:{out:z1({alias:"o",desc:"Output file (or stdout)"}),verbose:d({alias:"v",desc:"Display extra process information"})},commands:{convert:B8,export:F8,generate:N8},ctx:async(X)=>{if(X.opts.verbose)X.logger.level=H.DEBUG;return{...X,format:C1}},usage:{prefix:`
|
|
2
|
+
var b0={default:95,hint:90,multi:90,param:96,required:33};var L0=(X)=>X;var d=function(X,Z){return!Z&&(Z={}),(...J)=>{const W=JSON.stringify(J);if(W!==void 0)return W in Z?Z[W]:Z[W]=X.apply(null,J);return X.apply(null,J)}};var n=d((X,Z)=>X.repeat(Z));var B1=(X)=>/^[a-f0-9]+$/i.test(X);var Q1=(X)=>/^[-+]?\d+$/.test(X),z1=(X)=>/^[-+]?\d*\.?\d+(e[-+]?\d+)?$/i.test(X);var I=(X,Z=(J)=>J!==void 0?": "+J:"")=>class extends Error{constructor(J){super(X(J)+Z(J))}};var b8=I(()=>"illegal argument(s)"),H=(X)=>{throw new b8(X)};var S0=(X)=>z1(X)?parseFloat(X):H(`not a numeric value: ${X}`),q1=(X)=>X.map(S0),y0=(X)=>B1(X)?parseInt(X,16):H(`not a hex value: ${X}`),K1=(X)=>X.map(y0),h0=(X)=>Q1(X)?parseInt(X):H(`not an integer: ${X}`),$1=(X)=>X.map(h0);var Q0=(X,Z)=>(J)=>({coerce:X,hint:Z,group:"main",...J}),z0=(X,Z)=>(J)=>({hint:L8(Z,J.delim),multi:!0,coerce:X,group:"main",...J}),L8=(X,Z)=>X+(Z?`[${Z}..]`:""),l=(X)=>({flag:!0,default:!1,group:"flags",...X}),q0=Q0(L0,"STR"),p=z0(L0,"STR"),K4=Q0(S0,"NUM"),$4=Q0(y0,"HEX"),H1=Q0(h0,"INT"),H4=z0(q1,"NUM"),C4=z0(K1,"HEX"),M4=z0($1,"INT");var C=((X)=>{return X[X.FINE=0]="FINE",X[X.DEBUG=1]="DEBUG",X[X.INFO=2]="INFO",X[X.WARN=3]="WARN",X[X.SEVERE=4]="SEVERE",X[X.NONE=5]="NONE",X})(C||{});class f0{id;level;constructor(X,Z=C.FINE){this.id=X,this.level=typeof Z==="string"?C[Z]:Z}enabled(X){return this.level<=X}fine(...X){this.level<=C.FINE&&this.log(C.FINE,X)}debug(...X){this.level<=C.DEBUG&&this.log(C.DEBUG,X)}info(...X){this.level<=C.INFO&&this.log(C.INFO,X)}warn(...X){this.level<=C.WARN&&this.log(C.WARN,X)}severe(...X){this.level<=C.SEVERE&&this.log(C.SEVERE,X)}}var C1=(X)=>X.map((Z)=>{if(typeof Z==="function")Z=Z();if(!(typeof Z==="string"||typeof Z==="number"))Z=JSON.stringify(Z);return Z}).join(" ");class m0 extends f0{constructor(X,Z,J=C.FINE){super(Z,J);this.target=X}log(X,Z){this.target.write(`[${C[X]}] ${this.id}: ${C1(Z)}
|
|
3
|
+
`)}}var K0=d((X,Z=" ")=>{const J=n(String(Z),X);return(W,Y)=>{if(W==null)return J;return W=W.toString(),Y=Y!==void 0?Y:W.length,Y<X?W+J.substring(Y):W}});var M1=(X,Z)=>{return!Z&&(Z=new Map),(J)=>{let W;return Z.has(J)?Z.get(J):(Z.set(J,W=X(J)),W)}};var u0={black:1,blue:5,cyan:7,gray:17,green:3,magenta:6,red:2,white:24,yellow:4,lightBlue:21,lightCyan:23,lightGray:8,lightGreen:19,lightMagenta:22,lightRed:18,lightYellow:20,bgBlack:32,bgBlue:160,bgCyan:224,bgGray:544,bgGreen:96,bgMagenta:192,bgRed:64,bgWhite:768,bgYellow:128,bgLightBlue:672,bgLightCyan:736,bgLightGray:256,bgLightGreen:608,bgLightMagenta:704,bgLightRed:576,bgLightYellow:640};var S8=(X,Z)=>(J)=>X.format(Z,J),g0=(X)=>Object.keys(u0).reduce((Z,J)=>(Z[J]=S8(X,u0[J]),Z),{format:X});var F1="\x1B[0m",y8=["","1","2","1;2","4","1;4","2;4","1;2;4"],$0={format:(X,Z)=>$0.start(X)+Z+$0.end,start:M1((X)=>{let Z=[],J=X&15;return J&&Z.push(29+(X>>4&1)*60+J),J=X>>5&15,J&&Z.push(39+(X>>9&1)*60+J),J=X>>10,J&&Z.push(y8[J]),"\x1B["+Z.join(";")+"m"}),end:F1,prefix:F1,suffix:"\n"};var P1={format:(X,Z)=>String(Z),prefix:"",suffix:"\n",start:()=>"",end:""};var H0=g0($0),O1=g0(P1);var P=Array.isArray;var h8=(X)=>X.toUpperCase(),w1=(X)=>X.toLowerCase(),N1=(X)=>X.length?X[0].toUpperCase()+X.substring(1):X,D1=(X,Z="-")=>w1(X.replace(/([a-z0-9\u00e0-\u00fd])([A-Z\u00c0-\u00dd])/g,(J,W,Y)=>W+Z+Y));var G1=(X,Z="-")=>w1(X).replace(new RegExp(`\\${Z}+(\\w)`,"g"),(J,W)=>h8(W));var j1=Object.getPrototypeOf,R=(X)=>{let Z;return X!=null&&typeof X==="object"&&((Z=j1(X))===null||j1(Z)===null)};var f8=/\x1b\[[0-9;]+m/g,m8=(X)=>X.replace(f8,"");var C0=(X)=>m8(X).length;var k1=(X=!1,Z)=>(J)=>X||typeof J!=="string"&&typeof J!=="number"?JSON.stringify(J,null,Z):String(J);function*m(X,Z=/\r?\n/g,J=!1){let W=0;const Y=X.length,U=~~J;let V;if(typeof Z==="string")V=new RegExp(Z,"g");else if(!Z.flags.includes("g"))V=new RegExp(Z,Z.flags+"g");else V=Z;for(;W<Y;){const B=V.exec(X);if(!B){yield X.substring(W);return}const Q=B[0].length;yield X.substring(W,B.index+U*Q),W=B.index+Q}}class x0{n=0;w=[];constructor(X,Z){X!=null&&this.add(X,Z)}add(X,Z=X.length){return this.w.push(X),this.n+=Z+~~(this.n>0),this}toString(){return this.w.join(" ")}}var u8={length:(X)=>X.length,split:(X,Z)=>Z},I1={length:C0,split:(X,Z)=>{const J=/\x1b\[[0-9;]+m/g;let W=Z,Y;while(Y=J.exec(X)){if(Y.index>=Z)break;const U=Y[0].length;W+=U,Z+=U}return W}},T1=(X,Z,J,W)=>{const Y=X[X.length-1];Y&&W-Y.n>J?Y.add(Z,J):X.push(new x0(Z,J))},g8=(X,{width:Z,min:J,hard:W,splitter:Y},U=0,V=[])=>{let B=Y.length(X),Q=Z-U;if(Q<J&&Q<B)Q=Z;while(W&&B>Q){const q=Y.split(X,Q),z=X.substring(0,q);T1(V,z,Q,Z),X=X.substring(q),Q=Z,B=Y.length(X)}return T1(V,X,B,Z),V},x8=(X,Z,J=[])=>{if(!X.length)return J.push(new x0),J;const W={width:80,min:4,hard:!1,splitter:u8,...Z};for(let Y of m(X,Z.delimWord||/\s/g)){const U=J[J.length-1];g8(Y,W,U&&U.n>0?U.n+1:0,J)}return J},R1=(X,Z)=>{let J=[];for(let W of m(X,Z.delimLine))J=J.concat(x8(W,Z));return J};var Z0=(X,Z={})=>{Z={lineWidth:80,paramWidth:32,showDefaults:!0,prefix:"",suffix:"",groups:["flags","main"],...Z};const J=R(Z.color)?{...b0,...Z.color}:Z.color?b0:{},W=n(" ",Z.paramWidth),Y=(B)=>B.map((Q)=>d8(Q,X[Q],Z,J,W)),U=Object.keys(X).sort(),V=Z.groups?Z.groups.map((B)=>[B,U.filter((Q)=>X[Q].group===B)]).filter((B)=>!!B[1].length):[["options",U]];return[...d0(Z.prefix,Z.lineWidth),...V.map(([B,Q])=>[...Z.showGroupNames?[`${N1(B)}:
|
|
4
|
+
`]:[],...Y(Q),""].join("\n")),...d0(Z.suffix,Z.lineWidth)].join("\n")},d8=(X,Z,J,W,Y)=>{const U=n8(Z,W),V=l8(Z,W,U),B=J0(`--${D1(X)}`,W.param),Q=`${V}${B}${U}`,q=Z.optional===!1&&Z.default===void 0,z=[];q&&z.push("required"),Z.multi&&z.push("multiple");const K=p8(z,W,q)+(Z.desc||"")+o8(Z,J,W);return K0(J.paramWidth)(Q,C0(Q))+d0(K,J.lineWidth-J.paramWidth).map(($,v)=>v>0?Y+$:$).join("\n")},n8=(X,Z)=>X.hint?J0(" "+X.hint,Z.hint):"",l8=(X,Z,J)=>X.alias?`${J0("-"+X.alias,Z.param)}${J}, `:"",p8=(X,Z,J)=>X.length?J0(`[${X.join(", ")}] `,J?Z.required:Z.multi):"",o8=(X,Z,J)=>Z.showDefaults&&X.default!=null&&X.default!==!1?J0(` (default: ${k1(!0)(X.defaultHint!=null?X.defaultHint:X.default)})`,J.default):"",J0=(X,Z)=>Z!=null?`\x1B[${Z}m${X}\x1B[0m`:X,d0=(X,Z)=>X?R1(X,{width:Z,splitter:I1,hard:!0}):[];var i8=I(()=>"parse error"),A1=(X,Z,J)=>{J={start:2,showUsage:!0,help:["--help","-h"],...J};try{return a8(X,Z,J)}catch(W){if(J.showUsage)console.log(W.message+"\n\n"+Z0(X,J.usageOpts));throw new i8(W.message)}},a8=(X,Z,J)=>{const W=t8(X),Y={};let U,V,B=J.start;for(;B<Z.length;){const Q=Z[B];if(!U){if(J.help.includes(Q)){console.log(Z0(X,J.usageOpts));return}const q=c8(X,W,Y,Q);if(U=q.id,V=q.spec,B=B+~~(q.state<2),q.state)break}else{if(r8(V,Y,U,Q))break;U=null,B++}}return U&&H(`missing value for: --${U}`),{result:s8(X,Y),index:B,rest:Z.slice(B),done:B>=Z.length}},t8=(X)=>Object.entries(X).reduce((Z,[J,W])=>W.alias?(Z[W.alias]=J,Z):Z,{}),c8=(X,Z,J,W)=>{if(W[0]==="-"){let Y;if(W[1]==="-"){if(W==="--")return{state:1};Y=G1(W.substring(2))}else Y=Z[W.substring(1)],!Y&&H(`unknown option: ${W}`);const U=X[Y];if(!U&&H(Y),U.flag){if(J[Y]=!0,Y=void 0,U.fn&&!U.fn("true"))return{state:1,spec:U}}return{state:0,id:Y,spec:U}}return{state:2}},r8=(X,Z,J,W)=>{if(/^-[a-z]/i.test(W)&&H(`missing value for: --${J}`),X.multi)P(Z[J])?Z[J].push(W):Z[J]=[W];else Z[J]=W;return X.fn&&!X.fn(W)},s8=(X,Z)=>{let J;for(let W in X)if(J=X[W],Z[W]===void 0){if(J.default!==void 0)Z[W]=J.default;else if(J.optional===!1)H(`missing arg: --${W}`)}else if(J.coerce)e8(J,Z,W);return Z},e8=(X,Z,J)=>{try{if(X.multi&&X.delim)Z[J]=Z[J].reduce((W,Y)=>(W.push(...Y.split(X.delim)),W),[]);Z[J]=X.coerce(Z[J])}catch(W){throw new Error(`arg --${J}: ${W.message}`)}};var v1=async(X)=>{const Z=X.argv||process.argv,J=!process.env.NO_COLOR,W={prefix:"",color:J,...X.usage};try{let Y,U,V=X.start??2;if(X.single){if(Y=Object.keys(X.commands)[0],!Y)H("no command provided");U=X.commands[Y]}else{if(Y=Z[V],U=X.commands[Y],W.prefix+=XX(X.commands),!U)E1(X,W);V++}let B;try{B=A1({...X.opts,...U.opts},Z,{showUsage:!0,usageOpts:W,start:V})}catch(q){}if(!B)process.exit(1);if(U.inputs!==void 0&&U.inputs!==B.rest.length)process.stderr.write(`expected ${U.inputs||0} input(s)
|
|
5
|
+
`),E1(X,W);const Q=await X.ctx({logger:new m0(process.stderr,X.name,"INFO"),format:J?H0:O1,opts:B.result,inputs:B.rest},U);if(await U.fn(Q),X.post)await X.post(Q,U)}catch(Y){process.stderr.write(Y.message+"\n\n"),process.exit(1)}},E1=(X,Z)=>{process.stderr.write(Z0(X.opts,Z)),process.exit(1)},XX=(X)=>["\nAvailable commands:\n",...Object.keys(X).map((Z)=>`${K0(16)(Z)}: ${X[Z].desc}`),"\n"].join("\n");import{existsSync as ZX,mkdirSync as JX,statSync as WX} from"fs";import{sep as YX} from"path";var _1=(X)=>{const Z=X.substring(0,X.lastIndexOf(YX));return Z.length>0&&!ZX(Z)?(JX(Z,{recursive:!0}),!0):!1},b1=(X)=>WX(X).isDirectory();var k=(X)=>typeof X==="function";var F=(X)=>typeof X==="string";import{readdirSync as UX,statSync as k5} from"fs";import{sep as VX} from"path";function*S1(X,Z="",J,W=Infinity,Y=0){if(Y>=W)return;const U=QX(Z);for(let V of UX(X).sort()){const B=X+VX+V;try{if(b1(B))yield*S1(B,Z,J,W,Y+1);else if(U(B))yield B}catch(Q){J&&J.warn(`ignoring file: ${V} (${Q.message})`)}}}var L1=(X,Z="",J=Infinity,W)=>S1(X,Z,W,J,0);var BX=(X)=>F(X)?new RegExp(`${X.replace(/\./g,"\\.")}\$`):X,QX=(X)=>k(X)?X:(X=BX(X),(Z)=>X.test(Z));import{readFileSync as qX} from"fs";import{writeFileSync as zX} from"fs";var y1=(X,Z,J,W,Y=!1)=>{if(W&&W.info(`${Y?"[dryrun] ":""}writing file: ${X}`),Y)return;_1(X),zX(X,Z,!J&&F(Z)?"utf-8":J)};var A=(X,Z,J="utf-8")=>{return Z&&Z.debug("reading file:",X),qX(X,J)},n0=(X,Z,J,W=!1)=>y1(X,P(Z)?Z.join("\n"):Z,"utf-8",J,W);var b=(X,Z)=>JSON.parse(A(X,Z));var M0=Object.freeze({level:C.NONE,enabled:()=>!1,fine(){},debug(){},info(){},warn(){},severe(){}});import{join as nX} from"path";var KX=I(()=>"Assertion failed"),F0=(typeof process!=="undefined"&&process.env!==void 0?!0:import.meta.env?import.meta.env.MODE!=="production"||!!import.meta.env.UMBRELLA_ASSERTS||!!import.meta.env.VITE_UMBRELLA_ASSERTS:!0)?(X,Z)=>{if(typeof X==="function"&&!X()||!X)throw new KX(typeof Z==="function"?Z():Z)}:()=>{};var P0=(X)=>X!=null&&typeof X!=="function"&&X.length!==void 0;var h1=(X)=>{return(X==null||!X[Symbol.iterator])&&H(`value is not iterable: ${X}`),X};var f1=(X)=>P0(X)?X:[...h1(X)];var W0=(X)=>X[X.length-1];var $X=I(()=>"illegal arity"),o=(X)=>{throw new $X(X)};var HX=I(()=>"illegal state"),i=(X)=>{throw new HX(X)};var l0=function(...X){let[Z,J,W,Y,U,V,B,Q,q,z]=X;switch(X.length){case 0:o(0);case 1:return Z;case 2:return(...$)=>Z(J(...$));case 3:return(...$)=>Z(J(W(...$)));case 4:return(...$)=>Z(J(W(Y(...$))));case 5:return(...$)=>Z(J(W(Y(U(...$)))));case 6:return(...$)=>Z(J(W(Y(U(V(...$))))));case 7:return(...$)=>Z(J(W(Y(U(V(B(...$)))))));case 8:return(...$)=>Z(J(W(Y(U(V(B(Q(...$))))))));case 9:return(...$)=>Z(J(W(Y(U(V(B(Q(q(...$)))))))));case 10:default:const K=(...$)=>Z(J(W(Y(U(V(B(Q(q(z(...$))))))))));return X.length===10?K:l0(K,...X.slice(10))}};var m1=(X,Z)=>new Promise((J)=>setTimeout(()=>J(X),Z));var u1=(X)=>X;var g1=["-moz-","-ms-","-o-","-webkit-"],a={rules:"",ruleSep:",",valSep:"",decls:"",declStart:"{",declEnd:"}",indent:"",comments:!1},O0={rules:"\n",ruleSep:", ",valSep:" ",decls:"\n",declStart:" {\n",declEnd:"}\n",indent:" ",comments:!0};var G=(X)=>X!=null&&typeof X[Symbol.iterator]==="function";var w0=(X,Z)=>X!=null&&typeof X[Z]==="function";var u=(X)=>w0(X,"xform")?X.xform():X;var L=function(...X){return X=X.map(u),l0.apply(null,X)};var N0=(X)=>X!=null&&typeof X!=="string"&&typeof X[Symbol.iterator]==="function";var t=(X,Z)=>[X[0],X[1],Z];var S=Symbol(),p0=()=>{};class o0{value;constructor(X){this.value=X}deref(){return this.value}}var j=(X)=>X instanceof o0;var y=(X)=>X instanceof o0?X.deref():X;var D0=function(...X){const Z=X[0],J=Z[0],W=Z[1],Y=Z[2];X=CX(X);const U=X[0]==null?J():X[0],V=X[1];return y(W(w0(V,"$reduce")?V.$reduce(Y,U):P0(V)?MX(Y,U,V):FX(Y,U,V)))};var CX=(X)=>X.length===2?[void 0,X[1]]:X.length===3?[X[1],X[2]]:o(X.length),MX=(X,Z,J)=>{for(let W=0,Y=J.length;W<Y;W++)if(Z=X(Z,J[W]),j(Z)){Z=Z.deref();break}return Z},FX=(X,Z,J)=>{for(let W of J)if(Z=X(Z,W),j(Z)){Z=Z.deref();break}return Z},c=(X,Z)=>[X,(J)=>J,Z];var G0=function(X){return X?[...X]:c(()=>[],(Z,J)=>(Z.push(J),Z))};function*j0(X,Z){const J=u(X)(G0()),W=J[1],Y=J[2];for(let U of Z){const V=Y([],U);if(j(V)){yield*y(W(V.deref()));return}if(V.length)yield*V}yield*y(W([]))}function*g(X,Z){const J=u(X)([p0,p0,(W,Y)=>Y])[2];for(let W of Z){let Y=J(S,W);if(j(Y)){if(Y=y(Y.deref()),Y!==S)yield Y;return}if(Y!==S)yield Y}}var k0=(X,Z,J=g)=>{const W=Z.length-1;return G(Z[W])?Z.length>1?J(X.apply(null,Z.slice(0,W)),Z[W]):J(X(),Z[0]):void 0};var i0=function(X,Z){return G(Z)?j0(i0(X),F(Z)?[Z]:Z):(J)=>{const W=J[2],Y=(U,V)=>{const B=X(V);if(B){for(let Q of B)if(U=Y(U,Q),j(U))break;return U}return W(U,V)};return t(J,Y)}};var x1=function(X){return i0((Z)=>N0(Z)?Z:void 0,X)};var O=function(X,Z){return G(Z)?g(O(X),Z):(J)=>{const W=J[2];return t(J,(Y,U)=>W(Y,X(U)))}};function*T0(...X){const Z=X.length-1;if(Z<0)return;const J=new Array(Z+1).fill(0),W=X.map(f1),Y=W.reduce((U,V)=>U*V.length,1);for(let U=0;U<Y;U++){const V=[];for(let B=Z;B>=0;B--){const Q=W[B];let q=J[B];if(q===Q.length)J[B]=q=0,B>0&&J[B-1]++;V[B]=Q[q]}J[Z]++,yield V}}function*d1(X,Z=Infinity){while(Z-- >0)yield X}var a0=function(X,Z){X=X||"";let J=!0;return Z?[...Z].join(X):c(()=>"",(W,Y)=>(W=J?W+Y:W+X+Y,J=!1,W))};var I0=function(...X){return PX(I0,D0,X)};var PX=(X,Z,J)=>{let W,Y;switch(J.length){case 4:Y=J[3],W=J[2];break;case 3:Y=J[2];break;case 2:return O((U)=>X(J[0],J[1],U));default:o(J.length)}return Z(u(J[0])(J[1]),W,Y)};var OX=new Set,wX=":[",n1=L(x1(),O((X)=>wX.indexOf(X.charAt(0))>=0?X:" "+X)),NX=(X,Z)=>L(X,O((J)=>F(J)&&J.indexOf(" .")==0?J+Z:J)),r=(X,Z,J,W)=>{const Y=J.length,U=[];let V,B;const Q=(q,z)=>{let K=null;if(P(z))r(X,t0(Z,U),z,W);else if(G(z)&&!F(z))r(X,t0(Z,U),[...z],W);else if((B=k(z))||(K=W.fns[z]))if(!Z.length){if(K)return K.apply(null,J.slice(q+1))(X,W),!0;z(X,W)}else if(B)Q(q,z());else H(`quoted fn ('${z}') only allowed at head position`);else if(R(z))V=Object.assign(V||{},z);else if(z!=null)U.push(z)};for(let q=0;q<Y;q++)if(Q(q,J[q]))return X;return V&&X.push(DX(Z,U,V,W)),X},t0=(X,Z)=>X.length?[...T0(X,Z)]:Z,DX=(X,Z,J,W)=>{const Y=W.format,U=R0(W),V=W.scope?NX(n1,W.scope):n1;return[U,I0(O((B)=>I0(V,a0(),P(B)?B:[B]).trim()),a0(Y.ruleSep),t0(X,Z)),Y.declStart,c0(J,W),U,Y.declEnd].join("")},c0=(X,Z)=>{const J=Z.format,W=Z.autoprefix||OX,Y=R0(Z,Z.depth+1),U=[];for(let V in X)if(X.hasOwnProperty(V)){let B=X[V];if(k(B))B=B(X);if(P(B))B=B.map((Q)=>P(Q)?Q.join(" "):Q).join(J.ruleSep);if(W.has(V))for(let Q of Z.vendors)U.push(`${Y}${Q}${V}:${J.valSep}${B};`);U.push(`${Y}${V}:${J.valSep}${B};`)}return U.join(J.decls)+J.decls},R0=(X,Z=X.depth)=>Z>1?[...d1(X.format.indent,Z)].join(""):Z>0?X.format.indent:"";var p1=(X,Z,J)=>(W,Y)=>{const U=R0(Y);return W.push(`${U}${X} ${GX(Z)}${Y.format.declStart}`),Y.depth++,r(W,[],J,Y),Y.depth--,W.push(U+Y.format.declEnd),W},GX=(X)=>{if(F(X))return X;const Z=[];for(let J in X)if(X.hasOwnProperty(J)){let W=X[J];if(W===!0)W=l1.has(J)?J:`(${J})`;else if(W===!1)W="not "+(l1.has(J)?J:`(${J})`);else if(W==="only")W+=" "+J;else W=`(${J}:${W})`;Z.push(W)}return Z.join(" and ")},l1=new Set(["all","print","screen"]);var Y0=(X,Z)=>{return Z={format:a,vendors:g1,fns:{},depth:0,...Z},P(Z.autoprefix)&&(Z.autoprefix=new Set(Z.autoprefix)),R(X)?c0(X,Z):k(X)?X([],Z).join(Z.format.rules):r([],[],P(X)?X:N0(X)?[...X]:H("invalid rules"),Z).join(Z.format.rules)};var A0=(X,Z)=>p1("@media",X,Z);var o1=4,i1=(X)=>o1=X,D=(X)=>X===(X|0)?String(X):X.toFixed(o1).replace(/^0./,".").replace(/^-0./,"-.").replace(/0+$/,""),a1=(X)=>`${D(X)}em`,t1=(X)=>`${D(X)}ex`,c1=(X)=>`${D(X)}rem`,r0=(X)=>`${D(X)}%`,r1=(X)=>`${D(X)}px`,s1=(X)=>`${D(X)}vh`,e1=(X)=>`${D(X)}vw`,X8=(X)=>`${D(X)}vmin`,Z8=(X)=>`${D(X)}vmax`,J8=(X)=>`${X|0}ms`,W8=(X)=>`${D(X)}s`;var Y8=(X)=>`${D(X)}deg`,U8=(X)=>`${D(X)}rad`,V8=(X)=>`${D(X)}turn`,B8=(X)=>`url(${X})`;var w=((X)=>{return X[X.IDLE=0]="IDLE",X[X.ACTIVE=1]="ACTIVE",X[X.DONE=2]="DONE",X[X.UNSUBSCRIBED=3]="UNSUBSCRIBED",X[X.ERROR=4]="ERROR",X})(w||{}),T=((X)=>{return X[X.NEVER=0]="NEVER",X[X.FIRST=1]="FIRST",X[X.LAST=2]="LAST",X})(T||{});var jX=0,kX=()=>jX++,x=(X,Z)=>!Z||!Z.id?{...Z,id:X+"-"+kX()}:Z;var N=M0;class h{constructor(X,Z){this.wrapped=X,Z=x("sub",{closeIn:T.LAST,closeOut:T.LAST,cache:!0,...Z}),this.parent=Z.parent,this.id=Z.id,this.closeIn=Z.closeIn,this.closeOut=Z.closeOut,this.cacheLast=Z.cache,Z.xform&&(this.xform=Z.xform(G0()))}id;closeIn;closeOut;parent;__owner;xform;cacheLast;last=S;state=w.IDLE;subs=[];deref(){return this.last!==S?this.last:void 0}getState(){return this.state}setState(X){this.state=X}subscribe(X,Z={}){this.ensureState();let J;if(X instanceof h&&!Z.xform)X.ensureState(),F0(!X.parent,`sub '${X.id}' already has a parent`),X.parent=this,J=X;else J=new h(X,{...Z,parent:this});return this.subs.push(J),this.setState(w.ACTIVE),J.setState(w.ACTIVE),this.last!=S&&J.next(this.last),J}transform(...X){let Z,J;if(R(W0(X)))J=X.pop(),Z={error:J.error};return this.subscribe(Z,x("xform",X.length>0?{...J,xform:L(...X)}:J))}map(X,Z){return this.transform(O(X),Z||{})}unsubscribe(X){return X?this.unsubscribeChild(X):this.unsubscribeSelf()}unsubscribeSelf(){return N.debug(this.id,"unsub self"),this.parent&&this.parent.unsubscribe(this),this.state<w.UNSUBSCRIBED&&(this.state=w.UNSUBSCRIBED),this.release(),!0}unsubscribeChild(X){N.debug(this.id,"unsub child",X.id);const Z=this.subs.indexOf(X);if(Z>=0){if(this.subs.splice(Z,1),this.closeOut===T.FIRST||!this.subs.length&&this.closeOut!==T.NEVER)this.unsubscribe();return!0}return!1}next(X){if(this.state>=w.DONE)return;this.xform?this.dispatchXform(X):this.dispatch(X)}done(){if(N.debug(this.id,"entering done()"),this.state>=w.DONE)return;if(this.xform){if(!this.dispatchXformDone())return}if(this.state=w.DONE,this.dispatchTo("done"))this.state<w.UNSUBSCRIBED&&this.unsubscribe();N.debug(this.id,"exiting done()")}error(X){const Z=this.wrapped,J=Z&&Z.error;return J&&N.debug(this.id,"attempting wrapped error handler"),J&&Z.error(X)||this.unhandledError(X)}unhandledError(X){return(N!==M0?N:console).warn(this.id,"unhandled error:",X),this.unsubscribe(),this.state=w.ERROR,!1}dispatchTo(X,Z){let J=this.wrapped;if(J)try{J[X]&&J[X](Z)}catch(Y){if(!this.error(Y))return!1}const W=X==="next"?this.subs:[...this.subs];for(let Y=W.length;Y-- >0;){J=W[Y];try{J[X]&&J[X](Z)}catch(U){if(X==="error"||!J.error||!J.error(U))return this.unhandledError(U)}}return!0}dispatch(X){N.debug(this.id,"dispatch",X),this.cacheLast&&(this.last=X),this.dispatchTo("next",X)}dispatchXform(X){let Z;try{Z=this.xform[2]([],X)}catch(J){this.error(J);return}if(this.dispatchXformVals(Z))j(Z)&&this.done()}dispatchXformDone(){let X;try{X=this.xform[1]([])}catch(Z){return this.error(Z)}return this.dispatchXformVals(X)}dispatchXformVals(X){const Z=y(X);for(let J=0,W=Z.length;J<W&&this.state<w.DONE;J++)this.dispatch(Z[J]);return this.state<w.ERROR}ensureState(){if(this.state>=w.DONE)i(`operation not allowed in state ${this.state}`)}release(){this.subs.length=0,delete this.parent,delete this.xform,delete this.last}}var Q8=(X,Z)=>{const J=new z8(Z);return J.next(X),J};class z8 extends h{src;_cancel;_inited;constructor(X,Z){const[J,W]=k(X)?[X,Z||{}]:[void 0,X||{}];super(W.error?{error:W.error}:void 0,x("stream",W));this.src=J,this._inited=!1}subscribe(X,Z={}){const J=super.subscribe(X,Z);if(!this._inited){if(this.src)try{this._cancel=this.src(this)||(()=>{return})}catch(W){let Y=this.wrapped;if(!Y||!Y.error||!Y.error(W))this.unhandledError(W)}this._inited=!0}return J}unsubscribe(X){const Z=super.unsubscribe(X);if(Z&&(!X||(!this.subs||!this.subs.length)&&this.closeOut!==T.NEVER))this.cancel();return Z}done(){this.cancel(),super.done(),delete this.src,delete this._cancel}error(X){if(super.error(X))return!0;return this.cancel(),!1}cancel(){if(this._cancel){N.debug(this.id,"cancel");const X=this._cancel;delete this._cancel,X()}}}var q8=(X,Z)=>X===T.FIRST||X===T.LAST&&!Z;var s0=function(X){return X?D0(s0(),X):c(()=>({}),(Z,[J,W])=>(Z[J]=W,Z))};var e0=function(X,Z){return G(Z)?g(e0(X),Z):O(k(X)?(J)=>[X(J),J]:(J)=>[X,J])};var X1=function(...X){const Z=k0(X1,X);if(Z)return Z;const J=X[0],W=X[1]!==!1;return O((Y)=>{const U=W?{}:Y;for(let V in Y)U[V]=J(Y[V]);return U})};var Z1=function(...X){const Z=k0(Z1,X,j0);if(Z)return Z;const{key:J,mergeOnly:W,reset:Y,all:U,backPressure:V}={key:u1,mergeOnly:!1,reset:!0,all:!0,backPressure:0,...X[1]},B=P(X[0])?new Set(X[0]):X[0],Q=new Set,q=new Map;let z={};const K=([$,v,_])=>{let f=!0;if(W||V<1)return[$,(M)=>{if(Y&&U&&Q.size>0||!Y&&f)M=_(M,z),z={},Q.clear(),f=!1;return v(M)},(M,X0)=>{const E=J(X0);if(B.has(E)){if(z[E]=X0,Q.add(E),W||K8(B,Q))if(M=_(M,z),f=!1,Y)z={},Q.clear();else z={...z}}return M}];else return[$,(M)=>{if(U&&Q.size>0)M=_(M,$8(q,Q)),q.clear(),Q.clear();return v(M)},(M,X0)=>{const E=J(X0);if(B.has(E)){let B0=q.get(E);!B0&&q.set(E,B0=[]),B0.length>=V&&i(`max back pressure (${V}) exceeded for input: ${String(E)}`),B0.push(X0),Q.add(E);while(K8(B,Q))if(M=_(M,$8(q,Q)),f=!1,j(M))break}return M}]};return K.keys=()=>B,K.clear=()=>{q.clear(),B.clear(),Q.clear(),z={}},K.add=($)=>{B.add($)},K.delete=($,v=!0)=>{if(q.delete($),B.delete($),v)Q.delete($),delete z[$]},K},K8=(X,Z)=>{if(Z.size<X.size)return!1;for(let J of X)if(!Z.has(J))return!1;return!0},$8=(X,Z)=>{const J={};for(let W of Z){const Y=X.get(W);J[W]=Y.shift(),!Y.length&&Z.delete(W)}return J};var H8=(X,Z)=>{let J=!0;for(let W of Z)J=X.removeID(W)&&J;return J};var C8=(X)=>new M8(X);class M8 extends h{sources;idSources;realSourceIDs;invRealSourceIDs;psync;clean;constructor(X){const Z=Z1(new Set,{key:(W)=>W[0],mergeOnly:X.mergeOnly===!0,reset:X.reset===!0,all:X.all!==!1,backPressure:X.backPressure||0}),J=X1((W)=>W[1]);super(void 0,x("streamsync",{...X,xform:X.xform?L(Z,J,X.xform):L(Z,J)}));this.sources=new Map,this.realSourceIDs=new Map,this.invRealSourceIDs=new Map,this.idSources=new Map,this.psync=Z,this.clean=!!X.clean,X.src&&this.addAll(X.src)}add(X,Z){Z||(Z=X.id),this.ensureState(),this.psync.add(Z),this.realSourceIDs.set(Z,X.id),this.invRealSourceIDs.set(X.id,Z),this.idSources.set(X.id,X),this.sources.set(X,X.subscribe({next:(J)=>J[1]instanceof h?this.add(J[1]):this.next(J),done:()=>this.markDone(X),__owner:this},{xform:e0(Z),id:`in-${Z}`}))}addAll(X){for(let Z in X)this.psync.add(Z);for(let Z in X)this.add(X[Z],Z)}remove(X){const Z=this.sources.get(X);if(Z){const J=this.invRealSourceIDs.get(X.id);return N.info(`removing src: ${X.id} (${J})`),this.psync.delete(J,this.clean),this.realSourceIDs.delete(J),this.invRealSourceIDs.delete(X.id),this.idSources.delete(X.id),this.sources.delete(X),Z.unsubscribe(),!0}return!1}removeID(X){const Z=this.getSourceForID(X);return Z?this.remove(Z):!1}removeAll(X){for(let J of X)this.psync.delete(this.invRealSourceIDs.get(J.id));let Z=!0;for(let J of X)Z=this.remove(J)&&Z;return Z}removeAllIDs(X){return H8(this,X)}getSourceForID(X){return this.idSources.get(this.realSourceIDs.get(X))}getSources(){const X={};for(let[Z,J]of this.idSources)X[this.invRealSourceIDs.get(Z)]=J;return X}unsubscribe(X){if(!X){N.debug(this.id,"unsub sources");for(let Z of this.sources.values())Z.unsubscribe();this.sources.clear(),this.psync.clear(),this.realSourceIDs.clear(),this.invRealSourceIDs.clear(),this.idSources.clear()}return super.unsubscribe(X)}markDone(X){this.remove(X),q8(this.closeIn,this.sources.size)&&this.done()}}var J1=d((X,Z=" ")=>{const J=n(String(Z),X);return(W,Y)=>{if(W==null)return J;return W=W.toString(),Y=Y!==void 0?Y:W.length,Y<X?J.substring(Y)+W:W}}),R2=J1(2,"0"),F8=J1(3,"0"),A2=J1(4,"0");var W1=function(X,Z){return G(Z)?g(W1(X),Z):(J)=>{const W=J[2];return t(J,(Y,U)=>X(U)?W(Y,U):Y)}};import{watch as IX} from"fs";import{resolve as V0} from"path";var P8={specs:q0({alias:"s",optional:!1,desc:"Path to generated JSON defs"})},E0={include:p({alias:"I",desc:"Include CSS files (prepend)"})},s={pretty:l({alias:"p",desc:"Pretty print output"})},v0={noHeader:l({desc:"Don't emit generated header comment"})},O8={watch:l({alias:"w",desc:"Watch input files for changes"})};import{resolve as TX} from"path";var e=(X,Z,J)=>{Z=F(Z)?Z:Z.join("\n"),X?n0(TX(X),Z,J):console.log(Z)},_0=({info:{name:X,version:Z}})=>`/*! ${X} v${Z} - generated by thi.ng/meta-css @ ${(new Date()).toISOString()} */`;var N8={desc:"Transpile & bundle meta stylesheets to CSS",opts:{...P8,...E0,...s,...v0,...O8,force:p({alias:"f",desc:"CSS classes to force include (wildcards are supported, @-prefix will read from file)",delim:","})},fn:async(X)=>{const Z=b(V0(X.opts.specs),X.logger),J=vX(Z,X.opts.force||[],X.logger);if(X.opts.watch)await RX(X,Z,J);else D8(X,Z,J,X.inputs.map((W)=>A(V0(W),X.logger)))}},RX=async(X,Z,J)=>{let W=!0;const Y=()=>{X.logger.info("closing watchers..."),U.forEach((V)=>V.watcher.close()),W=!1},U=X.inputs.map((V,B)=>{V=V0(V);const Q=Q8(A(V,X.logger),{id:`in${F8(B)}`});return{input:Q,watcher:IX(V,{},(q)=>{if(q==="change")try{Q.next(A(V,X.logger))}catch(z){X.logger.warn(z.message),Y()}else X.logger.warn("input removed:",V),Y()})}});C8({src:s0(O(({input:V})=>[V.id,V],U))}).subscribe({next(V){try{D8(X,Z,J,Object.keys(V).sort().map((B)=>V[B]))}catch(B){X.logger.warn(B.message)}}}),process.on("SIGINT",Y);while(W)await m1(null,250)},D8=({logger:X,opts:{include:Z,noHeader:J,out:W,pretty:Y}},U,V,B)=>{const Q={logger:X,specs:U,format:Y?O0:a,mediaQueryIDs:new Set(Object.keys(U.media)),mediaQueryRules:{...V.mediaQueryRules},plainRules:{...V.plainRules}},q=Z?Z.map((z)=>A(V0(z),X).trim()):[];if(!J)q.push(_0(U));B.forEach((z)=>_X(z,Q)),EX(q,Q),AX(q,Q),e(W,q,X)},AX=(X,{logger:Z,specs:J,format:W,mediaQueryRules:Y})=>{for(let U in Y){const V=j8(Y[U],J);Z.debug("mediaquery rules",U,V),X.push(Y0(A0(SX(J.media,U),V),{format:W}))}},EX=(X,{logger:Z,specs:J,format:W,plainRules:Y})=>{const U=j8(Y,J);Z.debug("plain rules",U),X.push(Y0(U,{format:W}))},vX=(X,Z,J)=>{const W=new Set(Object.keys(X.media)),Y=new Set(Object.keys(X.classes)),U={},V={};if(Z.length&&Z[0][0]==="@")Z=[...m(A(V0(Z[0].substring(1)),J))];for(let B of Z){if(!B||B.startsWith("//"))continue;const{token:Q,query:q}=k8(B,W);let z;if(Q.includes("*")){const K=new RegExp(`^${Q.replace("*",".*")}\$`);z=[...W1(($)=>K.test($),Y)]}else if(Y.has(Q))z=[Q];else{J.warn(`unknown include rule ID: ${B}, skipping...`);continue}for(let K of z)J.debug("including class:",K),q?T8(U,q,`.${K}`,K):I8(V,`.${K}`,K)}return{mediaQueryRules:U,plainRules:V}},_X=(X,{specs:Z,mediaQueryIDs:J,mediaQueryRules:W,plainRules:Y})=>{const U=U0(),V=U0(U),B={root:U,curr:V,scopes:[V]};for(let Q of m(X)){if(!Q||/^\s*\/\//.test(Q))continue;for(let q of m(Q,/\s+/g)){if(!q)continue;let z=B.curr;switch(z.state){case"sel":case"nest":if(q==="{"){if(z.state==="sel")z.sel=z.sel.map((K)=>K.replace(",","")),z.path=bX(B.scopes);z.state="class"}else if(q==="}")w8(B);else{const K=W0(z.sel);if(!K||K.endsWith(","))z.sel.push(q);else z.sel[z.sel.length-1]+=" "+q}break;case"class":if(q==="{")z.state="nest",B.scopes.push(B.curr=U0(z));else if(q==="}")w8(B);else{let{token:K,query:$}=k8(q,J);if(!Z.classes[K])H(`unknown class ID: ${K}`);if($)T8(W,$,z.path,K);else I8(Y,z.path,K)}break;default:i(z.state)}}}},Y1=":",G8="///",U0=(X)=>({state:"sel",sel:X?[]:["<root>"],path:"",parent:X}),w8=(X)=>{const Z=!X.curr.sel.length;if(F0(!!X.curr.parent,"stack underflow"),X.scopes.pop(),X.scopes.length>0){if(X.curr=W0(X.scopes),!Z&&X.curr.state==="nest")X.scopes.push(X.curr=U0(X.curr))}else X.scopes.push(X.curr=U0(X.root))},bX=(X)=>X.map((Z)=>Z.sel.join(",")).join(G8),j8=(X,Z)=>Object.entries(X).map(([J,W])=>LX(J,W,Z)),LX=(X,Z,J)=>{const W=[];let Y=W;const U=X.split(G8);for(let V=0;V<U.length;V++){const B=U[V].split(",");if(V==U.length-1){const Q=Object.assign({},...O((q)=>J.classes[q],Z));if("__user"in Q)delete Q.__user;B.push(Q)}Y.push(B),Y=B}return W[0]},k8=(X,Z)=>{if(/^::?/.test(X))return{token:X};const J=X.lastIndexOf(Y1);if(J<0)return{token:X};const W=X.substring(0,J);if(!W.split(Y1).every((U)=>Z.has(U)))H(`invalid media query in token: ${X}`);return{token:X.substring(J+1),query:W}},SX=(X,Z)=>Z.split(Y1).reduce((J,W)=>Object.assign(J,X[W]),{}),T8=(X,Z,J,W)=>{if(!X[Z])X[Z]={};(X[Z][J]||(X[Z][J]=new Set)).add(W)},I8=(X,Z,J)=>(X[Z]||(X[Z]=new Set)).add(J);import{resolve as R8} from"path";var E8={desc:"Export entire generated framework as CSS",opts:{...E0,...s,...v0,media:p({alias:"m",desc:"Media query IDs (use 'ALL' for all)",delim:","})},inputs:1,fn:async(X)=>{const{logger:Z,opts:{include:J,media:W,noHeader:Y,pretty:U,out:V},inputs:B}=X,Q=b(R8(B[0]),Z),q=J?J.map((z)=>A(R8(z),Z).trim()):[];if(!Y)q.push(_0(Q));q.push(yX(Q,W,U,Z)),e(V,q,Z)}},yX=(X,Z,J,W)=>{const Y=A8("",X);if(Z){const U=Z[0]==="ALL"?Object.keys(X.media):Z;for(let V of U)if(X.media[V])Y.push(A0(X.media[V],A8("-"+V,X)));else W.warn(`invalid media query ID: ${V}, skipping...`)}return Y0(Y,{format:J?O0:a})},A8=(X,Z)=>Object.entries(Z.classes).map(([J,W])=>[`.${J}${X}`,hX(W)]),hX=(X)=>{if("__user"in X)X={...X},delete X.__user;return X};import{statSync as fX} from"fs";import{resolve as mX} from"path";var v8={deg:Y8,em:a1,ex:t1,ms:J8,percent:r0,px:r1,rad:U8,rem:c1,second:W8,turn:V8,url:B8,vh:s1,vmax:Z8,vmin:X8,vw:e1,"%":r0},uX={"":[""],a:[""],h:["-left","-right"],v:["-top","-bottom"],t:["-top"],top:["top"],b:["-bottom"],bottom:["bottom"],r:["-right"],right:["right"],l:["-left"],left:["left"],x:["-x"],y:["-y"]},_8={desc:"Generate framework rules from specs",opts:{...s,prec:H1({default:3,desc:"Number of fractional digits"})},inputs:1,fn:async(X)=>{const{logger:Z,opts:{prec:J,out:W,pretty:Y},inputs:U}=X,V=mX(U[0]);if(!fX(V).isDirectory())H(`${V} is not a directory`);const B={info:{name:"TODO",version:"0.0.0"},media:{},classes:{}};i1(J);for(let Q of L1(V,".json")){const q=b(Q,Z);Object.assign(B.info,q.info),Object.assign(B.media,q.media);for(let z of q.specs)gX(q,z,B.classes,Z)}e(W,JSON.stringify(B,null,Y?4:0),Z)}},gX=(X,Z,J,W)=>{const Y=P(Z.var)?Z.var:[""],U=F(Z.props)?{[Z.props]:"<v>"}:Z.props,V=xX(Z,X),B=new Set;for(let Q of Y)for(let[q,z]of T0(uX[Q],Object.keys(V))){const K=U1(Z.name,Q,q,z,V[z]),$=dX(V[z],Z.unit);if(!J[K])J[K]=Z.user!=null?{__user:Z.user}:{};else if(!B.has(K))H(`duplicate class ID: ${K}`);B.add(K);for(let[v,_]of Object.entries(U)){const f=U1(v,Q,q,z,V[z]),M=U1(!Z.unit||F(_)?_:v8[Z.unit](_),Q,q,z,$);J[K][f]=M,W.debug(K,f,M)}}return J},xX=(X,Z)=>{const J=F(X.values)?Z.tables?.[X.values]||H(`invalid table ID: ${X.values}`):X.values;if(R(J))return J;const W=X.key==="v"?(Y)=>String(Y):X.key==="i1"?(Y,U)=>String(U+1):X.key===void 0?(Y,U)=>String(U):H(`invalid key type: ${X.key}`);return J.reduce((Y,U,V)=>{return Y[W(U,V)]=U,Y},{})},dX=(X,Z)=>{if(!Z||F(X))return X;const J=v8[Z];if(!J)H(`invalid unit: ${Z}`);return J(X)},U1=(X,Z,J,W,Y)=>X.replace("<vid>",Z).replace("<var>",J).replace("<k>",W).replace("<v>",String(Y));var V1=b(nX(import.meta.dir,"package.json"));v1({name:"metacss",opts:{out:q0({alias:"o",desc:"Output file (or stdout)"}),verbose:l({alias:"v",desc:"Display extra process information"})},commands:{convert:N8,export:E8,generate:_8},ctx:async(X)=>{if(X.opts.verbose)X.logger.level=C.DEBUG;return{...X,format:H0}},usage:{prefix:`
|
|
6
6
|
\u2588 \u2588 \u2588 \u2502
|
|
7
7
|
\u2588\u2588 \u2588 \u2502
|
|
8
|
-
\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2502 ${
|
|
9
|
-
\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2502 ${
|
|
8
|
+
\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2502 ${V1.name} ${V1.version}
|
|
9
|
+
\u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2588 \u2502 ${V1.description}
|
|
10
10
|
\u2588 \u2502
|
|
11
11
|
\u2588 \u2588 \u2502
|
|
12
12
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/meta-css",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Data-driven CSS framework codegen, transpiler & bundler",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"author": "Karsten Schmidt (https://thi.ng)",
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"scripts": {
|
|
30
|
-
"build": "yarn build
|
|
30
|
+
"build": "yarn clean && bun build --outfile=index.js --target bun --minify --bundle src/index.ts",
|
|
31
31
|
"build:decl": "tsc --declaration --emitDeclarationOnly",
|
|
32
|
-
"build:esbuild": "
|
|
32
|
+
"build:esbuild": "esbuild --format=esm --platform=node --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts",
|
|
33
33
|
"clean": "rimraf --glob '*.js' '*.d.ts' '*.map' doc",
|
|
34
34
|
"doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
|
|
35
35
|
"doc:ae": "mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose",
|
|
36
|
-
"doc:readme": "bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts",
|
|
36
|
+
"doc:readme": "bun tools/framework.ts && bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts",
|
|
37
37
|
"pub": "yarn npm publish --access public",
|
|
38
38
|
"test": "bun test"
|
|
39
39
|
},
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@thi.ng/compose": "^2.1.53",
|
|
46
46
|
"@thi.ng/errors": "^2.4.8",
|
|
47
47
|
"@thi.ng/file-io": "^1.1.2",
|
|
48
|
-
"@thi.ng/hiccup-css": "^2.3.
|
|
48
|
+
"@thi.ng/hiccup-css": "^2.3.3",
|
|
49
49
|
"@thi.ng/logger": "^2.1.1",
|
|
50
50
|
"@thi.ng/rstream": "^8.2.17",
|
|
51
51
|
"@thi.ng/strings": "^3.7.5",
|
|
@@ -102,5 +102,5 @@
|
|
|
102
102
|
"status": "alpha",
|
|
103
103
|
"year": 2023
|
|
104
104
|
},
|
|
105
|
-
"gitHead": "
|
|
105
|
+
"gitHead": "118a3455103b268b315f312b616641022d81296a\n"
|
|
106
106
|
}
|
package/specs/anim.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"specs": [
|
|
3
3
|
{
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
4
|
+
"user": "animations / transitions",
|
|
5
|
+
"name": "bg-anim<k>",
|
|
6
|
+
"key": "i1",
|
|
7
|
+
"props": { "transition": "<v>s background-color ease-in-out" },
|
|
8
|
+
"values": [0.15, 0.25, 0.5],
|
|
9
9
|
"unit": null
|
|
10
10
|
}
|
|
11
11
|
]
|
package/specs/borders.json
CHANGED
|
@@ -5,42 +5,44 @@
|
|
|
5
5
|
},
|
|
6
6
|
"specs": [
|
|
7
7
|
{
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
8
|
+
"user": "border radius",
|
|
9
|
+
"name": "br<k>",
|
|
10
|
+
"props": "border-radius",
|
|
11
|
+
"values": "borders-r",
|
|
12
|
+
"unit": "rem"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"border-top
|
|
19
|
-
"border-bottom
|
|
15
|
+
"user": "border radius",
|
|
16
|
+
"name": "br<vid><k>",
|
|
17
|
+
"props": {
|
|
18
|
+
"border-top<var>-radius": "<v>",
|
|
19
|
+
"border-bottom<var>-radius": "<v>"
|
|
20
20
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
21
|
+
"values": "borders-r",
|
|
22
|
+
"unit": "rem",
|
|
23
|
+
"var": ["l", "r"]
|
|
23
24
|
},
|
|
24
25
|
{
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"border
|
|
29
|
-
"border
|
|
26
|
+
"user": "border radius",
|
|
27
|
+
"name": "br<vid><k>",
|
|
28
|
+
"props": {
|
|
29
|
+
"border<var>-left-radius": "<v>",
|
|
30
|
+
"border<var>-right-radius": "<v>"
|
|
30
31
|
},
|
|
31
|
-
"
|
|
32
|
-
"
|
|
32
|
+
"values": "borders-r",
|
|
33
|
+
"unit": "rem",
|
|
34
|
+
"var": ["t", "b"]
|
|
33
35
|
},
|
|
34
36
|
{
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
"border
|
|
40
|
-
"border*-width": "*"
|
|
37
|
+
"user": "border width",
|
|
38
|
+
"name": "bw<vid><k>",
|
|
39
|
+
"props": {
|
|
40
|
+
"border<var>-style": "solid",
|
|
41
|
+
"border<var>-width": "<v>"
|
|
41
42
|
},
|
|
42
|
-
"
|
|
43
|
-
"
|
|
43
|
+
"values": "borders-w",
|
|
44
|
+
"unit": "rem",
|
|
45
|
+
"var": ["", "t", "r", "b", "l"]
|
|
44
46
|
}
|
|
45
47
|
]
|
|
46
48
|
}
|
package/specs/colors.json
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"tables": {
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
"vcol2": "var(--color2)",
|
|
6
|
-
"vcol3": "var(--color3)",
|
|
7
|
-
"vcol4": "var(--color4)",
|
|
8
|
-
"vcol5": "var(--color5)",
|
|
9
|
-
"vcol6": "var(--color6)",
|
|
10
|
-
"vcol7": "var(--color7)",
|
|
11
|
-
"vcol8": "var(--color8)",
|
|
12
|
-
"vcol9": "var(--color9)",
|
|
13
|
-
"vcol10": "var(--color10)",
|
|
14
|
-
"vcol11": "var(--color11)",
|
|
15
|
-
"vcol12": "var(--color12)",
|
|
16
|
-
"vcol13": "var(--color13)",
|
|
17
|
-
"vcol14": "var(--color14)",
|
|
18
|
-
"vcol15": "var(--color15)",
|
|
19
|
-
"vcol16": "var(--color16)"
|
|
20
|
-
},
|
|
3
|
+
"__var_comment": "16 custom CSS color slots",
|
|
4
|
+
"var-palette": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
21
5
|
"__grays_comment": "Tachyons CSS colors",
|
|
22
6
|
"grays": {
|
|
23
7
|
"black": "#000",
|
|
@@ -64,78 +48,76 @@
|
|
|
64
48
|
},
|
|
65
49
|
"specs": [
|
|
66
50
|
{
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"items": "var-palette",
|
|
72
|
-
"unit": "var-palette"
|
|
51
|
+
"user": "colors",
|
|
52
|
+
"name": "b--vcol<v>",
|
|
53
|
+
"props": { "border-color": "var(--color<v>)" },
|
|
54
|
+
"values": "var-palette"
|
|
73
55
|
},
|
|
74
56
|
{
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"unit": "palette"
|
|
57
|
+
"user": "colors",
|
|
58
|
+
"name": "b--<k>",
|
|
59
|
+
"props": "border-color",
|
|
60
|
+
"values": "palette"
|
|
80
61
|
},
|
|
81
62
|
{
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"unit": "grays"
|
|
63
|
+
"user": "colors",
|
|
64
|
+
"name": "b--<k>",
|
|
65
|
+
"props": "border-color",
|
|
66
|
+
"values": "grays"
|
|
87
67
|
},
|
|
88
68
|
{
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"items": "var-palette",
|
|
94
|
-
"unit": "var-palette"
|
|
69
|
+
"user": "colors",
|
|
70
|
+
"name": "vcol<v>",
|
|
71
|
+
"props": { "color": "var(--color<v>)" },
|
|
72
|
+
"values": "var-palette"
|
|
95
73
|
},
|
|
96
74
|
{
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"unit": "palette"
|
|
75
|
+
"user": "colors",
|
|
76
|
+
"name": "<k>",
|
|
77
|
+
"props": "color",
|
|
78
|
+
"values": "palette"
|
|
102
79
|
},
|
|
103
80
|
{
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"unit": "grays"
|
|
81
|
+
"user": "colors",
|
|
82
|
+
"name": "<k>",
|
|
83
|
+
"props": "color",
|
|
84
|
+
"values": "grays"
|
|
109
85
|
},
|
|
110
86
|
{
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"items": "var-palette",
|
|
116
|
-
"unit": "var-palette"
|
|
87
|
+
"user": "colors",
|
|
88
|
+
"name": "bg-vcol<v>",
|
|
89
|
+
"props": { "background-color": "var(--color<v>)" },
|
|
90
|
+
"values": "var-palette"
|
|
117
91
|
},
|
|
118
92
|
{
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"unit": "palette"
|
|
93
|
+
"user": "colors",
|
|
94
|
+
"name": "bg-<k>",
|
|
95
|
+
"props": "background-color",
|
|
96
|
+
"values": "palette"
|
|
124
97
|
},
|
|
125
98
|
{
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"unit": "grays"
|
|
99
|
+
"user": "colors",
|
|
100
|
+
"name": "bg-<k>",
|
|
101
|
+
"props": "background-color",
|
|
102
|
+
"values": "grays"
|
|
131
103
|
},
|
|
132
104
|
{
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
|
|
138
|
-
|
|
105
|
+
"user": "colors",
|
|
106
|
+
"name": "o-<k>",
|
|
107
|
+
"props": "opacity",
|
|
108
|
+
"values": {
|
|
109
|
+
"0": 0,
|
|
110
|
+
"10": 0.1,
|
|
111
|
+
"20": 0.2,
|
|
112
|
+
"30": 0.3,
|
|
113
|
+
"40": 0.4,
|
|
114
|
+
"50": 0.5,
|
|
115
|
+
"60": 0.6,
|
|
116
|
+
"70": 0.7,
|
|
117
|
+
"80": 0.8,
|
|
118
|
+
"90": 0.9,
|
|
119
|
+
"100": 1
|
|
120
|
+
}
|
|
139
121
|
}
|
|
140
122
|
]
|
|
141
123
|
}
|
package/specs/cursor.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"specs": [
|
|
3
3
|
{
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
4
|
+
"user": "cursors",
|
|
5
|
+
"name": "cursor-<k>",
|
|
6
|
+
"props": "cursor",
|
|
7
|
+
"values": {
|
|
8
8
|
"auto": "auto",
|
|
9
9
|
"default": "default",
|
|
10
10
|
"none": "none",
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
"scroll": "all-scroll",
|
|
42
42
|
"in": "zoom-in",
|
|
43
43
|
"out": "zoom-out"
|
|
44
|
-
}
|
|
45
|
-
"unit": null
|
|
44
|
+
}
|
|
46
45
|
}
|
|
47
46
|
]
|
|
48
47
|
}
|
package/specs/dimensions.json
CHANGED
|
@@ -7,48 +7,48 @@
|
|
|
7
7
|
},
|
|
8
8
|
"specs": [
|
|
9
9
|
{
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
10
|
+
"user": "width",
|
|
11
|
+
"name": "w<k>",
|
|
12
|
+
"key": "i1",
|
|
13
|
+
"props": "width",
|
|
14
|
+
"values": "sizes-abs",
|
|
15
|
+
"unit": "rem"
|
|
15
16
|
},
|
|
16
17
|
{
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"items": "sizes-rel",
|
|
18
|
+
"user": "width",
|
|
19
|
+
"name": "w-<v>",
|
|
20
|
+
"props": "width",
|
|
21
|
+
"values": "sizes-rel",
|
|
22
22
|
"unit": "%"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
25
|
+
"user": "max. width",
|
|
26
|
+
"name": "mw<k>",
|
|
27
|
+
"key": "i1",
|
|
28
|
+
"props": "max-width",
|
|
29
|
+
"values": "sizes-abs",
|
|
30
|
+
"unit": "rem"
|
|
30
31
|
},
|
|
31
32
|
{
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"items": "sizes-rel",
|
|
33
|
+
"user": "max. width",
|
|
34
|
+
"name": "mw-<v>",
|
|
35
|
+
"props": "max-width",
|
|
36
|
+
"values": "sizes-rel",
|
|
37
37
|
"unit": "%"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
40
|
+
"user": "height",
|
|
41
|
+
"name": "h<k>",
|
|
42
|
+
"key": "i1",
|
|
43
|
+
"props": "height",
|
|
44
|
+
"values": "sizes-abs",
|
|
45
|
+
"unit": "rem"
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"items": "sizes-rel",
|
|
48
|
+
"user": "height",
|
|
49
|
+
"name": "h-<v>",
|
|
50
|
+
"props": "height",
|
|
51
|
+
"values": "sizes-rel",
|
|
52
52
|
"unit": "%"
|
|
53
53
|
}
|
|
54
54
|
]
|
package/specs/display.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"specs": [
|
|
3
3
|
{
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"items": {
|
|
4
|
+
"user": "display mode",
|
|
5
|
+
"name": "d<k>",
|
|
6
|
+
"props": "display",
|
|
7
|
+
"values": {
|
|
9
8
|
"b": "block",
|
|
10
9
|
"f": "flex",
|
|
11
10
|
"g": "grid",
|
|
@@ -17,8 +16,7 @@
|
|
|
17
16
|
"t": "table",
|
|
18
17
|
"tc": "table-cell",
|
|
19
18
|
"tr": "table-row"
|
|
20
|
-
}
|
|
21
|
-
"unit": null
|
|
19
|
+
}
|
|
22
20
|
}
|
|
23
21
|
]
|
|
24
22
|
}
|