#!/usr/bin/env node
var ae=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),ue=e=>{throw TypeError(e)};var J=(e,t,i)=>{if(t!=null){typeof t!="object"&&typeof t!="function"&&ue("Object expected");var r,o;i&&(r=t[ae("asyncDispose")]),r===void 0&&(r=t[ae("dispose")],i&&(o=r)),typeof r!="function"&&ue("Object not disposable"),o&&(r=function(){try{o.call(this)}catch(n){return Promise.reject(n)}}),e.push([i,r,t])}else i&&e.push([i]);return t},Q=(e,t,i)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(u,s,l,p){return p=Error(l),p.name="SuppressedError",p.error=u,p.suppressed=s,p},o=u=>t=i?new r(u,t,"An error was suppressed during disposal"):(i=!0,u),n=u=>{for(;u=e.pop();)try{var s=u[1]&&u[1].call(u[2]);if(u[0])return Promise.resolve(s).then(n,l=>(o(l),n()))}catch(l){o(l)}if(i)throw t};return n()};import ke from"mri";function ce(e,t=process.argv.slice(2)){for(let[o,n]of t.entries())n==="-"&&(t[o]="__IO_DEFAULT_VALUE__");let i=ke(t);for(let o in i){let n=i[o];o!=="_"&&Array.isArray(n)&&(n=n[n.length-1]),n==="__IO_DEFAULT_VALUE__"&&(n="-"),i[o]=n}let r={_:i._};for(let[o,{type:n,alias:u,default:s=n==="boolean"?!1:null}]of Object.entries(e)){if(r[o]=s,u){let l=u.slice(1);i[l]!==void 0&&(r[o]=pe(i[l],n))}{let l=o.slice(2);i[l]!==void 0&&(r[o]=pe(i[l],n))}}return r}function pe(e,t){switch(t){case"string":return D(e);case"boolean":return O(e);case"number":return R(e);case"boolean | string":return O(e)??D(e);case"number | string":return R(e)??D(e);case"boolean | number":return O(e)??R(e);case"boolean | number | string":return O(e)??R(e)??D(e);default:throw new Error(`Unhandled type: ${t}`)}}function O(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function R(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function D(e){return`${e}`}import Ne from"@parcel/watcher";import{compile as We,env as Ee,Instrumentation as ye,optimize as Ue,toSourceMap as U}from"@tailwindcss/node";import{clearRequireCache as Ie}from"@tailwindcss/node/require-cache";import{Scanner as Le}from"@tailwindcss/oxide";import{existsSync as je}from"fs";import ee from"fs/promises";import T from"path";var A=class{#e=new Set([]);queueMacrotask(t){let i=setTimeout(t,0);return this.add(()=>{clearTimeout(i)})}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 Re from"fs";import he from"path";import{stripVTControlCharacters as De}from"util";import b from"picocolors";import fe from"enhanced-resolve";import Me from"fs";import{createRequire as Be}from"module";var Oe=Be(import.meta.url).resolve;function de(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return Oe(e)}var Xe=fe.ResolverFactory.createResolver({fileSystem:new fe.CachedInputFileSystem(Me,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function me(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 P={indent:2};function z(){return`${b.italic(b.bold(b.blue("\u2248")))} tailwindcss ${b.blue(`v${Pe()}`)}`}function F(e){return`${b.dim(b.blue("`"))}${b.blue(e)}${b.dim(b.blue("`"))}`}function N(e,t=process.cwd(),{preferAbsoluteIfShorter:i=!0}={}){let r=he.relative(t,e);return r.startsWith("..")||(r=`.${he.sep}${r}`),i&&r.length>e.length?e:r}function Y(e,t){let i=e.split(" "),r=[],o="",n=0;for(let u of i){let s=De(u).length;n+s+1>t&&(r.push(o),o="",n=0),o+=(n?" ":"")+u,n+=s+(n?1:0)}return n&&r.push(o),r}function W(e){let t=me(e);return e<=50*1e6?b.green(t):e<=300*1e6?b.blue(t):e<=1e3*1e6?b.yellow(t):b.red(t)}function k(e,t=0){return`${" ".repeat(t+P.indent)}${e}`}function $(e=""){process.stderr.write(`${e}
`)}function h(e=""){process.stdout.write(`${e}
`)}function Pe(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(Re.readFileSync(de("tailwindcss/package.json"),"utf-8"));return e}import E from"fs/promises";import ze from"path";function H(){return new Promise((e,t)=>{let i="";process.stdin.on("data",r=>{i+=r}),process.stdin.on("end",()=>e(i)),process.stdin.on("error",r=>t(r))})}async function X(e,t){if(!await E.stat(e).then(r=>r.isCharacterDevice()||r.isFIFO()).catch(()=>!1))try{if(await E.readFile(e,"utf8")===t)return}catch{}await E.mkdir(ze.dirname(e),{recursive:!0}),await E.writeFile(e,t,"utf8")}var we=String.raw,a=Ee.DEBUG;function I(){return{"--input":{type:"string",description:"Input file",alias:"-i"},"--output":{type:"string",description:"Output file",alias:"-o",default:"-"},"--watch":{type:"boolean | string",description:"Watch for changes and rebuild as needed, and use `always` to keep watching when stdin is closed",alias:"-w",values:["always"]},"--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:"."},"--map":{type:"boolean | string",description:"Generate a source map",default:!1}}}async function Z(e){try{return await e()}catch(t){t instanceof Error&&$(t.toString()),process.exit(1)}}async function Se(e){var re=[];try{$(z());$();let t=J(re,new ye);a&&t.start("[@tailwindcss/cli] (initial build)");let i=T.resolve(e["--cwd"]);e["--output"]&&e["--output"]!=="-"&&(e["--output"]=T.resolve(i,e["--output"]));e["--input"]&&e["--input"]!=="-"&&(e["--input"]=T.resolve(i,e["--input"]),je(e["--input"])||($(`Specified input file ${F(N(e["--input"]))} does not exist.`),process.exit(1)));e["--input"]===e["--output"]&&e["--input"]!=="-"&&($(`Specified input file ${F(N(e["--input"]))} and output file ${F(N(e["--output"]))} are identical.`),process.exit(1));e["--map"]==="-"&&($("Use --map without a value to inline the source map"),process.exit(1));e["--map"]&&e["--map"]!==!0&&(e["--map"]=T.resolve(i,e["--map"]));let r=process.hrtime.bigint();let o=e["--input"]?e["--input"]==="-"?await H():await ee.readFile(e["--input"],"utf-8"):we`
        @import 'tailwindcss';
      `;let n={css:"",optimizedCss:""};async function u(S,w,c,x){let g=S;if(c["--minify"]||c["--optimize"])if(S!==n.css){a&&x.start("Optimize CSS");let _=Ue(S,{file:c["--input"]??"input.css",minify:c["--minify"]??!1,map:w?.raw??void 0});a&&x.end("Optimize CSS"),n.css=S,n.optimizedCss=_.code,_.map&&(w=U(_.map)),g=_.code}else g=n.optimizedCss;if(w){if(c["--map"]===!0)g+=`
`,g+=w.inline;else if(typeof c["--map"]=="string"){let _=c["--output"]&&c["--output"]!=="-"?T.dirname(T.resolve(c["--output"])):process.cwd(),j=T.resolve(c["--map"]),f=T.relative(_,j);g+=`
`,g+=w.comment(f),a&&x.start("Write source map"),await X(c["--map"],w.raw),a&&x.end("Write source map")}}a&&x.start("Write output"),c["--output"]&&c["--output"]!=="-"?await X(c["--output"],g):h(g),a&&x.end("Write output")}let s=e["--input"]&&e["--input"]!=="-"?T.resolve(e["--input"]):null;let l=s?T.dirname(s):process.cwd();let p=s?[s]:[];async function m(S,w){a&&w.start("Setup compiler");let c=await We(S,{from:e["--output"]?s??"stdin.css":void 0,base:l,onDependency(_){p.push(_)}}),x=(c.root==="none"?[]:c.root===null?[{base:i,pattern:"**/*",negated:!1}]:[{...c.root,negated:!1}]).concat(c.sources),g=new Le({sources:x});return a&&w.end("Setup compiler"),[c,g]}let[d,y]=await Z(()=>m(o,t));if(e["--watch"]){let S=[];S.push(await be(ge(y),async function w(c){try{var x=[];try{if(c.length===1&&c[0]===e["--output"])return;let f=J(x,new ye);a&&f.start("[@tailwindcss/cli] (watcher)");let oe=process.hrtime.bigint();let se=[];let V="incremental";let le=p;for(let v of c){if(le.includes(v)){V="full";break}se.push({file:v,extension:T.extname(v).slice(1)})}let q="";let K=null;if(V==="full"){let v=e["--input"]?e["--input"]==="-"?await H():await ee.readFile(e["--input"],"utf-8"):we`
                  @import 'tailwindcss';
                `;Ie(le),p=s?[s]:[],[d,y]=await m(v,f),a&&f.start("Scan for candidates");let G=y.scan();a&&f.end("Scan for candidates"),a&&f.start("Setup new watchers");let Fe=await be(ge(y),w);a&&f.end("Setup new watchers"),a&&f.start("Cleanup old watchers"),await Promise.all(S.splice(0).map(Ae=>Ae())),a&&f.end("Cleanup old watchers"),S.push(Fe),a&&f.start("Build CSS"),q=d.build(G),a&&f.end("Build CSS"),e["--map"]&&(a&&f.start("Build Source Map"),K=U(d.buildSourceMap()),a&&f.end("Build Source Map"))}else if(V==="incremental"){a&&f.start("Scan for candidates");let v=y.scanFiles(se);if(a&&f.end("Scan for candidates"),v.length<=0){let G=process.hrtime.bigint();$(`Done in ${W(G-oe)}`);return}a&&f.start("Build CSS"),q=d.build(v),a&&f.end("Build CSS"),e["--map"]&&(a&&f.start("Build Source Map"),K=U(d.buildSourceMap()),a&&f.end("Build Source Map"))}await u(q,K,e,f);let Ce=process.hrtime.bigint();$(`Done in ${W(Ce-oe)}`)}catch(g){var _=g,j=!0}finally{Q(x,_,j)}}catch(f){f instanceof Error&&$(f.toString())}})),e["--watch"]!=="always"&&process.stdin.on("end",()=>{Promise.all(S.map(w=>w())).then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}a&&t.start("Scan for candidates");let L=y.scan();a&&t.end("Scan for candidates");a&&t.start("Build CSS");let M=await Z(()=>d.build(L));a&&t.end("Build CSS");let B=null;e["--map"]&&(a&&t.start("Build Source Map"),B=await Z(()=>U(d.buildSourceMap())),a&&t.end("Build Source Map"));await u(M,B,e,t);let $e=process.hrtime.bigint();$(`Done in ${W($e-r)}`)}catch(Te){var _e=Te,ve=!0}finally{Q(re,_e,ve)}}async function be(e,t){e=e.sort((s,l)=>s.length-l.length);let i=[];for(let s=0;s<e.length;++s)for(let l=0;l<s;++l)e[s].startsWith(`${e[l]}/`)&&i.push(e[s]);e=e.filter(s=>!i.includes(s));let r=new A,o=new Set,n=new A;async function u(){await n.dispose(),n.queueMacrotask(()=>{t(Array.from(o)),o.clear()})}for(let s of e){let{unsubscribe:l}=await Ne.subscribe(s,async(p,m)=>{if(p){console.error(p);return}await Promise.all(m.map(async d=>{if(d.type==="delete")return;let y=null;try{y=await ee.lstat(d.path)}catch{}!y?.isFile()&&!y?.isSymbolicLink()||o.add(d.path)})),await u()});r.add(l)}return async()=>{await r.dispose(),await n.dispose()}}function ge(e){return[...new Set(e.normalizedSources.flatMap(t=>t.base))]}import C from"picocolors";function te({invalid:e,usage:t,options:i}){let r=process.stdout.columns;if(h(z()),e&&(h(),h(`${C.dim("Invalid command:")} ${e}`)),t&&t.length>0){h(),h(C.dim("Usage:"));for(let[o,n]of t.entries()){let u=n.slice(0,n.indexOf("[")),s=n.slice(n.indexOf("["));s=s.replace(/\[.*?\]/g,m=>C.dim(m));let p=Y(s,r-P.indent-u.length-1);p.length>1&&o!==0&&h(),h(k(`${u}${p.shift()}`));for(let m of p)h(k(m,u.length))}}if(i){let o=0;for(let{alias:l}of Object.values(i))l&&(o=Math.max(o,l.length));let n=[],u=0;for(let[l,{alias:p,values:m}]of Object.entries(i)){m?.length&&(l+=`[=${m.join(", ")}]`);let d=[p&&`${p.padStart(o)}`,p?l:" ".repeat(o+2)+l].filter(Boolean).join(", ");n.push(d),u=Math.max(u,d.length)}h(),h(C.dim("Options:"));let s=8;for(let{description:l,default:p=null}of Object.values(i)){let m=n.shift(),d=s+(u-m.length),y=2,L=r-m.length-d-y-P.indent,M=Y(p!==null?`${l} ${C.dim(`[default:\u202F${F(`${p}`)}]`)}`:l,L);h(k(`${C.blue(m)} ${C.dim(C.gray("\xB7")).repeat(d)} ${M.shift()}`));for(let B of M)h(k(`${" ".repeat(m.length+d+y)}${B}`))}}}var ne={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},ie=ce({...I(),...ne}),xe=ie._[0];xe&&(te({invalid:xe,usage:["tailwindcss [options]"],options:{...I(),...ne}}),process.exit(1));(process.stdout.isTTY&&process.argv[2]===void 0||ie["--help"])&&(te({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...I(),...ne}}),process.exit(0));Se(ie);
