@tailwindcss/cli 4.0.0-beta.5 → 4.0.0-beta.7

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.
Files changed (2) hide show
  1. package/dist/index.mjs +5 -5
  2. package/package.json +4 -4
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import pe from"mri";function Q(e,t=process.argv.slice(2)){let n=pe(t),i={_:n._};for(let[r,{type:s,alias:a,default:l=s==="boolean"?!1:null}]of Object.entries(e)){if(i[r]=l,a){let o=a.slice(1);n[o]!==void 0&&(i[r]=J(n[o],s))}{let o=r.slice(2);n[o]!==void 0&&(i[r]=J(n[o],s))}}return i}function J(e,t){switch(t){case"string":return F(e);case"boolean":return D(e);case"number":return U(e);case"boolean | string":return D(e)??F(e);case"number | string":return U(e)??F(e);case"boolean | number":return D(e)??U(e);case"boolean | number | string":return D(e)??U(e)??F(e);default:throw new Error(`Unhandled type: ${t}`)}}function D(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function U(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function F(e){return`${e}`}import be from"@parcel/watcher";import{compile as Se,env as c}from"@tailwindcss/node";import{clearRequireCache as xe}from"@tailwindcss/node/require-cache";import{Scanner as $e}from"@tailwindcss/oxide";import{Features as ie,transform as Te}from"lightningcss";import{existsSync as Ce}from"node:fs";import M from"node:fs/promises";import T from"node:path";var B=class{#e=new Set([]);queueMacrotask(t){let n=setTimeout(t,0);return this.add(()=>{clearTimeout(n)})}add(t){return this.#e.add(t),()=>{this.#e.delete(t),t()}}async dispose(){for(let t of this.#e)await t();this.#e.clear()}};import he from"node:fs";import Z from"node:path";import{stripVTControlCharacters as ge}from"node:util";import h from"picocolors";import Y from"enhanced-resolve";import fe from"node:fs";import{createRequire as de}from"node:module";var me=de(import.meta.url).resolve;function H(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return me(e)}var ke=Y.ResolverFactory.createResolver({fileSystem:new Y.CachedInputFileSystem(fe,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function X(e){let t=typeof e=="number"?BigInt(e):e;return t<1000n?`${t}ns`:(t/=1000n,t<1000n?`${t}\xB5s`:(t/=1000n,t<1000n?`${t}ms`:(t/=1000n,t<60n?`${t}s`:(t/=60n,t<60n?`${t}m`:(t/=60n,t<24n?`${t}h`:(t/=24n,`${t}d`))))))}var G={indent:2};function v(){return`${h.italic(h.bold(h.blue("\u2248")))} tailwindcss ${h.blue(`v${we()}`)}`}function k(e){return`${h.dim(h.blue("`"))}${h.blue(e)}${h.dim(h.blue("`"))}`}function ee(e,t=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=Z.relative(t,e);return i.startsWith("..")||(i=`.${Z.sep}${i}`),n&&i.length>e.length?e:i}function P(e,t){let n=e.split(" "),i=[],r="",s=0;for(let a of n){let l=ge(a).length;s+l+1>t&&(i.push(r),r="",s=0),r+=(s?" ":"")+a,s+=l+(s?1:0)}return s&&i.push(r),i}function R(e){let t=X(e);return e<=50*1e6?h.green(t):e<=300*1e6?h.blue(t):e<=1e3*1e6?h.yellow(t):h.red(t)}function E(e,t=0){return`${" ".repeat(t+G.indent)}${e}`}function w(e=""){process.stderr.write(`${e}
3
- `)}function f(e=""){process.stdout.write(`${e}
4
- `)}function we(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(he.readFileSync(H("tailwindcss/package.json"),"utf-8"));return e}import j from"node:fs/promises";import ye from"node:path";function I(){return new Promise((e,t)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>e(n)),process.stdin.on("error",i=>t(i))})}async function te(e,t){try{if(await j.readFile(e,"utf8")===t)return}catch{}await j.mkdir(ye.dirname(e),{recursive:!0}),await j.writeFile(e,t,"utf8")}var ne=String.raw;function A(){return{"--input":{type:"string",description:"Input file",alias:"-i"},"--output":{type:"string",description:"Output file",alias:"-o"},"--watch":{type:"boolean | string",description:"Watch for changes and rebuild as needed",alias:"-w"},"--minify":{type:"boolean",description:"Optimize and minify the output",alias:"-m"},"--optimize":{type:"boolean",description:"Optimize the output without minifying"},"--cwd":{type:"string",description:"The current working directory",default:"."}}}async function re(e){try{return await e()}catch(t){t instanceof Error&&w(t.toString()),process.exit(1)}}async function le(e){let t=T.resolve(e["--cwd"]);e["--output"]&&(e["--output"]=T.resolve(t,e["--output"])),e["--input"]&&e["--input"]!=="-"&&(e["--input"]=T.resolve(t,e["--input"]),Ce(e["--input"])||(w(v()),w(),w(`Specified input file ${k(ee(e["--input"]))} does not exist.`),process.exit(1)));let n=process.hrtime.bigint(),i=e["--input"]?e["--input"]==="-"?await I():await M.readFile(e["--input"],"utf-8"):ne`
2
+ var it=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),rt=t=>{throw TypeError(t)};var E=(t,e,n)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&rt("Object expected");var i,s;n&&(i=e[it("asyncDispose")]),i===void 0&&(i=e[it("dispose")],n&&(s=i)),typeof i!="function"&&rt("Object not disposable"),s&&(i=function(){try{s.call(this)}catch(r){return Promise.reject(r)}}),t.push([n,i,e])}else n&&t.push([n]);return e},K=(t,e,n)=>{var i=typeof SuppressedError=="function"?SuppressedError:function(a,o,l,u){return u=Error(l),u.name="SuppressedError",u.error=a,u.suppressed=o,u},s=a=>e=n?new i(a,e,"An error was suppressed during disposal"):(n=!0,a),r=a=>{for(;a=t.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(r,l=>(s(l),r()))}catch(l){s(l)}if(n)throw e};return r()};import _t from"mri";function st(t,e=process.argv.slice(2)){let n=_t(e),i={_:n._};for(let[s,{type:r,alias:a,default:o=r==="boolean"?!1:null}]of Object.entries(t)){if(i[s]=o,a){let l=a.slice(1);n[l]!==void 0&&(i[s]=ot(n[l],r))}{let l=s.slice(2);n[l]!==void 0&&(i[s]=ot(n[l],r))}}return i}function ot(t,e){switch(e){case"string":return O(t);case"boolean":return A(t);case"number":return B(t);case"boolean | string":return A(t)??O(t);case"number | string":return B(t)??O(t);case"boolean | number":return A(t)??B(t);case"boolean | number | string":return A(t)??B(t)??O(t);default:throw new Error(`Unhandled type: ${e}`)}}function A(t){if(t===!0||t===!1)return t;if(t==="true")return!0;if(t==="false")return!1}function B(t){if(typeof t=="number")return t;{let e=Number(t);if(!Number.isNaN(e))return e}}function O(t){return`${t}`}import zt from"@parcel/watcher";import{compile as Dt,env as Wt,Instrumentation as dt}from"@tailwindcss/node";import{clearRequireCache as It}from"@tailwindcss/node/require-cache";import{Scanner as Pt}from"@tailwindcss/oxide";import{Features as Q,transform as jt}from"lightningcss";import{existsSync as Mt}from"node:fs";import Y from"node:fs/promises";import v from"node:path";var _=class{#t=new Set([]);queueMacrotask(e){let n=setTimeout(e,0);return this.add(()=>{clearTimeout(n)})}add(e){return this.#t.add(e),()=>{this.#t.delete(e),e()}}async dispose(){for(let e of this.#t)await e();this.#t.clear()}};import At from"node:fs";import pt from"node:path";import{stripVTControlCharacters as Bt}from"node:util";import g from"picocolors";import lt from"enhanced-resolve";import Ft from"node:fs";import{createRequire as kt}from"node:module";var Rt=kt(import.meta.url).resolve;function at(t){if(typeof globalThis.__tw_resolve=="function"){let e=globalThis.__tw_resolve(t);if(e)return e}return Rt(t)}var Yt=lt.ResolverFactory.createResolver({fileSystem:new lt.CachedInputFileSystem(Ft,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function ut(t){let e=typeof t=="number"?BigInt(t):t;return e<1000n?`${e}ns`:(e/=1000n,e<1000n?`${e}\xB5s`:(e/=1000n,e<1000n?`${e}ms`:(e/=1000n,e<60n?`${e}s`:(e/=60n,e<60n?`${e}m`:(e/=60n,e<24n?`${e}h`:(e/=24n,`${e}d`))))))}var N={indent:2};function F(){return`${g.italic(g.bold(g.blue("\u2248")))} tailwindcss ${g.blue(`v${Ot()}`)}`}function z(t){return`${g.dim(g.blue("`"))}${g.blue(t)}${g.dim(g.blue("`"))}`}function ct(t,e=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=pt.relative(e,t);return i.startsWith("..")||(i=`.${pt.sep}${i}`),n&&i.length>t.length?t:i}function V(t,e){let n=t.split(" "),i=[],s="",r=0;for(let a of n){let o=Bt(a).length;r+o+1>e&&(i.push(s),s="",r=0),s+=(r?" ":"")+a,r+=o+(r?1:0)}return r&&i.push(s),i}function D(t){let e=ut(t);return t<=50*1e6?g.green(e):t<=300*1e6?g.blue(e):t<=1e3*1e6?g.yellow(e):g.red(e)}function k(t,e=0){return`${" ".repeat(e+N.indent)}${t}`}function w(t=""){process.stderr.write(`${t}
3
+ `)}function d(t=""){process.stdout.write(`${t}
4
+ `)}function Ot(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:t}=JSON.parse(At.readFileSync(at("tailwindcss/package.json"),"utf-8"));return t}import G from"node:fs/promises";import Nt from"node:path";function J(){return new Promise((t,e)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>t(n)),process.stdin.on("error",i=>e(i))})}async function ft(t,e){try{if(await G.readFile(t,"utf8")===e)return}catch{}await G.mkdir(Nt.dirname(t),{recursive:!0}),await G.writeFile(t,e,"utf8")}var mt=String.raw,p=Wt.DEBUG;function W(){return{"--input":{type:"string",description:"Input file",alias:"-i"},"--output":{type:"string",description:"Output file",alias:"-o"},"--watch":{type:"boolean | string",description:"Watch for changes and rebuild as needed",alias:"-w"},"--minify":{type:"boolean",description:"Optimize and minify the output",alias:"-m"},"--optimize":{type:"boolean",description:"Optimize the output without minifying"},"--cwd":{type:"string",description:"The current working directory",default:"."}}}async function ht(t){try{return await t()}catch(e){e instanceof Error&&w(e.toString()),process.exit(1)}}async function bt(t){var Z=[];try{let e=E(Z,new dt);p&&e.start("[@tailwindcss/cli] (initial build)");let n=v.resolve(t["--cwd"]);t["--output"]&&(t["--output"]=v.resolve(n,t["--output"]));t["--input"]&&t["--input"]!=="-"&&(t["--input"]=v.resolve(n,t["--input"]),Mt(t["--input"])||(w(F()),w(),w(`Specified input file ${z(ct(t["--input"]))} does not exist.`),process.exit(1)));let i=process.hrtime.bigint();let s=t["--input"]?t["--input"]==="-"?await J():await Y.readFile(t["--input"],"utf-8"):mt`
5
5
  @import 'tailwindcss';
6
- `,r={css:"",optimizedCss:""};async function s(g,m){let y=g;if(m["--minify"]||m["--optimize"])if(g!==r.css){c.DEBUG&&console.time("[@tailwindcss/cli] Optimize CSS");let b=Be(g,{file:m["--input"]??"input.css",minify:m["--minify"]??!1});c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Optimize CSS"),r.css=g,r.optimizedCss=b,y=b}else y=r.optimizedCss;c.DEBUG&&console.time("[@tailwindcss/cli] Write output"),m["--output"]?await te(m["--output"],y):f(y),c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Write output")}let a=e["--input"]&&e["--input"]!=="-"?T.resolve(e["--input"]):null,l=a?T.dirname(a):process.cwd(),o=a?[a]:[];async function p(g){c.DEBUG&&console.time("[@tailwindcss/cli] Setup compiler");let m=await Se(g,{base:l,onDependency(C){o.push(C)}}),y=(m.root==="none"?[]:m.root===null?[{base:t,pattern:"**/*"}]:[m.root]).concat(m.globs),b=new $e({sources:y});return c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Setup compiler"),[m,b]}let[u,d]=await re(()=>p(i));if(e["--watch"]){let g=await se(oe(d),async function m(y){try{if(y.length===1&&y[0]===e["--output"])return;let b=[],C="incremental",K=o;for(let x of y){if(K.includes(x)){C="full";break}b.push({file:x,extension:T.extname(x).slice(1)})}let V=process.hrtime.bigint(),z="";if(C==="full"){let x=e["--input"]?e["--input"]==="-"?await I():await M.readFile(e["--input"],"utf-8"):ne`
6
+ `;let r={css:"",optimizedCss:""};async function a(S,b,m){let x=S;if(b["--minify"]||b["--optimize"])if(S!==r.css){p&&m.start("Optimize CSS");let C=Ut(S,{file:b["--input"]??"input.css",minify:b["--minify"]??!1});p&&m.end("Optimize CSS"),r.css=S,r.optimizedCss=C,x=C}else x=r.optimizedCss;p&&m.start("Write output"),b["--output"]?await ft(b["--output"],x):d(x),p&&m.end("Write output")}let o=t["--input"]&&t["--input"]!=="-"?v.resolve(t["--input"]):null;let l=o?v.dirname(o):process.cwd();let u=o?[o]:[];async function f(S,b){p&&b.start("Setup compiler");let m=await Dt(S,{base:l,onDependency(M){u.push(M)}}),x=(m.root==="none"?[]:m.root===null?[{base:n,pattern:"**/*"}]:[m.root]).concat(m.globs),C=new Pt({sources:x});return p&&b.end("Setup compiler"),[m,C]}let[y,h]=await ht(()=>f(s,e));if(t["--watch"]){let S=await yt(gt(h),async function b(m){try{var x=[];try{if(m.length===1&&m[0]===t["--output"])return;let c=E(x,new dt);p&&c.start("[@tailwindcss/cli] (watcher)");let tt=process.hrtime.bigint();let et=[];let U="incremental";let nt=u;for(let $ of m){if(nt.includes($)){U="full";break}et.push({file:$,extension:v.extname($).slice(1)})}let L="";if(U==="full"){let $=t["--input"]?t["--input"]==="-"?await J():await Y.readFile(t["--input"],"utf-8"):mt`
7
7
  @import 'tailwindcss';
8
- `;xe(K),o=a?[a]:[],[u,d]=await p(x),c.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let W=d.scan();c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates");let ce=await se(oe(d),m);await g(),g=ce,c.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),z=u.build(W),c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}else if(C==="incremental"){c.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let x=d.scanFiles(b);if(c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),x.length<=0){let W=process.hrtime.bigint();w(`Done in ${R(W-V)}`);return}c.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),z=u.build(x),c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}await s(z,e);let ue=process.hrtime.bigint();w(`Done in ${R(ue-V)}`)}catch(b){b instanceof Error&&w(b.toString())}});e["--watch"]!=="always"&&process.stdin.on("end",()=>{g().then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}c.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let S=d.scan();c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),c.DEBUG&&console.time("[@tailwindcss/cli] Build CSS");let N=await re(()=>u.build(S));c.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS"),await s(N,e);let _=process.hrtime.bigint();w(v()),w(),w(`Done in ${R(_-n)}`)}function oe(e){return e.globs.flatMap(t=>t.pattern[0]==="!"?[]:t.pattern===""?[]:t.base)}async function se(e,t){e=e.sort((l,o)=>l.length-o.length);let n=[];for(let l=0;l<e.length;++l)for(let o=0;o<l;++o)e[l].startsWith(`${e[o]}/`)&&n.push(e[l]);e=e.filter(l=>!n.includes(l));let i=new B,r=new Set,s=new B;async function a(){await s.dispose(),s.queueMacrotask(()=>{t(Array.from(r)),r.clear()})}for(let l of e){let{unsubscribe:o}=await be.subscribe(l,async(p,u)=>{if(p){console.error(p);return}await Promise.all(u.map(async d=>{if(d.type==="delete")return;let S=null;try{S=await M.lstat(d.path)}catch{}!S?.isFile()&&!S?.isSymbolicLink()||r.add(d.path)})),await a()});i.add(o)}return async()=>{await i.dispose(),await s.dispose()}}function Be(e,{file:t="input.css",minify:n=!1}={}){function i(r){return Te({filename:t,code:r,minify:n,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:ie.Nesting,exclude:ie.LogicalProperties,targets:{safari:16<<16|1024,ios_saf:16<<16|1024,firefox:8388608,chrome:7864320},errorRecovery:!0}).code}return i(i(Buffer.from(e))).toString()}import $ from"picocolors";function L({invalid:e,usage:t,options:n}){let i=process.stdout.columns;if(f(v()),e&&(f(),f(`${$.dim("Invalid command:")} ${e}`)),t&&t.length>0){f(),f($.dim("Usage:"));for(let[r,s]of t.entries()){let a=s.slice(0,s.indexOf("[")),l=s.slice(s.indexOf("["));l=l.replace(/\[.*?\]/g,u=>$.dim(u));let p=P(l,i-G.indent-a.length-1);p.length>1&&r!==0&&f(),f(E(`${a}${p.shift()}`));for(let u of p)f(E(u,a.length))}}if(n){let r=0;for(let{alias:o}of Object.values(n))o&&(r=Math.max(r,o.length));let s=[],a=0;for(let[o,{alias:p}]of Object.entries(n)){let u=[p&&`${p.padStart(r)}`,p?o:" ".repeat(r+2)+o].filter(Boolean).join(", ");s.push(u),a=Math.max(a,u.length)}f(),f($.dim("Options:"));let l=8;for(let{description:o,default:p=null}of Object.values(n)){let u=s.shift(),d=l+(a-u.length),S=2,N=i-u.length-d-S-G.indent,_=P(p!==null?`${o} ${$.dim(`[default:\u202F${k(`${p}`)}]`)}`:o,N);f(E(`${$.blue(u)} ${$.dim($.gray("\xB7")).repeat(d)} ${_.shift()}`));for(let g of _)f(E(`${" ".repeat(u.length+d+S)}${g}`))}}}var q={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},O=Q({...A(),...q}),ae=O._[0];ae&&(L({invalid:ae,usage:["tailwindcss [options]"],options:{...A(),...q}}),process.exit(1));(process.stdout.isTTY&&!O["--output"]||O["--help"])&&(L({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...A(),...q}}),process.exit(0));le(O);
8
+ `;It(nt),u=o?[o]:[],[y,h]=await f($,c),p&&c.start("Scan for candidates");let q=h.scan();p&&c.end("Scan for candidates"),p&&c.start("Setup new watchers");let vt=await yt(gt(h),b);p&&c.end("Setup new watchers"),p&&c.start("Cleanup old watchers"),await S(),p&&c.end("Cleanup old watchers"),S=vt,p&&c.start("Build CSS"),L=y.build(q),p&&c.end("Build CSS")}else if(U==="incremental"){p&&c.start("Scan for candidates");let $=h.scanFiles(et);if(p&&c.end("Scan for candidates"),$.length<=0){let q=process.hrtime.bigint();w(`Done in ${D(q-tt)}`);return}p&&c.start("Build CSS"),L=y.build($),p&&c.end("Build CSS")}await a(L,t,c);let Ct=process.hrtime.bigint();w(`Done in ${D(Ct-tt)}`)}catch(C){var M=C,Tt=!0}finally{K(x,M,Tt)}}catch(c){c instanceof Error&&w(c.toString())}});t["--watch"]!=="always"&&process.stdin.on("end",()=>{S().then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}p&&e.start("Scan for candidates");let P=h.scan();p&&e.end("Scan for candidates");p&&e.start("Build CSS");let R=await ht(()=>y.build(P));p&&e.end("Build CSS");await a(R,t,e);let j=process.hrtime.bigint();w(F());w();w(`Done in ${D(j-i)}`)}catch(St){var xt=St,$t=!0}finally{K(Z,xt,$t)}}function gt(t){return t.globs.flatMap(e=>e.pattern[0]==="!"?[]:e.pattern===""?[]:e.base)}async function yt(t,e){t=t.sort((o,l)=>o.length-l.length);let n=[];for(let o=0;o<t.length;++o)for(let l=0;l<o;++l)t[o].startsWith(`${t[l]}/`)&&n.push(t[o]);t=t.filter(o=>!n.includes(o));let i=new _,s=new Set,r=new _;async function a(){await r.dispose(),r.queueMacrotask(()=>{e(Array.from(s)),s.clear()})}for(let o of t){let{unsubscribe:l}=await zt.subscribe(o,async(u,f)=>{if(u){console.error(u);return}await Promise.all(f.map(async y=>{if(y.type==="delete")return;let h=null;try{h=await Y.lstat(y.path)}catch{}!h?.isFile()&&!h?.isSymbolicLink()||s.add(y.path)})),await a()});i.add(l)}return async()=>{await i.dispose(),await r.dispose()}}function Ut(t,{file:e="input.css",minify:n=!1}={}){function i(s){return jt({filename:e,code:s,minify:n,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:Q.Nesting,exclude:Q.LogicalProperties|Q.DirSelector,targets:{safari:16<<16|1024,ios_saf:16<<16|1024,firefox:8388608,chrome:7274496},errorRecovery:!0}).code}return i(i(Buffer.from(t))).toString()}import T from"picocolors";function H({invalid:t,usage:e,options:n}){let i=process.stdout.columns;if(d(F()),t&&(d(),d(`${T.dim("Invalid command:")} ${t}`)),e&&e.length>0){d(),d(T.dim("Usage:"));for(let[s,r]of e.entries()){let a=r.slice(0,r.indexOf("[")),o=r.slice(r.indexOf("["));o=o.replace(/\[.*?\]/g,f=>T.dim(f));let u=V(o,i-N.indent-a.length-1);u.length>1&&s!==0&&d(),d(k(`${a}${u.shift()}`));for(let f of u)d(k(f,a.length))}}if(n){let s=0;for(let{alias:l}of Object.values(n))l&&(s=Math.max(s,l.length));let r=[],a=0;for(let[l,{alias:u}]of Object.entries(n)){let f=[u&&`${u.padStart(s)}`,u?l:" ".repeat(s+2)+l].filter(Boolean).join(", ");r.push(f),a=Math.max(a,f.length)}d(),d(T.dim("Options:"));let o=8;for(let{description:l,default:u=null}of Object.values(n)){let f=r.shift(),y=o+(a-f.length),h=2,P=i-f.length-y-h-N.indent,R=V(u!==null?`${l} ${T.dim(`[default:\u202F${z(`${u}`)}]`)}`:l,P);d(k(`${T.blue(f)} ${T.dim(T.gray("\xB7")).repeat(y)} ${R.shift()}`));for(let j of R)d(k(`${" ".repeat(f.length+y+h)}${j}`))}}}var X={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},I=st({...W(),...X}),wt=I._[0];wt&&(H({invalid:wt,usage:["tailwindcss [options]"],options:{...W(),...X}}),process.exit(1));(process.stdout.isTTY&&!I["--output"]||I["--help"])&&(H({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...W(),...X}}),process.exit(0));bt(I);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailwindcss/cli",
3
- "version": "4.0.0-beta.5",
3
+ "version": "4.0.0-beta.7",
4
4
  "description": "A utility-first CSS framework for rapidly building custom user interfaces.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,9 +29,9 @@
29
29
  "lightningcss": "^1.26.0",
30
30
  "mri": "^1.2.0",
31
31
  "picocolors": "^1.1.1",
32
- "@tailwindcss/node": "4.0.0-beta.5",
33
- "@tailwindcss/oxide": "4.0.0-beta.5",
34
- "tailwindcss": "4.0.0-beta.5"
32
+ "@tailwindcss/node": "4.0.0-beta.7",
33
+ "tailwindcss": "4.0.0-beta.7",
34
+ "@tailwindcss/oxide": "4.0.0-beta.7"
35
35
  },
36
36
  "scripts": {
37
37
  "lint": "tsc --noEmit",