#!/usr/bin/env node
var it=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),rt=t=>{throw TypeError(t)};var q=(t,e,n)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&rt("Object expected");var i,o;n&&(i=e[it("asyncDispose")]),i===void 0&&(i=e[it("dispose")],n&&(o=i)),typeof i!="function"&&rt("Object not disposable"),o&&(i=function(){try{o.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,s,l,u){return u=Error(l),u.name="SuppressedError",u.error=a,u.suppressed=s,u},o=a=>e=n?new i(a,e,"An error was suppressed during disposal"):(n=!0,a),r=a=>{for(;a=t.pop();)try{var s=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(s).then(r,l=>(o(l),r()))}catch(l){o(l)}if(n)throw e};return r()};import Ct from"mri";function st(t,e=process.argv.slice(2)){for(let[o,r]of e.entries())r==="-"&&(e[o]="__IO_DEFAULT_VALUE__");let n=Ct(e);for(let o in n)n[o]==="__IO_DEFAULT_VALUE__"&&(n[o]="-");let i={_:n._};for(let[o,{type:r,alias:a,default:s=r==="boolean"?!1:null}]of Object.entries(t)){if(i[o]=s,a){let l=a.slice(1);n[l]!==void 0&&(i[o]=ot(n[l],r))}{let l=o.slice(2);n[l]!==void 0&&(i[o]=ot(n[l],r))}}return i}function ot(t,e){switch(e){case"string":return z(t);case"boolean":return R(t);case"number":return B(t);case"boolean | string":return R(t)??z(t);case"number | string":return B(t)??z(t);case"boolean | number":return R(t)??B(t);case"boolean | number | string":return R(t)??B(t)??z(t);default:throw new Error(`Unhandled type: ${e}`)}}function R(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 z(t){return`${t}`}import zt from"@parcel/watcher";import{compile as Dt,env as Nt,Instrumentation as ft,optimize as Et}from"@tailwindcss/node";import{clearRequireCache as Wt}from"@tailwindcss/node/require-cache";import{Scanner as It}from"@tailwindcss/oxide";import{existsSync as Ut}from"node:fs";import Q from"node:fs/promises";import A from"node:path";var F=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 kt from"node:fs";import pt from"node:path";import{stripVTControlCharacters as Ot}from"node:util";import y from"picocolors";import lt from"enhanced-resolve";import vt from"node:fs";import{createRequire as At}from"node:module";var Ft=At(import.meta.url).resolve;function at(t){if(typeof globalThis.__tw_resolve=="function"){let e=globalThis.__tw_resolve(t);if(e)return e}return Ft(t)}var Jt=lt.ResolverFactory.createResolver({fileSystem:new lt.CachedInputFileSystem(vt,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 D={indent:2};function C(){return`${y.italic(y.bold(y.blue("\u2248")))} tailwindcss ${y.blue(`v${Rt()}`)}`}function v(t){return`${y.dim(y.blue("`"))}${y.blue(t)}${y.dim(y.blue("`"))}`}function N(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 M(t,e){let n=t.split(" "),i=[],o="",r=0;for(let a of n){let s=Ot(a).length;r+s+1>e&&(i.push(o),o="",r=0),o+=(r?" ":"")+a,r+=s+(r?1:0)}return r&&i.push(o),i}function E(t){let e=ut(t);return t<=50*1e6?y.green(e):t<=300*1e6?y.blue(e):t<=1e3*1e6?y.yellow(e):y.red(e)}function k(t,e=0){return`${" ".repeat(e+D.indent)}${t}`}function h(t=""){process.stderr.write(`${t}
`)}function d(t=""){process.stdout.write(`${t}
`)}function Rt(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:t}=JSON.parse(kt.readFileSync(at("tailwindcss/package.json"),"utf-8"));return t}import G from"node:fs/promises";import Bt 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 ct(t,e){try{if(await G.readFile(t,"utf8")===e)return}catch{}await G.mkdir(Bt.dirname(t),{recursive:!0}),await G.writeFile(t,e,"utf8")}var dt=String.raw,p=Nt.DEBUG;function W(){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",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 mt(t){try{return await t()}catch(e){e instanceof Error&&h(e.toString()),process.exit(1)}}async function yt(t){var Z=[];try{let e=q(Z,new ft);p&&e.start("[@tailwindcss/cli] (initial build)");let n=A.resolve(t["--cwd"]);t["--output"]&&t["--output"]!=="-"&&(t["--output"]=A.resolve(n,t["--output"]));t["--input"]&&t["--input"]!=="-"&&(t["--input"]=A.resolve(n,t["--input"]),Ut(t["--input"])||(h(C()),h(),h(`Specified input file ${v(N(t["--input"]))} does not exist.`),process.exit(1)));t["--input"]===t["--output"]&&t["--input"]!=="-"&&(h(C()),h(),h(`Specified input file ${v(N(t["--input"]))} and output file ${v(N(t["--output"]))} are identical.`),process.exit(1));let i=process.hrtime.bigint();let o=t["--input"]?t["--input"]==="-"?await J():await Q.readFile(t["--input"],"utf-8"):dt`
        @import 'tailwindcss';
      `;let r={css:"",optimizedCss:""};async function a(S,w,m){let x=S;if(w["--minify"]||w["--optimize"])if(S!==r.css){p&&m.start("Optimize CSS");let _=Et(S,{file:w["--input"]??"input.css",minify:w["--minify"]??!1});p&&m.end("Optimize CSS"),r.css=S,r.optimizedCss=_,x=_}else x=r.optimizedCss;p&&m.start("Write output"),w["--output"]&&w["--output"]!=="-"?await ct(w["--output"],x):d(x),p&&m.end("Write output")}let s=t["--input"]&&t["--input"]!=="-"?A.resolve(t["--input"]):null;let l=s?A.dirname(s):process.cwd();let u=s?[s]:[];async function f(S,w){p&&w.start("Setup compiler");let m=await Dt(S,{base:l,onDependency(L){u.push(L)}}),x=(m.root==="none"?[]:m.root===null?[{base:n,pattern:"**/*",negated:!1}]:[{...m.root,negated:!1}]).concat(m.sources),_=new It({sources:x});return p&&w.end("Setup compiler"),[m,_]}let[b,g]=await mt(()=>f(o,e));if(t["--watch"]){let S=await ht(gt(g),async function w(m){try{var x=[];try{if(m.length===1&&m[0]===t["--output"])return;let c=q(x,new ft);p&&c.start("[@tailwindcss/cli] (watcher)");let tt=process.hrtime.bigint();let et=[];let j="incremental";let nt=u;for(let $ of m){if(nt.includes($)){j="full";break}et.push({file:$,extension:A.extname($).slice(1)})}let P="";if(j==="full"){let $=t["--input"]?t["--input"]==="-"?await J():await Q.readFile(t["--input"],"utf-8"):dt`
                  @import 'tailwindcss';
                `;Wt(nt),u=s?[s]:[],[b,g]=await f($,c),p&&c.start("Scan for candidates");let V=g.scan();p&&c.end("Scan for candidates"),p&&c.start("Setup new watchers");let _t=await ht(gt(g),w);p&&c.end("Setup new watchers"),p&&c.start("Cleanup old watchers"),await S(),p&&c.end("Cleanup old watchers"),S=_t,p&&c.start("Build CSS"),P=b.build(V),p&&c.end("Build CSS")}else if(j==="incremental"){p&&c.start("Scan for candidates");let $=g.scanFiles(et);if(p&&c.end("Scan for candidates"),$.length<=0){let V=process.hrtime.bigint();h(`Done in ${E(V-tt)}`);return}p&&c.start("Build CSS"),P=b.build($),p&&c.end("Build CSS")}await a(P,t,c);let Tt=process.hrtime.bigint();h(`Done in ${E(Tt-tt)}`)}catch(_){var L=_,$t=!0}finally{K(x,L,$t)}}catch(c){c instanceof Error&&h(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 I=g.scan();p&&e.end("Scan for candidates");p&&e.start("Build CSS");let O=await mt(()=>b.build(I));p&&e.end("Build CSS");await a(O,t,e);let U=process.hrtime.bigint();h(C());h();h(`Done in ${E(U-i)}`)}catch(wt){var St=wt,xt=!0}finally{K(Z,St,xt)}}async function ht(t,e){t=t.sort((s,l)=>s.length-l.length);let n=[];for(let s=0;s<t.length;++s)for(let l=0;l<s;++l)t[s].startsWith(`${t[l]}/`)&&n.push(t[s]);t=t.filter(s=>!n.includes(s));let i=new F,o=new Set,r=new F;async function a(){await r.dispose(),r.queueMacrotask(()=>{e(Array.from(o)),o.clear()})}for(let s of t){let{unsubscribe:l}=await zt.subscribe(s,async(u,f)=>{if(u){console.error(u);return}await Promise.all(f.map(async b=>{if(b.type==="delete")return;let g=null;try{g=await Q.lstat(b.path)}catch{}!g?.isFile()&&!g?.isSymbolicLink()||o.add(b.path)})),await a()});i.add(l)}return async()=>{await i.dispose(),await r.dispose()}}function gt(t){return[...new Set(t.normalizedSources.flatMap(e=>e.base))]}import T from"picocolors";function Y({invalid:t,usage:e,options:n}){let i=process.stdout.columns;if(d(C()),t&&(d(),d(`${T.dim("Invalid command:")} ${t}`)),e&&e.length>0){d(),d(T.dim("Usage:"));for(let[o,r]of e.entries()){let a=r.slice(0,r.indexOf("[")),s=r.slice(r.indexOf("["));s=s.replace(/\[.*?\]/g,f=>T.dim(f));let u=M(s,i-D.indent-a.length-1);u.length>1&&o!==0&&d(),d(k(`${a}${u.shift()}`));for(let f of u)d(k(f,a.length))}}if(n){let o=0;for(let{alias:l}of Object.values(n))l&&(o=Math.max(o,l.length));let r=[],a=0;for(let[l,{alias:u}]of Object.entries(n)){let f=[u&&`${u.padStart(o)}`,u?l:" ".repeat(o+2)+l].filter(Boolean).join(", ");r.push(f),a=Math.max(a,f.length)}d(),d(T.dim("Options:"));let s=8;for(let{description:l,default:u=null}of Object.values(n)){let f=r.shift(),b=s+(a-f.length),g=2,I=i-f.length-b-g-D.indent,O=M(u!==null?`${l} ${T.dim(`[default:\u202F${v(`${u}`)}]`)}`:l,I);d(k(`${T.blue(f)} ${T.dim(T.gray("\xB7")).repeat(b)} ${O.shift()}`));for(let U of O)d(k(`${" ".repeat(f.length+b+g)}${U}`))}}}var H={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},X=st({...W(),...H}),bt=X._[0];bt&&(Y({invalid:bt,usage:["tailwindcss [options]"],options:{...W(),...H}}),process.exit(1));(process.stdout.isTTY&&process.argv[2]===void 0||X["--help"])&&(Y({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...W(),...H}}),process.exit(0));yt(X);
