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